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

本章节详细描述了Casper在研究权益证明(Proof-of-Stake, PoS)共识机制的过程中,特别是在解决了长程攻击问题后,发现了传统共识研究的存在和相关性。文章探讨了PoS中的关键技术问题,如区块创建、激励机制、最终性共识等,并介绍了Tendermint协议的简单性和安全性。

Casper 的历史 — 第三章

本章描述了我们的权益证明研究,从解决长距离攻击问题的方案发现开始,到第一次意识到传统区块链共识研究的存在及其相关性为止。

这个“狂野西部”时期的特点是广泛的实验、探索和无知。因此,本章的大部分内容都是相对杂乱无章的协议想法。该时期的结束标志着我被一个金融密码学邮件列表踢出,并因此了解到(并立即成为 Jae Kwon 的 Tendermint 的粉丝)。

“零点”上的权益证明共识

2014 年 9 月 20 日 — 2014 年 12 月

我们最初对“很快解决权益证明”的信心非常足,他们已经发现了“根本性”的无事可做和长距离攻击问题的解决方案。然而,我们很快发现(几乎)所有关键的技术问题仍未得到解答。

我们不知道区块将如何创建。我们不确切知道激励机制会是什么,只是很明显因“双重签名”而失去押金,无论那意味着什么。我们没有清晰的表达我们协议思想与我们常常隐含的时间假设(例如,同步时钟和可预测的网络延迟)之间的关系。我们依赖于这样的想法:客户端最终会选择同一链,因为他们具有相同的分叉选择规则(以提供“共识”),没有完全意识到该机制依赖于强同步假设。

押金轮换和共识最终性

从我们对长距离攻击问题的解决方案中,我们知道我们需要一种方法让区块链的客户端“最终”同意安全押金集的变更,也就是说,该协议是不可逆的。

变更设置的绑定利益相关者的分叉可能意味着客户端可能永久失去共识:一个在时间 T 离线并计划在时间 T + 1 返回的客户端需要保障,时间 T 到时间 T + 1 的押金并没有因为区块链的分叉而被“取消”。 请参见此插图以释义。 拥有关于押金列表不正确信息的客户端可能会被轻易攻击,因为非共识安全押金的价格是 0。

因此,从一开始,我们就知道必须有“最终共识”才能使权益证明有效。

