主页 > imtoken官方下载 > A9.咬酱讲解ASICBoost专利比特币打包挖矿原理

A9.咬酱讲解ASICBoost专利比特币打包挖矿原理

imtoken官方下载 2023-07-07 05:21:26

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

点击上方蓝色“咬酱”关注我们吧! 什么是比特币解释挖矿历史

视频长度:1分56秒

请(((WiFi)))观看(BitcoinMining)

日本约有 4,500 家商店支持比特币作为结算货币

视频长度:0分59秒

请(((WiFi)))观看(中金在线)

时间:2017年4月6日

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

@拉特大微博:什么是ASICBoost? (原文在左下角)

揭秘比特币与区块链(一):什么是区块链?

揭秘比特币与区块链(二):挖矿的本质是什么?

比特币算法原理详解_详解比特币挖矿算法_比特币怎么玩详解

你阅读这篇文章

比特币算法原理详解_比特币怎么玩详解_详解比特币挖矿算法

比特币算法原理详解_比特币怎么玩详解_详解比特币挖矿算法

分钟

比特币算法原理详解_详解比特币挖矿算法_比特币怎么玩详解

比特币怎么玩详解_比特币算法原理详解_详解比特币挖矿算法

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

秒,转发只需3秒~

比特币包挖矿知识普及

马龙(玛雅)

最近发生的“ASICBoost专利门”事件轰动了整个币圈,将影响比特币的未来。 整个专利技术涉及低水平的比特币打包挖矿,可能很少有人了解。 本文在查阅大量文献后,力图通俗易懂地介绍整个挖矿技术知识。 任何支持性的判断都应该基于技术客观判断,这会比根据一些人的主观言论来判断要可靠得多。

哈希算法 HASH 1 这是理解整个挖矿行业的基础。

散列算法,也称为散列函数,将一个任意长度的二进制值映射到一个较短的固定长度的二进制值,这个小的二进制值称为散列值。

为了便于理解,大家可以想想大家比较熟悉的WinRAR压缩软件。 无论是只有一个原始文件还是多个原始文件,都可以压缩成一个RAR文件。 当任何原始文件发生变化时,重新压缩生成的 RAR 文件将代替以前的文件发生变化。

哈希算法有点类似,但是它处理的对象不是文件,而是字符串。 将任意长度的原始字符串“压缩”成字符串,即Hash字符串。 原始字符串的任何细微变化都会导致哈希值发生变化。 与RAR不同的是,Hash结果不能“解压”,还原成原来的字符串。

哈希算法有很多种。 典型的哈希算法包括MD2、MD4、MD5、SHA-1、SHA-2、SHA-256、SHA-512、SHA-3、RIPEMD-160和SCRYPT算法(莱特币和狗狗币使用)等。 SHA256算法在比特币中被广泛使用。 RIPEMD160 算法仅在从公钥生成货币地址时使用。 SHA256算法一般用在其他地方使用Hash的时候。 其特点如下图所示,任意一个字符串都会被转化为256个随机的0或1。

比特币怎么玩详解_比特币算法原理详解_详解比特币挖矿算法

矿机挖矿的底层2,了解矿机在干什么。

其实很容易理解矿机底层在做什么,就是不断改变原始数据,不断计算SHA256算法下的Hash值,满足一定条件就成功。

1.成功的条件是什么?

请参阅最近区块 461,228 的区块哈希示例。

000000000000000001f682adc333ebb751e63b204c8f8aa7b595e11394d5a154

前17位全为0,后面的数必须小于某个数,则满足条件。 这些哈希值的结果是随机的,规律性只能通过不断改变原文内容,不断尝试从大量随机结果中选出满足难度条件的来实现。 难度不固定。 根据全网算力挖出区块的情况,每挖出2016个区块(约两周,2016/6/24=14)调整一次难度。 如果2016年挖出区块的时间少于两周,则增加难度; 如果超过两周,就降低难度。

2、什么是原始数据?

SHA256 算法不是取整个区块内容的 Hash 值,而是只对 80 字节的区块头进行运算。 这80个字节具体分为六部分。

详解比特币挖矿算法_比特币算法原理详解_比特币怎么玩详解

1.版本号Version:4字节,投票时改变

根据目前的BIP9升级规范,版本号用于投票区块本身支持的分叉升级计划。 如果支持SW,版本号可以是0x20000002。 详情请参考以下文章:

2. 前一个区块的哈希值:32字节,有新区块时会发生变化

