观点

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

Ajian   |     |   2937 次阅读


作者的原始文本及 Vitalik 的回应见:观点 | 批评 VB 的《一种权益证明设计哲学》,Part-1


很高兴几天前 Vitalik 回复了我的驳文。

我会在下文一点一点回击 Vitalik 的论点,我对 PoS 是否有足够坚实的哲学基础,使其可以独立作为维护公共区块链的安全机制仍旧持怀疑态度。

1. 我怎样理解他对 PoW 中 51% 攻击的主张

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

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

谢谢你的解释,我觉得我现在更能理解你的一般看法了。我们来看一下我觉得很扯的那句话:

VB:“因此,挖矿网络的规模必须足够大,以至于发起攻击是无法想象的。网络每天的算力成本是 X,算力小于 X 的攻击者就没有动力发起攻击。我对于工作量证明的逻辑是持反对态度的(......)二是因为它并没有实现赛博朋克精神——它的攻击成本和防守成本是 1 : 1 的,并没有防守优势。”

你发现问题了吗,对我来说,貌似你是用每日的防御成本需要超过攻击者每日的算力成本来论证的总体攻防成本比是一比一。我认为这只是个小细节,我要说的是,讨论一个抽象的总体攻防成本比毫无意义。

2. 关于 ASIC 成本会占 51% 攻击成本中的四分之三

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

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

这并不说明我认为在一次 51% 攻击中,四分之三的成本是购买硬件,而只有四分之一会用于运行。从国有化的悠久历史,就足以证明在……(在我看来最可能的攻击者)接管以后,运营效率会大大降低。这里有份研究估计,在国有化以后,石油开采公司的盈利能力降低50%。因此这个 7 亿美元的数字可能是个很低的估计,因为收购后的运营效率可能大大降低。

3. 关于你坚持说在攻击防御上,PoS 比 PoW 更高效

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

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

很高兴你提出了这个问题,但我觉得我已经把成本的经济现象解释的很清楚了。的确,在 PoW 下,发起 51% 攻击的最低经济成本能够较好地估算出来。但这不意味着 PoW 中的攻防成本比为一比一,或更低,这只意味着系统的脆弱性在一定程度上是可知的。

在 PoS 下,你可以指着架构说攻击成本被设计为了 X,或者是与诚实运营者投资值 Y 成比例的 X,但这并不意味着这个比例会维持下去。PoS 攻击的一条完整途径可以是,攻击者使用借来的以太币进行攻击,从暴跌的币价中获利,并抵消掉大部分甚至全部的“惩罚”。

我在驳文中提供的论点是,PoS 事实上就是个“混淆型的 PoW”,所以我不认为 PoS 有不同于 PoW 或者更低的防御成本(从比特币的情形提升为 10 : 1 看起来是毫无依据的乐观),我认为 PoS 的防御成本是未知的。

4. 关于有针对性的 51% 攻击策略是不可行的

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

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

我不确定我理解了你的意思。的确,能回滚一堆区块历史的资源驱动型攻击很可能破坏性巨大,并影响(以美元计价)的代币价值,但就代币本身而言,攻击者可以控制自己的欲望,只窃取每个账户里 1-5% 的代币,那么对于每个持有代币的个体来说,继续使用这个系统很可能还是值得的。最近一位 Siacoin 的创始人就提出了这种类型的没收策略,想法是“硬分叉出 10-20 个亿的新币直接放入我们的钱包,然后每天卖出 100 万个以支持我们的运营。”在总供应量为280 亿个代币的系统中,这个攻击会稀释 Siacoin 持有者 3.5% 到 7% 的代币价值。

5. 对于“非常明确”的社会共识情景描述

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

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

可以说,比特币网络中最大的挖矿公司比特大陆,有 Segwit2X 的支持还有 BitcoinABC 分叉的蓝图,就是在发起一次企图改变比特币经济模型的长程攻击。但我从没见你说过这个问题的解决方案“非常明确”,即社区只需要追随传统的链即可。重申一下,我的观点是,将公共区块链的稳健性依赖于社区共识是不切实际也不理想的。在这个回复中,你看起来是同意我的呀:“我并不相信 ‘大致的共识(rough consensus)’ 在真正的敌对环境中能成为可持续的治理模式,没有一个国家用其治理。

6. 关于比特币是在社会共识基础上运行的

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

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

