加密内存池

这篇文章深入探讨了加密交易池的设计及其在解决最小化可提取价值(MEV)和审查中的应用。文章详细阐述了不同的加密方案,例如信任方、门限加密/解密(TED)、延迟加密/解密(DED)和见证加密/解密(WED),并分析了每种方案的优缺点与应用潜力。通过对加密交易池的各种技术解决方案的分析,文章为区块链技术的未来发展提供了深刻见解。

介绍

加密的内存池是解决MEV和审查的强大工具。有多种相关方案,可以单独使用或与其他方案结合使用。

本文提供了一个设计空间的概述,这一空间主要基于Justin Drake在该主题上的演讲(哥伦比亚阿姆斯特丹Flashbots Roast)。我猜大多数人在第一次观看时难以理解(或者也许只是我反应迟钝,不够清晰),所以我试着简单地将它们拆解开来,然后再扩展一些内容。

基本思想 - 允许用户提交加密交易。区块生产者在解密之前承诺这些交易:

  1. 用户加密并广播交易

  2. 加密交易被承诺

  3. 交易被解密

  4. 交易被执行(注意:承诺、解密和执行可能在保留用户体验的情况下成为一个单一槽位)

这旨在解决两个主要问题:

  • MEV - 例如,如果我看不到一笔交易,我就不应该能够抢先交易

  • 审查 - 除非我决定排除所有加密交易,否则我不应该能够审查一笔交易(如果许多交易被加密,这种行为希望是可负担的)

我们在这里需要的一个关键属性是保证可以解密,而不依赖于用户。有几种方法可以实现这一点:

1. 在途

相信某个人。将数据私下发送给某个方。该方可以解密并查看数据,但他们承诺在该数据已提交到链上之前不公开披露。这就是诸如Flashbots Protect和MEV-Share初始版本)等产品的工作方式。

2. 受信硬件

你可以利用受信硬件。明文可以在受信硬件内操作,但在交易被承诺之前不会公开号解密。最著名的例子是Flashbots可能使用的SGX与SUAVE

3. 阈值加密/解密(TED)

一个委员会可以联合强制解密密文。这样做需要一定“阈值”的签名者。例如,你的“阈值”可以是需要2/3的验证者集同意解密。TED在多个不同领域进行了研究,包括:

Shutterized Beacon Chain

更深入地看看Shutterized Beacon Chain提案,一组验证者(“keypers”)生成用于分布式密钥生成(DKG)的公钥/私钥对。所有人都可以看到公钥,但私钥被切分为委员会共享的份额。重建私钥并解密需要一定阈值的密钥份额(例如,⅔)。

用户可以选择加密交易,这些交易在链上被包含时其内容尚未解密和执行。块生产者创建包含明文交易(立即执行)和加密交易(安排在未来的区块高度)的区块。

在区块 n-1 被生成和证明后,keypers应生成并发布区块 n 的解密密钥。这个密钥允许解密安排在区块 n 的交易。区块 n 必须包含解密密钥才能被视为有效。通过执行安排在该区块的加密交易(按照其设定顺序)来计算该区块的后状态,_在_执行包括在该区块内的明文交易之前进行。

缺点

然而,TED有几个缺点:

缺乏可追责性 - 在这里的恶意行为是无法归属或报告的,这与传统安全假设(例如,恶意行为是可以斩杀的)不同。Keypers可以立即解密,你无法归属它。即使你假设验证者行为是有激励相容的(这值得怀疑),验证者集以外的三方机构可以并且可能会对其施加影响。

强诚实多数假设 - 一个不诚实的委员会可能会造成问题,例如选择永远不解密某些消息,或者秘密解密不该解密的消息(例如,听从政府机构的要求,或自私地进行MEV提取)。在大多数情况下,区块链实际上依赖于经济理性的多数(即,惩罚斩杀通常超过恶意双花等行为的经济激励)。通过阈值加密,假设转移到了真正诚实和无私的多数(尽管你可能会争辩社会影响超过成本)。

对协议的破坏性 - 本质上是上述两点的混合 - TED有效地增加了验证者存在恶意行为的激励,并且不易受到惩罚。这增加了对中心化和恶意行为的激励。

