批评 VB 的《一种权益证明设计哲学》,Part-1

批评 VB 的《一种权益证明设计哲学》

在本文中,我将对 Vitalik Buterin 在 2016 年 12 月发表的文章《一种权益证明设计哲学》一文中的数个观点发表一些不同意见(编者按:中译本见这里)。我希望本文可以抛砖引玉,引起社区对权益证明的顶层设计和 以太坊 协议 蓝图 的讨论。

1. “攻击成本应该大于防守成本”的说法是不合逻辑的。

这句话是“权益证明(PoS)比工作量证明(PoW)更加高效”这一推论中核心的一环,我们有必要谨慎地审视其逻辑。

Vitalik 在他的文章中以“密码学使用户能更高效地保护自己的数据,甚至比现实生活中城堡主守卫自己的城堡、岛主守护自己的海岛更加高效”的论点开始。的确,密码学改变了财富游戏规则,也改变了信息保护意识,使得游戏规则更加公平,但这两者其实风马牛不相及。没错,一名中世纪骑士是无法攻击比特币钱包的,但电脑黑客也无法高效地防御城堡。密码学是我们在真实世界里使用的,拿 5 美元的扳手暴力威胁,就能取走价值百万的私钥。

并且,“攻击成本”与“防御成本”并不是抽象的、固定的,而是一个相对的动态现象。成本取决于攻击者或防御者主观上对该物品的价值判断,还取决于攻击所涉参与者的信仰。成本是一个 相对 现象,只有在与相应的选择所放弃的效用(forgone utility)相比较、与参与者为了追求目标而愿意错过的机会比较时才有意义。在攻击者-防御者的情景中,成本也是动态的,如果我面对的攻击者十分忠于自己的目标且有充裕的资源,我的潜在防御成本就会变得十分高。反之亦然。

当谈到工作量证明时,Vitalik 说工作量证明违背了”赛博朋克精神“,因为该系统的”攻击成本与防御成本之比为 1 : 1“。这句话就很扯了,因为他说的 1 : 1,其实只是当 51% 攻击者在区块链的最新区块上搞事情时能够实现的成本情况。

要攻击比特币,回滚几天前的历史记录也是奢侈到极点的事情。想象一下, 2010 年 5 月花了 1 万比特币买了个 Pizza 的那哥们现在变成了个邪恶的 Pizza 小哥,他想要回滚那个 1 万个比特币的交易。他需要想办法潜入挖矿业并控制比特币全部挖矿算力,然后重新挖 200 多天(如果他只能控制 51% 则需要更长的时间),才能用有效的工作量证明将链回滚到那天。购买矿机要花掉数十亿,而持续 200 多天运行比特币网络则要花掉超过七亿美元(总共消耗 7.5 太瓦时,单价为 10 美分/千瓦时)。而抵御这个 Pizza 小哥的防御成本就很难计算了,因为只要相互竞争的比特币矿工们简单遵循自己的经济利益,老老实实为自己赚钱而挖矿就够了——比特币网络防御无数不同的攻击的能力只是一个副产品。

根据我们现有的知识,在整个社会中,主观价值判断与可用资源都不是均匀分布的(在自然中也是如此),所以无论使用何种安全机制,攻击者与防御者之间的拔河比赛肯定是要进行的。因此说什么攻击/防御成本比为一比一,在我看来是毫无意义的。

回到加密货币的话题,每个人都可以尝试设计与工作量证明不同的交易清算算法,但最终,你所做的一切,不过是让攻击者搞不清楚到底要如何利用这个系统,同时也让防守方为维护账本的诚实和完整要采取的工作类型和程度变得更难定义。Paul Sztorc 说过(Adam Back 也回应了该观点):“所有我们看到的工作量证明替代品都应该加上‘混淆型工作量证明(obfuscated PoW)’的标签。”

2. 人类并不是“挺擅长达成共识”的

