https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/the_defence_of_pos.md
作者:扎克-赫斯, Zack Hess
我写PoS论文的目的是试图用一个一般性的论证来说明PoS是不可能的。
我与许多对PoS技术有既得利益的人分享了这篇PoS论文,我从他们那里得到了不同的回应。本文的目的是将支持PoS的各种论点收集在一起,以便我们可以看到为什么不同的人认为PoS仍然可以工作。
如果你觉得你的观点在这里被曲解了,或者你的观点发生了变化,请随时与我联系,我会为你调整这份文件。
艾略特-奥尔德 #
在这里,你可以看到他试图解释软分叉贿赂攻击不能工作的地方:https://twitter.com/elliot_olds/status/1325270961793331200
针对软分叉贿赂攻击的恢复方法与针对DAO黑客的恢复方法非常相似。这个想法是,只要PoS债券被锁定足够长的时间,那么社区最终将能够识别哪些造币者是诚实的,并使用硬更新来撤销造币者在攻击期间受到的任何惩罚。
这种防御只有在以下情况下才能奏效。
这些攻击的频率保持在足够低的水平,以便社区能够用硬分叉来应对它们。 钱被锁起来足够长的时间让我们做一个硬分叉来防止它被盗。 我们最终可以识别哪些造币者是诚实的。 (3) 并非所有类型的攻击都是如此。特别是,信息可用性攻击并不具有这种属性。有一个问题叫做说话人-听话人过错等价。有义务发送信息的施事者声称他们发送了信息。有义务接收信息的施事者声称信息从未被发送。这是一种他说她说的情况,没有客观的方法来确定谁在说谎。
如果协议对说话人和听话人都进行惩罚,那么我们就会让自己受到攻击。对于攻击者来说,贿赂验证者来执行攻击是很便宜的。如果攻击成功,攻击者几乎没有任何损失,但所有作证者都会受到严厉的惩罚。
任何在攻击发生时观察协议的人都可以看到哪些信息在哪些时间点是可用的,因此他们可以知道哪些验证者在说谎。但是他们没有办法向那些在攻击期间没有观察协议的人证明这个证据。因此,解决说话者-听话者故障等价的一个潜在方案是要求几乎所有的用户都要维护24/7的软件来记录有时间戳的协议信息。这几乎和要求所有用户全天候运行完整的节点一样繁重,而且一般被认为是加密货币设计中不可接受的限制。
维塔利克-布特林 #
Vitalik Buterin https://vitalik.ca/general/2020/11/06/pos2020.html
Vitalik计算攻击PoW成本的链接是基于不正确的假设,即ASICS是一个完全流动的市场,一个人可以按小时租用51%的hashpower。如果你考虑到他们需要在一个非流动性的市场上购买ASICS,你会得到非常不同的数字。在一个缺乏流动性的市场上,你买的ASICS越多,ASICS就越贵。攻击的成本随着规模的扩大而呈抛物线上升。
他对攻击PoS成本的计算是不准确的,因为他所考虑的唯一攻击是那些真正购买他们所押注的硬币的人。而实际上,通过向PoS验证者支付第二笔更大的安全押金来强制他们参与你的协调攻击,并且有一个智能合约来指定租来的币的使用限制,以防止他们被砍掉,这总是有可能租来对PoS押金的控制。PoS押金是由一个流动的硬币市场组成的,所以成本只会随着你以这种方式租用更多的硬币而线性增加。
- 他试图提出2点,说明为什么PoS有可能成为一个加密经济的安全共识机制。
- 在相同的成本下,PoS比PoW更安全。
- 在PoS与PoW中,攻击更容易恢复。
我将试图证明Vitaliks对(1)和(2)的论证是不正确的。
对于(1),他是在比较贿赂PoW矿工以暂时审查PoW区块链上的所有txs的成本,与购买51%的所有验证者股权以永久破坏PoS区块链的成本。把这两种截然不同的攻击并列在一起,并比较执行这些攻击的相对成本,是没有任何意义的。这就像我指出我的二头肌比运动员的小指头的肌肉大,然后我试图用这个来证明我更强大。
对于第(2)部分,要警惕正在进行的轻率行为。请注意,正在讨论的PoW攻击不再是贿赂51%的矿工进行临时审查,现在是攻击者成功购买了超过51%的所有ASICS,这是一个昂贵得多的攻击手段。拥有51%的抵押币比拥有51%的挖矿硬件要便宜得多,因为抵押币的市场比ASICS的市场流动性强得多。而购买51%的抵押币只相当于购买PoS区块链上总币数的5%左右,因为不是所有的币都被抵押了。如果一个攻击者购买了所有PoS币的5%,那么最后一个购买的币将与第一个购买的币的价格相近。如果一个攻击者正在购买所有现有ASICS的51%,那么随着他们购买更多的ASICS,ASICS的价格将迅速增加,这将是非常昂贵的。ASICS的市场比PoS币的市场流动性要差很多。
在针对PoW的第(1)部分中,他更倾向于关注针对PoW的非常便宜的临时审查–通过贿赂的攻击,因为他想让人觉得PoW的攻击很便宜。在PoW的这种攻击类似于通过支付高额的tx费用来攻击PoS,将每个区块完全填满txs来审查其他任何人的txs。
在针对PoW的第(2)部分,他更倾向于关注非常昂贵的spawn-camping攻击,这取决于购买51%的PoW采矿硬件,因为他想让人觉得PoW攻击很难恢复。PoW的这种攻击与攻击PoS类似,试图买下51%的所有PoS币。
证明PoS是不可能的,它在很大程度上依赖于PoS的一个对称性;攻击者联盟对防御者联盟是对称的。如果防御者赢了,他们可以惩罚攻击者,与攻击者如何惩罚防御者完全相同,如果攻击者赢了。防守方用来增加防御的任何安全存款,攻击方都可以以同样的方式、同样的成本进行安全存款,以增加攻击。为了证明PoS是可能的,他正试图找到一种方法来打破这种对称性。他正试图让人觉得防御可以比攻击更便宜。他试图打破这种对称性的方法是做出一个错误的假设,即社区将能够使用一个未定义的外部机制来达成共识,即哪一方的分叉是攻击,哪一方是防御。用户都能就哪个版本的协议是官方版本达成一致。这是一个循环推理的例子。如果我们从社区能够就协议的更新达成共识的假设出发,那么就很容易证明他们有一个共识机制。在实践中,更新是非常有争议的。用户无法就什么是有益的更新,什么是恶意的攻击达成一致。特别是如果攻击与宣传相搭配,社区很容易最终被欺骗,认为攻击者的版本是一个好的更新。如果社区被欺骗,认为攻击者版本的分叉实际上是一个好的更新,那么他们就会被欺骗,烧掉49%诚实的验证者的安全保证金,而奖励攻击者。
PoS必须以其中一种方式失败,即A或B。
A) 一旦攻击者拥有>51%的验证人股份,他们就可以永远保持攻击。他们控制谁被添加到验证人集合中。他们可以审查任何东西。他们可以使用审查制度来推送任意的软分叉更新,包括将共识机制改为PoW的更新。不喜欢新规则的用户会被激励去卖给喜欢新规则的用户。
B) 另外,如果有办法让用户决定目前的验证者集是多数攻击者,他们应该受到惩罚,这是一种恢复机制。攻击者可以利用宣传来滥用这种恢复机制。如果攻击者能让用户相信当前的验证者集合是攻击者,那么用户就会抢走那些诚实的验证者的股权。
无论是A还是B的情况,这都不是一个安全的共识机制。
Jae Kwon #
讨论链接: https://twitter.com/jaekwon/status/1163205417020735488?s=20
Jae认为PoS的安全性是基于 “社会合法性 “的。
但这是在一个较慢的时间尺度上,与你需要多少次确认才能从交易所提款相比。
如果我们试图使用一个缓慢的机制来解决这些不一致,那么我们必然会向双重消费攻击的可能性开放。
一旦攻击者在交易所卖出他们的硬币并撤回到法币,那么就没有办法回滚历史并恢复这些硬币。
如果我们可以通过这种方式进行双重消费并从中获利,那么我们就会整天重复这样做,永远让区块链失血。
最终,攻击者可以从区块链中获取相当多的价值。而且每次txs被回滚,你的钱可能已经被删除。
阿尔弗雷德 #
阿尔弗雷德是一个经常在Amoveo的电报频道讨论的人。
阿尔弗雷德的论点与贾的论点相似,但阿尔弗雷德还建议我们增加一条规则,使债券的总金额足够大,这样,如果我们删除所有受贿者的债券,攻击者就不可能获利。
为了防止回滚获利,我们需要(在社会共识的一个时期内移动的所有资金)*2<(在线押注价值),这样我们就可以从受贿的验证者那里删除足够的押注,这样他们偷的钱就不可能比被烧的押注更有价值。
向在线的人抵押价值是行不通的,因为这意味着我们可以廉价地贿赂代表,让你的股权被删除,这意味着该协议是不安全的。
它最终就像Augur的那种安全性。成本来自于支付足够的费用来说服足够多的人把他们的钱锁在债券里,并保持在线来验证区块,不让我们的钱被盗。
在Augur中,每个预言机(oracle)都很慢,所以验证者只是不定期的上线。如果我们用它来达成共识,那么他们需要在每个区块都保持在线。
据我所知,没有任何PoS区块链在遵循规则使用这种安全模式。例如,这种模式会要求我们限制每个区块可以发送的硬币总数。
这种模式很容易受到寄生合同的影响,与Augur一样。如果像彩色币是到比特币的东西被建立在这个协议之上,而他们没有向绑定的验证者支付与转移的价值成比例的费用,那么就会导致协议变得不安全。
如果有子货币(subcurrency),可能会很难正确计算费用。
Maigoh91 #
Maigo和Jae一样,是来自Cosmos的社区成员。他对PoS安全的原因的解释是基于信誉。
Maigo认为,企业的声誉价值是有风险的,所以他们不会接受可能会破坏如此有价值的东西的贿赂。
但是,无论价值是以锁定在区块链上的股权形式,还是以企业声誉或其他形式,这都不重要。同样的博弈论成立。贿赂比它能破坏多少价值要小得多。
正在设计Eth 2.0的匿名Eth研究人员 #
论点1:
“软分叉不能改变分叉选择规则”
并不清楚这个论断如何能帮助PoS安全地应对软分叉的贿赂攻击,但我还是可以证明它是错误的。
如果攻击者可以随心所欲地重新分配资金,那么他们就可以重新分配资金来撤销系统内部的任何成本。因此,如果分叉选择规则给支付更多资金成本的一方带来了优势,那么就可以建立一个软分叉来完全抵消这些成本。
如果分叉选择规则涉及系统外部的成本,这将被视为PoW,而不是PoS。
论点2:
“少量的非参与者可以使攻击变得昂贵”
如果攻击者可以控制重新分配所有的钱,而且所有的成本都是系统内部的,那么把攻击称为 “昂贵 “是没有意义的。
攻击者可以改变规则,使其不昂贵。
LionLikesCookies #
一位来自Cardano的社区成员,他站出来解释了PoS的运作原因。
Lion的论点是,PoS在游戏理论上与比特币的PoW在这种攻击上是一样的。而比特币的工作事实证明了PoS也可以工作。
这与Vitalik在2015年1月在他的P+epsilon论文中的 “进一步的后果 “部分支持PoS的论点基本相同。
我在本文的 “审查制度可能是好的 “一节中解释了为什么这种贿赂攻击不能针对工作证明进行。
sebastiengllmt #
一个不同的Cardano社区成员解释了PoS的工作原因。
reddit上的讨论贴: https://www.reddit.com/r/cardano/comments/cy52ab/i_attempted_to_use_math_to_show_that_cardanos/
Sebast的论点是,我们不可能知道要贿赂每个验证者多少钱,因为我们不知道在系统中拥有利益的总人数。
解决这个问题的方法是,攻击者的智能合约被编程为支付贿赂,所有这些智能合约应该慢慢地提供越来越高的贿赂,直到我们有足够的验证人池的一部分参与。这样一来,攻击者只需要在贿赂上花费他所需要的最低金额。
乔希 #
Josh是Cardano社区的第三位成员,他对PoS的工作原理给出了一个完全不同的解释。
根据Josh的说法,“你必须贿赂51%的网络价值才能摧毁100%的网络”
乍看之下确实合理,但博弈论研究者至少从1833年起就知道这并不总是正确的。
让我们假设乔希是对的,我们将用矛盾证明法来说明这不可能是对的。
A:让我们假设(贿赂用户的成本)=(他们拥有的阿达的价值)。
B:我们知道。(贿赂的成本)=(拥有的价值)*(他们的投票是关键性的概率)
将A插入B–>(持有的价值)=(持有的价值)*(他们的投票是关键性的概率)
两边都除以(持有的价值)->1=(他们的投票是关键的概率)
所以我们已经表明,所有用户的投票都是关键性的。所以任何单个用户都必须对投票结果有100%的控制权。
但是,如果有超过1个用户,这不可能是真的。如果两个用户在他们想要的结果上有分歧,他们就不可能同时对结果有100%的控制。
因此,我们已经证明了最初的前提(贿赂用户的成本)=(他们拥有的阿达的价值),我们已经证明了他的前提一定是假的,因为它把我们引向了一个矛盾。
petko #
petko是来自NXT的社区。NXT是最古老的PoS区块链之一,所以他有经济利益来解释为什么PoS是可能的。
petko的论点是,要想贿赂别人,而其中一个人又必须相信另一个人不会带着钱跑掉,这是不可能的。
但是,区块链智能合约系统的设计正是为了实现无信任的合约,包括贿赂。
这和Josh的论点是一样的。
Lior Yaffe #
Lior Yaffe是一个程序员,负责NXT、Ardor和Ignis的首席开发。
以下是他关于为什么贿赂软分叉攻击不能发生的论点 https://twitter.com/lioryaffe/status/1192320643511017473?s=20
根据Lior的说法,这种攻击是 “荒谬的”。而且它在实践中不可能发生。他举了一个 “NoS “攻击的例子来澄清他对这个问题的立场。
我想他说的 “NoS “是指nothing-at-stake-攻击,这个话题在2014年11月就已经解决了 https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/ 这让我觉得Lior至少从2014年开始就没有关注过PoS的研究。我想这是有道理的,因为NXT是在2013年推出的,而且是基于我们在2013年对PoS的理解。
我不明白Lior想做什么论证。不清楚Lior是否读过他所评论的论文。我怀疑Lior只是想在PoS上发出美德信号,他实际上对学习任何东西或教我们任何东西不感兴趣。
Veil #
Veil对于为什么贿赂-软叉攻击不能打破他们的系统的论点是这样的。我们可以使用隐私,所以不可能知道谁是你想贿赂的验证者。
如果用户想保持隐私,环形签名的效果很好。
贿赂的问题是,区块链生产者有动机有目的地暴露数据以破坏隐私,因为这是他们收到贿赂的唯一途径。你可能会认为,有可能发明一个复杂的密码学方案,以便不可能透露你是如何投票的,即使你想这样做。但我认为我有一个很好的论据,即这样的方案是不可能的。
共识机制的一个理想属性是,它不应该仅仅因为其中一个参与者离线而冻结。因此,这意味着无论我是否参与创建,区块创建者都需要能够计算出下一个共识状态。这意味着他们可以使用一个区块的任何子集的TXS来重新计算下一个共识状态。
通过比较包括各种可用txs子集的结果,他们最终能够得出每个单独的txs是如何影响共识状态的。
一个攻击者可以获得所有的私钥和用于生成所有加密投票的熵。他必须有可能重新追踪每张加密票的产生步骤。
Maximilian Roszko #
他在这个电报组中与我聊天 https://t.me/cryptocodereviews
他的第一个论点是,协调贿赂会很困难。
但这是一个可解决的用户体验问题。
我们必须假设人们更愿意拥有更多的价值而不是更少。计算不同可能的用户策略的预期利润,那是一个数学问题。所以计算用户行为是一个数学问题。这意味着安全是一个数学问题。
他的第二个论点是 “有一个非常简单的防御贿赂攻击的方法,那就是反贿赂攻击,我只比你多贿赂一小部分,并使我们软分叉协议,你的所有资金都归我。现在我保卫了网络,没有任何损失,事实上也许我还从中赚了一些钱……”
捍卫者可以尝试进行反贿赂。因此,该系统退化为谁愿意支付最多的游戏,谁就能获胜。这是一种失败模式。
如果谁愿意付最多的钱,谁就拥有完全的控制权,而完全的控制权可以让你打印更多的硬币,并把它们送给自己,那么在这样的情况下,不清楚网络甚至能够就单一版本的历史达成一致。
他提出了第三个和第四个论点,与petko的论点和Josh的论点相同。
阿尔弗雷德 #
Alfred的论点是,如果软分叉贿赂攻击成功,那么我们可以使用较慢的社会共识层来回滚被攻击的区块,并删除所有参与过的人的股权。
Emin Gun Sirer #
Emin是AvaLabs的创始人,该公司正在推出Ava加密货币,该货币使用Avalanche PoS共识机制。
他对软分叉贿赂攻击提议的回应。“在实践中,大多数验证者,就像大多数矿工一样,是良性的,按照规定遵守协议,而不是玩聪明的游戏。当人们进行攻击时,生活就会变得更加有趣,但事实是90%以上的参与者通常是诚实和头脑简单的。”
假设90%的人是诚实的,那么编写一个安全的PoS共识机制就变得微不足道了。在加密货币工程中,假设造币者有90%的诚实度是不典型的。
通常情况下,我们对用户动机进行这样的建模。10%是攻击者,他们愿意承担损失以损害协议,1%是利他主义者,他们愿意承担损失以帮助协议,89%是自利者,他们做任何能让自己赚到最多钱的事情。
由于混乱造成的成本,这是一个可以解决的用户体验问题。一个有动机的攻击者可以创造足够的工具,将混乱的成本降低到零。
例如,攻击者可以使用预测市场作为测谎器,这样我们就可以在经济上保证攻击者提供给我们的软件的某些事实是真的。即使做假者本人并不了解该软件。如果了解一款软件的功能就像在市场上查询股票价格一样容易,那么你就不需要技术专长。
我们必须假设用户更喜欢拥有更多的价值,而不是更少,这意味着安全是一个计算问题。
查尔斯-霍斯金森 #
Charles是Cardano的创始人,这是一个使用Ouroboros的区块链。
他对软分叉贿赂攻击提议的回应。“一种不可能发生的攻击”
结论 #
支持PoS的回应并不一致。许多人同意PoS对贿赂-软分叉攻击是安全的,但他们都有不同的理由相信这一点,而这些理由都不能让我信服。