弱化活度 - 更高的 t 相对于 n 的解密阈值强化了协议安全性(更难出现不当行为)。然而,这直接削弱了活度。例如,如果一场大规模网络故障切断一半的验证者,可能会停滞协议。特别是以太坊,它对“第三次世界大战”的活性高度重视(Gasper更倾向于活性),这是一种不可接受的权衡。

更糟的用户体验 - 根据具体实现,TED可能会增加不同程度的不良延迟和成本。

次优价值分配 - 让我们来看一个过于简化的抢跑例子:

  • 全球的1 ETH中间市场价格= $1000

  • 如果我把交易发送到一个普通的内存池 - 我得到 $990(搜索者抢先跑和回跑,净赚$10)

  • 如果我把交易发送到一个TED内存池 - 我得到 $995(搜索者无法抢先跑,但我推高了地方现货价格以达成交易,为搜索者创造了一个$5的套利机会)

  • 我把交易发送到一个最佳的订单流拍卖 - 我得到 $1000(我不发生抢先跑回跑。或者类似的,我确实发生了抢先跑和/或回跑,但搜索者必须在竞标拍卖中支付$10的回扣以获得这样的权利,实现同样的最终结果)。

在这个场景中,你会把一些利益留给其他人。一个经济理性的用户应该暴露足够的订单信息,以使他们几乎全部价值都能得到补偿。他们不应该天真的阈值加密他们的交易,从而隐藏其带来的价值(允许他人捕获它)。

这是一个超理想化的例子,但你明白我的意思。将问题掩盖并不总能解决问题。TED可以成为一个有用的工具,但它并不是MEV的万灵药。在某些情况下,它在CR上可能更好。

此外,以太坊特别带来了额外的复杂性。例如,其缺乏即时最终性(尽管这可能会在某一天通过单槽最终性而改变)在这里引入了重组问题。我相信这些权衡的重要性超过了好处,至少在L1以太坊的案例中,提高以太坊的信任假设,增加合谋的激励(而且不被发现),以及减少其活性,违反了更基本的属性,超出其可能带来的好处。

然而,这些权衡对L2或其他L1来说,可能会比对以太坊L1更可接受。

4. 延迟加密/解密(DED)

通过延迟加密,你可以加密信息,这些信息将在一段时间后自动解密。这是一个与VDFs相关的顺序计算。

为了实际实现DED,你需要VDF ASIC。幸运的是,以太坊基金会和协议实验室一直在努力构建这些,最近得到了GlobalFoundries制造的首批测试样品。这些VDF评估器应该能够进行非常快速的顺序计算。这些VDF ASIC也适用于时间锁谜题和DED。

VDF还需要生成SNARK。这可以通过GPU进行,但理想的情况下,以太坊基金会最终希望在此处也能够生成相关的SNARK ASIC。

总体而言,你在这里不再信任一个委员会,因此安全假设通常更受欢迎。然而,需要专用硬件不是理想的,所需的延迟可能会为你的系统增加延迟。更有趣的是,你可以结合TED和DED的最佳特性,使用…

5. 见证加密/解密(WED)

WED是强大的,但在你感到过于兴奋之前 - 它不会尽快实现。这是很复杂的东西,如果发生,也还需要多年的时间。但它有趣且有助于理解,因此我将简要覆盖它。

WED允许任何任意证明强制解密密文。例如,你的规则可以是“只有在以太坊确认包括加密有效载荷的区块后才解密”,并且它只有在满足该条件才能解密。你可以想象要求基本上任何复杂陈述的SNARK都满足。

因此,WED实际上是TED或DED的泛化。你甚至可以构建二者的混合。例如,指定的见证可以是一个证明,表明:

  • 理想情况 - 阈值委员会已经批准解密,

  • 备用 - 所需时间已过去,回退到延迟解密

这提供了一种备用,以防阈值委员会未回应,因此不会丢失活性。这还允许你在参数化m和n的阈值假设时更加保守(即,你可以要求每个委员会成员或几乎所有人都签署同意)。

  • 理想情况 - 完美的用户体验,通过整个委员会的即时确认

  • 备用 - 延迟和用户体验暂时受到影响,但活性得以保留