这是将区块串成区块链的关键,表明该区块是在哪个区块的基础上开采的。 当BitNetwork上出现合法的新区块时,必须及时更换新区块的Hash,否则即使挖出来也可能被孤立。

3、交易树根MerkleRoot:32字节,交易随时间变化

所有的交易都要进行哈希处理,但是计算量太大,所以使用Merkle Root Hash的方法将所有的交易合并成一个32字节的哈希数据。 它可以代表所有的交易,任何交易的任何微小变化都会引起 MerkleRoot 的变化。 更多的讨论和图表如下。

4.时间戳TimeStamp:4个字节,当前时间略有变化

最好写当前时间,但不是很严格。 允许有一定的时间偏差,但不能太大。 如果偏差太大,则会被块隔离。 因为不严格,有时下一个块会早于其前一个块的时间戳。 这是可以的,但真正的诞生时间当然是前一个区块在下一个区块之前。

5. 当前难度值 Bits:4字节,每两周左右更改一次

由全网算力决定,每2016个区块重新调整一次,调整算法固定。 也就是说,在调整的时候,大家可以根据历史数据自己计算,而不是由任何人指定。 如何用四个字节表示难度? 它有点类似于天文数字的科学计数法。 第一个字节V1表示右移的位数,其余三个字节V3表示具体的有效数据。

F(nBits)=V3 * 2^(8*(V1-3) )

6、随机数Nonce:4字节,随时可变

这是为了让矿工在挖矿的时候自己调整,找到一个合适的值,让区块头的Hash结果满足难度要求。 这个参数估计是中本聪弄错了。 设计很小,只有4个字节。 CPU挖矿时代够了,显卡GPU时代就不行了。 您可以在几秒钟内尝试所有 Nonce。 向上。 不过可以微调上面的时间戳TimeStamp,调一次就可以挖几秒,勉强够用。 但是,在专业矿池时代,Nonce是远远不够的。 由于每个字段一般都有明确固定的含义,不能轻易更改,所以就求助于32字节的交易树根MerkleRoot。

详解比特币挖矿算法_比特币算法原理详解_比特币怎么玩详解

矿工与矿池互动 3 了解矿工与矿池的分工。

早期,矿工独立挖矿就够了。 但是,随着挖矿难度的增加,个体矿工已经无法与矿池模式竞争。 看看下图最近7天的出块情况。 绝大多数区块都是矿池挖出来的。 矿池和矿工之间有明确的分工。

1、矿池为矿工提供的挖矿服务

比特交易的收集是在矿池上完成的。 矿池需要运行全节点,而矿工不需要。 如下图蓝线所示,矿池会从待打包的交易中产生那些黑点,然后不时发送给矿工。 此外,构建一个基本的 coinbase 交易并将其发送给矿工。 理论上,矿池对矿工的coinbase交易内容可以长期保持不变。 但是实行严格的SW隔离证书后,每当有交易订单或交易内容调整时,都需要更改coinbase。 此外,矿池必须提供除 MerklerRoot 和 Nonce 之外的区块头数据。

详解比特币挖矿算法_比特币算法原理详解_比特币怎么玩详解

2、矿工对矿池的算力贡献

矿工收到矿池发来的信息后,第一步就是计算红点。 对coinbase交易进行改进,一般是通过添加一个随机数来完成,然后对coinbase交易进行SHA256 Hash计算。 第二步就是对绿点进行计算,然后将coinbase的结果和下图中的黑点一一结合,得到上层的Hash,最后得到交易树顶端的MerklerRoot。 第三步,计算区块头Hash。 有了MerklerRoot,结合矿池提供的区块头数据,加上一个随机变化的Nonce,就可以形成一个完整的区块头,用来计算Hash。 Nonce被遍历完,时间戳被充分改变后,正常回到第一步替换一个随机数重新完成coinbase交易,然后第二步的MerklerRoot值最终为不同的。 而 ASICBoost 可能会通过交换交易顺序来更新 MerklerRoot。 第四步,提交成功的份额计算结果。 没必要满足全网难度。 只要满足矿池设定的挖矿难度即可提交。 一般是提交给矿池自己的矿工ID和任务ID,以及随机数和区块头时间戳TimeStamp和随机数Nonce。 矿池收到后会及时验证。 如果满意,它将记录信用贡献。 同时会检查是否满足全网难度要求。 分配给每个矿工的代币数量。

有关详细信息,请参阅:

《区块链核心技术进化之路——挖矿进化》