我并不需要社会共识来选择比特币客户端,没必要啊。我只需要决定我是否信任 Wladimir van der Laan,然后去下载他的发行签名密钥签署过的软件。如果除我之外很多人也这么做,那么我的客户端将联系他们、组成网络。用 reddit 用户 deviatefish 的说,这叫“选择加入型(opt-in)治理”。他把这种方案与以太坊的“选择退出型(opt-out)治理”进行了对比,在以太坊中,用户面临着一系列以硬分叉形式出现的不可逆转的兼容性变化。

他说:“如果你的目标是对网络具有中心化控制,那么 opt-out 就是一大战略优势。它颠覆了 ‘只进行那些重要到足以获得整个网络支持的变更’ 的治理模式(译者按:即 opt-in),而变为 ’只要争议不至于大到让网络中的大多数人反对,就可推行变更‘ 的治理模式(译者按:即 opt-out)。通过翻转这种激励结构,只要相关争议中的少数方所占比例不至于太大,那么提案就会被广泛接受,同时对网络的健康没什么影响。

正如我在文章中提到的,集体所有的区块链不应该依赖于集体决策来确保其安全性。当然了,综合各种个体决策可以产生积极的网络效应,但这不是我要说的。

如果你非要说比特币是在某种社会共识基础上运行的,那你至少需要区分清楚,比特币的社会共识是”选择加入型“的,你也许还得承认,以太坊/PoS 的社会共识是对中心化更友好的”选择退出型“。

7. 不同意 PoS 在现实世界中有应用

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

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

感谢反馈,这些都是“用经济损失来质押”的例子。我仍旧认为这些例子都暗含某个外部信任源,使得这些例子不符合我们讨论的情况。

1/ 保证保险

根据维基百科,保证保险定义为一个至少是三方之间建立的合同。第一方,权利人:即某项义务的接收方,第二方,委托人:即合同规定义务的主要履行者,第三方,担保人:即向权利人保证委托人可以执行任务的一方。

因此,担保人就是该情况下所需的外部信任源。你可以说在 PoS 区块链中你们尝试将权利人与担保人融为一体,但这仍然无法作为在其他情况下无需信任的 PoS 有现实应用的例子。

2/ 保释保证书

在保释保证书中,有一笔保证金会存入法院,以确保被告返回法庭。所以,受信任的第三方(银行)参与持有这些资金。

3/ 在各种形式的谈判中使用人质

这其实是另一种形式的保释保证书。在这里,一方压付给对方的资产不可替代,并假设对劫持人质者非常有价值:你集团成员中的一人,通常是家庭成员。 人质在整个历史中都被用来验证和平条约的诚意,并保证政治联盟的稳固。

“人质”,法国画家 Jean-Paul Laurens 在1896年画下。有人推测,这幅画画的是“塔中王子”,也就是爱德华四世唯二的两个儿子,他们在伦敦被扣为人质,后来可能被杀;亦或是从 Edgar Allen Poe 的小说《陷阱与钟摆》中,关押在西班牙宗教法庭里的囚犯主人公的角色上受到的启发。

在一份人质合同中,外部信源其实是送出人质一方——假设送出人质一方珍惜人质的生命与健康,更甚于打破政治条约能获取的潜在利益。这个例子也需要第三方最小程度的信任,因为正如我说的,压付出去的资产是唯一(不可替代)且珍贵的。在基于保证金的 PoS 系统下,这两点都可能不满足:质押的代币通常都是可替代的;攻击者可以通过对冲仓位来抵消价值,比如对以太币持有同样大的空头头寸。

这也是为什么你的例子需要第三方最小程度的信任,因为人质没有可替代性,这也是为什么该例子无法应用到以太坊上——在以太坊中,攻击者大概不会对协议处罚使他损失的每个以太币感到珍惜吧。攻击者有许多对冲自己风险的方法,比如做空。

现在我们来把 Vitalik 的几个例子与我从达尔文进化论中得到的 不利条件 原理(作为 PoW 的例子)做个比较。在不利条件原理下运作的生物体不需要外部信源。对于验证者(自然界中的雌孔雀,或是加密货币中的客户端软件。非指 PoS 中的验证者,译者按)来说,只需要把数据用识别算法跑一次,验证达到了最小工作量的阈值就行了。当然,在自然界中,识别算法可能会被人愚弄,但在密码学里,工作量证明可以接近完善。

