什么是工作证明
以太坊,像比特币一样,目前使用一种称为工作证明(PoW)的共识协议。这允许以太坊网络上的所有节点就区块链的当前状态达成一致,并 确保网络免受各种攻击。
注意:最近在 2022 年 9 月 15 日,Ethereum 合并完成,Ethereum 转向了权益证明系统。我们将在大二时有一个新的课程来谈论股权证明的问题,不久之后。以太坊不再使用工作证明,然而了解它是非常有帮助的。
什么是共识?
什么是共识协议?
谈到像以太坊这样的区块链,本质上是分布式的去中心化数据库,网络节点需要就网络的当前状态达成协议。
共识协议帮助我们实现了对网络在某一点上的状态的同意,或共识。
虽然共识协议与构建 DApps 没有直接关系,但了解它们将有助于你理解许多其他概念,并建立你的基本原理。
共识协议主要是经济系统,有助于防止某些类型的攻击。理论上,攻击者可以通过控制 51%的网络来破坏共识。共识协议的设计是为了使这种 "51%的攻击 "在经济上不可行。不同的机制是以不同的方式来解决这个问题。
什么是工作证明?
工作证明是一种共识协议,被比特币和以太坊所使用。
区块生产
在工作量证明下,矿工负责生产新区块。网络中的矿工相互竞争,以创建充满已处理交易的新区块。然后,获胜者与网络中的其他人分享区块,并为他们的辛勤工作赚取新造的 ETH。
比赛由谁的计算机能最快地解决一个难以计算的数学难题而获胜。这个问题在计算上很难解决,但非常容易验证。这个问题的解决方案就是我们在《什么是采矿》教程中讨论的 "合法证书"。
网络安全
网络是安全的,因为要获得对网络 51%的控制,你需要 51%的网络计算能力。然而,由于 "工作证明 "以采矿奖励来激励矿工,许多不同的矿工群体对运行采矿节点感兴趣。因此,要想获得网络上 51%的计算能力,需要在设备和电能方面进行巨大的投资--这意味着你最终的花费很可能超过你的收入。
抵抗西比尔
从技术上讲,工作证明本身并不是一个共识协议--尽管为了简单起见,它经常被称为共识协议。它们实际上是抵抗 Sybil 的机制和区块生产者选择器--一种决定谁将成为最新区块的生产者的方法。
抵抗 Sybil 的能力是衡量一个协议如何应对 Sybil 攻击的能力。
Sybil 攻击是指一个用户或团体假装成许多不同的用户的问题。对于一个去中心化的区块链来说,防止这种类型的攻击是至关重要的,因为它允许矿工根据他们投入的资源获得奖励,而不仅仅是随机选择。
假设,如果我们只是通过随机选择而不是工作证明来选择一个区块的生产者,人们可以很容易地执行一个 Sybil 攻击。
假设网络上有两个矿工。爱丽丝和鲍勃。通过随机选择,他们应该各自获得大约一半的采矿奖励。现在,查理出现了,但他假装是两个不同的用户--查理和达西。通过现在的随机选择,查理最终会得到 1/2 的挖矿奖励,因为他假装是两个不同的用户,而爱丽丝和鲍勃只得到各自的 1/4 而不是他们应该得到的 1/3。
工作证明(Proof of Work)通过让矿工拿出大量的计算能力作为抵押,从而让他们耗费大量的电能,来防止 Sybil 攻击。这是通过解决计算难题来证明矿工正在 "投入工作"。这对 Sybil 攻击起到了经济威慑作用。
由于奖励是发放给成功的矿工的,而矿工的成功与他们在网络上的计算能力份额大致成正比,因此,如果你假装是 1 个用户或 2 个或 100 个用户,这已经不重要。你会得到相同数量的挖矿奖励,因为你的计算能力保持不变。
链式选择规则
偶尔,两个矿工会大致在同一时间产生有效的区块。这可能导致网络中的不同节点在其区块链中包含不同的区块。这方面的技术术语是分叉。
然而,为了使区块链以稳定的方式进行,需要选择一条连续的链作为 "正确的链",以防止状态的分裂。
比特币和以太坊使用 "最长的链 "规则来做到这一点。哪条链被更多的节点接受并继续增长,就被选为 "