像协议一样看待

  • barnabe
  • 发布于 2023-04-11 18:12
  • 阅读 25

文章深入探讨了以太坊协议开发中的边界问题,着重分析了协议的自省能力(通过可信信号获取)和执行能力(对特定结果的倾向性)。文章通过案例研究,如MEV燃烧、审查制度等,探讨了社区在协议开发中的作用,以及如何通过协议升级来增强协议的可信度。文章还讨论了验证者激励和外部因素对协议可信度的影响,强调协议开发应关注社区愿意捍卫的结果,以确保协议真正代表社区的意愿。

在过去的几个月里,我一直在强调 Proposer-Builder Separation(提议者-构建者分离),以及更普遍的 Principal-Agent Problem(委托代理问题)。其中一个原因是研究问题的深度,它将共识层和执行层,以及两者之间的一切,如 MEV、交易供应网络 以及日益增长的链下市场和机构网络都纳入其中。

但最终,我认为 PBS 如此有趣的原因更多在于它作为协议开发走向的某种罗塞塔石碑所发挥的作用。其中一些与协议的政治经济学及其上层构建的层有关。协议开发应该纯粹是被动的吗,并且总是试图跟在它上层扔给它的最新球后面跑吗?这是一个粗略的简化,它忽略了指导协议开发的良性反馈循环,以及设定节奏的能力,例如重新关注以 rollup 为中心的路线图的情况。1 但这是一个工作简化,当人们谈论 PBS 时经常使用它,认为协议比其他所有参与者都落后一步,并且永远注定要跟随。

更多的是关于一个我开始认为是协议边界的根本问题,特别是我们定义它们的能力,以及我们捍卫它们的能力。为了探索这个边界,我们需要了解是什么赋予协议机制可信度,以及这种可信度如何被协议环境中的其他机制加强或削弱,超出其边界。

破界

我从这里开始,认为验证者集合是一个非常昂贵的 Schelling 栅栏,该栅栏代表了协议代理行为的共同期望。Staking 是一种代价高昂的 signalling 行为,体现了这样的信息:“如果我的行为与协议的目标相反,我愿意损失一部分或全部 stake”。

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

这个栅栏配备了精巧的小工具,可以自动减轻奖励良好行为和惩罚不良行为的负担。奖励和惩罚以渐进的方式分配,在严厉性(吓跑比它保证的更多的安全性)和软弱性(允许不良行为者的影响在系统上持续更长时间)之间划出一条线。2

该协议指定了一组行为,这些行为会导致执行该协议的代理获得奖励或惩罚。这些代理最终产生一个区块链,该区块链有望与协议试图诱导的结果相匹配,例如,一个无重组、无审查、最大化福利的区块链。

然而,“协议目标”的范围远远超出了这些小工具所能触及的范围。以下是一种不完美的表述方式:协议看不到,但关心的事情是存在的。 但这种表述在协议的绝对主义观点中是错误的,在这种观点中,协议仅仅且确切地是它所看到的东西。它看不到,但关心的事情存在于参与执行协议的所有代理的期望中,从验证者到用户以及介于两者之间的所有人,这通常被称为“社区”。

协议范围广泛,但并非验证者所做的一切都能看到。

破界案例研究