我最初想到的想法是利用安全押金本身对区块链进行检查点,将开发者的检查点替换为权益证明检查点。这些检查点的哈希可以被客户端用于验证押金列表的变更。这些检查点将在每 X 个块时发生,并且在高度为 N*X 的区块上的“检查点”将在高度为 (N+1)*X 开始(有时间去通过它们的“最长链”的共享尾部达成协议),同时需要绑定利益相关者的超多数。因此,在一个高度上存在两个有效检查点将一定触发削减条件。(Vitalik 通常更喜欢更连续、更低开销的机制,并独立提出了 [“弱主观性”](http://(https//blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/%29.) 打分规则,以更逐步的方式提供最终性。)

针对“区块制作者”和“验证签名”的抽样

一开始我们就很清楚需要有一个系统来抽样绑定利益相关者,以随机(根据他们的安全押金的比例)产生区块,以努力产生增长的区块链。还逐渐明确,我们可以通过额外抽样一组绑定利益相关者来生成区块的“验证签名”,当区块创建时。由于拥有押金的利益相关者无需进行工作量证明,他们在看到新块后能够立即作出有意义的经济承诺。

我当时只花了一点力气考虑此抽样过程中的熵生成问题,因为抽样是对具有预定比例的控制权的利益相关者的攻击者的防御,而不是针对贿赂对手(贿赂节点在被抽样后)。因此,我们的经济安全必须来自因违反经济承诺而引发的削减条件,而不仅仅依赖抽样。

削减条件:

于是我们开始 juggling 削减条件。当一个绑定节点在相同高度创建或签署两个(blocks)时,很容易削减押金,这被视为“明显不当行为”。

那么在两个不同高度的不同分叉上,有两个区块呢?这很棘手。我们确定需要通过对任何(其他)分叉中绑定利益相关者的参与来抑制分叉带来的不激励。然而,我们仍必须允许绑定节点在其“特定视图”中对评分最高的分叉上进行验证签名,而不受到惩罚。如果在创建对分叉 2 的签名时,分叉 2 的分数高于分叉 1,那么在分叉 1 上签署一个块后再在分叉 2 上签署一个块,完全是诚实的。这恰如 PoW 矿工在攻击者的分叉比“受害者分叉”更长时仍然开采区块。

当时我们没有足够的工具来使在不同高度的两个分叉上的签名成为可削减的罪行,而不惩罚绑定利益相关者为签署最高得分链。

我探索了让绑定利益相关者就承诺“我永远不会在不是这个 [给定] 区块链上的区块上签名”的削减规则。我认为这个规则在阻止链分叉方面可能非常有效,只要所有绑定节点能够对同一分叉做出承诺。然而,如果他们不能,那么他们将失去参与的资格,或者将失去押金。这似乎非常严厉,因此我知道我们必须确保绑定利益相关者能够就同一分叉做出此承诺,以使该削减规则有效。

考虑这一削减规则是我第一次接触传统共识研究,尽管那时我并不知道它的重要性或存在。Vitalik 总是希望保持削减规则简单,并且(除非我弄错)在几个月后他才开始喜欢交叉高度削减条件,当时我们通过 Casper 的“下注周期”达成了“共识状态最终性”。无论如何,我无法说服自己绑定利益相关者能够在同一分叉上做出这些承诺(除非他们在前文中提到的检查点示例中对一个非常老的区块作出承诺)。共识是出奇的难。

拜占庭证明的审查

Vitalik 和我开始担心拜占庭行为证据的审查,因为这种审查可能会破坏基于安全押金的方法的经济安全,因为这些证明对于触发削减条件是必要的。

请注意,虽然我们(或者至少我没有)对传统共识研究的实际内容并不是很清楚,但我们确实使用了“拜占庭行为”这一术语,并且(至少我)认为区块链已经“解决了拜占庭将军问题”。这从我作为比特币用户时从 Andreas Antonopoulos 那里学到的。

我声称客户端能够通过 1)观察拜占庭证明或可证明的拜占庭行为以及 2)尝试将这些证明发布到区块链来识别拜占庭证明的审查。这个过程将通过一个互动客户端协议来使用,客户端可以将审查的区块链视为无效,或者至少认为其分数低于未审查的区块链的分叉。我并没有意识到当时我正在做的同步假设。

权益证明 "狂野西部”的结束开始

在 2014 年 11 月,Peter Todd 和 Vinay Gupta 各自独立迫使我面对一个事实,那就是我正在做出强同步假设(Peter Todd 特别针对我对于网络消息(例如区块和验证签名)将在合理时间内到达所有客户端的假设,而 Vinay 则关注我的客户将拥有同步时钟的假设)。他们让我意识到,我无法将同步的提供外包给“网络堆栈”,而必须尽力减少我的权益证明协议对这些假设的依赖。这标志着我对同步假设开始感兴趣的开始。太棒了!

我开始定义一个“乒乓”消息通过网络发送的协议,以有效地创建心跳,而不是使用时钟和关于消息到达的时间假设。在当时我的 PoS 协议中, p% 的安全押金被抽样用来为每个区块提供验证签名,而 q% 的这些押金权重的签名需要被包含在链中的下一个区块中,以使下一个区块有效。

我努力在不做同步假设的情况下尝试跳过离线的区块制造者,但未能成功。无论我尝试什么(没有时间假设),似乎都可能导致绑定利益相关者在是否跳过一个区块制造者的问题上产生分歧。

经济学与博弈论与计算机科学:金融密码学邮件列表的争论

我不太记得我是如何被邀请的,但我在 2014 年 11 月或 12 月还是以某种方式订阅了一个金融密码学(和区块链)邮件列表。

