码迷,mamicode.com
首页 > 其他好文 > 详细

区块链入门到实战(9)之区块链 – 工作量证明

时间:2020-06-22 14:52:37      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:code   load   条件   使用   必须   就会   ike   证明   注意   

目的:解决艰难的任务,获取记账能力。

区块链中,每个人手上都有账本,每个人都可以记账,但怎么能让这些账本的内容保持一致,让大家都认这个账,就需要共识机制。

人类社会中,通常的共识机制是,如果某个人能完成某项艰难的任务,他就可以做某些事。要推翻这个共识,就也要完成这些艰难的任务,所以共识不是那么容易被推翻。孙悟空当上美猴王,是因为做了难的事(穿过水帘洞)。

类似地,区块链中的共识机制使用同样原理,只有完成了某项艰难的任务,才有记账的权力,这就是工作量证明。区块链中,这项艰难任务是,计算一个数学难题。

现在,我们介绍工作量证明的具体过程。我们向每个块添加一个名为Nonce的项,如下图所示

技术图片

Nonce是使区块的哈希值满足一定条件的一个数字。例如,这个条件可能是,生成的哈希值前面4位必须为零。

因此,生成的哈希值看起来会像000010101010xxx。通常,矿工在计算Nonce值时,会从0开始,并不断增加,直到生成的哈希值满足指定条件。

注意,哈希生成是随机进行的,并且超出了你的控制范围 — 也就是说,你不能强制哈希函数生成特定的哈希值。

因此,可能需要多次迭代,直到生成满足条件的哈希值。在比特币系统中生成一个区块的预期时间为10分钟。一旦矿工成功地生成了Nonce值,即成功地开采了这个区块,他就会在系统中释放这个区块,使其加入链中,成为最顶端的一个区块。

注意,有多个矿工在竞争生成合法的区块。比特币系统通过给第一个成功的矿工特定的比特币来奖励他。

一般来说,计算能力更强的矿工是早期的赢家。这可能会导致拥有巨大处理能力的人攻击整个系统。本教程后续内容中,我们将讨论这些攻击以及如何减轻它的影响。

区块链入门到实战(9)之区块链 – 工作量证明

标签:code   load   条件   使用   必须   就会   ike   证明   注意   

原文地址:https://www.cnblogs.com/huanghanyu/p/13176542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!