在实践中,WED将验证你想要的任何陈述的SNARK。例如:

  • TED - 你可以拥有一个SNARK来证明“我有所需的 m 中的 n 个签名”以强制解密。

  • DED - 你可以使用VDF并进行顺序计算(这非常昂贵)。然后,在你的计算结束时,你将得到一个短的证明。接下来,你将那个短的证明包装在一个SNARK中(使其更短),并送入以强制解密。

同态性

针对每种加密方案(阈值、延迟和见证),你都可以有同态性。也就是说,有可能创建阈值FHE、延迟FHE和见证FHE方案,能够对密文执行任意操作。

在途和受信硬件(例如,SGX)解决方案也能模拟相同的功能 - 对私人数据进行操作。这是因为在这两种情况下,受信的第三方或硬件能够访问明文进行操作。在理想情况下,我们希望通过依靠加硬加密算法,消除这些信任假设。

我们可以想象一个给定的例子:

  • m1 = 交易1

  • m2 = 交易2

  • f(x) = 构建一个区块

然后,所有五个解决方案都可以复制以下功能:

在我们思考如何隐藏交易元数据并用加密输入构建最佳区块时,请记住这一能力。这里的这五个选项理论上都可以用于要求“同态性”的解决方案。

元数据

元数据是提供关于其他数据的信息的数据,但不包括该数据的内容(例如消息的文本或图像本身)。在我们的情况下,交易元数据可以包括发送者的IP地址、nonce、Gas费用等。

理想情况下,我们希望尽可能多地隐藏元数据。否则,它可能泄露信息,使外部人员推断出你的交易(可能让他们有足够的信息来尝试抢先交易、审查等)。然而,我们需要元数据来验证交易是否有效、是否支付了所需费用、是否不是垃圾信息等。在交易实际上无效时,你并不希望提交加密交易。

那么,我们能否实现两全其美?让我们探索一些屏蔽各种元数据的解决方案。

1. IP地址 - Tor

相当简单 - 人们可以使用Tor等服务来私下广播并保护他们的IP地址。

2. 签名 - SNARK

你需要在P2P层确保加密交易有效,尤其是它具有有效签名。我们可以使用SNARK来证明签名有效,并且这将伴随每个加密交易。SNARK有三个重要部分:

让我们解析一下。用户希望证明他们的交易密文是有效的,它与交易明文相关,并且其签名有效。为了证明任何签名是有效的,需要与该帐户进行验证的公钥。因此:

  1. 查找以太坊状态根(公开)。

  2. 提供发送者公钥Merkle证明(私密),与此状态根相对应。这证明他们的公钥。

  3. 为了验证签名,需要验证发送者公钥Merkle证明与状态根的匹配。通过SNARK证明发送者公钥Merkle证明有效且签名有效。

3. Gas支付 - SNARK

你需要证明加密交易的发送者有足够的ETH来支付它。我们再次可以使用SNARK。

这是类似的过程,但现在你提供一个Merkle路径到状态根,以证明发送者余额(而不是发送者公钥)。你验证Merklr路径并验证余额是否足以支付所需Gas费用,使用SNARK。

仅序列化交易、检查其余额和检查签名的最低Gas费用可以为最低的21000Gas费用。你可以规定发送者必须总是支付这个最低部分费用。

但是,当涉及执行时,你还需要实际交易的Gas上限,且此Gas上限也可以加密。因此,当你实际执行交易时,应该检查发送者在那时是否获得足够的余额来支付交易的完整Gas上限:

  • 如果是 - 运行交易并在结束时发放退款

  • 如果不是 - 终止交易,发送者只支付21000Gas费用

4. 发送者和Nonce - SNARK

Nonce是一个值等于来自地址发送的交易数(或由帐户创建的合约数)。用户的nonce会随着其地址发送每个交易而递增。

我们今天有nonce的一个原因是,用户无法通过一堆交易(拒绝服务攻击)来骚扰内存池,从而增加交易执行的可能性。节点将只查看具有该nonce的一个交易,并丢弃其他交易。

