本帖用于讨论以太坊增强型提案 (EIP) ,该提案旨在为以太坊添加一个与加密方案无关的加密内存池(提案编号待定)。以下是提案全文:
抽象的
该EIP提议将加密内存池(mempool)集成到协议中。它允许用户在交易被打包到区块之前对其进行加密,从而保护交易免受抢先交易和夹层攻击,并增强抗审查能力。该设计与加密技术无关,支持任意解密密钥提供者,例如基于Threshold加密、多方计算委员会(MPC)、阈值加密(TEE)、延迟加密或全同态加密(FHE)方案。即使解密密钥提供者失效,传统的明文交易仍然得到支持,链的传输也能得到保证。
动机
此增强型集成方案 (EIP) 的目标是防止用户遭受恶意交易重排序攻击,并提高协议的实时(“弱”)抗审查能力。它还旨在通过暂时隐藏区块构建者和其他协议参与者的信息来降低他们的监管风险。此方案的目标并非提高用户隐私(例如交易保密性),因为交易最终都会公开。
该提案基于先前的工作,例如Shutterized Beacon Chain和已部署在Gnosis Chain上的加密内存池的实时、非协议实现。它解决了长期存在的抢先交易问题,并有可能缓解 MEV 带来的有害次生影响,例如构建者中心化。该设计也与既定的提案者-构建者分离机制 (ePBS) 自然契合,使其成为以太坊路线图的合理延伸。
规格
在执行层,部署了一个名为密钥提供者注册表的合约。它允许任何账户注册密钥提供者,并为其分配一个唯一的 ID。注册需要指定一个包含解密函数和密钥验证函数的合约,这两个函数都接受以字节字符串形式存在的密钥 ID 和密钥消息。此外,密钥提供者可以将其他提供者指定为直接受信任,从而形成一个有向信任图。我们定义密钥提供者 A 信任另一个密钥提供者 B 当且仅当该图中存在从 A 到 B 的有向路径。信标链在其状态中复制密钥提供者注册表,类似于处理信标链存款的机制。
加密交易作为一种新的交易类型被添加进来。它们由信封和加密有效载荷组成。信封包含信封随机数、gas 值、gas 价格参数、密钥提供商 ID、密钥 ID 和信封签名。加密有效载荷包含有效载荷随机数、值、调用数据和有效载荷签名。
在一个有效的区块中,任何使用密钥提供者 A 的密钥加密的交易只能位于以下交易之前:
明文交易
使用密钥提供程序 A 提供的密钥加密的交易
使用A信任的密钥提供商提供的密钥加密的交易。
在每个时隙中,当密钥提供者观察到构建者发布的执行有效载荷时,他们会收集所有以其密钥提供者 ID 寻址的加密交易信封中引用的密钥 ID。对于每个密钥 ID,他们必须发布相应的解密密钥或密钥保留通知。相应的消息引用信标区块哈希值,以防止在未来的时隙中发生重放攻击。他们可以在观察到执行有效载荷后立即发布,也可以延迟到时隙的稍后时间发布。
有效载荷及时性委员会 (PTC) 的成员必须监听所有加密交易中引用的解密密钥,这些密钥由密钥提供者 ID 和密钥 ID 字段标识。他们必须使用注册表合约中指定的验证函数来验证这些密钥,并对每个密钥设置一个硬编码的较小 gas 限制。最后,他们必须在有效载荷证明消息中证明每个加密交易是否存在有效密钥,为此,有效载荷证明消息扩展了一个专用的位域。
在执行有效载荷处理过程中,所有明文交易处理完毕后,加密交易的信封将作为批次执行。此操作会更新信封签名者的随机数,并从信封账户支付费用。该费用涵盖信封、解密有效载荷和解密密钥所占用的区块空间成本,以及解密和密钥验证过程中使用的计算成本。随后,使用密钥提供者注册表中的解密函数,根据密钥提供者 ID 和信封上的密钥 ID 指定的密钥对加密有效载荷进行解密。如果解密成功,则根据信封上指定的 gas 限制以及The Blockgas 限制执行生成的有效载荷交易。如果解密或执行失败(包括 PTC 确认解密密钥缺失的情况),则跳过该交易,而不回滚信封。
理由
密钥提供商注册
注册过程与加密技术无关,以确保协议的中立性,最大限度地降低新密钥提供者的准入门槛,并使用户能够根据自身需求选择最佳方案。执行层合约被选为指定任意执行逻辑的规范方式。完全基于执行层合约的注册也是一种合理的替代方案。
许多加密方案在EVM中表达效率低下,因此需要专门的预编译程序。然而,添加这些预编译程序超出了本EIP的范围。
密钥提供商信任图
发送加密交易的用户不仅必须信任自己的密钥提供者,还必须信任区块中先前交易所使用的任何密钥提供者(参见“安全注意事项”)。虽然协议应该尊重用户的信任偏好,但如果每个用户只信任自己的密钥提供者,那么构建者就只能在每个区块中包含使用单个密钥提供者的密钥加密的交易。这是不可取的,因为它会使市场份额较小的密钥提供者难以竞争,并有可能形成密钥提供者垄断。
另一方面,要求用户明确声明他们信任哪些第三方密钥提供商会增加交易规模开销,并且由于可能需要满足大量相互冲突的用户偏好,也会使区块构建更加困难。作为一种折衷方案,本提案要求密钥提供商做出选择。用户通过使用密钥提供商的密钥,即表示默认同意此方案。
有了这种解决方案,即使出现由单一主导密钥提供商组成的准垄断,并且该密钥提供商没有指定任何其他密钥提供商为可信的,构建者仍然可以包含使用其他小型密钥提供商的交易,而不会产生机会成本,只要小型密钥提供商信任主要的密钥提供商(并且可能彼此信任)。
交易指令
该方案有效地将区块分为明文交易部分和加密交易部分。明文交易放在前面,使构建者能够完全模拟该部分的执行过程,并应用现有的区块构建技术和MEV提取策略。因此,构建者可以将加密交易附加到The Block末尾而无需付出机会成本。如果顺序颠倒,加密交易的费用必须大幅提高,才能使包含加密交易的区块在PBS拍卖中与仅包含明文交易的区块相比具有竞争力。
交易执行
协议和构建者必须避免包含最终无法支付 gas 费用的加密交易。为了确保无论区块中任何加密有效载荷的内容如何,费用支付都包含在明文信封中,并且区块中的所有信封都会在任何加密有效载荷之前执行。为了保证构建者和协议在区块构建时收到的费用金额,不会支付 gas 退款。
为简便起见,加密后的有效载荷包含签名。另一种更高效但私密性稍差的方法是将信封签名者视为发件人。
解密密钥扣留
该协议明确允许解密密钥提供者在自行选择的条件下扣留解密密钥。这使得他们能够安全地实施规则,限制哪些用户可以使用哪些密钥,例如基于先前的付款情况,并防止密钥 ID 抢先攻击(参见“安全注意事项”)。另一方面,被无正当理由扣留的密钥可用于自定义惩罚机制和可靠性指标(请注意,该协议会记录哪些密钥存在、哪些密钥曾经存在以及哪些密钥不存在)。
缺乏协议内密钥提供者激励机制
该提案并未规定密钥提供者的收费机制,也未规定对不当行为的惩罚措施。这使得链下可以实施多种激励模式。例如,密钥提供者可以与构建者达成协议,按交易量向用户付费,或者作为公共物品运营。他们也可以接受因无正当理由扣留密钥以提升服务吸引力而受到的惩罚。
执行有效载荷加密
未来的 EIP 可能会提议允许构建者使用密钥提供者的密钥来加密执行有效载荷。这样一来,构建者就可以在构建完成后立即发布执行有效载荷,而无需等到 50% 的区块进度才发布。这将提高点对点效率,并防止构建者因系统崩溃而错过区块进度。此外,如果构建者附加一个关于区块中使用了哪些密钥的零知识证明,则密钥披露时间窗口可以更早开始,从而延长。为了尽量降低复杂性,本 EIP 未包含此功能。
向后兼容性
该提案对协议的执行层和共识层进行了不向后兼容的更改。
安全考量
可信密钥提供商
用户必须信任他们用来加密交易的密钥提供商。
不要提前发布解密密钥,否则会遭到抢先攻击和夹击攻击。
不要过早发布解密密钥,以免在支付信封费用之前阻止交易执行。
关键提供商可以通过加密机制(例如,Threshold加密、硬件加密)、经济机制(例如,对不当行为进行惩罚)、治理机制(例如,投票选择具有社会声誉的实体)或这些机制的组合来赢得这种信任。
在较小程度上,用户需要信任区块中所有在其交易之前使用的加密交易的密钥提供者。这是因为密钥提供者可以选择发布或隐藏解密密钥,并在观察到后续交易的解密密钥后获取这些密钥。这种选择赋予了他们对后续交易的初始状态一定的影响力。恶意选择的“解密”方案可能会使这种攻击更加强大,因为它允许使用精心构造的解密密钥直接修改解密结果的特定部分,或者直接设置解密结果。这实际上实现了抢先交易。
用户无需信任其交易之后任何交易所使用的密钥提供者,因为用户交易有效载荷的初始状态不受后续交易有效载荷的影响(仅受其信封影响,但信封是在任何解密密钥发布之前选择的)。同样,明文交易的用户也无需信任任何密钥提供者(但他们仍然需要信任密钥构建器)。
重组
解密密钥会在相应的加密交易最终完成之前发布。因此,在链重组的情况下,即使交易未必包含在链中,它也可能被公开。然而,由于解密密钥消息包含The Block哈希值,因此可以通过密钥验证功能使其失效。这不会阻止信封交易被包含,但会阻止其执行,从而防止有效载荷的抢先执行。
关键ID领先运行
当用户使用特定密钥 ID 加密交易时,其他用户可以在交易进行过程中观察该交易,并创建另一个指定相同密钥提供者和密钥 ID 的加密交易。如果第二个交易包含在比原始交易更早的区块中,即使原始交易尚未被包含在区块中,不知情的密钥提供者也会泄露密钥,从而泄露原始交易。
密钥提供商可以保护用户免受此类攻击。一种可行的策略是“命名空间化”密钥 ID:提供商仅发布以信封签名者地址为前缀的密钥 ID 的密钥,并保留所有其他密钥 ID。由于我们可以合理地假设攻击者无法访问信封签名者的帐户,因此攻击者将无法生成具有正确命名空间密钥 ID 的交易。
关键提供者-儿童建造者勾结
为了构建一个新区块,构建者需要知道前一个区块的后续状态,因此也需要知道区块中使用的所有解密密钥以及哪些密钥被隐藏。一旦 PTC 验证,这些信息就会公开。然而,恶意密钥提供者可以与区块构建者串通,提前告知他们这些信息。这将使构建者获得竞争优势,因为他们可以更早地启动The Block构建过程。
由于有效载荷证明发布到区块槽结束之间的时间仍然足够长,足以完成区块构建,因此该攻击的影响被认为较低。此外,The Block构建周期的开始远不如结束阶段重要(因为只有在结束阶段才能得知所有可包含的交易),而结束阶段不受此次攻击的影响。同时,延迟发布解密密钥会带来密钥未被 PTC 验证的风险,从而抵消攻击者的竞争优势。最后,如果使用恶意密钥提供者的加密交易数量较少,它们对状态树的影响也可能很小。这意味着,不依赖于状态树全部信息的乐观区块构建策略可能是可行的,从而可以抵御此次攻击。