Vitalik 说,进行 51% 攻击并成功根据自己的喜好回滚了区块的攻击者,很难说服整个社区相信他的链才是合法的。人们会很快揭穿他,并一致决定恢复正义。Vitalik还说:“这种社会考量正是最终长期保护区块链安全的法宝。”他还引用了雅浦岛(Island of Yap)上的巨石币来旁证。

首先,我并不认为雅浦岛上的巨石币可以作为佐证社会共识效率的例子,我们并没有任何数据证明,该巨石币系统导致或避免了多少人钻系统的空子。其次,大家都知道,在雅浦岛这样的部落社区里,传统道德、习俗、礼仪与社会压力对部落居民的影响是非常大的,因此我认为把雅浦岛的例子类比到当今,假设我们能够在自由社会(与“部落社区”相对,译者按)中实施类似的货币政策是不公平的。最后,雅浦岛这个“社会共识账本”最少遭遇过两次攻击。第一次是 1874 年一个爱尔兰裔美国船长 David O’Keefe 成功用大量便宜的石头假装成巨石币,获取了巨额权利与财富。第二次有记录的攻击是德国商人没收了雅浦巨石币,并在岛上创建了严厉的资本管制制度。

现在,让我们来看一下 Vitalik 的另一个论点——社会共识是抵抗资源驱动型攻击的法宝。在我看来,这个说法根本就是错的。一个有足够资产发起攻击的攻击者可以只攻击系统内少数几个个体(“铃铛猫”寓言),那么这就会使得惊动整个社区来回滚区块并“恢复正义”的成本过高。又或者,攻击者可以策略性地攻击大量用户,但只使每个用户受到少量的财产损失,这样一来,对于个体用户的成本而言,所有用户团结起来回滚的成本比遭受攻击的损失还要大。

批评 VB 的《一种权益证明设计哲学》,Part-1插图

“铃铛猫”的寓言是说一群老鼠在讨论如何解除猫的威胁。给猫的脖子戴上铃铛听起来是个好主意,直到……有只老鼠问道,谁来做志愿者?这则故事说明了有时“社会共识”在理论上看起来容易,但在实践中很难实现。

即使绝大多数人都同意某事件具有破坏性,需要避免,他们却往往无法就如何应对的问题达成一致。作为一种好的制度,市场可以让人们自愿追求个人目标,但也就是如此而已了。如果一些人(或一个人)不喜欢某物,他总是 可以 退出 的。在加密货币的世界中,这就好比他们能够硬分叉出自己的新代币,或是通过软分叉来施加更严格的规则。

而且,“共识”一词常常作为修辞工具来遏制异议。举个例子,还是在《权益证明之哲学》一文中,Vitalik 声称如果验证者勾结起来控制了 PoS 链,那么“整个社区仅仅需要协同进行一次硬分叉,删除那些违规的验证者保证金就好。”考虑到在 TheDao 救援计划中,尽管只有不到以太币流通量 6% 的代币在为期两周的时间内进行了投票,还是通过了所谓的“社区共识”,看起来在以太坊社区中“冒犯”了不该冒犯的人很危险啊!

3. 并没有证据证明 PoS 比 PoW 更有韧性

Vitalik 还说:“如果需要,在 PoS 链上单次 51% 攻击的成本可以设置得与在 PoW 链上永久【原文如此】51% 攻击的成本一样高,那么单纯的高成本与攻击的无效性应该就能保证攻击几乎永远不会发生了。”

也就是说,他这句话暗示了从安全性角度说,PoS 比 PoW 更强健。