对于一个加密交易,你将用SNARK证明其nonce等于前一个nonce + 1。然而,如果这样做是天真的,这可能会对上述拒绝服务攻击产生脆弱性 - 节点将无法告诉许多加密交易是否具有相同的nonce。

为了保持这种反拒绝服务的特性,我们希望增加一个“重放标记”。这唯一地标记交易,因此你无法再针对一个地址发送大量交易。为了创建这个标记,可以简单地哈希(nonce,私钥)。由于nonce和私钥都是固定的,不同的交易将具有相同的重放标签(如果用户试图用同一nonce和私钥发送两个交易)。

最后,你可能希望保留某种程度的灵活性。假设Gas价格已经变动,而你合理地想再次广播交易以获得更高的价格。为减轻这个问题,你可以哈希(nonce,私钥,槽)。现在,你将能够在每个槽期间调整一次交易。你受到每个地址每个槽只发送一笔交易的限制。

5. 大小 - 同态性

天真地加密大小为_n_的明文,将创建大小为n 的密文。即便如此,这个大小可能足以概率性地确定某些交易。我们可以通过“填充”来缓解 - 在加密之前,为明文添加0,向上调整位数至下一个2的幂(例如,为一个5位的密文添加三个0)。

在以下示例中:

  • 白色 = 用于填充的0

  • 其他颜色 = 实际交易数据

当你构建自己的区块时,可以将这些密文连接在一起,但这有两个问题:

  • 不完美的打包 - 多余的0意味着你需要为额外的数据可用性支付费用,以将它们移上链

  • 不完美的隐私 - 连续数量的大小可能仍会泄露一些信息。对于某些交易规模的分布并不清晰,因此某些大小可能仍会概率性地泄露足够的信息。

一个更复杂的解决方案涉及“剪切”掉填充:

  1. 将每笔交易填充到最大大小(这里为16)并同态加密它们

  2. 对密文应用一个函数,有效地打包明文,移除多余的填充

现在你得到了最佳封装,所有加密交易看起来都一样。

通过填充到“最大”大小,这可能字面意思是将最大设定为实际区块大小的限制(即,如果30mm能源转换为大约x kB)。这将意味着将每笔交易填充到y kB的较小更实用的大小(例如,如果99.9%的交易通常在这个范围内)。

同样地,这种“剪切”可以在受信硬件中模拟,而不是如前所述的FHE。例如,你可以运行SGX并接收加密交易到信任的隔离区。在隔离区内,可以在明文下操作数据,以剪去不必要的填充,从而密集地打包区块。数据随后被加密并返回,这之后是强制解密的方法之一(阈值、延迟、见证)。

请注意,无论使用哪种情况,输出应为特定的固定大小,因此你可能会留下一小部分填充。

捆绑选择 - 同态性和不相交状态访问列表

假设我们已经解决了以上所有问题。区块生产者能够根据大小优化打包所有事务。但是,我们仍然面临另一个问题 - 区块生产者能否在经济层面上最佳打包所有东西?我们希望实现去中心化的块构建,而不丢弃价值。否则,它将无法与中心化现状竞争。

解决方案1 - FHE EVM

简明扼要的粗暴解法 - 将整个EVM完全运行在FHE上。这将允许去中心化构建最大限度地为区块生产者捕获最有价值的区块。他们选择和排序最大化价值的交易。

不幸的是,这并不那么简单。FHE电路的最大开销在于它的“深度”(即,最长路径中门的数量)。尤其是,它的乘法深度正是最重要的。例如,之前描述的交易“剪切”以移除填充是一种相当“浅”的电路(即,它相对简单)。像这样的用例可能在2-3年内通过硬件加速可行。

然而,使用FHE运行整个EVM需要一个极为深和复杂的电路。我们终于开始在zkEVM电路上取得一些有意义的进展(这比运行标准EVM要计算上复杂几个数量级),但FHE EVM还远远不行(大约得十年)。

再一次,请注意,也可以使用受信硬件模拟这一功能(例如,SUAVE中的SGX所做的)。