该邮件列表由我们的朋友 Emin Gün Sirer 和 Byron Gibson 管理,他们努力让学术界参与区块链研究。

当我抵达时,关于经济学与共识的相关性的话题已经在进行中。我记得,有大致可以分为两派关于经济学抑或共识在基于区块链的共识中的重要性。

Vitalik、Jae Kwon 和我都比较坚持认为,经济分析对于研究至关重要。我们讨论了在攻击者所花费的经济成本(无论是损失的押金,还是 PoW 攻击中的电力和资本成本)中保障的安全。

Nick Szabo(明确的反对派领头人)则争辩说,经济分析与“推测脑状态”没有太大区别,并坚持认为故障容忍和共识协议研究(无论是基于区块链还是不基于区块链)是纯粹的计算机科学问题。Szabo 认为生活中存在“重大游戏”和“小游戏”,并且协议内的激励(小游戏)实际上对更大游戏的影响很小,长得多的激励和回报。

Vitalik 和我对这项批评的回应是;尽管“重大游戏”实际上会覆盖“小游戏”的激励,但在协议内激励尽可能多地朝着促进协议保证得到尊重的方向发展是重要的。

Dominic Williams 持有一个合理的“中间立场”,认为进行计算机科学研究 然后 随后添加激励兼容性是很重要的。在 Szabo 分享后,Dominic 也成为“大小游戏”争论的巨大支持者,多年来不断跟我重复这一点 :)Dominic 的观点比我自己的更受欢迎;认为经济学是区块链研究的基础,但相对而言传统共识研究却不是。

当我通过轻微挑衅 Nick Szabo 表达“要谈论区块链就不可能不做经济分析,不管你使用多少计算机科学”的观点时,我被踢出了邮件列表。

我被“Kicked out”的理由是我无视传统共识协议文献。确实,我完全无视。我强烈直觉认为它不可能有那么相关,因为它在从零开始时并没有被设计为经济的。

这个事件是我第一次非常意识到传统共识研究。它为我今后对(经济和非经济)共识协议的兴趣播下了种子。毫无疑问,我并没有被立刻激励去阅读文献。这是相当困难的文献。但我有些故意的无知让我在不阅读文献的事情上感到有点内疚。

我想趁此机会迅速感谢 Gün Sirer 在这个邮件列表上的积极和深思熟虑的参与。我从未听过任何人以如此高的精度和正确性谈论分布式系统和博弈论。我认为这对我有帮助!

我对 Tendermint 的介绍

在邮件列表上争论经济学和共识的经历让我首次认识了 Jae Kwon 和 Tendermint。 Tendermint 是一个基于安全押金的权益证明系统,它基于 传统共识协议

阅读 Tendermint 白皮书后,并与 Jae 本人进行了一次快速的 Skype 通话,我变得能够断言 Tendermint 是“最简单的安全权益证明协议”。这里“安全”的意思是“抵御试图分叉区块链的贿赂攻击者的安全”。

Tendermint 拥有(并且仍然拥有!)每个区块在被添加(“提交”)到区块链之前都会被最终确认的特性。它保证在发生任何分叉时至少 1/3 的安全押金将被削减,无论分叉有多短。这比我当时能够发现的反分叉安全属性强得多。这也意味着很多我们关于安全押金轮换的问题能够轻松处理。与我当时工作的权益证明协议相比,这样的设计简单得美妙。

Tendermint 也是我首次研究的偏向一致性的共识协议。确实,了解 Tendermint 为我引入了传统共识协议,因此对我理解共识协议起到了塑造的作用。

是从 Jae Kwon 那里,Vitalik 和我开始采用将绑定利益相关者称为“绑定验证者”或简称“验证者”的用语。

第四章将讨论我们对区块链领域中的博弈论和经济学看法的重要转变。这种视角的变化代表了 Casper 设计哲学中最重要的部分。

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

0 条评论

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