权益证明与工作量证明
上次修改时间: @EffectChen(opens in a new tab), 2024年1月25日
以太坊启动之时,权益证明机制仍需要进行大量的研究和开发,才能依靠它保护以太坊的安全。 工作量证明是一种较为简单的机制,已经在比特币中得到验证,这意味着核心开发者可以立即实现它以启动以太坊。 在此之后,权益证明机制又经过了 8 年研发,才达到可以实现的阶段。
本页解释了以太坊从工作量证明向权益证明过渡的依据以及相关权衡考虑。
安全性
以太坊的研究人员认为权益证明机制比工作量证明机制更安全。 然而,权益证明机制直到最近才在真正的以太坊主网上实现,并且不如工作量证明机制那样久经考验。 以下部分将讨论权益证明的安全模型相对于工作量证明的优缺点。
攻击成本
在权益证明机制中,验证者需要在智能合约中托管(质押)至少 32 个以太币。 以太坊可以通过销毁质押的以太币来惩罚不当行为的验证者。 为了达成共识,至少要有总质押数 66%的以太币投票支持一组特定的区块。 被至少 66% 的质押以太币投票支持的区块成为“最终确定”区块,这意味着它们不能被移除或重组。
攻击网络可能意味着阻止区块链最终确定,或者确保规范链中出现特定的区块组织结构,从而以某种方式使攻击者受益。 这需要攻击者改变达成诚信共识的途径,要么通过积累大量以太币并直接进行投票,要么诱使诚实的验证者按特定方式投票。 除了欺骗诚实验证者的复杂低概率攻击之外,攻击以太坊的成本是攻击者必须积累足够的质押以对他们有利的方式影响共识的成本。
攻击的最低成本至少为总质押数的 33%。 持有至少达到总质押数 33% 的攻击者可以通过离线来导致最终确定延迟。 这对网络来说是一个相对较小的问题,因为有一种称为“怠惰惩罚”的机制,可以罚没离线验证者的质押,直到多数在线验证者的质押达到总质押数的 66% 并且能够再次确定区块链。 理论上,攻击者可以通过在被要求成为区块生产者时创建两个区块而不是一个,并利用其所有的验证者进行双重投票,从而使用略微超过 33% 的总质押数来形成双重最终确定性。 每个分叉只需要剩余诚实验证者中的 50% 先查看每个区块,因此如果攻击者能够恰到好处地控制消息的时机,他们可能能够最终确定这两条分叉。 这种攻击成功的可能性很低,但如果攻击者能够导致双重最终确定性,以太坊社区将不得不决定跟随其中一条分叉,这种情况下,攻击者的验证者将必然在另一个分叉上遭到罚没。
如果拥有总质押数的 33%以上,攻击者有机会对以太坊网络产生轻微(最终确定性延迟)或更严重(双重最终确定性)的影响。 网络上质押了超过 14,000,000 个以太币,而且代表性的价格为每个以太币 1000 美元,那么进行这些攻击的最低成本为 1000 x 14,000,000 x 0.33 = $4,620,000,000
。 攻击者会由于受到罚没而损失这一大笔钱,并且可能被网络驱逐。 要再次发起攻击,攻击者必须(再次)积累超过 33% 的质押数并(再次)销毁。 每次尝试攻击网络将耗费超过 46 亿美元(每个以太币的价格为 1000 美元,总共质押了 1400 万个以太币)。 在攻击者受到罚没时,他们也会被从网络中驱逐,而且他们必须加入激活队列才能重新加入网络。 这意味着重复攻击的频次不仅受到攻击者积攒超过 33% 的总质押数快慢的限制,还受到将其所有验证者加入网络所需的时间的限制。 每次进行攻击时,攻击者将变得更穷,而其他社区成员则由于产生的供应冲击变得更富。
其他攻击需要的以太币要多得多,如 51% 攻击或使用超过 66% 的总质押数进行的最终确定性逆转,它们对攻击者来说代价更高。
对比工作量证明。 在工作量证明以太坊上,发起攻击的成本是持续拥有超过 50% 的总网络算力的成本。 这相当于硬件和足够算力的运行成本,以持续地超越其他矿工来计算工作量证明解决方案。 以太坊主要是使用图形处理器 (GPU) 进行挖矿,而不是应用型专用集成电路 (ASIC),这降低了成本(尽管如果以太坊继续采用工作量证明机制,ASIC 挖矿可能会变得更受欢迎)。 要攻击工作量证明以太坊网络,攻击者必须购买大量硬件设备,并支付电费来运行这些设备。然而,总成本仍然比累积足够以太币以发起攻击的成本低。 工作量证明机制下,51% 攻击的成本比权益证明机制下大约低 20 倍(opens in a new tab)。 如果检测到攻击,并且区块链进行硬分叉以消除攻击者的更改,那么攻击者可以反复使用相同的硬件攻击新的分叉。
复杂性
权益证明比工作量证明复杂得多。 这一点可能成为支持工作量证明的理由,因为在较简单的协议中意外引入漏洞或不想要的影响会更加困难。 然而,这种复杂性已经被多年的研究和开发、模拟和测试网实现所克服。 权益证明协议已由五个独立团队在执行层和共识层使用五种编程语言独立实现,提供了抵御客户端漏洞的复原力。
为了安全地开发和测试权益证明共识逻辑,在以太坊主网实现权益证明的两年前,信标链就已经启动。 信标链作为一个测试权益证明的沙盒环境,因为信标链是一条在线区块链,它现实了权益证明共识逻辑但并未涉及真实的以太坊交易,而是只针对自身达成共识。 在信标链在足够长的时间内保持稳定和无漏洞的状态后,它就与以太坊主网进行了“合并”。 所有这些都有助于克服权益证明的复杂性,使得发生意外后果和客户端漏洞的风险极低。
攻击面
权益证明比工作量证明复杂,这意味着需要处理更多潜在的攻击途径。 与单个对等网络连接客户端不同,权益证明中存在两个对等网络,分别实现不同的协议。 在每个时隙内预先选择一个特定的验证者提议一个区块,可能会导致拒绝服务攻击,其中大量的网络流量会使该特定验证者下线。
还有一些方法可以让攻击者精心安排他们的区块或认证的发布时间,以便诚实网络中有一定部分接收到这些信息,影响他们以特定方式投票。 最后一点,攻击者可以简单地积攒足够多的以太币进行质押,并主导共识机制。 所有这些攻击途径都有相应的防御措施,但在工作量证明机制中并不存在这些需要防御的攻击途径。
去中心化
权益证明比工作量证明更加去中心化,这是因为挖矿硬件的装备竞争往往会迫使个人和小型组织退出。 虽然从技术上讲,任何人都可以使用普通硬件开始挖矿,但相比机构化的挖矿操作,他们获得任何奖励的可能性几乎微乎其微。 而在权益证明中,质押的成本和质押的回报率对于每个人来说都是相同的。 目前运行一个验证者需要质押 32 个以太币。
另一方面,流动性质押衍生品的发明引发了中心化的担忧,因为一些大型提供商管理着大量质押的以太币。 这个问题确实存在并且需要尽快纠正,但实际情况可能和表面看起来略有不同。 中心化的质押服务提供商并不一定对验证者进行中心化控制,通常这只是一种创建中心化以太币池的方式,让许多独立的节点运营者能够进行质押,而不需要每个参与者都持有 32 个以太币。
对于以太坊来说,最好的选择是让验证者在家用计算机本地运行,最大程度地实现去中心化。 这就是为什么以太坊拒绝提高运行节点/验证者的硬件要求。
可持续性
权益证明是一种保护区块链的低碳方式。 在工作量证明机制下,矿工们会争夺开采区块的权利。 当矿工能够更快地执行计算时,他们的成功几率会更高,从而刺激他们对硬件和能源消耗的投资。 在以太坊过渡到权益证明之前,就已经发现了这一点。 在向权益证明机制过渡之前,以太坊的能源消耗约为 78 太瓦时/年,相当于一个小国家的能源消耗量。 然而,过渡到权益证明后,能源消耗减少了约 99.98%。 权益证明使以太坊成为一个节能、低碳平台。
发行
权益证明以太坊在支付其安全性时发行的代币数量比工作量证明以太坊少得多,因为验证者无需支付高昂的电力费用。 因此,以太币可以降低通货膨胀率,甚至在大量以太币被销毁时,以太币会出现通缩。 通货膨胀水平更低意味着以太坊的安全成本比工作量证明机制下更低。
更愿意通过视频学习?
观看 Justin Drake 解释权益证明相对于工作量证明的优势: