Casper 的历史 — 第2章 | 作者:Vlad Zamfir

本章节详细介绍了以太坊Casper协议的研究过程,特别是2014年秋季对博弈论和经济安全模型的研究。文章详细阐述了如何通过‘贿赂攻击模型’解决了长期攻击问题,并强调了激励机制设计的重要性。

Casper 的历史 — 第 2 章

转发自以太坊博客。

本章描述了我们在 2014 年秋季进行的博弈论和经济安全建模工作。它讲述了“贿赂攻击者模型”如何直接引导我们的研究找到长范围攻击问题的根本解决方案。

第 2 章:贿赂攻击者、经济安全以及长范围攻击问题

维塔利克和我在相遇之前就一直在思考激励问题,因此“正确设定激励”在权益证明中至关重要这一提议从来没有争论过。 我们从不愿意将“半数币是诚实的”作为安全假设。(这句话很重要,因此加粗强调。)我们知道需要在质押节点的激励和协议的安全保证之间建立某种“激励兼容性”。

我们始终认为,协议可以被视为一个博弈,如果协议的激励鼓励这种行为,就可能导致“坏结果”。我们把这视为潜在的安全问题。安全押金为我们提供了一种清晰的方法来惩罚不当行为;削减条件实际上是决定是否销毁押金的程序。

我们早就观察到,比特币的安全性在比特币价格较高时更强,而在价格较低时则减弱。我们现在也知道,安全押金为攻击者提供了比仅依靠奖励更高的经济效率。 我们清楚地知道经济安全是存在的,我们将其作为优先事项。

贿赂攻击者

我不确定维塔利克在博弈论方面有多少背景知识(尽管显然他的知识超过了我)。在故事开始时,我自己的博弈论知识甚至比现在还要少。但我知道如何识别和计算纳什均衡。如果你还没有学习过纳什均衡,下一段就是为你准备的。

纳什均衡是一个策略组合(玩家的策略选择)及其相应的支付(给 $ETH 或收回 $ETH)的情况,在这种情况下没有任何玩家有动机偏离现有策略。“偏离的动机”意味着“如果他们以某种方式改变他们的做法,他们会获得更多的 $ETH。” 如果你记住了这一点,当你每次听到“纳什均衡”时都想到“单独策略变化没有积分”,你将理解它。

在 2014 年夏末的某个时候,我第一次接触到“贿赂攻击者模型”,当时我在一次 Skype 通话中对维塔利克提出的经济安全问题随口回答道(“我可以贿赂他们去做。”)。我不知道这个想法是从哪里来的。大约一两周后,维塔利克再次问我这个问题,让我进一步发展这个想法。

通过贿赂游戏参与者,你可以修改游戏的支付,从而改变其纳什均衡。 这可能是这样的:

图片上传已损坏,所以.. 查看这里:http://i.imgur.com/owE9V4c.png

贿赂攻击将囚徒困境游戏的纳什均衡从(上,左)改变为(下,右)。在这个示例中,贿赂攻击者的成本是 6,如果选择(下,右)进行游戏。

贿赂攻击者是我们关于经济安全的第一个有用模型。

在贿赂攻击之前,我们通常将经济攻击视为由外部的、协议之外的代币购买者或算力持有者发起的敌意收购。需要一大笔外部资本进入系统才能攻击区块链。通过贿赂攻击,问题变成“贿赂目前现有节点所需的价格是多少,以得到想要的结果?”

我们希望我们尚未定义的权益证明协议的贿赂攻击必须花费大量资金来补偿损失的押金。

撇开“合理性”不谈,这都是我们第一步学习如何进行经济安全推理。使用贿赂攻击者既有趣又简单。你只需查看你需要支付给玩家多少钱才能让他们按照攻击者的意愿行事。我们已经确信,攻击者必须支付与安全押金相当的贿赂才能在试图双重付款时回滚链。我们知道我们可以识别“双重签名”。所以我们很有信心这将使权益证明在面对贿赂攻击者时比工作量证明协议具有可量化的经济安全优势。

长范围攻击的贿赂经济学

维塔利克和我将贿赂攻击者应用于我们的权益证明研究。 我们发现,没有安全押金的 PoS 协议可以通过小额贿赂轻松被击败。你只需支付代币持有者将他们的代币移动到新地址并把现有空地址的钥匙交给你。(我不确定谁最初想到这个主意。)我们坚持使用贿赂模型轻松排除了我们知道的所有权益证明协议。我喜欢这一点。(当时我们还没有听说 Jae Kwon 的 Tendermint、Dominic William 的现已停用的 Pebble,或 Nick Williamson 的 Credits。)