8. 关于 PoW 防御成本比 PoS 要高

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

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

请看我上面的回复。你所谓的 “PoS 可以实现更有利的攻防成本比 ” 只是一个诉诸权威的论断,除非你能告诉我哪个公有链成功在纯基于保证金的 PoS 上运行了,并提供该公有链安全性的证据。

9. 关于把 51% 攻击者为逃避惩罚而分叉的链再分叉的提议

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

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

所以就是“V神证明”咯。在你说的情况下,必须有人来决定“我生成的这一万个分叉中哪个才是合法的”。我猜这个人肯定是 Vitalik 咯。(这是 McElranth 本人的回复,我联系了他)

10. 关于“不可能”在 PoS 上发起“狼来了”攻击

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

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

我联系了 Bram Cohen,请他来回复。他说:“如果他们要走那条路的话,那么发生分叉的时候,整个系统就会宕机,因为没人愿意承担 ’错误‘ 的风险。”然后有人给他发了 Vitalik 的《最小惩罚条件》一文,Bram 又回复道:“所有这些不明觉厉的条件增加了复杂性,只会使攻击更难解释,而不会解决实际问题。” 我认为 Bram 说得对,这个防止滥用的规则迷宫,很有可能导致”滥用“的定义更加模糊,随后这个定义的解释权就会被委托给官僚权利委托人——以太坊政治局,如果你不介意我这么叫的话。

11. 关于 Zhou 提到的攻击会非常昂贵的问题

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

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

再说一次,正如 McElgrath 所说,只有在受到惩罚的时候发起攻击才是昂贵的,而且攻击者能够把惩罚分叉掉。然后,一些开发者可以对分叉发起再次分叉,然后攻击者可以再攻击。直到需要一个外部信源来调停,决定哪条链才是“真正的”链:真·V神证明,又名真·以太坊基金会证明。

Vitalik 的再回复

这并不说明我认为在一次 51% 攻击中,四分之三的成本是购买硬件,而只有四分之一会用于运行。从国有化的悠久历史,就足以证明在……(在我看来最可能的攻击者)接管以后,运营效率会大大降低。这里有份研究估计,在国有化以后,石油开采公司的盈利能力降低50%。因此这个 7 亿美元的数字可能是个很低的估计,因为收购后的运营效率可能大大降低。

我也同意,……的攻击对区块链来说是个很大的威胁,但我个人觉得,在以太坊的环境下,……攻击的危险性是排在第二位的。以太坊的头号威胁,很不幸其实是整个社区里以太坊的对手,比如发起了 DAO 攻击的那些人,比如去年发起 DoS 的那些人。我比较担心的有财力资源的攻击者有:想阻挠区块链转移到 PoS 的矿池、比特神教组织,还有其他类似的威胁。而且这些人很多都能组织起高效攻击。

当然了,长期来看……攻击的确是更大的威胁,但我不认为政府会为此牺牲太多运营效率。……只需要收购或征用几个大型数据中心或矿场就好了。其次,即使……组织的攻击真的效率奇低,那这对攻击 PoS 也是一样的。比如,即使理论上你可以牺牲 33% 的保证金就成功回滚确定区块,但对于一个低效攻击者来说,他可能要牺牲超过 50% 的保证金也不一定能成功。

PoS 攻击的一条完整途径可以是,攻击者使用借来的以太币进行攻击,从暴跌的币价中获利,并抵消掉大部分甚至全部的“惩罚”。

这的确是事实,但这不应该是用来比较 PoW 与 PoS 的论点,因为对于 任何 共识算法来说,攻击者都可以在攻击时做空以太币来赚取额外的 X 美元(当然你可以表达为“抵消掉 X 美元的成本”),因此这个论点不会影响我们的结论。

事实上,能够从故障中恢复的算法中的 X 值可能更低,因为一次 51% 攻击不会使价格下跌太多,所以这甚至可以说是 PoS 更好的论据。

就代币本身而言,攻击者可以控制自己的欲望,只窃取每个账户里 1-5% 的代币,那么对于每个持有代币的个体来说,继续使用这个系统很可能还是值得的。

区块链不只有代币。我说的是各种复杂应用的输出和中间状态,包括随机数发生器、链上竞态条件、ERC20 标准、存在证明、活跃通道等等。我不认为有人能在不造成“严重破坏”的情况下回滚4个月的历史记录。