在比较PoW与PoS的时候,请考虑以下几点:

  • 加密货币的挖矿设计是对特定系统中信任问题的解决方案,在这样的系统中,参与者具有不完美知识 [校对注 1] 且不知道对手是谁。PoW 在早期现代货币和自然界中有应用,不利条件原理(the handicap principle)逐渐演变为让动物证明其信号的“诚实”或可靠性。据我所知,PoS在人类历史或者生物学中并没有同等应用。
  • 在 PoW 系统中,一名 51% 攻击者可以显著降低网络速度,但即使仅仅尝试一次回滚历史交易就需要长期耗费巨额成本。也就是说,账本历史的生成极其昂贵,且要破坏该账本历史可以说会更加昂贵。
  • 与“没有产生 51% 卡特尔”的 PoW 链不同,数学已经证明了,在没有可信任第三方时,在 PoS 链中是无法确定“真实的”交易历史的。如果一直需要可信源头,那么有潜在攻击和中心化风险的潘多拉盒子就打开了。这就是“以太坊计划使用‘V神证明’”的笑话背后真相的种子。
  • 在一个朴素的 PoS 环境中,攻击者可以轻易地创建不同账本历史,使其可以低成本地尝试不同攻击策略。这被称为“无利害关系问题(nothing at stake problem)”。以太坊计划通过销毁恶意验证者的保证金存款来解决该问题。而 SolidX 的 Bob McElrath 则提出,如果惩罚本身可以通过分叉避免,那么对攻击者进行“经济惩罚”的策略就无法解决争议。对于基于保证金的 PoS 还有另一问题,是 BitTorrent 的创造者 Bram Cohen 最近提出的:如何避免诚实的验证者被骗与网络进行交互,触发本该保护他的惩罚规则。(可以把这个情景想象成大型“狼来了”恶作剧。)Galios Capital 的 Kevin Zhou 还提出了一种攻击可能,攻击者将足量的诚实用户骗上自己的网络,那么这些受骗的诚实用户就有动机认为这条攻击者链就是合法链。

校对注 1:不完美知识是博弈论中的术语,即信息传递不完美,博弈参与者并不完全知道此前自己的对手作出了哪些行动。以下棋和电子竞技游戏为例:下中国象棋时,双方都完全知道对手之前做了什么,这叫“完美知识”;而那种需要探图(插眼)的电子竞技游戏中,对手在你视野之外做了什么你是不知道的,这就叫“不完美知识”。

结论

Vitalik 从第一原则出发,进行他的加密协议设计方案的努力是值得肯定的,但我认为他写的东西存在缺陷。他混淆了成本和防御间的权衡,并对基于工作(work-based)与基于权益(stake-based)的安全性问题作出了无事实依据的主张。对于社会共识的有效性问题,Vitalik 未能提出令人信服的逻辑证明或历史证明。在没有提供足够证据或论据,且无视有实质成就者提出的各种反对意见的情况下,他一直声称 PoS 更有韧性。Vitalik 的文章无法让我相信权益证明具有坚实的哲学基础,也无法让我相信权益证明可以独立作为维护公共区块链安全的机制。

很感谢各位的反馈:Kevin Zhou、Afsheen Bigdeli、Lawrence Nahum、Tommaso Pellizzari 和 Christian Lundkvist。本文所有错误都是我的锅。

利益相关:我在做空 ETH,做多 BTC。

Vitalik 第一轮回复

这句话就很扯了,因为他说的 1 : 1,其实只是当 51% 攻击者在区块链的最新区块上搞事情时能够实现的成本情况。

错了,这里我说的是 51% 攻击者对链上 任何一个 区块发动攻击的成本。挖矿中的绝大部分成本在于资金成本,而不是运营成本;我最后一次计算攻击防守成本比的结果是 3:1。因此如果一个攻击者有足够的资本来攻击 6 个区块,那么他已经在攻击多年区块历史的路上就已经完成了 75% 了。

购买矿机要花掉数十亿,而持续 200 多天运行比特币网络则要花掉超过七亿美元(总共消耗 7.5 太瓦时,单价为 10 美分/千瓦时)

看起来其实我们都同意我上面说的攻防成本比例咯。

攻击者与防御者之间的拔河比赛肯定是要进行的。因此说什么攻击/防御成本比为一比一,在我看来是毫无意义的。

不对吧?要让攻击成本达到 20 亿美元,就需要比特币矿工事实上烧掉大于 20 亿美元的资源。这就是 1:1 呀(其实防守成本还要高一些),这个数字是非常有意义的。而在 PoS 下的拔河比赛中,我们能让防御者达到 10 倍优势,甚至更多。