解决方案2 - 状态访问列表

或者,我们可以限制使用FHE及其结合访问列表。这个方式比运行整个FHE EVM更可行 - 再次是一种更浅的电路。在这个设置下,交易捆绑可以包含一个加密状态访问列表及其出价。这精确地指定其捆绑将访问的状态部分。

现在,区块生产者的同态电路只需在状态访问列表不重叠的捆绑中选择最高出价(即,没有捆绑触碰重叠状态)。

请注意,这并不严格最优化。例如,第二高出价(T2)可能会触碰与最高出价(T1)完全相同的状态。在这种访问列表范畴下,区块生产者将抛弃第二个交易。然而,T1和T2都有可能有效,即使他们触碰的状态,有可能并不相互影响。在这种情况下,整个FHE EVM(或像今天一样的中心化块制作)将捕获更多的价值。

虽然这不是最佳的,但从今天看到的来看,这个捷径应足够接近最优。绝大多数的MEV仍将通过不相交的访问列表捕获,因为如上所述的冲突示例相当罕见。

6. 时间戳 - 同态性

你甚至可能尝试通过允许验证者创造“虚拟”交易来隐藏交易存在的泄露,从而让内存池始终看起来很充实。验证者还需要一个SNARK来证明他们是被允许创建这些虚拟交易的验证者。当“真实”交易激增时,验证者将广播较少的虚拟交易。当活动减少时,验证者将发布更多的虚拟交易。

假设一切都在FHE下加密,你将能够检测到添加到相应交易的“虚拟标记”。在打包实际区块时,你将知道忽略这些交易。

状态差异 - FHE EVM

快速背景 - ZKR的一个优点是它们不需要在链上发布完整的交易数据。它们只需发布状态更新之间的“状态差(change)”。反之,Op rollup帧必须在链上发布完整的数据,以便在发生欺诈证明时进行仲裁。这种较低的数据要求是ZK-rollups的一个成本节约,因为它们在数据可用层上消耗的资源更少。

将这融入到我们在这里的讨论中 - 你希望在加密内存池的背景下保留这种好处。你希望实现加密的内存池,并仍然保留ZK rollup帧仅发布状态差的能力。答案是 - 运行一个FHE zkEVM。听起来不错,但再说一次,你可能得稍等一段时间才能实现。

一个缺点是,仅发布状态差可能使卷帧完全节点的响应速度减慢。例如,在纯分叉选择规则卷帧中,卷帧的完整节点可以在数据可用层最终确定时立即完成其对卷帧的观点,并确保有效性。如果你只发布状态差(而不发布完整交易数据),那么即使是完整节点也需要在确认其对卷帧的观点之前提交ZK证明。按现状来看,这些证明需要一些时间才能生成,但希望可扩展的数据可用层很快会变得非常便宜。所以在这方面存在一定的权衡。

结论

加密内存池是一个迷人而有前途的设计空间。不幸的是,实用的挑战仍然存在。例如,你可能只是将某些问题转移到栈的其他地方。钱包可能会在源头审查你,阻止交易加密/路由,它们可能提交有效载荷以抢先/回跑你的交易(或出售这样的权利),等等。一个可能的答案是用户在本地创建交易,而不需要服务提供商。

关键是,这里没有什么是银弹,但如果设计良好,它们可能是解决方案的重要组成部分。它们能够以不同的有效性和信任假设改善当前状况。


免责声明:本文中表达的观点仅代表作者个人观点,并不代表DBA Crypto, LLC或其附属机构(连同其附属机构,统称“DBA”)的观点。

此内容仅作为信息提供,并不应作为投资决策的依据,也不是,也不应被视为完整。文中内容不应被解释为法律、商业或税务建议。对任何证券或数字资产的提及仅出于说明目的,并不构成投资建议或提供投资顾问服务的要约。本文不构成投资建议或卖出任何有管理投资工具的有限合伙人权益的邀请。

文中包含的某些信息已由第三方获得。虽然信息来自被认为可靠的来源,但DBA不对信息的准确性作出任何声明。


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

0 条评论

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