Cointime

扫码下载App
iOS & Android

协议的可信度从何而来?

原文链接:Seeing like a protocol

本文作者:BARNABÉ MONNOT  编译:CoinTime

在过去的几个月里,我一直在强调提议者与构建者的分离,以及更普遍的委托人与代理人问题。其中一个原因是研究问题的深度,引入了共识层和执行层的混合考虑,以及介于两者之间的一切,如MEV、交易供应网络和不断增长的协议外市场和机构网络。

然而,我认为PBS如此有趣的原因更多地与其作为一种类似于Rosetta Stone的协议发展方向的角色有关。其中一些与协议的政治经济学有关,而不是建立在其之上的层。协议开发是否应该纯粹是被动的,并且总是试图在其上层投掷给它的最新任务之后运行?这是一种粗略的简化,忽略了面向协议开发的良性反馈循环和设定节奏的能力,例如重新关注以rollup为中心的路线图的情况。然而,当人们谈论PBS时,他们通常使用这种简化观点,认为该协议落后于其他所有参与者,并永远注定要跟随他们的步伐。

它更多地与一个基本问题有关,我认为这是协议的边界,特别是我们定义边界的能力,以及我们捍卫边界的能力。为了探索这一边界,我们需要了解是什么赋予了协议机制以可信性,以及这种可信度是如何被协议环境中的其他机制在其边界之外加强或侵蚀的。

突破围栏

我从验证者集是一个非常昂贵的Schelling围栏的观点开始,这个围栏代表了对协议代理行为的共同期望。质押是一种昂贵的信号传递行为,体现了“如果我违反协议的目标,我愿意失去部分或全部这个质押”的信息。

以太坊协议将其执行委托给一个验证者网络。

这个围栏配备了高级装置,使奖励良好行为和惩罚不良行为的负担自动化。奖励和惩罚以逐渐加重的措施分配,把握着一个平衡点,既能保证足够的安全性,又不会因过度严厉而吓跑更多的安全性,也不会因过于温和而让不良行为者的影响在系统上持续存在。

该协议规定了一系列行为,这些行为会导致执行该协议的代理获得奖励或惩罚。这些代理最终会产生一个区块链,希望它能与协议试图诱导的东西相匹配,例如一个无重组、无审查、最大程度实现福利的区块链。

然而,“协议目标”远远超出了这些装置的范围。以下是一种不完美的表述方式:协议看不到但关心的事情。但是,在协议的绝对主义观点中,这种表述是错误的,因为协议只是并且完全是它所看到的。它看不到但关心的事情存在于所有参与协议执行的代理人的期望中,从验证者到用户以及中间的其他所有人,通常被称为“社区”。

该协议的扩展范围很广,但并没有看到验证者所做的一切。

突破围栏案例研究

社区有一种口头传统,用来确切地说明什么被视为突破围栏(即使围栏本身没有意识到它被破坏了!)以及它相应的应对措施。让我们回顾一些情况,并在这样做的过程中,理解协议中有多少没有看到的东西。

  • 在终结性小工具中产生安全故障,试图恢复已终结的区块

要想打破围栏,需要社会输入的形式,在可用的选项中选择有效的最终确定的检查点。在这一点之后,通过包括故障证据,在常规协议逻辑中对双重最终确定者进行大范围的削减。

  • 贿赂验证者以影响分叉选择和重组区块(类似于“强制审查”)

这很可能是突破围栏,需要将受贿委员会的成员分叉出去。。

  • 故意完成无效和恶意的状态转换

有人试图通过重写状态来窃取东西,并希望它成为正式版本。这绝对是突破围栏,需要将最终委员会的成员分叉出去。

  • 故意最终确定一个无效但诚实的状态转换

DAO就是其中之一,这是一个罕见的社区推翻其最初建立的协议的例子(“实际上,我们不想让你这样做”)。对一些人来说,这并没有突破围栏,也就是说,它不需要矿工整合的干预来防御无效的转换。对其他人来说,这是一次突破,需要分叉出不合规的矿工并推出Ethereum Classic。

  • 无意中完成了无效的状态转换,例如,由于某些多数客户端的共识错误而导致

这是一次突破围栏,但可以从最后一个有效的状态转换中“重启”,或者继续进行,并假装一开始围栏从未被破坏过,同时修复有问题的客户端?

  • 验证者职责履行不及时