又或者,攻击者可以策略性地攻击大量用户,但只使每个用户受到少量的财产损失,这样一来,对于个体用户的成本而言,所有用户团结起来回滚的成本比遭受攻击的损失还要大。

这并不可行。在这里,你说的是一个 4 个月时长的回滚;也不存在”只使每个用户受到少量的财产损失“的可能性。这是区块链原生”全或无定律(all-or-nothing)“的结果。

他们却往往无法就如何应对的问题达成一致

话是这么说,但是在长程攻击(Long-range Attack)的情况下,应对方法是非常明确的:应该跟随更早出现的那条链,而非晚出现的那条。

考虑到在 TheDao 救援计划中,尽管只有不到以太币流通量 6% 的代币在为期两周的时间内进行了投票,还是通过了所谓的“社区共识”,看起来在以太坊社区中“冒犯”了不该冒犯的人很危险啊!

这跟 PoS 的讨论毫无关系。建立一个反对类似 DAO 那样的分叉的基于 PoS 的区块链是完全可能的。

但我们不能指望社会共识这种理想主义的概念

那你在运行全节点的时候怎么知道要用什么软件呢?

据我所知,PoS在人类历史或者生物学中并没有同等应用。

政府机构一直在各种情况下使用安全保证金存款。货币发送方和银行许可证的保证保险(surety bond)就是一个例子。 保释保证书(bail bond)是另一个例子。 第三例子是在历史上各种形式的谈判中使用的人质。

在 PoW 系统中,一名 51% 攻击者可以显著降低网络速度,但即使仅仅尝试一次回滚历史交易就需要长期耗费巨额成本。

在最好的情况下,该成本等于合法矿工生成区块的成本,而在多数现实世界的案例中,远低于生成区块成本。PoS 则可以实现更有利的攻防成本比。

SolidX 的 Bob McElrath 则提出,如果惩罚本身可以通过分叉避免,那么对攻击者进行“经济惩罚”的策略就无法解决争议。

没错,但如果一条链审查惩罚机制,则这条链可以再次分叉,就像那回BTC Core开发者提议改变工作量证明,作为对 51% 的矿工联盟审查其他出块人的回应一样。

对于基于保证金的 PoS 还有另一问题,是 BitTorrent 的创造者 Bram Cohen 最近提出的:如何避免诚实的验证者被骗与网络进行交互,导致触发本该保护他的惩罚规则。(可以把这个情景想象成大型“狼来了”恶作剧。)

这是不可能的;除非验证者违反了某条惩罚规则,否则不会损失他们的保证金存款,而是否符合惩罚规则是可以在客户端验证的。

验证者还可能因为离线而受到惩罚,但该算法的设计是,要使其他验证者损失大笔保证金,攻击者也会损失同等金额的保证金。可以注意到,PoW 也有同样的属性,51% 攻击者可以任意把其他矿工的块分叉掉,使矿工白白烧掉了许多电力却收不到区块奖励。事实上,PoW 在这个方面更差,因为 51% 联盟可以在自己获利的同时使其他人受到损失,而在 Casper 中要使别人遭受损失,攻击者也有损失。

Galios Capital 的 Kevin Zhou 还提出了一种攻击可能,攻击者将足量的诚实用户骗上自己的网络,那么这些受骗的诚实用户就有动机认为这条攻击者链就是合法链。

除非这次攻击成功回滚了”确定区块“,否则会使攻击者损失大量保证金。

(未完)

Part-2

原文链接: https://medium.com/@tuurdemeester/critique-of-buterins-a-proof-of-stake-design-philosophy-49fc9ebb36c6
作者: Tuur Demeester
翻译&校对: Elisa & 阿剑

你可能还会喜欢:

干货 | 一种权益证明设计哲学

干货 | 加密经济学: 区块链技术前景之路基

干货 | 理解权益证明安全模型的原理

评论