这种贿赂攻击也对基于安全押金的权益证明构成了挑战:当安全押金返还给其原所有者后,贿赂对手可以以最低成本购买其质押者地址的钥匙。

这个攻击与长范围攻击是相同的。 它是获取旧钥匙以控制区块链。这意味着攻击者可以随意创建“虚假历史”。但只有当他们在所有押金过期的高度开始时才行。

因此,在为我们的权益证明协议设置激励之前,我们需要解决长范围攻击问题。 如果我们不解决长范围攻击问题,客户将无法可靠地了解到真正拥有安全押金的是谁。

我们知道开发者检查点可以用来处理长范围攻击问题。我们认为这显然过于中心化。

在我转向权益证明后的几周里,当我住在伦敦附近的斯特凡·图阿尔家中时,我发现客户推理安全押金的自然规则是。 已签名的承诺只有在发送者 当前 拥有押金时才有意义。 换句话说,押金撤回后,这些节点的签名就不再有意义。为什么在你撤回押金后我会信任你?

贿赂攻击模型对此提出了要求。 在押金撤回后,贿赂攻击者几乎不需要任何成本就可以打破承诺。

这意味着客户将持有一份质押节点的列表,并在这些区块未由其中一节点签名时停止区块的门。 忽略当前没有安全押金的节点的共识消息解决/规避了长范围攻击问题。 我们不是根据从创世区块开始的历史验证当前状态,而是根据当前谁持有押金的列表进行验证。

这与工作量证明截然不同。

在工作量证明中,如果一个块与创世区块相连,且块散列满足其链的难度要求,则该块是有效的。在这个基于安全押金的模型中,如果它由持有当前存在押金的利益相关者创建,则该块是有效的。这意味着你需要拥有当前信息才能验证区块链。这种主观性使很多人感到担忧,但对于抵御贿赂攻击者的基于安全押金的权益证明,保持其安全性是必要的。

这一认识使我非常明确,工作量证明的安全模型和权益证明的安全模型在根本上是不可兼容的。因此,我放弃了任何对“混合”PoW/PoS 解决方案的严肃使用。试图从创世区块验证一个权益证明区块链现在似乎非常明显地是错误的。

然而,除了改变身份验证模型之外,我们确实需要提供一种方法来管理这些安全押金列表。 我们必须使用质押节点的签名来管理对质押节点列表的更改,必须在这些质押节点就这些更改达成共识之后进行。 否则,客户将会拥有不同的质押验证者列表,因此他们将无法就以太坊的状态达成一致。

质押时间需要够长,以便客户有时间了解新的、即将到来的质押者列表。 只要客户在线时间够长,他们就可以保持最新。我认为我们可以使用 Twitter 来分享质押节点列表,或至少一个哈希,以便新的和待休眠的客户可以在用户输入哈希后同步。

如果你有错误的验证者列表,你可能会遭遇 中间人攻击但这其实并不那么糟糕。 论点是(而且现在依然是!)你只需要能够信任一个外部来源来获取这个信息一次。 之后一次,你将能够自主更新你的列表——至少如果你能够定期在线,避免“已撤回押金的长范围”。

我知道这可能需要一些时间来适应。但我们只能依靠最新的安全押金。维塔利克起初对这个论点感到有些不安,试图坚持从创世开始进行身份验证的能力,但最终被这种主观性的必要性说服。维塔利克独立提出了他的 弱主观性评分规则,在我看来,这似乎是当时一个完全合理的替代方案,而我的观点基本上是 “让所有押金每隔 N 个区块签名来更新质押节点列表”。

在“无事可做”和长范围攻击问题的棺材上完全钉入了钉子,我们准备开始选择我们的削减条件。

下一章将记录我们在通过指定削减条件来定义共识协议时所学到的内容。我还将告诉你我们与该领域优秀人士讨论我们的研究时所学到的经验。本章所呈现的博弈论和经济建模故事将在第 4 章中继续发展。

  • 原文链接: medium.com/@Vlad_Zamfir/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Vlad_Zamfir
Vlad_Zamfir
江湖只有他的大名,没有他的介绍。