跳转到主要内容

超越以太坊协议:提议者-构建者分离 (PBS)

关于提议者-构建者分离 (PBS) 的演讲,这是一种在以太坊中将区块构建和区块提议角色分离的设计模式。

Date published: 2024年2月5日

本演讲解释了以太坊的区块生产如何从一个简单的模型演变为一个涉及验证者、构建者、搜索者和中继的复杂供应链。来自以太坊基金会的巴纳贝·莫诺 (Barnabé Monnot) 详细介绍了为什么存在提议者-构建者分离 (PBS),MEV-Boost 中继如何协调提议者和构建者之间的关系,以及正在探索哪些协议内解决方案来减少信任依赖并提高抗审查性、MEV 分配和验证者去中心化。

本文字稿是 CBER 论坛发布的原视频文字稿 (opens in a new tab)的无障碍副本。为提高可读性,已进行轻微编辑。

简介 (0:00)

我叫巴纳贝·莫诺 (Barnabé Monnot)。我将谈谈协议之外发生的事情,特别是提议者-构建者分离 (PBS) 的概念,以及它是如何通过中继和大量链下基础设施运作的。

我喜欢把协议看作一个具有某些权力的抽象对象。协议拥有的权力之一是它能够赋予某些参与者权利。我们在之前的演讲中看到,协议授权验证者执行共识职责,但这并不是他们唯一做的事情——我们还必须将交易打包进区块。我们称之为执行职责,这也是我本次演讲要重点讨论的内容。

为什么验证者使用构建者 (0:46)

有趣的是,尽管协议是这些权利的来源并将其赋予验证者,但我们在实践中观察到,许多验证者选择不亲自履行这项权利。他们选择将权利交给其他人代为执行。在以太坊中,我们把这些“其他人”称为构建者。

因此,我们观察到的是,尽管验证者继续亲自履行这些共识职责,但他们决定将执行职责传递给构建者。这实际上是一个相当庞大的市场。如今,大约 90% 的区块是由外部构建者构建的,自 2022 年 12 月(合并后三个月)以来一直如此。构建者支付给验证者的中位数大约是每个区块 120 美元。每天支付的金额高达一百万美元,并且每 12 秒,这个市场就有可能在一个提议者和一个构建者之间达成某种协议。

今天我想讨论为什么验证者使用构建者,这种关系从何而来——在此过程中我将介绍一些关于最大可提取价值 (MEV) 和搜索者的内容——然后我将告诉你们这种关系是如何协调的,我还会谈谈当今存在的中继以及我们正在考虑的协议内解决方案。我还想从宏观角度来看,因为人们很容易看到这些画面就想:“哦,这太可怕了,去中心化怎么办?”我想让大家明白,这些都是正在做出的权衡,但在我看来,方向是正确的。

朴素模型与 MEV (3:04)

你可以想象一个朴素的区块生产模型,其中验证者根据领导者选择过程被选中,他们必须制作一个包含来自内存池的交易列表的区块。在最朴素的模型中,实际上只有两方——一个监听内存池的验证者,当轮到他们出块时,他们会取出支付费用最高的交易并将其添加进去,通常使用的是不太复杂的打包算法。

在过去五年中,人们非常明显地观察到,这赋予了生产者很大的权力——特别是最后查看权 (last look)。他们能看到用户想做什么,例如,他们看到用户想要兑换某种代币,他们就可以利用这些信息为自己提取利润。

在最好的情况下,这种利润来自套利等自然市场功能。在最坏的情况下,它可能直接来自用户的口袋,例如三明治攻击。例如,用户在尤尼斯瓦普等市场上发起代币 A 兑换代币 B 的订单。该交易将与部署在同一条链上的另一个市场产生价格失衡。生产者可以看到待处理交易,并插入自己的交易,在不同的市场上进行反向兑换,顺便将套利收入囊中。

这确实赋予了生产者很大的权力,并使成为区块生产者的位置变得极具价值。这种生产者特权就是我们现在所说的最大可提取价值 (MEV)

搜索者的角色 (5:43)

在实践中,生产者可能不知道价值在哪里。你可能会遇到一些不太成熟的区块生产者——如前所述,任何人只要有足够的资金并能够运行节点,就可以成为验证者。在实践中,我可能不知道如何进行套利,或者对金融市场一无所知。我想要的是有人告诉我这些机会在哪里——一个由人们竞争着告诉我作为区块生产者最好该怎么做的市场。

这些非常善于发现机会的实体,我们称之为搜索者。他们向区块生产者展示机会。搜索者可能会通过公共内存池、暗池或私人渠道观察到用户正在进行兑换,然后与验证者沟通:“正在发生一笔兑换——如果你将这笔兑换与这个套利打包成一个原子交易包 (bundle) 并包含这个交易包,那么你就可以从套利中赚钱。”会有许多搜索者竞争以说服区块生产者。

如果搜索者信任生产者能保持交易包的原子性,这种模型在实践中效果很好。你最近可能听说过以太坊上发生的一起攻击事件,导致一群三明治攻击者损失了 2500 万美元——根本原因是攻击者设法破坏了交易包的原子性,接收了内容并试图重新组织和修改它们。这是一个非常重要的属性,只有在可以信任生产者不会破坏这种原子性的情况下才成立。

为什么我们需要构建者 (8:16)

