当前位置:主页 > 行业新闻 >

比特币区块的工作量证明机制

发布时间:2020-10-13 19:00   浏览次数:次   作者:货币
本解决方案首先提出一个“时间戳服务器”。时间戳服务器通过对以区块形式存在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻组网络(Usenet)发帖一样。显然,该时间戳能够证实特定数据必然于某特定时间是的确存在的,因为只有在该时刻存在了,才能获取相应的随机散列值。每个时间戳应当将前一个时间戳纳人其随机散列值中,每一个随后的时间戳都对之前的个时间截进行增强(reinforcing),这样就形成了一个链条(Chain)
比特币区块按时间排列如图2.2所示。
为了在点对点的基础上构建组分散化的时间戳服务器,仅仅像报纸或世界性新闻网络组样工作是不够的,我们还需要一个类似于亚当。贝克提出的哈希现金(HashCash)的机制。在进行随机散列运算时,工作量证明机制引人了对某一个特定值的扫描工作,比方说在SHA一256下,随机散列值以一个或多个0开始。随着0的数目的上升,找到这个解所需要的工作量将呈指数级增长,而对结果进行检验则仅需要一次随机散列运算。我们在区块中补增一个随机数(Nonce),这个随机数要使得该给定区块的随机散列值出现了所需的那么多个0。我们通过反复尝试来找到这个随机数,直到找到为止,这样我们就构建了一个工作量证明机制。只要该CPU耗费的工作量能够满足该工作量证明机制,除非重新完成相当的工作量,否则该区块的信息就不可更改。因为之后的区块是链接在该区块之后的,所以想要更改该区块中的信息,就还需要重新完成之后所有区块的全部工作量。比特币区块之间的链接如图2.3所示。
同时,该工作量证明机制还解决了在集体投票表决时谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一个IP地址一票,只要有人拥有分配大量IP地址的权力,该机制就被破坏了。而工作量证明机制的本质则是一个CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对已经出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。我们将在后文证明,设想一个较慢的攻击者试图赶上随后的区块,其成功概率将呈指数级递减。另一个问题是,硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度(theProofofWorkdifficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。
以上内容由智币通自动炒币量化机器人软件提供!