详解比特币挖矿算法_比特币算法原理详解_比特币怎么玩详解

比特币算法原理详解_详解比特币挖矿算法_比特币怎么玩详解

专利ASICBoost Optimization 4 介绍了该专利如何实现高效挖矿。

如果看到这里还能继续更清晰,说明你的智商很高,但并不是挖掘智慧的终点。 还有比较聪明的人设计了ASICBoost专利,理论上可以提升30%,但是需要硬件和软件,特别是矿机和矿池之间的默契配合。

具体的专利细节目前还不清楚。 不过感谢@拉特大的微博,让我对内容有了更好的描述。 本文引用了其中的一些作为说明。

按照目前的理解,简单来说,就是采用了SHA256算法的内部计算规则,先是一组64字节,再是一组4字节。 ASICBoost专利应该是在不修改coinbase的情况下,通过交换交易仓位的方式,快速获取很多相同的最后4字节的MerklerRoot,让硬件加速和优化前两个SHA256区块的哈希值的计算,即就是,SHA256(SHA256(BlockHeader))速度。

相关文章:什么是 ASICBoost? “

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

在计算这个区块头的SHA256时,我们需要用固定的padding bits填充到128字节,然后SHA256会以64字节为一组进行处理,可以简单的认为是F(F(SHA256的初始值规范,上半部分),下半部分)。 F需要将这64个字节拆分成4个字节一组,进行64轮计算。 结合上图不难发现,Merkle Root的前28个字节和后4个字节是分开的。 在修改Nonce的过程中,前半部分是不变的,后半部分的前12个字节也是Changeless。 所以几乎所有的芯片都已经做了这两个优化,即前半段的处理结果(midstate in getwork)和前三轮的处理结果(midstate3)下半段。 本次优化效果为(61/64+1)/3 = 65.1%,提升了34.9%

Merkle Root在图片上看起来很别扭,如果Version在中本聪设计的时候成为第三个字段就好了(就是把Version放在MerkleRoot后面)。 这样,后半部分的前4个字节就固定了。 如果我们对时间戳没有那么高的要求,前12个字节完全可以固定。 对于芯片来说,可以节省更多的计算量,也可以去掉一些相应的电路。 ASICBoost 将这一想法进一步付诸实践:我们构建了一组具有相同最后 4​​ 个字节的默克尔根。

那么问题就变成了是否有可能高效地找到具有相同后缀的Merkle Root? 效率增益有多大? ASICBoost的白皮书提到有一个非常高效的方法,给出了一个表格:

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

ASICBoost白皮书中Merkle Root碰撞次数对效率的影响 ASICBoost白皮书中Merkle Root碰撞次数对效率的影响。 (该表的意思是,如果找到5个最后4个字节相同的Merkle Roots,效率可以提高20%)

这里问题的本质是 32 位哈希冲突。 根据“生日悖论”,找到一组碰撞所需的尝试次数其实并不多。 我们只需要 77,000 次就有 50% 的概率找到两个具有相同后缀的 Merkles。 根。 当然,一台矿机,只有两台是不够的。 如果是矿场,应该配备专门的硬件来产生足够的任务。 通常有两种方法可以尝试新的 Merkle Root:

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

方法一:修改Coinbase交易。 这种方法看似最简单隐蔽,但白皮书认为效率不够;

方法二:交换任意交易的顺序。 白皮书仅举例方法2,其他方法未给出。 注意不管是1还是2,新的Merkle Root都不需要自底向上计算。

与隔离验证 SW 的关系 5 为什么 SW 不利于 ASICBoost 专利。

Segregated Witness SW:Segregated Witness是将签名隔离后放,实现对链约1.7MB的软扩容效果。 此外,LN闪电网络、侧链技术等多项币种技术都在等待SW的激活。 为什么 ASICBoost 专利的受益人会阻碍 SW?

ASICBoost专利需要交换交易顺序,以便快速生成大量的Merkle Roots,并从中选出大量最后4个字节相同的Merkle Roots,然后发送给矿工。 这主要是矿池里面的工作,所以只有支持ASICBoost的矿机,没有矿池的配合是不行的。 另外,矿机需要配合矿机硬件接收后4字节相同的Merkle Root,可以进行特殊的硬件存储优化。 所以只有支持ASICBoost的矿池,没有ASICBoost的矿机是无法工作的。 而且我觉得在区块链上使用ASICBoost不会有太详细的痕迹,除了交易顺序有点乱,不够整齐,可能会出现比其他矿池更高的空块率,因为仅对于 coinbase 交易,找到最后 4 个字节相同的 Merkle Root 会更快。