社区对什么会被视为破界(即使栅栏本身没有意识到它已被打破!)及其相应的反应有一种口头传统。让我们回顾其中的一些,并在此过程中,感谢协议有多少是看不到的。

  • 在 finality gadget 中产生安全故障,试图回滚已最终确定的区块

    绝对是破界,需要以选择可用选项中的有效已最终确定检查点形式的社会输入。在此之后,通过包含故障证据,在常规协议逻辑中完成对双重 finalizer 的广泛 slashing 。

  • 贿赂证明者以扰乱分叉选择和重组区块(~ “硬审查”)

    很可能破界,分叉出受贿委员会的成员。

  • _故意_最终确定无效且_恶意_的状态转换

    有人试图通过重写状态并希望它成为规范来窃取东西。绝对是破界,分叉出最终确定委员会的成员。

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

    DAO 就是其中之一,这是一个罕见的例子,社区推翻了它最初设置的协议(“实际上,我们不是让你做那个”)。对一些人来说,这并没有破界,即它不需要矿工集干预以防止无效转换。对另一些人来说,这是一个如此大的突破,通过分叉出不合规的矿工并启动以太坊经典来防御。

  • _无意中_最终确定无效的状态转换,例如,由于某些多数客户端中的共识错误

    破界,但要么从最后一个有效的状态转换“重新启动”,要么接受它,并假装栅栏从未被打破过,同时修复有故障的客户端?

  • 未及时履行验证者职责 也被称为 timing games,验证者可能对其职责的及时性存在冲突的激励。他们可能希望延迟提议区块直到最后一刻以获得更多的 MEV 奖励,或者可能希望延迟投票作为证明者以确保正确性。这悄悄地打破了栅栏,因为协议的时间概念完全基于验证者履行其职责的节奏,但社区很可能以统计学上的显着性识别出不及时履行职责的验证者,并采取一些措施。

  • 对验证者进行 DoS 攻击以阻止他们提议,导致奖励累积到在线未受 DoS 攻击的验证者

    破界,但识别罪魁祸首很困难,不清楚会发生什么。

  • 包含未在公共以太坊 mempool 中传播的交易

    这个栅栏可能首先被矿工支付给自己/矿池打破(也许这被认为是没问题的),然后是被矿池提供的独家包含协议。3

  • 以与降序 gas 价格不同的方式对区块内容进行排序

    不清楚这是否是最初的栅栏,有些人可能会认为,除了接收时间之外,以任何其他方式对交易进行排序(假设在供应受限时满足某个保留价格)都是破界。但是,随着 MEV 的出现,这个栅栏以及独家交易一起被打破,并允许非协议参与者在协议之外确定区块排序。

区块排序逃脱了协议的管辖范围,或者,根据你的立场,它从未真正存在过。

  • 完全外包区块生产

    好吧,这是前两个破界例子的逻辑终点。可能存在一个隐含的期望,即验证和区块构建不是两回事,但事实证明这也可以模块化。

任何未售出的商品都可以出售。

  • 提议者卡特尔将 EIP-1559 基础费用降至 ~0,为自己提取交易费用 在此攻击中,区块生产者卡特尔少填充他们的区块,以随着时间的推移将基础费用降至零,而是通过优先级费用捕获拥塞费用,而不是将其烧掉。在 Roughgarden 对 EIP-1559 的分析 的第 7 节中描述了此攻击。该攻击可能与人为的供应限制相结合,以从区块空间的潜在需求中提取垄断租金。

    • 通过对偏离卡特尔的区块进行重组/审查

    回到上面处理验证者进行硬审查的案例,这很可能破界,分叉出卡特尔的成员。

    • 没有对偏离卡特尔的区块进行重组/审查

    在攻击的任何时候,任何卡特尔成员都有短视、贪婪的动机去偏离,并抓住其他卡特尔成员少填充他们的区块而留在桌面上的费用。这会在卡特尔的勾结动态中造成不稳定。不偏离的卡特尔成员可能仍然会破界,社区可能会分叉出这些成员,除非卡特尔在此之前崩溃。

    • 激活 mev-burning

    假设存在一个竞争性的构建者市场,_所有_提取的价值都会损失给验证者,因为构建者竞争将尽可能多的费用(包括拥塞费用,如果它们最初未被 EIP-1559 烧掉)让给协议。mev-burning 可能会削弱首先运行“基础费用降至 0”攻击的动机。

    • 贿赂证明者以击败 mev-burning 机制并向协议报告 0

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

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

    可能破界,可能触发分叉。

协议内省和协议代理

通读这些内容,我们感觉到一种普遍的模式或反复出现的主题:

协议内省

协议通过可信信号获得内省,这是对其自身运营的可读性的一种衡量标准。例如,FFG 共识机制基于可负责的共识小工具,为链前缀的最终性提供内省。基础费用为系统中拥塞程度的衡量提供内省。mev-burning 将依赖于 共识出价,这向提议者揭示了区块价值的可信信号(超过 EIP-1559 通过燃烧移除的价值)。

根据我们收到的信号,我们什么时候知道栅栏被打破了?该信号的范围从明确的(两个冲突检查点的最终确定对于协议来说是可读的)到更模棱两可的(可用链的重组或基础费用降至零可能并不表示恶意意图)。这种知识也取决于查看者:从协议的角度来看明确的事情对于社区来说是明确的,但反过来并不总是成立。

协议代理

当协议可以读取故障时,它也可以可操作。如果两个冲突的检查点已最终确定,则协议用户只需要协调使用哪一侧作为链的合法延续,协议的 slash 设施会处理其余的事情。4 “基础费用降至零”信号并非如此:虽然以太坊区块空间的需求不太可能低于目标供应,但这也不是完全不可能的。如果协议无法确定是否存在故障,它也无法对其采取任何措施。

问责制增强了代理。如果我们能够识别出故障,我们是否可以在识别出故障后明确地归因该故障?在这里,协议和社区有时都能识别出有罪方,有时只有社区能识别出,有时甚至还不清楚(例如,对下一个提议者进行 DoS 攻击)。对于不可归因的故障,例如离线验证者,协议必须依赖于嘈杂的信号(错过的 slot 或错误的投票)来归因惩罚。

升级栅栏的案例研究

Vitalik 的年度路线图 上发现的大量升级旨在实现以下目标:推动协议可以看到的极限,并升级其自动化防御系统的武器库。

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

  • 试图“取消最终确定”已最终确定事件时产生安全故障

弱主观性是协议的最终限制,在某个时候,从“良好”检查点与“恶意”选项重新启动的选择在于社会确定过程,除非你认为“良好”=“(挂钟)最早”,并且愿意信任Babylon链之类的构造来可信地向你提供该信号。

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

Single Slot Finality (SSF) 将大多数重组情况推送到 finality gadget 的安全故障案例,假设该案例具有某种自动化恢复机制,如上一点所述。如果没有足够的验证者证明最终性,则重组是可用链之一,其可读性不太清楚。然而,通过 SSF,我们提供比当前 Gasper 协议更快速的可读性。

  • _故意_最终确定无效且_恶意_的状态转换

指定故障或有效性证明可能会触发对此的自动惩罚,无论是在共识层还是执行层(例如,slash 提议无效区块的验证者)。

  • _故意_最终确定无效但_诚实_的状态转换 这是一个协议自身对其有效性的内省被社区禁用的例子,一个_降级_的实例。

  • _无意中_最终确定无效的状态转换,例如,由于共识错误

今天,协议对其有效性的内省依赖于大多数验证者在构建链时应用区块有效性规则。协议通过有效性证明(例如,通过原生 zkEVM)进一步了解其状态转换的有效性,前提是状态转换函数 (STF) 的 circuit 已正确编程。如果验证者客户端生成无效证明(例如,如果它错误地表示了 STF),则它生成的区块将被忽略。

  • 未及时履行验证者职责 证明者充当及时性的最终仲裁者,通过他们的投票赋予分叉权重,这简洁地表达了他们当前对可用链的看法。尽管如此,诸如 (block, slot)-fork 选项 之类的分叉选择升级旨在在可用链的结果上提供更精细的决策空间,例如,区块是否被_及时_收到,如果它被收到的话?

  • 对验证者进行 DoS 攻击以阻止他们提议,导致奖励累积到在线未受 DoS 攻击的验证者

Secret Single Leader Election (SSLE) 对除了提议者自己之外的所有人保密提议验证者的身份,直到提议区块为止。在这种情况下,协议看不到下一个提议者的身份,这可以防止一些有针对性的恶意行为。

  • 包含未在公共以太坊 mempool 中传播的交易

没有针对此攻击的路线图项目,但如果有的话,它可能会依赖于某种 mempool 内容的共识小工具(“此交易是否已被委员会的大多数成员看到?”),从而仅允许经验证集广泛看到的认证交易进入任何区块。

  • 以与降序 gas 价格不同的方式对区块内容进行排序

有很多方法可以将提议者绑定到特定的排序。其他区块有效性条件可能需要特定的排序,例如,降序 gas 价格。诸如 Themis 之类的排序协议基本上是 mempool 共识,除了成员集外,还具有浮出排序列表的附加属性。区块有效性可能取决于从 Themis 轮次收到证书。

  • 完全外包区块生产 Enshrined PBS 尝试恢复一定程度的控制,规范区块提议者将区块构建外包给第三方的条件。包括通过协议对 MEV 捕获和重新分配的共识出价进一步提高了 PBS 拍卖信号的可信度。

  • 提议者卡特尔将 EIP-1559 基础费用降至 ~0,为自己提取交易费用mempool 共识小工具会将以下信号浮出到协议:虽然有足够的需求满足保留价格,但区块被人为地保持为空。此信号可用于忽略不包括 mempool 共识集中所有交易的区块,从而启用协议代理。

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

由诚实验证者准备的 包含列表 充当审查信号和防御。审查验证者始终可以选择不提议区块,以防他们不希望尊重包含列表,或者人为地填充他们的区块以满足包含列表后备要求。在这两种情况下,审查验证者的利润都会受到损害,即使填充区块的成本高于审查验证者从私有订单流中获得的收入。证明者通过分叉选择来维护包含列表的有效性和满意度。

上述大多数小工具都通过依赖某种形式的共识(由诚实的大多数论点支持)或超多数(在依赖 BFT 类构造的排序协议或小工具的情况下)来浮出信号。同样,这些信号可能会被一个协调一致的卡特尔禁用或使其不可信,该卡特尔还必须审查成员叛逃卡特尔的尝试。

在以太坊 Proof-of-Stake 中,相对容易召集一个运行任何或所有这些小工具的委员会。每个 slot,都会要求提议者创建一个区块,之后,从较大的活动验证者集中采样的 一排证明者(每个 slot 占整个集的 1/32)可以进行投票,以体现其对当前可用链和 finality gadget 的看法。通过采样,假设委员会以高概率拥有诚实的大多数成员。提出了各种建议,以使证明者承担更多职责,例如 Shutterized Beacon Chain,这为执行 payload 添加了一个用于加密交易的阈值 commit-reveal 方案。

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

我们从一个标题开始本节,该标题缩短了论点,从而透露了其结论,但让我们看看我们如何到达那里。

协议作为承诺设备

我阅读协议开发的方式是,到目前为止,它受到了反证明的启发:协议无法捍卫它看不到的东西。 实际上,如果没有协议可以操作的可信信号,_协议_就无法对破界行为做任何事情,尽管其_社区_可能能够做些什么。自然,这种观点驱动协议朝着不断扩大其边界的方向发展。

我最近的许多演讲都是从谈论“根本”委托代理问题 (PAP) 开始的,即协议将其执行委托给验证者,而验证者希望遵循协议规范的字面意思。但事实证明,即使这也不是根本的 PAP,因为它之前是社区将其意志委托给协议本身。协议本身充当承诺设备,体现了社区的意志。将代理置于协议级别,而不是掌握在社区手中,是创建可信度的方式。

社区使用以太坊协议作为承诺设备,但执行承诺的验证者会诚实地行动吗?

这种手法设计了可信度:并不是说社区无能为力——它可以随时介入并硬连接它关心的结果,就像它对 DAO 所做的那样——但是通过设置一个协议形式的自动机,它与争斗保持了一定的距离。5 自动机通过内省和代理被赋予权力,因此我们用以下规则总结了这种构造:

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