也被称为时间游戏,验证者在职责的及时性方面可能有相互冲突的动机。他们可能希望延迟提出区块,直到最后一刻以获得更多的MEV奖励,或者希望延迟作为验证者的投票以确保正确性。这悄然地突破了围栏,因为协议对时间的理解完全基于验证者履行职责的节奏,但是社区可能可以有统计学意义地识别那些不及时履行职责的验证者,并采取相应措施。

  • 对验证者进行DoS,以防止他们提出区块,从而使在线的未受DoS攻击的验证者失去奖励

这是一次突破围栏,但很难确定罪魁祸首,也不清楚会发生什么。

  • 将没有通过公共以太坊内存池传播的交易包含进去

这个围栏很可能首先被矿工向自己/矿池支付的费用(也许被认为是可以接受的)所破坏,然后被矿池提供的独家包含协议所破坏。

  • 将区块内容按与降低的Gas价格排序不同的方式进行排序。

一开始可能并不清楚这是原始的围栏,有些人可能认为按接收时间以外的任何方式对交易进行排序(假设在供应受限时满足一定的储备价格)就是突破围栏。但是随着MEV的出现,连同独家交易一起,这个围栏被打破了,允许非协议参与者在协议外确定区块排序。

区块排序逃离了协议的范围,或者,根据你的立场,它从未真正开始存在。
  • 将区块链生产完全外包

这就是前面两个突破性例子的逻辑终点。可能有一种隐含的期望,即验证和块构建不是两件不同的事情,但事实证明这也是可以模块化的。

任何没卖出的物品都是可以出售的。
  • 提议者cartel将EIP-1559基本费用降至约0,为自己提取交易费用

在这种攻击中,区块生产者cartel会故意将他们的区块填充不足,以逐渐将基础费用降至零,并通过优先费用捕获拥堵费用,而不是将其烧毁。这种攻击在Roughgarden对EIP-1559的分析中第7节中进行了描述。该攻击可能与人为的供应限制相结合,从潜在的区块空间需求中提取垄断租金。

  • 对脱离cartel的区块进行重组/审查

回到上面处理执行硬审查的验证者的情况,这很可能突破了围栏,需要将cartel成员分叉出去。

  • 没有重新组织/审查偏离cartel的区块

在攻击的任何时候,任何cartel成员都有一种短视的、贪婪的激励去偏离cartel的规则,抓住其他cartel成员留下的费用。这会在cartel的勾结动态中造成不稳定性。没有偏离的cartel成员可能仍然会突破围栏,除非cartel在此之前瓦解,否则社区可能会将这些成员分叉出去。

  • 激活MEV烧毁

假设有一个竞争的构建者市场,所有提取的价值最终都会流向验证者,因为构建者竞争将尽可能多的费用交给协议,包括拥堵费用,即使它们一开始没有被EIP-1559烧毁。MEV烧毁可能削弱了首先运行“将基础费用降至零”的攻击的激励。

  • 贿赂验证者以打败MEV烧毁机制并向协议报告

但mev烧毁机制依赖于诚实的大多数证明者,他们代表协议来执行拍卖的可信度。如果这个诚实但理性的大多数被贿赂打败,社区可以决定将他们分叉出去。

  • 可识别验证者的系统审查

可能会突破围栏,可能会引发分叉。

协议自省和协议代理

通读这篇文章,我们会感觉到一种普遍的模式,或反复出现的主题:

协议自省

该协议通过可信的信号获得了自省,这是对其自身操作可读性的一种衡量。例如,FFG共识机制基于一个负责任的共识工具,为链式前缀的最终性提供自省。基本费用为系统中的拥堵度量提供了自省。MEV烧毁将依赖于共识出价,它向提议者揭示了区块价值的可信信号(超过了EIP-1559通过烧毁移除的东西)。

根据我们收到的信号,我们什么时候知道围栏被突破了?这种信号的范围从明确的(两个冲突检查点的最终确定对协议来说是可读的)到更模糊的(链的可用部分的重新组织或基本费用为零可能不表明有恶意)。这种知识也取决于观众:从协议的角度来看,一些明确的东西对社区来说是明确的,但反过来却不一定成立。

协议代理

当故障被协议识别时,它也可能是可操作的。如果两个冲突的检查点被最终确定,协议用户只需要协调使用哪一方作为链的合法延续,协议的惩罚机制会处理剩下的问题。但是,“将基础费用降至零”的信号不是这样的情况:尽管以太坊区块空间的需求低于目标供应的可能性不大,但也不是完全不可能的。如果协议无法确定是否存在故障,它也无法对此采取任何措施。