如果生产者不可信怎么办?在以太坊合并之后,我们有独立质押者——约占网络的 6%——我们并不认识他们。搜索者其实不想将交易包发送给这些区块提议者,因为这有点太危险了。

因此,最终得出的设计是:与其让搜索者传达交易包并由生产者将其包含在区块中,不如我们直接为你构建整个区块。这样你就可以盲签区块——你不需要知道里面有什么,你相信构建者给了你一个好区块。

现在你有了一条更深的链:一端是验证者,另一端是用户,中间是随着时间推移不断变得更加密集的整个中介链。构建者负责执行部分,而验证者负责共识。

MEV-Boost 中继如何工作 (13:01)

假设你是一个提议者,你想进入这个市场。这种区块生产服务是一个经典的公平交换问题——两方试图达成协议,但他们互不信任。经典文献告诉你,没有受信任的第三方,你就无法进行公平交换。

我们今天用作受信任第三方的就是我们所说的中继——MEV-Boost 中继。MEV-Boost 是协调构建者和验证者之间交互的协议名称。中继位于中间,以确保双方达成协议。

中继有几个作用。首先,它需要验证构建者的有效负载——中继可以清楚地看到构建者正在制作的区块,并可以检查它是否有效以及是否可以提议给网络。有一种变体称为乐观中继,其中中继不会立即检查有效性,而是要求构建者提供抵押品,以防区块最终无效。

其次,构建者正在出价,试图竞争成为验证者选择的构建者。中继充当出价转发器,将出价发送给验证者。然后在最后一步,一旦验证者从中继中选择了一个出价——验证者可以连接到任意数量的中继——他们就会对其进行签名(仍然不知道区块内容是什么),并将签名的出价发送回中继。有了这个签名的出价,中继就可以将区块发布到网络。

中继的经济学很复杂。有些是免费的,有点像公共物品。其他中继则开发了收入模型——例如,Ultrasound 中继有一个“出价调整”,他们将最高出价和次高出价之间的差额作为收入。

信任与中继 (17:01)

中继是系统中的受信任第三方。假设一个中继提供了一个无效区块——人们会立即看到它,因为它已被签名,并且他们会非常快地断开与该中继的连接。你甚至可以广播某种故障证明。在五个区块内,如果中继表现不佳,人们就会停止信任它并直接断开连接。

因此,它是基于信任的,但前提是它可以相对较快地被替换。中继不是验证者——它们不一定有质押,也不必与以太坊有任何关系。今天可能是我们认识和喜爱的人,但明天可能是任何人。

将 PBS 纳入协议 (20:01)

我们正试图消除中继的受信任第三方地位。在以太坊中,我们有一个喜欢的受信任第三方——那就是以太坊本身。你可以设计协议内解决方案,试图从根本上将中继的角色纳入协议,并使其成为可选的依赖项。

目前,以太坊协议能看到验证者正在做的部分事情,但对构建者网络完全视而不见。我们正试图推动以太坊协议成为提议者和构建者之间交互的受信任第三方——从这个意义上说,我们不再需要依赖中继。

约束构建者,扩大去中心化 (22:05)

宏观视角很重要。在每一层似乎都在发生不同的博弈,不同的参与者互相赚钱——这又是传统金融的重演吗?我想说,这些权衡并非出于恶意。它们试图利用这些系统的特性,我们认为这些特性有助于扩展系统并使其更有用。

维塔利克 (Vitalik) 谈到了区块链可能提供的服务存在根本的不对称性。共识需要一个非常庞大的去中心化人群来进行检查。但有些服务确实只需要一个人把工作做好,然后其他人验证工作是否做得好。我们只需要一个构建者来制作区块,然后每个人都可以验证它是有效的。

今天显然有三个占主导地位的构建者:Beaver Build、Titan 和 rsync Builder。这是一个好的状态吗?并非如此——我们可以做得更好。但是,想象我们会拥有与验证者一样多的构建者现实吗?可能不现实。

我们真正想要的是这层薄薄的验证者,他们约束并利用中间存在的高能参与者,这些参与者可以执行不需要诚实多数假设的任务。

约束构建者的一些想法:

  • 包含列表 (Inclusion lists) ——验证者告诉构建者“你必须在你的区块中包含这些交易”
  • 部分区块构建 (Partial block building) ——分解整个区块,这样构建者就不会垄断所有空间
  • 减少第三方依赖 ——将中继角色纳入协议

为了扩大验证者去中心化:

  • 证明者-提议者分离 (Attester-proposer separation) ——不再默认让验证者成为区块生产者,而是选择另一组人成为区块生产者并解绑这些角色
  • 改进的质押机制 ——如今以太坊中的质押还有些初级,可以进一步改进

提问与结语 (27:03)

观众提问:在传统金融世界中,结算时间正在从两天缩短到一天。将结算时间从 12 秒缩短到更短的间隔能解决一些抢跑问题吗?

人们正在讨论这个问题——他们称之为预确认 (pre-confirmations)。这个想法是,你发送你的交易,然后有人告诉你“你已经以这个价格、在这个状态下被纳入了”。问题是,你的结算速度不能快于协议的运行速度。你无法获得比 12 分钟更快的最终性结算。你的速度不能快于出块时间。

缩短出块时间很困难,因为我们希望保持验证者层尽可能去中心化的状态,而缩短出块时间只会增加硬件要求。

这个页面对您有帮助吗?