建立可信度的权衡是规范性。为了充分捍卫作为社区意志一部分的特定结果,协议必须对实现这个特定结果持意见,例如,交易由某个接收时间共识协议排序,基础费用被烧毁,PBS 拍卖出售整个区块,构建的区块尊重抗审查小工具等。这会造成协议锁定次优结果的风险,在这种情况下,福利较低或分配不足。但更重要的是,它使验证者集负担过重,验证者集与社区相隔两步,有责任捍卫越来越广泛的栅栏。

随着时间的推移,有两种力量在起作用,一种是积极的,一种是消极的。随着时间的推移,协议成功捍卫社区的意志会进一步巩固该结果,这是一种 Lindy 效应,在这种效应下,该结果(例如,保持基础费用可信)变得越来越可防御或无可争议。另一方面,随着以太坊的成熟,随着其经济复杂化并进一步嵌入到广泛的依赖和交互网络中,验证者的激励措施将更加直接地转移。诸如 SUAVEEigenlayer 之类的新领域充当链外可信度引擎,其中验证者的收益可能会被 扭曲,而协议对此没有“外省”。随着收益的变化,验证者关于协议规范的_诚实_行为和_理性_行为之间的差距进一步扩大。当协议锁定次优结果时尤其如此,因为那时 game warper 可以直接从福利差距中贿赂验证者:如果审查小工具破坏了收入,则 game warper 可以使用损失的收入来补贴对小工具的偏离,方法是_事先_承诺贿赂,但_事后_执行贿赂 6,一旦收入被捕获。

验证者是协议和基础设施网络的交汇点,该网络通过引入委托代理问题 (PAP) 直接改变验证者的激励措施

如何建立协议可信度

重新评估协议的确切权力位置改变了我对协议开发的看法。我不认为我们_仅仅_通过构建更多升级并扩展协议内省和代理的区域来设计协议可信度。我相信同样正确的是,每当我们构建升级以实现我们知道社区会捍卫的结果时,我们_也_会设计协议可信度一旦它们内置于协议中

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

今天,社区没有强制执行 mev-burning。如果没有在协议中构建可信的机制,那么根据社区的意愿(如果确实是意愿)来燃烧 MEV 将会很困难。一个稻草人论点解释了这一点。可能会达成一项广泛的、非协议化的协议,即验证者必须将其费用接收者设置为 null 地址,并烧掉他们收到的所有奖励,否则将面临被忽略和重组的威胁。但仅要求验证者将其费用接收者设置为烧毁地址不足以“拥有 mev-burning”,因为验证者可以简单地使用不同的地址捕获 MEV。这种偏差对于协议来说是不可读的,但对于社区来说可能是可读的。

当要求验证者使用他们在某个_无需许可_拍卖中收到的最高出价构建区块时,故障的可读性和问责性会增加,无需许可的性质保证了竞争性,从而保证了出价作为区块真实价值的代表的可信度。在目前所有协议级别上的 mev-capture 提案中,诚实的大多数证明者强制执行此要求,他们拒绝承诺低于他们对最佳报价的看法的区块,从而对最佳报价的价值达成共识。然后,协议化 mev-capture 就是将证明者指定为数据可用性预言机和及时性代理的行为,其中数据是出价。它可以在协议外完成,而无需指定充当预言机的指定协议代理,而是依赖于更模糊的预言机,例如社区监控公共渠道的出价并收集偏差证据(“我们都及时看到了出价,但提议者没有使用它!”)前一个选项通过“定义明确的群体边界”并提供“由属于或对拨款者负责的监督者进行有效监督”来创建可信度,奥斯特罗姆为管理公地而制定的一组原则中的第一和第四条原则,其中“群体”由承诺执行协议规则的 staked 方组成,以每次一个 Gwei 的速度竖立 Schelling 栅栏。