举个栗子,我提议了 DAO 分叉,我知道有很多人因此抱怨,即使这次分叉的唯一“受害者”是那个盗取了六千万刀的小偷,分叉还是非常难成功。

可以说,比特币网络中最大的挖矿公司比特大陆,有 Segwit2X 的支持还有 BitcoinABC 分叉的蓝图,就是在发起一次企图改变比特币经济模型的长程攻击。但我从没见你说过这个问题的解决方案“非常明确”,即社区只需要追随传统的链即可。重申一下,我的观点是,将公共区块链的稳健性依赖于社区共识是不切实际也不理想的。在这个回复中,你看起来是同意我的呀:“我并不相信 ‘大致的共识(rough consensus)’ 在真正的敌对环境中能成为可持续的治理模式,没有一个国家用其治理。

这个情况跟我说的很不一样。除非你看的是一家之言,否则我认为比特币的扩展之争其实是社区中两派之间的政治分歧,很少有人认为某一派是明确的恶意攻击者。就我个人而言,我倾向于支持适当增大区块的一派,而另一些人支持小区块的一派。

而上述讨论的选择是在:一条保持所有人可见的区块历史的链和一条公然回滚 4 个月区块历史的链之间的。如果你还是想用比特币扩展之争来类比的话,我想情况应该是,攻击者说“嘿,我那条回滚了4个月历史的链 功能更强大 哦”。但这个问题就变成了普通的加密货币与其山寨币之间的市场竞争了,不在我们讨论的安全模型问题的范围之内。当然了,一条区块链总是可以被市场认为技术更领先的另一条链取代的。

如果你非要说比特币是在某种社会共识基础上运行的,那你至少需要区分清楚,比特币的社会共识是”选择加入型“的,你也许还得承认,以太坊/PoS 的社会共识是对中心化更友好的”选择退出型“。

我不知道你为什么觉得以太坊是“选择退出型(opt-out)”的。当发生硬分叉时,你必须选择加入分叉,否则你就待在分叉前的链上了。

当然,在自然界中,识别算法可能会被人愚弄,但在密码学里,工作量证明可以接近完善。

我会继续质疑这一点。你的节点是无法验证 SHA256² 是否就是比特币的哈希算法,也无法验证 scrypt 是否就是莱特币的哈希算法,而不是反过来的。你的节点只能从你在可信来源下载来的代码中获取信息。因此如果你下载了一个恶意客户端,客户端告诉你 scrypt 才是比特币的哈希算法,然后你从头同步到尾,看起来 很会很像这么一回事,而且你也的确需要花费不少算力来支撑整个同步,但你同步的将不是真的比特币区块链。

你所谓的 “PoS 可以实现更有利的攻防成本比 ” 只是一个诉诸权威的论断,除非你能告诉我哪个公有链成功在纯基于保证金的 PoS 上运行了,并提供该公有链安全性的证据。

先挖个坑。(手动微笑)

所以就是“V神证明”咯。在你说的情况下,必须有人来决定“我生成的这一万个分叉中哪个才是合法的”。我猜这个人肯定是 Vitalik 咯。

并非如此。这只是一个简单的协议规则:“不包含我已知两个月以上的 prepare 或 commit 的链都是无效的。”这完全是程序化的决定。

Bram 又回复道:“所有这些不明觉厉的条件增加了复杂性,只会使攻击更难解释,而不会解决实际问题。” 我认为 Bram 说得对,这个防止滥用的规则迷宫,很有可能导致”滥用“的定义更加模糊,随后这个定义的解释权就会被委托给官僚权利委托人——以太坊政治局,如果你不介意我这么叫的话。

”滥用“的定义很明确呀:

  • 验证确定了两个不兼容的检查点
  • 连续多个时间间隔未被加入区块(对总体上可用的链来说)
  • 有交易或共识信息被审查(对总体上可用的链来说)

Cohen 可能觉得最小惩罚条件是不明觉厉的复杂条款;但对我来说,这些都是对于已经证明了 30 年的拜占庭容错算法的直接改良。


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


你可能还会喜欢:

干货 | Casper 机制的历史起源-第四篇
观点 | 权益证明与错误的工程思维
干货 | 以太坊的工作原理

 
0 人喜欢