工作证明
在时间戳服务器之后,使比特币成为可能的第二个机制是工作证明(PoW)。
PoWs经常被误认为是伴随着区块链出现的全新机制,但该技术最初是为了防止垃圾邮件而开发的,并在1993年创建。
PoW是一个逆转哈希函数的过程。
为了防止垃圾邮件,我们开发了一个系统,要求在发送邮件时证明哈希函数已经被颠覆。
这个想法是,逆转哈希函数需要大量的时间,所以不可能发送大量的电子邮件。
这种机制也被称为HashCash。
就比特币而言,当区块链中的每个区块被散列时,有必要找到一个在生成的散列值的开头有指定数量的零的值。
区块链中的每个区块都包含各种信息,可分为固定值和可变值。
这个变量值被称为nonce(随机数),通过改变nonce找到一个带前导零的输入值的过程在比特币中被称为PoW。
一旦PoW过程完成,区块链中的一个区块就已经形成。
每个区块都包含前一个区块的哈希值。
因此,如果你想篡改任何一个区块,你必须篡改该区块之后连接的所有区块的数据。
这就是为什么区块链被说成是很难被篡改的。
Check your achievement
Click the “Tick” button
if you understand the lesson so far.
通过工作证明建立共识
在决策过程中,PoWs也可以用来确定谁的意见能代表一个不特定的群体。
在PoW中,每个CPU被分配一个参与权。
这意味着很难保证大量的参与,而且可以期待一个真正公平的决策过程。
具有最高PoW计算量的链条自然是最长的链条。
这个最长的链条将成为决策过程中不特定群体的代表。
这是基于这样的想法:如果大多数的CPU是由好的节点控制的,那么这个链就会发展得最快。
Check your achievement
Click the “Tick” button
if you understand the lesson so far.
调整建立共识的难度
区块链的可篡改性随着特定区块后的区块数量呈指数级下降。 (后面的区块越多,篡改它们所需的工作就越多。
为了篡改过去某个时间点的区块,有必要通过PoWing所有后面的区块来重新创建该区块。
要在过去的某个时间点篡改一个区块,你需要通过重写该区块之后链上的所有区块来重新创建该区块,而且你需要比正确的区块更快地完成这个工作。
这是因为最长的链条将是正确的。
现在我们将简要地研究一个不正确的链超过一个正确的链的概率。
PoW的设计方式是,PoW本身的难度不会因为硬件性能的摩尔定律改进而波动,也不会因为PoW参与者的数量而波动。
这是因为,如果难度水平波动,流氓链很容易超越合法链。
这个难度级别被称为 "难度",并被自动调整以确保每小时产生的块数保持不变。
如果每小时的块数增加,PoW的难度就会增加,如果每小时的块数减少,PoW的难度就会降低。
Check your achievement
Click the “Tick” button
if you understand the lesson so far.