ASICBoost专利,实现SW隔离验证后效率会降低,因为任意交易的顺序将不再容易调换。 因为 SW 将有一个 Witness Merkle Root 来写入 coinbase 交易的 OP_return 输出。 也就是说,之前调换交易顺序不会影响coinbase比特币算法原理详解,但是在实现SW隔离验证之后,如果调换交易顺序,那么Witness Merkle Root可能会随之改变,那么coinbase就会改变. 最后按照上面的方法直接修改coinbase,找到后4个字节相同的Merkle Root会更方便。 因此,实施SW隔离验证并不能完全阻止ASICBoost专利的实施,但会降低其效率,从而降低ASICBoost专利实施者的利益。

此外,新提出的 EXTBLK 扩展块方案几乎立即被接受和支持。 原因是 EXTBLK 扩展块也写入了 coinbase 交易的 OP_return 输出。 但EXTBLK中的交易与主链交易相对独立,主链上交易的交换顺序不应影响EXTBLKMerkle Root。

为了自己的利益反对某项方案无可厚非,但你应该实话实说,而不是用其他理由(据说SW代码太复杂改不了,不安全,但不支持LTC到帮助先用 SW 测试代码)。 不能支持对面的不可靠版本(BU烂到短时间内有好几个bug,EC出现的共识比较复杂但是强烈支持,只因为BU不影响ASICBoost)。

呼吁ASICBoost的持有者多多思考整个币圈。 不能为了一时的利益而损害整个币圈的利益。 还有一百多个币种应用等待SW激活。 而且并不是说ASICBoost专利完全无效,只是效率降低了而已。 通过调整coinbase中的随机数,ASICBoost专利可以继续使用。 以后会变成两步走。 第一步是在矿池中运行Merkle Root矿机,计算出大量后4个字节相同的Merkle Roots。 下一步是将相同的Merkle Root数据后缀到支持ASICBoost专利的比特矿机上。

专利技术的内容公开后,就没有必要偷偷摸摸了。 整个挖矿行业可以集体进入下一阶段。 未来各大矿池将不再只是比拼网速和分配费率,还会比拼矿池的Merkle Root矿机能力。

相关文章:

继续引用《什么是ASICBoost? “

那么现在,这与隔离见证有什么关系? Segregated Witness引入了“witness tx id”,交易在原有ID之外还有一个新的ID,即使用新的交易序列化格式得到的交易哈希(不包括签名部分)。 相应的,我们也有一个新的 Witness Merkle Tree 和 Witness Merkle Root。 由于软分叉的实施,我们无法替换现有的 Merkle Root,而是在 Coinbase 交易中添加一个 OP_Return 输出,写入这个“WMR”。 而这也导致了任何一笔交易或交易顺序的改变,我们都必须自下而上重新计算“WMR”比特币算法原理详解,大大降低了日志的效率。

好的,我知道你为什么要停止隔离见证。 原来是想偷偷用ASICBoost。 你不仅会停止隔离见证,还会阻止所有比特币的进步。

停下来。 . . .

能够使用 ASICBoost+against segregated witness 并不意味着反对 ASICBoost 的 segregated witness。

当你同时看到两件事时,你会觉得一个是另一个的原因。 你的错误在于,同时存在的两件事不一定有因果关系。

欢迎转载,转载请保留下方出处和打赏币地址

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

1BiteJaaSFTQoHFYjfNiQwEHi1vNyNNPEo

DFrzBZXDjfMhLHS9UFNGxhPtb9egMpZNRW

比特币算法原理详解_详解比特币挖矿算法_比特币怎么玩详解

比特币英文介绍

视频长度:6分03秒

请(((WiFi)))观看

◆◆◆ ◆◆

《如何投资数字货币》

微商城:

详解比特币挖矿算法_比特币算法原理详解_比特币怎么玩详解

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

比特币算法原理详解_详解比特币挖矿算法_比特币怎么玩详解

详解比特币挖矿算法_比特币怎么玩详解_比特币算法原理详解

观看更多视频请关注咬酱,也可以点赞留言交流。

---==币种知识==---

---==币生态==---

---==硬币思维==---

---==投币申请==---

比特币算法原理详解_详解比特币挖矿算法_比特币怎么玩详解

您的赞赏和支持是创作更高质量内容的动力!