因此,使用协议级别的可信机制构建 mev-burning 实际上并没有启用比我们_今天_可以做的更多的事情,但它通过让我们最喜欢的自动机假装它负责 mev-burning 的发生来对可信度进行社会工程。协议化是一种承诺行为,并且每当体现承诺的机制不可信时,承诺当然会变弱,例如,如果从博弈论分析中可以清楚地看出,即使是参与者的相对较弱的勾结也可以击败该机制,就像 EIP-1559 或 mev-burning 的简单设计中的协议不可读的边合约/链外协议一样。但最终,即使是可信的机制也可能被支撑大多数协议机制的诚实多数假设所击败。一旦部署了该机制,就不清楚该机制最终是否会被击败,尤其是在链外激励改变验证者行为并且社区不愿意介入以捍卫该机制时。

协议开发的作用

因此,我们有一个协议,该协议不断与其环境进行对话,环境位于部分逃脱协议管辖范围的验证者以及协议不完美地体现其意愿的社区之间。在这种框架下,没有柏拉图式协议开发观的余地,在这种观点下,我们总是朝着理想化的形状进一步发展,也许这就是比特币所追求的。相反,协议开发受到其环境中机构的政治经济学的inform,其中协议是不断扩展的许多其他机构网络中的一个。

要在此处创建可信度,如果其他机构通过改变协议代理的激励措施来削弱可信度,那么施加咒语以扩展协议边界,从而进一步增强内省和代理是不够的。只有当明确社区愿意在最后手段中捍卫协议的首选结果时,才能完全获得可信度,即使以分叉出部分验证器集为代价,也要强制执行其关心的结果。因此,与其说协议无法捍卫它看不到的东西,不如说我们可以反驳说,协议必须只看到它绝对愿意捍卫的东西,否则我们可能会被误导,认为协议最终代表了我们的意愿。

这个高标准可能太高了。我们可能会构建一些我们(作为一个社区)并不完全衡量由升级引起的结果对我们有多重要的升级。事实上,我认为到目前为止完成的所有升级都可能是这样,因为它们首先是由一小部分人研究,实施和部署的,直到它们成为社区其他成员的规范。

然而,以这些术语来构建问题(“如果真的有必要,这是我们将在协议执行之外捍卫的东西吗?”)可能是一种强制功能,用于检查我们的升级的可信度能扩展到多远。这也是一个有用的指南,可以了解协议在其环境中的位置的特权,作为社区意愿和经济代理人以及最终响应验证器集的网络化交互的交汇点。通过这样做,我们希望更准确地了解协议与其所生活和发展的更大系统之间的权力平衡,从而进一步告知开发过程。


更进一步

更多信息,我建议观看整个 mevconomics.wtf 回放。Phil 讨论协议开发作为“悬挂核选择权”以支持链外代理的行为,这种观点与上面阐述的权力平衡论点一致。Vitalik 指出了与确定要考虑哪些与协议经济学相关的升级有关的几个问题(一个可爱的例子:SSLE 可能会部分被验证者选择透露他们的身份以获取经济利益而击败)。Tarun 讨论了一个特定的“福利差距”示例,用于排序协议。Sreeram 提到了一些 Eigenlayer 应用程序以及潜在的风险。最后,Davide、Justin、Jon 和我之间的炉边谈话中讨论了上面写的一些内容。

非常感谢 Xyn 在无需许可的可信承诺设备方面的工作,以及感谢队友和朋友对本文进行的许多讨论。

1

还是对分片的复杂性爆炸的反应?

2

具体而言,可归因的故障导致 slashing,对于恶意验证者来说,stake 的重大损失,随着恶意集的大小增加而变得更加重要。同时,不可归因的故障,例如验证者离线或对错误但非冲突的项目进行投票,会导致“非活动泄漏”和小而可能反复发生的惩罚,只要故障持续存在。

3

我们使用_独占_来指在进入区块之前未公开传播的交易流,并使用_私有_来指通过例如加密进行私有的交易流。

4

如果“ 反馈是你所需要的,代理才能出现”,那么当我们纠正出错的协议时,意味着以太坊是智能的吗?

5

每当律师受雇执行其客户的意愿,或者公司起草一项既约束又保护其自身成员的政策时,都会执行相同的花招。这种现象为博弈论家所熟知。

6

我了解到这与智能交易和 MEV-time 预言机有关...


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

0 条评论

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