感谢Chih-Cheng Liang和Hsiao-wei Wang对本文进行中文翻译。
权益证明 (Proof of Stake, PoS) 在区块链安全性上优于工作量证明 (Proof of Work, PoW) 的关键因素主要有三。
权益证明在同样成本下可提供更高的安全性
理解这点最简单的方式就是把权益证明和工作量证明摆在一起看,假设每天有$1的区块奖励,攻击此网络所需的成本是多少。
基于 GPU 的工作量证明
你可以便宜租到 GPU,所以攻击网络的成本就只是租到足够的 GPU 算力以超过现有的矿工。每产生 $1 的区块奖励,现有矿工的成本将近 $1 (如果成本高于 $1,矿工就会因为无利可图而退出,反之新矿工就会加入进来获取利润)。因此,攻击网络的成本只需要高于 $1/天,而且可能只需要持续几个小时。
总攻击成本:~$0.26 (假设攻击 6 小时),且因为攻击者可以收到区块奖励,所以这个数字还有可能压到零。
基于 ASIC 的工作量证明
ASICs 其实是资本成本:当买进 ASIC 时你预期大概可以用两年,因为它会慢慢耗损或是被性能更好的硬件取代。如果一个链被 51% 攻击了,社群大概会更换 PoW 算法来做出应对,而这时你的 ASIC 就会失去价值。平均而言,挖矿成本约为 1/3 的经常性成本与 2/3 的资本成本 (详见此处)。
因此,每 $1 的区块奖励上,矿工每天会花 ~$0.33 在电力与维护上,并花费 ~$0.67 在他们的 ASIC 上。假设 ASIC 可以用大约 2 年,矿工会需要为单位 ASIC 硬件花费 $486.67。
(译注:$486.67 = 365 天 x 2 x $0.67 资本成本)
总攻击成本:$486.67 (ASICs) + $0.08 (电力与维护) = $486.75
(译注:此处电力与维护成本也是假设攻击时长 6 小时)
话虽如此,值得注意的是 ASICs (相较 GPU) 带来较高的安全性是以中心化的高代价换来的,因此加入 ASIC 挖矿的门槛也非常高。)
权益证明 Proof of stake
权益证明的成本几乎是百分百的资本成本 (抵押的币);唯一的营运成本是运行节点的成本。这样人们会愿意为每天每 $1 的区块奖励锁住多少的资金呢?不像 ASIC,抵押的币不会贬值,而且当你不想抵押了你还可以在一段短时间内取回质押金。因此,参与者应该会愿意为同样程度的奖励付出比 ASIC 的情况更高的资本成本。
让我们假设 ~15% 的报酬率足够吸引人们抵押 (这是 eth2 的期望报酬率)。因此每天 $1 的区块奖励会吸引相当于 6.667 年报酬的抵押,或换算为金额为 $2,433 。节点消耗的硬件与电力成本很小,每一千元的电脑可以抵押成千上万的资产,而且每月 ~$100 的电力与网费也算足够。但保守来说,我们假设这些经常性成本是抵押总成本的 ~10%。所以我们只有每天 $0.90 的区块奖励对应到资本成本,因此我们还要把上面的数字减少 ~10%。
(译注:6.667 年 = $1 / (15% 年报酬);$2,433 = $1/天 x 365 x 6.667)
总攻击成本:$0.90/天 * 6.667 年 = $2,189
长期来说,这个攻击成本会预期会更高,因为抵押会变得更有效率,而且人们也会更能接受较低的报酬率。我个人预期这个数字最终会攀升到 $10,000 的程度。
取得这么高程度安全性的唯一“代价”就是在质押期间不方便随意转移质押金。甚至有可能因为人们认知到这些被锁住的币会造成币的价值攀升,所以在社群流通的货币总数,或是能做有生产性投资的资金,都能维持不变。反观 PoW,维持共识的「代价」是疯狂地损耗大量电力。
更高安全性或更低成本?
注意我们有两种方式可以运用这个增加 5-20 倍的每单位成本安全性。一种方式是区块奖励维持现状,并受益于增加的安全性。另一种方式是维持现有程度的安全性,并大量减少区块奖励 (也就是减少共识机制成本的“浪费”)。
两种方式都行。我个人喜欢后者,因为我们下文会看到,比起工作量证明,在权益证明中一个成功的攻击能够造成的伤害更少,而且更容易从攻击中复原。
权益证明更容易从攻击中复原
在工作量证明的系统,如果你的链遭受 51% 攻击,你会怎么做?目前为止,实践上唯一的应对方式一直是“慢慢等,直到攻击者觉得无聊”。但这忽略了一种更危险的攻击叫做“重生点埋伏攻击 (spawn camping attack)”,攻击者可以对链攻击再攻击,明确的目标就是要让链无法再使用。
(译注:重生点埋伏是一种游戏术语,在对方玩家阵亡重生的地方埋伏,造成对方玩家一重生就再阵亡,毫无回击能力。)
基于 GPU 的系统完全没有防御的办法,而且持续攻击的攻击者可以轻易让一个链永远毫无用处 (或更实际一点,转移到权益证明或proof of authority 权威证明)。实际上,在攻击开始后的前几天,攻击者的成本就会变得非常低,而诚实矿工会离开,因为他们没办法在持续攻击之下取得区块奖励。
在基于 ASIC 的系统,社群有办法应对第一波攻击,但接下来的攻击就会变得很容易。社群可以在第一波攻击之后,硬分叉来更换工作量證明的演算法,也就是把所有 ASIC “变砖”(包含攻击者与诚实矿工的 ASIC)。但如果攻击者愿意承受自己 ASIC 变砖的成本,接下来的情况就和 GPU 的情况一样 (因为还没有足够的时间去为新算法制造与生产 ASIC),所以在这之后攻击者可以很便宜地持续重生点埋伏攻击。
(译注:变砖为电子产品俚语,代表损坏后无法使用,像砖头一样。)
权益证明的情况,情况则变得非常开朗。针对一些种类的 51% 攻击 (特别指想要推翻已经敲定的区块),权益证明共识有内建的 “罚没” (slashing) 机制,大比例的攻击者抵押会被自动销毁 (而且不会销毁到其他人的抵押)。
针对其他种类的,更难侦测的攻击 (特别指 51% 合谋截断其他人信息),社群可以协调一个“少数使用者发起软分叉minority user-activated soft fork (UASF)”,可以大量销毁攻击者的资金 (在以太坊中,可以透过“消极惩罚 inactivity leak”做到)。不需要采取“硬分叉删除货币”措施。除了 UASF 需要人为协调要选择哪个少数区块,其余事情都是自动化的,只要遵照协定规则去执行即可。
(译注:少数区块 minority block 是小于 51% 抵押总数的验证者决定出来的区块。)
因此,对链的第一次攻击就会耗损攻击者几百万美元,而且社群可以几天内马上站稳脚步。第二次攻击仍然会花费攻击者数百万美元,因为他们需要买新的币去取代旧的已经烧毁的币。再攻击第三次,就会再烧更多的数百万美元。局面极为不对称,而且优势并不会在攻击者那边。
权益证明比 ASIC 更去中心化
基于 GPU 的工作量证明还算合理地去中心化,因为取得 GPU 不会太难。但前面提过,基于 GPU 的挖矿难以满足「在攻击之下的安全性」这个准则。另一方面,基于 ASIC 的挖矿,则需要数百万美元的资本 (而且如果你的 ASIC 是买来的,多数时候,制造商会占更多便宜)
这个资本门槛会是回答“权益证明代表富者更富”这个常见论点的答案:ASIC 挖矿也是富者更富,而且这个局面下,富者更占据优势。权益证明的最低抵押门槛在相比之下算是很低,而且许多一般人更有机会进入。
(译注:就文章完成当下 440 USD/ETH 的价格来看,最低抵押门槛大概是 9.3 万人民币。)
进一步说,权益证明更能抵抗审查。GPU 挖矿和 ASIC 挖矿很容易侦测,他们需要大量电力消耗、昂贵硬体采购、及大型厂房。另一方面,权益證明可以跑在一台不起眼的笔电上,甚至也可以透过 VPN 做。
工作量证明可能的优势
我认为 PoW 有两大主要优势,但这些优势其实有相当的限制性。
权益证明更像个“封闭系统”,长期而言财富更加集中。
在权益证明中,如果你有一些币,你可以抵押那些币,并且获得更多同种类的币。而在工作量证明中,你总是可以获得更多币,但你需要一些外部资源来达成。因此,人们会认为长期而言权益证明的币的分配会更集中。
我的回应是,在 PoS 中,报酬一般而言会很低 (所以验证者的获利也会低)。在 eth2,我们预期验证者的年收益率会相当于总 ETH 供给量的 ~0.5-2%。而且更多验证者抵押,利率会更低。因此,可能要花个一世纪,整个资产集中程度才会翻倍,而且在这样的时间跨度之下,其他促进分配的压力 (人们想花他们手上的钱,分配资产到慈善或他们自己的子孙等等) 比较可能会占上风。
权益证明需要“弱主观性” (weak subjectivity)而工作量证明不需要。
关于“弱主观性”的概念可以看这个原始介绍。本质上,就是节点在第一次上线,或是在离线很长一段时间之后 (数个月) 再次上线,这个节点必须要透过第三方的资源,才能决定正确的链头在哪。这个第三方可以是他们的朋友、可以是交易所或区块链浏览器、或是客户端开发者本身、又或是其他角色。PoW 则没有这样的要求。
然而,这可能是一个很弱的要求。事实上,使用者本身就已经必须对客户端开发者、或“社群”有这种程度的信任。最起码,使用者必须信任某个人 (通常是客户端开发者) 来告诉他们协议是什么,这个协议曾经经历过什么更新。这在任何软件应用中都无法避免。因此,PoS 的边际信任成本仍然很低。
但就算这些风险最终会发生,对我而言 PoS 系统仍然利大于弊:更高的效率、应对攻击并从攻击中复原的能力更强。
参考来源:我之前有关权益证明的文章
· Proof of Stake FAQ
· 一种Proof of Stake设计哲学