主页 > 苹果可以下载imtoken钱包吗 > 如何理解比特币挖矿中的工作量证明

如何理解比特币挖矿中的工作量证明

BCH 开发者 awemany 发布白皮书——《Storm—Using weak proof-of-work for instant confirmations on Bitcoin Cash》(《Storm - Using weak proof-of-work for instant confirmations on Bitcoin Cash》)

为了理解《Storm》,我重读了弱块白皮书。

我们先来了解一下比特币挖矿的工作量证明。

一个挖矿过程就是计算一个随机数。 谁先计算出满足条件的数量比特币收入如何开合法证明,这个条件称为“目标值”,将成功挖出一个区块,并获得区块奖励和交易手续费。 考虑到交易的安全性,比特币系统设定全网平均每10分钟就会有人进行一次正确的计算。 如果平均时间快于10分钟,系统会增加计算难度,反之亦然。

为了衡量挖矿出块时间,系统定义了一个叫做“难度”的值。 “难度值”和“目标值”可以通过计算公式相互计算。

为了给出弱区块的定义,我们首先将比特币通过POW挖出的满足“目标值”的区块称为“强区块”。 请记住“目标值”和“强块”的概念。

相应地比特币收入如何开合法证明,我们定义一个“弱目标值”,即定义一个PoW计算难度较低的“低难度值”,相应地计算出一个较低的目标值,称为“弱目标值”。 比如“低难度值”只有之前“难度值”的四分之一,也可以是十分之一,这取决于系统的多测考虑。 当矿工计算出的随机数满足在“低难度值”下计算出的“弱目标值”时,矿工就挖到了一个称为“弱块”的区块。

这个“弱块”的出块速度要比“强块”快很多,比如快4倍,或者快10倍,这取决于与系统设置的“低难度值”相比多少到原来的“难度值”。 当然。

弱块与强块类似,包含相似的数据结构,包括先前的哈希值、随机数、根哈希值、币基信息和大量交易。 这种弱块被写为“增量块”。

由弱块组成的链称为子链,它依附于强块链。 当矿工找到一个强块时,子链就会关闭。 然后系统开启另一条子链,等待附加到下一个强区块。

当矿工挖出一个强块时,其附属的子链将被打包到强块中。 关闭子链后,这个强块的具体数据结构应该和已有的块数据结构完全一致。

有了弱块和子链,可以优化广播强块的过程。 在强块被挖出之前,Δ块已经在矿工层面达成共识,所有矿工都同步了弱块。 当一个矿工挖出一个强块,然后将这个强块广播给全网时,只需要广播这个强块的所有Δ块哈希值,不需要整个强块的数据结构待播出。 这样可以大大减少区块广播过程中的数据量,降低强区块被孤立的风险。

弱区块没有区块奖励,只有强区块才有。 但是弱区块是有交易手续费的,所以矿工也可以通过挖弱区块来赚取收益。

挖到强区块的矿工是拿不到弱区块的交易费的。 每个弱区块被挖出后,矿工会在弱区块中建立一个“弱币库交易tx”,并在这个“tx”中收取弱区块中的所有矿工手续费。 但是这个tx在强块被挖出之前是无效的,只有强块被挖出并关闭子链后,强块矿工才会分配所有的交易手续费。

这是对矿工本性的考验。 如果没有硬分叉,我很难相信弱区块能形成共识。 虽然Bitcoin unlimited的开发者一直认为弱区块不需要硬分叉部署。 不过这只是理论上没有必要,工程上最好设计成硬分叉。

比特币涉及的利益关系极其复杂,比特币协议的演进需要各个领域的知识,包括经济学、计算机科学、数学,甚至现在还涉及各种政治智慧。