问责制能够增强代理效应。如果我们能够识别故障,一旦它被识别出来,我们能够明确地归因于故障吗?在这里,有时协议和社区都认可有罪方,有时只有社区认可,有时甚至这也不清楚(例如,DoS下一个提议者)。对于无法归因的故障,例如离线验证者,协议必须依靠嘈杂的信号(错过的时间槽或错误的投票)来确定惩罚。

围栏升级案例研究

Vitalik的年度路线图上发现的大量升级旨在实现以下目标:突破协议的限制,升级其自动化防御系统。

我们现在重新审视案例研究,并展示这些机制是如何增加协议自省和代理的。

  • 试图“取消”最终事件的安全故障

弱主观性是协议的极限,在某个时候,选择从“好的”检查点重新启动还是从“恶意”的选项重新启动,取决于社会决策过程,除非你相信“好的”=“(挂钟)最早的”,并愿意信任像巴比伦链式结构一样可靠地提供该信号。

  • 贿赂证明者来扰乱分叉选择和重组区块

单时隙最终性(SSF)将大多数重新组织场景推到最终性工具的安全故障案例中,假设其具有某种程度的自动恢复机制,如上述点所描述的。如果没有足够的验证者对最终性进行认证,重新组织将是可用链之一,其可读性并不是那么清晰。然而,使用SSF,我们比使用当前的Gasper协议更快地提供可读性。

  • 故意完成无效和恶意的状态转换

隐含的故障或有效性证明可以在共识层和执行层触发自动惩罚措施(例如,惩罚提出无效区块的验证者)。

  • 故意完成无效但诚实的状态转换

这里有一个例子,协议自己对其有效性的自省被社区禁用,这是降级的一个例子。

  • 无意中完成了无效的状态转换,例如,由于一个共识错误的结果

如今,协议对其有效性的自省依赖于大多数验证者在构建链时应用区块有效性规则。协议通过有效性证明进一步了解其状态转换的有效性,例如,通过本地zkEVM,假设状态转换函数(STF)的电路正确编程。如果验证者客户端生成无效证明(例如,如果它误报了STF),则其生成的区块将被忽略。

  • 验证者职责履行不及时

认证者是及时性的最终仲裁者,通过他们的投票赋予分叉权重,简洁地表达了他们对链的当前观点。尽管如此,分叉选择升级,例如(块,时隙)分叉选择,旨在提供更细致的决策空间,以确定可用链的结果,例如,区块是否按时接收,是否接收到了区块等。

  • 对验证者进行DoS攻击,以防止他们提出建议,使在线的非DoS验证者失去积累的奖励

秘密单个领导者选举(SSLE)对除了提议者自己以外的所有人都保密,直到区块被提议。在这种情况下,协议不会看到下一个提议者的身份,这可以防止一些有针对性的破坏行为。

  • 包括未通过公共以太坊内存池传播的交易

目前没有针对此攻击的路线图项,但如果有的话,它可能依赖于对内存池内容的某种共识机制(“大多数委员会成员是否看到了此交易?”),只允许经过验证集广泛确认的交易进入任何区块。

  • 对区块内容的排序与对gas价格的排序不同

有很多方法可以将提议者绑定到特定的排序。额外的区块有效性条件可能需要一定的排序,例如,降低gas价格。像Themis这样的排序协议基本上是内存池共识,除了成员集之外,还具有显示有序列表的附加属性。区块有效性可能取决于从一轮Themis中收到证书。

  • 完全外包区块生产

Enshrined PBS试图恢复某种程度的控制,规范区块提议者将区块构建外包给第三方的条件。在协议中加入对MEV捕获和再分配的共识出价,进一步提高PBS拍卖信号的可信度。

  • 提议者cartel将EIP-1559基本费用降至约0,为自己提取交易费用

内存池共识机制会向协议提供信号,尽管有足够的需求满足底价,但区块会被人为清空。这个信号可以用来忽略不包括内存池共识集中所有交易的区块,从而启用协议代理。

  • 可识别验证者的系统审查

由诚实的验证者准备的收录列表可以作为审查信号和防御措施。如果审查的验证者不想尊重包含列表,他们总是有选择不提出区块的选项,或者将其区块人为填充以满足包含列表的回退要求。在这两种情况下,即使填充区块的成本高于审查验证者从私人订单流中获得的收入,审查验证者的利润也会受到损害。证明者通过分叉选择来维护包含列表的有效性和满意度。

