工作量证明 (PoW)
类似于比特币,以太坊目前使用的共识协议被称为“ 工作量证明 (PoW)”。 这种机制允许以太坊网络的节点就以太坊区块链上记录的所有信息的状态达成共识,并防止某些产生经济影响的攻击。
前置要求
什么是工作量证明 (POW)
工作量证明是一种允许去中心化的以太坊网络达成共识或者一致认可帐户余额和交易顺序的机制, 这个机制防止用户“双花”他们的货币,并且它还确保攻击或覆写以太坊的链是极为困难的。
工作量证明和挖矿
工作量证明是一个为矿工设置挖矿难度和规则的基础性算法。 挖矿就是“工作”本身。 挖矿是向区块链中添加有效区块。 这个工作很重要,因为区块链的长度帮助网络识别出有效的以太坊链并且理解当前以太坊的状态。 “工作”完成的越多,链越长,区块链的序号就越大,网络就能更加确定当前链和区块的状态。
以太坊的工作量证明机制是如何运作的?
以太坊的交易被处理为区块。 每个区块有一个:
- 区块的难度,例如:3,324,092,183,262,715
- 混合哈希(mixHash),例如:
0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29
- nonce--例如:
0xd3ee432b4fb3d26b
区块的数据直接和 Pow 关联。
工作量证明机制
工作量证明协议,被称为“Ethash”,要求矿工经过激烈的试错竞赛,找到一个区块的 nonce。 只有具备有效 nonce 的区块才能被加入区块链中。
当通过比赛创建一个区块时,矿工将反复放置一个数据集,只能通过数学函数从下载和运行完整链(像矿工那样)中获得数据集。 这是为了根据区块所声明的难度,生成一个低于目标 nonce 的混合哈希(mixHash)。 做到这些最好的方式是试错。
难度决定了这个哈希(mixHash)的指标。 目标越小,有效的哈希值的集合就越小。 一旦哈希值生成,对于其他矿工和客户来说,是很容易校验哈希值是否有效的。 就算是一个交易记录出现改变,整个哈希值会变得完全不同,指明了信号。
哈希使得交易欺诈性的交易更容易被发现。 此外,PoW 作为一个以太坊的程序,它同样有效威慑了对区块链的攻击。
工作量证明和安全性
在以太坊主链工作的矿工会因挖矿而收到回报。 对于所有矿工的一个子集而言,他们几乎没有动机去开辟一条属于自己的新链——因为这破坏了系统。 区块链依赖于唯一状态来作为其真实性的来源。 同时使用者要始终选择最长的或者最重的链。
工作量证明机制是为扩展链的长度。 最长的链是最可信的,因为它完成了最多的计算工作。 在以太坊的 PoW 系统中,几乎不可能创建一个新区块去擦除交易信息、创建假区块或者维持第二个链。 这是因为恶意矿工需要比其他所有人更快地计算出区块。
要一直创建恶意但有效的区块,你需要有超过 51% 的全网采矿能力去打败其他人。 这样你就需要大量的计算算力才能完成这样一个“工作”。 而能源支出可能甚至超出你做这样一次攻击所取得的成果。
工作量证明的经济模型
PoW 还负责新币发行的工作,并鼓励矿工参与这项工作。
成功创建区块的矿工将会获得新产出 2 个以太币奖励和这个区块里所有的交易费用。 矿工通过计算支链也可以获得 1.75 个 ETH。 这是一个有效的区块,由其他矿工同一时间创建的有效区块。 这通常是由于网络延迟造成的。
终局性
在分布式网络中,当一笔交易是不可变区块的一部分,这笔交易就有了终局性。
由于矿工是分散的,两个有效的区块是可以同时开采的。 这就造成一个临时的分叉。 最后只要两条中一条支链通过先挖出下一个区块成为最长的支链,这条支链就会被添加到主链上。
但为了使情况更复杂, 临时分叉上被拒绝的交易将会被记录在公认的主链上。 这意味着区块是可逆的。 因此,终局性是需要你等待一段时间至交易不可逆。 以太坊推荐的时间是等待 6 个区块或者超过 1 分钟。 这样你才能确定这笔交易已经成功。 当然,你也可以等待更长的时间,这样更有保障。
当设计去中心化应用时脑海中始终记住一点,给用户误传交易信息将是一个很差的用户体验。 特别是当这个交易额十分大的时候。
始终记住,这个时间不包含等待矿工处理交易的时间。
优点和缺点
优点 | 缺点 |
---|---|
PoW 是中立的。 你不需要 ETH 来启动,区块允许你从 0ETH 获得正的收益。 在权益证明中,你需要一定的 ETH 去启动挖矿。 | PoW 使用了大量的能源,这对环境是有害的。 |
PoW 是一个经过考验和测试的共识机制,多年来一直保持了比特币和以太坊的安全性和分散性。 | 如果你想要采矿,你需要花大量的资金去购买专业设备。 |
与权益证明方式相比,PoW 是比较容易实施的。 | 因为算力的不断增加,矿池可能会主导挖矿过程,导致中心化和安全风险。 |
与 PoS 对比
从更高层面上看,PoS 和 PoW 的最终目标是相同的,以帮助分布式网络达成共识和安全。 但他们在实现方式和工作人员上存在不同:
- PoS 因为质押 ETH 而不再需要计算算力。
- PoS 将矿工替换为验证者。 验证者通过质押他们的 ETH 来创建新的区块。
- 验证者不会竞争创建区块,而是由算法随机选择。
- 终局性是很清晰的:在特定的检查节点,如果 2/3 验证者确定了区块,这个区块将被视为最终状态。 验证者必须在区块压上自己全部质押,因此如果他们试图串通更改区块链,他们就会失去他们的全部质押。
延伸阅读
相关主题
帮助我们处理此页面
如果您是这方面的专家,并想发表意见,那么编辑此页分享您的智慧。
您将获得褒奖并会为以太坊社区提供帮助!
自由发挥 文档模板
有任何疑问? 请在我们的频道中进行询问 Discord服务器
编辑页面