去中心化区块构建的设计思路和潜在挑战
作者:BallsyAlchemist,分布式资本研究员
编译:0x11,Foresight News
2022 年初,有一个关于区块构建潜在中心化以及 MEV 和区块排序后 PBS(提议者 / 构建者分离)影响的讨论。我个人对这种担忧产生了共鸣,并发表了一篇探讨中心化风险的文章。社区对这个问题的看法存在分歧,一些人接受以太坊存在一个去中心化的验证器网络和一个更中心化的区块构建者的想法,正如 Vitalik Buterin 在《Endgame》中所概述的那样。
然而,这些担忧最终被搁置一旁,并从公众讨论中淡出。不过,上一次 SBC 会议将这些担忧重新带回了最前沿,因为 Vitalik 提出了去中心化区块构建的方法(Jon Charbonneau 写了一篇现场的精彩报告)。从那时起,我一直在考虑去中心化区块构建者的潜在设计,并尝试分享我的想法和去中心化区块构建所面临的挑战。
区块构建的中心化程度如何,为什么我们需要去中心化?
以太坊一直在努力成为最抗审查、无需许可和无需信任的区块链,任何类型的中心化因素都可能损害这些属性。我将列出主要问题,并解释为什么有些问题很重要,而有些则不重要。
排他性订单流: Flashbots 和社区都在积极讨论关于排他性订单流如何导致单个区块构建者垄断中标和订单流。假设构建者提供激励措施,例如 MEV 共享、私有交易和 MEV backrun 保证,以收集其他人无法访问的订单流,从而构建更高价值的区块,始终如一地赢得拍卖。但是,我认为将导致排他性的所有类型的激励措施归于一类问题过于宽泛,因此我将它们分为以下子类别:通过 MEV 再分配的排他性订单流和通过 MEV backrun 保证、私人交易的排他性订单流。要注意这些子类别并不相互排斥并且具有不同的含义。
-
MEV 再分配:随着更多订单流市场在未来几年推出,这种担忧可能会变得不那么重要。市场竞争加剧,他们将需要通过订单流拍卖提供更多的 MEV 回扣,以吸引用户和交易。这种竞争最终将影响用户选择在哪里提交交易。
-
私人交易和 MEV backrun 保证:这是一些人可能更喜欢的可选功能。但是,如果要大规模增长,使用这种类型的排他性订单流可能会导致订单流集中化。为了缓解这种情况,持续提出更高价值区块的去中心化区块构建者将是有益的。
审查制度:区块构建者的去中心化程度不足可能会导致一部分构建者勾结和审查交易。虽然 crList、Geth 的原生区块构建选项和加密内存池等解决方案旨在减轻这种风险,但它们也带来了挑战,例如帐户抽象的部分体现,需要基础设施来支持无状态验证者的状态访问,以及围绕现有的安全问题启用隐私的技术。为了更深入地了解当前的区块构建环境,这里有一些关于区块生产的统计数据。根据 2022 年 12 月所有构建者的出块成功率,排名前 5 的构建者如下:
前五名区块构建者平均成功率
排名前三的区块构建者在该月共同控制了成功提交区块总数的 60% ,这表明需要对他们不串通或审查交易的行为给予了极大的信任。为了解决这个问题,实施一个去中心化区块构建过程的框架将增加串通和审查的成本,从而实现更加去信任的区块生产系统。
网络效应导致的中心化:在不完全的市场竞争中,可以认为一个构建者会自然而然地通过构建更高价值的区块来战胜其对手,并在不需要直接激励的情况下吸引更多的订单,从而导致中心化。然而,现实中并非总是如此。
出块成功率图
该图说明了合并之前和之后一段时间内的出块成功率。值得注意的是,可以看出 Flashbots(以深蓝色表示)出块成功率已经减少并达到与其他主要区块构建者相似的平衡点,而不是完全主导区块生产。这与提议中由于网络效应导致的集中化相矛盾,这个结果可能有多种解释。
-
竞争对手的排他性订单流:其他竞争的构建者可能拥有独家订单流(私人交易等),可以生产更高价值的区块。
-
订单流拥塞:太多订单希望通过 Flashbots 包含在块中,导致延迟。这可能会迫使用户将交易放在多个构建者之间,以增加在一个区块中提交的机会,尤其是在高流量时。
-
OFAC 合规性:Flashbots 符合 OFAC 标准,而其他一些则不符合。用户可能会根据一些监管问题决定选择构建者。
-
Flashbots 开源构建者和中继代码以引来了更多竞争。
上面这些因素在一定程度上缓解了网络效应对构建者中心化的影响。然而,如上表所示,中心化仍然是一个问题,我认为社区应该给予更多关注和认识。
我们去中心化什么?
区块生产的权力是去中心化的关键。与其委托一个实体完全控制区块的构建,不如有一个框架允许多个实体或个人参与该过程。目前,有两种方法来实现这一点,应该注意的是,这些方法并不相互排斥。
-
提议者参与区块构建
-
通过新的架构和算法去中心化块构建者,允许竞争性区块生产(大量设计空间)
围绕拟议方法的技术可行性和挑战仍在讨论之中,我想在这里分享我的想法。
方法一:提议者参与区块生产
目前有几种方法可以使提议者参与区块生产,但我相信 Eigenlayer 方法提供了更清洁的解决方案。在深入研究 Eigenlayer 的具体细节之前,这里是一个简短的概述:它是以太坊区块链上的一组智能合约,允许持有 ETH 的验证者通过对其抵押的 ETH 施加额外的罚没条件来选择为新服务提供安全性。如需更全面的了解,您可以阅读此处。
目前在区块生产过程中构建者如何与提议者交互?提议者构建者分离(PBS)系统已经实施。在这个系统中,构建者可以向中继器提交一个区块,然后中继器将验证区块的正确性并将其中继给提议者。该系统旨在防止提议者进行审查,因为只有在选择出价最高的区块并且相应的签名后的区块头被中继回中继器后,区块的内容才会透露给提议者。负责确保已提交块的数据可用性的托管机构随后会将数据(交易)透露给提议者,然后提议者将区块发送到网络的其余部分。下图说明了这个过程。
构建区块过程图,来源 Eigenlayer
PBS 系统通过将验证者的权限限制在更高价值区块的提议上,增强了以太坊的抗审查能力。然而,Eigenlayer 提出了一个名为 MEV+ 的 MEV 管理框架,它允许区块提议者在现有区块之上包含额外的交易。这是通过施加额外的罚没条件来实现的。
目前,区块提议者只受一个罚没条件的约束,即禁止同一提议者同时提议两个区块。使用 MEV-Boost+ 框架,如果提议者在提议添加了「proposer_part」交易的新区块时修改或未能包含区块的已提交「builder_part」,也将受到惩罚。这有效地防止了提议者试图修改或删除区块构建者的交易。下图说明了 MEV-Boost+ 工作过程。
提议者参与出块示意图,来源 Eigenlayer
这种机制在与 crList 结合使用时也很有效,crList 是提议者必须包含在区块中的交易列表。这有助于减少在构建者级别对交易进行审查的可能性。虽然已经提出了其他解决方案,例如对 Merkle 根的预先承诺或 KZG 承诺,以允许提议者参与区块生产,但 EigenLayer 提供了一种更简单的替代方案,不需要提议者提供额外的计算资源,并且可以同时参与区块生产。
总的来说,这种方法很简单,并且可以通过将提议者引入流程来进一步去中心化区块生产,从而与更多实体共享区块的权限。然而,这种方法的影响有限,因为它从根本上仍然依赖于中心化的区块构建者,并且不能完全防止由构建者中心化引起的审查。因此我们有第二种方法。
方法 2 :去中心化区块构建者
设计去中心化区块构建者是一个引人入胜的探索领域,像 Flashbots 这样的团队已经在尝试不同的设计。在考虑如何去中心化构建者时,重要的是要意识到以下挑战:
-
MEV 窃取:构建者可以访问搜索者提交的捆绑交易中的信息并窃取搜索者的 MEV。为了防止这种情况,提交的捆绑包和交易的隐私应该在设计上得到保护。
-
次优 MEV:理想情况下,应该在保持最佳 MEV 的同时实现构建者的去中心化。由于去中心化,一些设计可能会导致区块构建效率低下,并导致区块的 MEV 减少,进而导致区块竞争力下降。但也可以争辩说,只要去中心化的构建者比其他构建者吸引更多的订单流,次优的区块生产是可以接受的。
-
与中心化构建者的竞争:去中心化构建者需要在生产 MEV 方面与中心化构建者竞争。去中心化构建者的目标是聚合尽可能多的订单流,以与中心化构建者之间集中的订单流竞争。
-
延迟:区块生产是时间敏感的,可能存在严重的延迟问题。
-
管辖范围(抗审查):去中心化的构建者应该分布在多个司法管辖区,这样他们才能抵制司法审查(如 OFAC)。大多数国家 / 地区的监管仍处于灰色地带,并且不希望冒着构建者网络被单个监管实体取缔的风险。
考虑到这些挑战,我想在整个研究社区讨论提议的去中心化构建者设计,并深入探讨围绕它们的一些潜在问题。目前,有两种主要类型的去中心化构建者:
-
搜索者 - 聚合器 模型:搜索者提交交易包,聚合器将在不知道关于提交的 bundle 的很多 / 任何信息的情况下构建区块。
-
插槽拍卖模型:区块空间按顺序进行拍卖,区块由多个构建者逐步构建,没有聚合器。
以下提议的设计是这两种方案中任一种的变体:
设计 1 :使用 TEE/TPM 的搜索者 - 聚合器模型
这种方法要求聚合器使用可信执行环境 (TEE) 或可信平台模块 (TPM) 来确保接收到的交易包的隐私,从而防止 MEV 窃取。有关 TEE 和 TPM 之间差异的更多信息,请查看此处。以下是设计说明(TPM 和 TEE 在这种情况下可以互换):
基于 TEE 的区块构建者示意图,来源 Vitalik
Flashbots 发布了一份进度报告,介绍了他们在 SGX 中运行 Geth 的经验,SGX 是英特尔开发的一种 TEE。虽然存在许多技术挑战,但他们已经成功地使用 SGX 中的加密交换空间和 Gramine 运行 Geth,Gramine 是为 SGX 设计的库操作系统之一,具有 500 GB RAM、 1 TB SSD 交换空间和 64 GB 受保护内存。以下是该实验的一些关键要点:
-
在 SGX 中运行 Geth 是可行的,但资源密集且耗时,需要大量内存和 3 小时的启动时间来存储和加密链上数据。
-
加密的交换空间提供了良好的性能,但仍然容易受到侧信道攻击、隐蔽信道攻击和其他编程错误造成的信息泄露。
-
需要在性能和资源之间做出权衡。例如,资源密集度较低的方法性能较差,并且可能存在更严重的信息泄漏问题。
此外,使用 SGX 时还需要考虑其他问题:
有一些方法可以减轻信息泄漏问题,但某些方法可能会导致性能下降,需要更多的试验和错误来磨练出性能最好的框架来运行 SGX。
复杂的设置和 SGX 兼容芯片的稀缺性导致进入门槛很高。云服务商可能会提供 SGX 的可访问性,并且可以作为一个临时解决方案,但从长远来看,云运营商将是一个重要的中心化因素。
SGX 泄露信息仍然是一个问题。如果人们在 SGX 中发现其他可利用的漏洞,聚合器应立即执行自己的 TCB 恢复(旨在重新实例化 SGX 环境的过程),而不是等待英特尔的响应,这可能需要很长时间。
与中心化构建者不同,去中心化构建者原则上应该欢迎并鼓励订单流的聚合。假设信息泄漏为零,搜索器 - 聚合器模型应该具有信任最小化安全性,相信加密和 SGX 完美运行。但是,它可能具有高度可信的活跃性,其中只有少数实体运行聚合器,这是可能的,因为捆绑包自然会聚合到最成功的聚合器。在这种情况下,订单流 / 捆绑包中不会导致审查问题,但可能会导致活跃度问题。
如果运行聚合器的实体数量较少,则可能存在地理分布不足导致管辖范围倾斜的情况,使网络更容易受到监管审查。
虽然像 SGX 这样基于 TEE 的解决方案似乎是目前更实用的构建者去中心化方法,但它仍然面临许多需要克服的技术挑战。
设计 2 :具有阈值加密和 ZK-SNARK 的搜索者 - 聚合器模型
这是另一种搜索者 - 聚合器模型,其中加密应用于捆绑包而不是聚合器。这是一个粗略的例子:
基于 TE 和 ZKP 的区块生成器示意图
这种设计可能存在聚合器和提议者之间的串通。阈值加密仅在计算状态根之前确保捆绑包的隐私,并且计算状态根的聚合器需要访问交易信息或状态更新。这种访问可以通过追踪相应的交易来实现 MEV 窃取。该设计消除了对 TEE/TPM 的需求,但它无法在不增加额外复杂性的情况下防止这种串通,例如要求提议者在允许计算状态根的解密之前提交到区块。以下是此类设计的一些问题:
-
提议者对区块的早期承诺可以通过重新抵押基础设施(如 Eigenlayer)来实现,但会产生额外的运营成本,因为需要充分激励 ETH 抵押者来平衡相关的罚没条件。
-
提议者可能会因为提早提交一个区块而错过价值更高的区块。
-
增加了生成 ZK-SNARK 和阈值加密的计算开销和延迟,使得该模型在实践中可能不可行。
-
关于谁将是阈值加密包的合格密钥持有者的问题,如果搜索者持有密钥,伪装成搜索者的攻击者可以阻止解密并延迟区块生产。相反,聚合器不能持有密钥,因为它们中的每一个都在竞争区块生产并且可能被激励去阻碍其他聚合器。这可能需要第三方,既不是搜索者也不是聚合者,并引入额外的信任假设,这些假设可能会降低作为去中心化构建者的无信任 / 信任最小化属性。
-
与第一个设计中提到的管辖范围相同。
设计 3 :基于混沌迭代搜索的插槽拍卖模型
这种设计允许多个区块构建者参与区块生产而无需聚合器。下面是一个粗略的插图:
基于插槽拍卖的区块构建者示意图
该设计旨在允许多个块构建者通过将区块的最大 gas 划分为 n 个插槽来参与构建单个块,给定 x 个构建者,其中 n = f(x) 且 n<MAX_THRESHOLD。网络中的构建者开始竞标划分区块空间,出价最高的人填满该部分区块,第一个中标者成为区块的构建者,剩余位置的投标继续进行,新的投标人收到在建区块并在此基础上进行构建。当没有更多的投标人或区块已满时,投标周期结束。最后持有区块的构建者将其提交给提议者。这种设计通过在每个插槽执行 MEV 拍卖 (MEVA) 并应用阈值加密来保护隐私,将单个构建者的传统任务分成更小的部分。这种设计的主要优点是它消除了对中心化聚合器的需求,并允许构建者分布在全球范围内,提供分布式管辖范围。但是,此设计也存在一些潜在挑战:
-
何时公开加密插槽将决定拍卖的效率(出价越接近相应的 MEV,拍卖效率越高,因为 MEV 将是插槽的「真实」价格)。如果加密插槽 N-1 在插槽 N 拍卖之前被公开,那么拍卖将是有效的,因为构建者能够根据他们预期的 MEV 进行投标。但是,这在实践中可能会出现延迟问题,因为插槽的严格顺序拍卖和解密可能需要一些时间。因此,另一种选择是让构建者预先竞标所有插槽的区块构建的权利,并在构建者填充插槽时依次解密块。由于构建者在投标前不知道插槽的 MEV(需要知道插槽 N-1 中的交易以确定插槽 N 的 MEV),拍卖可能效率低下,由于缺乏已实现的 MEV,构建者甚至可能不小心对插槽出价过高。不过,这个问题可以通过对区块中给定位置的插槽的历史投标价格进行统计分析来缓解。
-
为了防止构建者修改之前插槽中的交易,其他构建者必须充当见证人并提供某种形式的欺诈证明。
-
当插槽按顺序解密时,中心化构建者可以窃取一些 MEV。如果用户仅通过这个基于插槽拍卖的构建者网络提交订单流,那么 MEV 窃取问题就不会那么严重,但如果通过中心化构建者和这个构建者网络提交订单流,那么 MEV 窃取可能会出现问题。
-
恶意攻击者,如竞争的中心化构建者,可以通过中标而不是构建区块来破坏网络,从而暂时停止区块生产。如果有足够多的此类攻击者,这个构建者网络可能会变得功能失调(无法产生任何区块)。需要有一种机制来禁止网络中的恶意构建者,并在未填充的插槽上有一个备份计划。
设计 4 :提议者承诺的顺序插槽拍卖
这是另一种使用插槽拍卖模型的方法,类似于不必依赖聚合器的第三种设计。主要区别是该设计通过 Eigenlayer 为每个填充的插槽强制执行提议者承诺。不是在最后将整个区块提交给提议者,而是每个插槽将由提议者顺序提交,并且可以使用 Eigenlayer 来避免对以太坊进行协议级更改。由于提议者的承诺是在插槽显示之后立即出现的,因此对构建者修改先前插槽中的交易的担忧较少。然而,除了由于过程中额外的顺序提议者承诺导致延迟可能更糟,第三种设计提到的大多数其他问题也适用于这种设计。
对区块构建前景的看法
去中心化是区块链技术的一个重要方面,确保区块构建者去中心化是至关重要的。在本文中,我们讨论了几种可能的去中心化区块构建者的方法。然而,这仍然是一个供研究界探索和合作的开放设计空间。
设计一个具有竞争力的去中心化区块构建者需要大量的实验,像 Flashbots 这样的团队已经在探索 SGX 和其他支持隐私的技术。然而,要充分发挥这些技术的潜力,还需要更多的创新和研究。
总的来说,去中心化区块构建者是一项持续的挑战,需要加密货币以外更广泛的研究社区的合作和专业知识。通过实验、测试和创新,我们可以努力创建一个去中心化的、有竞争力的区块构建者,以增强网络的抗审查能力。