大多数上述机制通过依赖某种形式的共识来表达信号,这些共识得到了诚实的多数论点的支持,或者在排序协议或依赖类似BFT结构的机制的情况下,由超级多数支持。同样,这些信号可能会被一致的cartel禁用或变得不可信,cartel还必须审查成员的脱离的尝试,以确保cartel的控制力。

在以太坊权益证明中,召集一个运行任何或所有这些机制的委员会相对容易。每个时隙,都会召唤一个提议者制作一个区块,然后从活跃验证者的较大集合中随机抽样1/32的验证者作为证明者,在投票中表达他们对当前可用链和最终性机制的看法。通过抽样,委员会被认为拥有高概率的多数诚实成员。人们提出了各种建议,以使证明者承担更多的职责,例如Shutterized Beacon Chain,它在执行有效载荷中添加了加密交易的阈值提交——披露方案。

协议必须只看到它愿意捍卫的东西

我们以一个标题开始这一部分,缩短了论点,给出了结论,但让我们看看如何做到这一点。

作为承诺装置的协议

我的理解是,协议的发展迄今为止受到反证法的启发:如果协议无法检测到某些行为,那么它就无法防御它们。确实,如果协议没有可信的信号来执行动作,那么它将无法对破坏行为做出任何反应,尽管协议的社区可能会采取某些措施。自然地,这种观点推动协议不断扩展其边界。

我在最近的许多演讲中都谈到了“根本”委托代理问题(PAP),即协议将其执行委托给验证者,他们希望遵循协议规范的字面要求。但事实证明,这甚至不是根本的PAP,因为它之前是社区将其意愿委托给协议本身。该协议本身起着承诺装置的作用,体现了社区的意愿。将代理置于协议层面,而不是掌握在社区手中,这是建立可信度的方式。

社区将以太坊协议作为一种承诺装置,但免除承诺的验证者会诚实地行事吗?

这种巧妙的手法使工程师们有了可信度: 社区并不是无能为力的,它总是可以介入并硬性规定它所关心的结果,就像它在DAO中所做的那样,但是通过建立一个协议的自动机,它可以远离争端。通过自省和代理,自动机被赋予了权力,因此我们可以用以下规则总结这种构造:

协议可信度=协议自省+协议代理

建立可信度的权衡是规定性的。为了充分捍卫一个属于社区意志的特定结果,协议必须对这个特定结果的实现变得有主见,例如,交易被一些接收时间的共识协议排序,基本费用被烧毁,PBS拍卖出售整个区块,建立的区块尊重审查制度的阻力机制等等。这造成了协议锁定次优结果的风险,即福利较低或分配不充分。但更重要的是,它通过将防御范围不断扩大的责任,加重了两个步骤与社区分离的验证者集合的负担。

有两种力量随着时间的推移而发挥作用,一种是积极的,一种是消极的。随着时间的推移,成功捍卫社区意愿的协议进一步体现了这一结果,这是一种林迪效应,在这种效应中,结果(例如,保持基本费用的可信度)变得越来越可辩护或无可争议。另一方面,随着以太坊的成熟,随着其经济的复杂化,并进一步嵌入广泛的依赖和互动网络中,验证者的激励将更加直接地转移。新的领域,如SUAVE或Eigenlayer,作为协议外的可信度引擎,其中验证者的收益可能会被协议没有“外省”的游戏扭曲。随着收益的变化,验证者在协议规范方面的诚实和理性行为之间的差距进一步扩大。当次优结果被协议锁定时,情况尤其如此,因为这样游戏扭曲者就可以直接从福利差距中贿赂验证者:如果审查机制破坏了收入,游戏扭曲者可以利用损失的收入来补贴对机制的偏差,方法是事先承诺贿赂,但一旦获得收入,就事后执行。

验证者是协议和基础设施网络的交汇点,它通过引入委托——代理问题(PAP)直接转移了验证者的激励。

如何建立协议可信度

重新评估协议权力的确切归属,改变了我对协议开发的看法。我认为,我们不仅可以通过构建更多升级和扩展协议自省和代理的范围来设计协议的可信度,同样正确的是,我们还可以通过构建升级来实现我们知道社区一旦建立在协议中就会捍卫的结果,从而设计协议的可信度。

协议可信度=协议自省+协议代理+社区的最后防御

