工作量证明(PoW)的想法由 Cynthia Dwork 和 Moni Naor 于 1993 年首次发表,后来被中本聪在 2008 年的比特币论文中应用。工作量证明共识是目前大多数加密货币的首选机制循环。 “工作量证明”一词最早由Markus Jakobsson和Ari Juels在 1999 年的出版物中使用。
Principle: A solution that is difficult to find but is easy to verify.
共识机制的目的是使所有节点达成一致,即在节点不相互信任的环境中相互信任。
然后验证新区块中的所有交易,然后将新区块添加到区块链中。请注意,该块将被添加到具有最长块高度的链中(请参阅区块链分叉以了解如何在一个时间点存在多个链)。矿工(网络上的特殊计算机)在解决复杂的数学问题时执行计算工作,以将块添加到网络中,因此命名为工作量证明。随着时间的推移,数学问题变得更加复杂。
PoW 是如何运作的?
edX 课程将区块链 PoW 描述为:
“The Proof of Work consensus algorithm involves solving a computational challenging puzzle in order to create new blocks in the Bitcoin blockchain. Colloquially, the process is known as ‘mining’, and the nodes in the network that engage in mining are known as ‘miners’. The incentive for mining transactions lies in economic payoffs, where competing miners are rewarded with 12.5 bitcoins(at the time of writing this article; this reward will get reduced by half its current value with time) and a small transaction fee.”
验证要添加的区块中的交易,将这些交易按时间顺序组织在区块中,并将新挖出的区块公布给整个网络的过程并不需要太多的精力和时间。耗能部分是解决将新区块与有效区块链中的最后一个区块连接起来的“数学难题”。
当矿工最终找到正确的解决方案时,节点同时将其广播到全网,获得 PoW 协议提供的加密货币奖品(奖励)。在撰写本文时,在比特币网络中挖掘一个区块会给获胜的矿工 12.5 个比特币。每四年左右赢得的比特币数量减半(这就是比特币网络的设计方式)。因此,比特币数量的下一次扣除将在 2020-21 年左右(以目前的速度和增长速度)。
随着更多矿工的出现,挖掘新区块所需的时间不可避免地会越来越短。这意味着可以更快地找到新块。为了始终如一地每 10 分钟找到 1 个区块(这是比特币开发人员认为稳定且不断减少的新币流所需的时间,直到达到 2100 万的最大数量(预计在当前速度下需要一段时间)在大约 2140 年)),比特币网络会定期改变挖掘新区块的难度级别。
笔记:
要查看有关区块包含的内容的更多信息,请通过 Google 访问区块链资源管理器以获得更有趣的冲浪
Block GFG1 通过其哈希数连接到 Block GFG2 这一事实很重要。意义在于这个“哈希数”将新区块连接到有效区块链中的最后一个区块。另一方面,如果块 GFG2 上的块 GFG1 哈希数与块 GFG1 的哈希数不同,它们将不匹配,并且块 GFG2 将不会被验证。
笔记:
区块链中的第一个区块称为创世区块,没有Prev Block Hash值。
改变一个区块(这只能通过制作一个包含相同前任的新区块来完成)需要重新生成所有后继者并重做它们包含的工作(相当于计算整个“困难数学问题”链),这实际上是不可能的。这可以保护区块链不被篡改。
比特币的工作量证明系统:
比特币使用 Hashcash 工作量证明系统作为挖矿基础。 “数学难题”可以用抽象的方式写成,如下所示:
Given data A, find a number x such as that the hash of x appended to A results is a number less than B.
矿工将一组交易捆绑成一个区块并尝试挖掘。要挖掘它,必须解决一个困难的数学问题。这个问题被称为工作量证明问题,必须解决该问题以表明矿工在找出问题的解决方案方面做了一些工作,因此开采的区块必须是有效的。
问题的答案需要比区块的哈希值低才能被接受,称为“目标哈希值”。目标哈希值是一个哈希值块的头部必须等于或小于的数字而不是将新区块连同奖励一起授予矿工。目标越低,生成块就越困难。
矿工继续测试不同的唯一值(称为随机数),直到产生合适的值。
设法解决问题的矿工获得比特币奖励,并通过广播该块已被开采来将该块添加到区块链中。
笔记:
目标哈希每 2016 个区块或大约每 2 周调整一次。所有矿工立即停止在该区块上工作并开始挖掘下一个区块。
工作量证明系统中使用的常见加密协议:
使用最广泛的工作量证明共识基于 SHA-256,并作为比特币的一部分引入。其他包括 Scrypt、SHA-3、scrypt-jane、scrypt-n 等。
工作量证明系统的特点:
主要有两个特性促成了该共识协议的广泛流行,它们是:
- 很难找到数学问题的解决方案
- 很容易验证该解决方案的正确性
工作量证明共识的主要问题:
工作量证明共识机制存在以下问题:
- 51% 风险:如果控制实体拥有网络中 51% 或 51% 以上的节点,则该实体可以通过获得网络的多数来破坏区块链。
- 耗时:矿工必须检查许多 nonce 值才能找到正确的解决方案来解决挖掘区块必须解决的难题,这是一个耗时的过程。
- 资源消耗:矿工消耗大量的计算能力,以便找到解决难题的数学难题。它导致宝贵资源(金钱、能源、空间、硬件)的浪费。预计到 2018 年底,全球 0.3% 的电力将用于验证交易。
- 交易确认大约需要 10-60 分钟。因此,这不是即时交易;因为挖掘交易并将其添加到区块链从而提交交易需要一些时间。
使用 PoW 的加密货币:
- 莱特币
- 以太坊
- 门罗币
- 狗狗币
PoW 共识的其他替代方案:
这些问题导致了新的共识协议的发展,例如:
- 权益证明
- 燃烧证明
- 筏共识
- 联合共识
- 活动证明
- 经过时间的证明
- 容量证明
- 重要性证明