如今,社区并没有强制要求MEV烧毁。如果没有在协议中建立一个可信的机制,根据社区的意愿(如果确实是意愿的话)烧毁MEV是很困难的。可能有一个广泛的、非协议化的协议,即验证者必须将他们的费用接收者设置为空地址,并在被忽视和重新组织的威胁下烧毁他们收到的所有奖励。但是,仅仅要求验证者将其费用接收者设置为烧毁地址并不足以“实现MEV烧毁”,因为验证者可以简单地用不同的地址捕获MEV。这种偏差对协议来说是难以辨认的,尽管对社区来说可能是显而易见的。

当验证者被要求用他们从一些无权限拍卖中得到的最高出价来构建他们的区块时,故障的可读性和责任性就会增加,无权限的性质保证了竞争性,从而保证了作为区块真实价值代表的出价的可信度。在目前所有协议层面的MEV获取提案中,这一要求是由大多数诚实的参与者来执行的,他们会拒绝出价低于他们认为的最佳报价的区块,从而对最佳报价的价值形成共识。将MEV获取协议化是将证明者作为数据可用性oracle和及时性代理的行为,其中数据就是出价。可以在协议之外完成,而不需要将作为oracle的代表协议化,通过依赖更模糊的oracle,例如社区监控出价的公共渠道,并收集偏差的证据(“我们都及时看到了出价,但提议者没有使用它!”),来完成协议外的MEV获取。前者通过“定义清晰的群体边界”和提供“由适当人员监控或对其负责”的“有效监控”,来建立可信度,这是Ostrom公共资源管理原则中的第一和第四原则,即“群体”由承诺执行协议规则的质押者组成,一次一个Gwei建立Schelling围栏。

因此,在协议级别使用可信机制构建MEV烧毁在技术上并不能比我们今天所能做的更多,但它通过让我们最喜欢的自动机假装它对MEV烧毁的发生负有责任,从而在社会上提高了可信度。协议化是一种承诺行为,当体现承诺的机制不可信时,承诺肯定会更弱。例如,如果协议不可读的侧面合约/链下协议在EIP-1559或MEV烧毁的朴素设计中起作用,那么即使是稍微弱的玩家勾结也可以击败机制,这在博弈论分析中是很明显的。但最终,即使是一个可信的机制也可能被诚实的多数假设所击败,而这一假定是协议大多数机制的基础。一旦部署了该机制,该机制最终是否会被击败还只是一个未知数,尤其是当协议外的激励措施改变了验证者的行为,而社区不愿意介入捍卫它时。

协议开发的作用

因此,在部分逃脱协议范围的验证者和协议不完全体现其意愿的社区之间,我们有一个不断与其环境对话的协议。在这个框架中,协议发展的柏拉图式观点是没有空间的,我们总是朝着理想化的形状前进,也许这就是比特币所追寻的。相反,协议的发展是由其环境中的机构的政治经济所决定的,协议是由许多其他机构组成的不断扩大的网络中的一个。

在这里,如果其他机构通过改变协议代理人的激励机制来削弱可信度,那么要创造可信度,仅仅通过进一步的反思和代理来扩展协议的边界是不够的。只有在社区愿意最终捍卫协议的优选结果、即使需要分叉部分验证者集合的代价也要强制实现它关心的结果时,可信度才得以完全获得。因此,与其说协议无法捍卫它看不到的东西,我们可以反驳说,协议必须只看到它绝对愿意捍卫的东西,以免我们被误导,认为协议最终代表了我们的意愿。

这个标准可能太高了。可能存在我们作为社区无法完全评估升级所引发的结果对我们有多么重要的情况。事实上,我认为这对目前所有的升级都可能是正确的,因为它们首先是由一组相当少的人进行研究、实施和部署的,直到它们成为社区其他成员的标准为止。

然而,用这些术语来界定这个问题(“如果到了那个时候,我们是否会在协议的执行之外捍卫这个东西?”)可能是一个强制功能,以检查我们的升级的可信度延伸到什么程度。这也是一个有用的指南,可以理解协议在其环境中的特权位置,作为社区意愿和最终回答给验证者集合的经济代理和基础设施的网络交互的会合地点。通过这样做,我们有望更准确地了解协议和它所处以及发展的更大系统之间的力量平衡,为开发过程提供进一步的信息。

*本文由CoinTime整理编译,转载请注明来源。

评论

所有评论

推荐阅读