本文深入探讨了SUAVE、Anoma和共享排序器等概念,分析了它们在区块链领域中的作用和相互关系。SUAVE旨在成为一个通用的偏好表达和执行层,Anoma则试图通过统一架构来实现链之间的互操作性,共享排序器则在多个rollup之间提供原子性和确定性。文章还讨论了这些技术在跨链MEV捕获、构建者中心化以及经济激励方面的影响和挑战,并探讨了rollup在去中心化过程中的设计思考。
SUAVE, Anoma, 共享排序器, & 超级构建者
这篇文章进一步分析了 SUAVE 和共享排序器,作为我上一篇文章的后续:
这是完整的指南:
Rollups 不是真实的 去中心化,共享排序器,跨链原子性,SUAVE,& MEV
第一部分 - SUAVE: 我深入探讨了其设想的架构、用途、局限性和交互。我不会关注特定的 PET 实现(即,SGX、MPC、FHE 等)。在这里,我将主要将其视为一个黑盒。
第二部分 - Anoma: Anoma 构建于与 SUAVE 相同的许多基本思想之上,但它采取了根本相反的方法。
第三部分 - 共享排序器:
在原子跨链交易和 MEV 捕获中的应用
与 PBS 的交互以及对构建者的潜在中心化力量
经济分配挑战
Rollup 实施验证器强制的定制的灵活性降低
Rollup 实施 VM 定制的能力(例如,确定性排序规则)
SUAVE 将是一个独立的网络,允许任何链外包两个角色:
Mempool - 用户可以将交易发送到 SUAVE mempool,而不是其“主”链的公共 mempool(例如,以太坊)。
去中心化区块构建者 - SUAVE 输出其他域的验证器可以接受的(完整或部分)区块(例如,以太坊提议者可以接受由 SUAVE 构建的区块)。
来源:MEV 的未来是 SUAVE
目标是成为任何域的 mempool 和区块构建者。在单一拍卖中聚合偏好有几个好处:
跨链构建者可以赚取比单链构建者更多的收益。
在同一拍卖中聚合和结算偏好带来的效率提升。
与中心化构建者相比,去中心化和保护隐私的构建者应该会吸引更多的 orderflow。
这些东西很复杂。大多数链不应该专注于构建高级的隐私保护原语。
Flashbots 将 SUAVE 描述为具有三个组件:
偏好环境 - SUAVE 链及其 mempool 专门用于聚合来自任何域的用户偏好。用户为执行出价。
执行市场 - 一个由专门的“执行者”组成的网络,监听 SUAVE mempool 并竞争执行用户偏好。
去中心化区块构建 - 执行者最终可以为其他域生成(部分或完整的)区块。
来源:MEV 的未来是 SUAVE
SUAVE 协议本身有两个逻辑层:
消息层(即,SUAVE mempool) - 传输要执行的偏好
结算层(即,SUAVE 链) - 结算支付给满足偏好的执行者的款项
SUAVE 链主要用于处理以下交易:
桥接资金
初始化智能合约,提供满足偏好的出价
提交关于其他域状态的预言机更新(以检查偏好是否已满足)
在满足偏好后认领出价
但是,SUAVE 是一个无需许可的 EVM 链,因此可以部署任何东西。原生交易活动超出其“预期”用途的情况尚不清楚。
参与的动机是:
执行者 - 受出价激励
SUAVE 链验证器 - 受网络交易费激励
SUAVE 链的确切安全模型仍有待确定(例如,L1、rollup、重新质押等)。
TLDR - SUAVE 有其自己的链和 mempool。任何人都可以向 SUAVE 表达偏好,供任何执行者满足。满足偏好的任何执行者都可以认领相关的出价(付款)。总之,这些部分允许任何链外包其自己的 mempool 和区块构建。
我认为典型的 SUAVE 交易生命周期分为四个高级阶段:
偏好表达 - 我告诉 SUAVE 我想做什么。我为完成这项工作的人出价。这就像一个偏好公告板。
执行优化 - 在黑盒中会发生一些神奇的事情。执行者会找出使我获得想要的东西的最佳方法。
偏好结算 - 执行者前往我想要完成某些事情的链,并确保它得以完成。
付款结算 - 在我的偏好得到满足后,执行者可以在 SUAVE 链上认领我下的出价。
现在让我们详细了解一下。
你可以将用户视为有两种类型的交易:
示例 - 我想关闭 Optimism 和 Arbitrum 之间的 ETH/USDC 套利。我将向完成这项工作的人支付 3 个 ETH。
今天 - 你的交易将路由到 Flashbots Protect,在那里,中心化的构建者会保护你的交易的隐私并将其包含在内。
未来 - 你的交易会在幕后进行调节,使其定向到像 MEV-Share 这样的 OFA,该 OFA 会馈送到 SUAVE 中。OFA 的条件可以编码为你的偏好的一部分。
没有明确的技术区别,但重点是“普通”的不复杂的用户不需要亲自编写一些复杂的智能合约逻辑来表达他们的偏好,以基本的方式使用 SUAVE。
偏好是用户签署的用于表达特定目标的消息。如果满足用户的条件,它们会解锁付款(出价)。偏好的范围可以从:
简单交易 - 包含要在特定域上执行的简单有效负载(例如,以太坊上的 ETH 转账)。
抽象意图 - 对我想要实现的目标进行抽象陈述,并将最佳路由留给执行者。这可能涉及跨多个域的任意复杂的事件序列。
SUAVE 正在引入一种新的交易类型,该类型提供了一种去中心化的方式来传递偏好。这些将建立在捆绑包的现有属性之上(例如,预确认隐私和无回滚),并允许更丰富的表达。
我们可以看到围绕偏好表达的创新,以满足用户的需求。例如,执行者可以专门以某种方式“预处理”交易,使其更有价值,例如:
代表用户支付 gas 费
将类似的交易批量处理在一起(例如,具有需求巧合的交易)
随着越来越多的偏好在一个统一的 mempool 中聚合,执行者可以更好地最大化所有用户的福利。例如,当更多用户具有抵消偏好时,批量清算效率更高。这类似于 CoW Swap 求解器今天所做的工作。但是,SUAVE 中的批量处理可以更加去中心化和完全通用(而不是中心化和特定于应用程序)。
请注意,SUAVE 仍然可以使用来自任何公开可用的 mempool 的交易来构建区块,就像任何中心化构建者一样:
用户可以通过 SUAVE 链上的智能合约表达他们想要的任何偏好。这需要在 SUAVE 链上存入资金并下注,如果执行者满足你的偏好,则可以认领该出价。
SUAVE 是一个有状态的系统,其中:
状态由 s_1
→ s_2
→ s_3
... 表示
s
是当前 SUAVE 状态
S
是 SUAVE 链共识确认的所有历史 SUAVE 状态的集合
exec(bid,s’)
输出 b,e
b
是支付给地址 e
(满足偏好的执行者)的出价
考虑一些示例:
资料来源:MEV Roast | 隐私权权衡 - Phil Daian
在所有情况下 - 我都有想要完成的事情。如果执行者为我完成,他们可以根据预言机声明 3 ETH 出价。请注意,上述示例出价在出价指定为能够认领奖励的执行者方面很灵活:
如果我的偏好得到满足,则在我身后提交交易的任何人都可以认领该出价。这假设执行者可以可靠地在我的交易(位置 0)之后插入他们自己的另一笔交易(位置 1)。他们实际上是在“标记”自己,作为可以认领该出价的执行者。
与第一个示例类似。
鉴于该区块为空,因此唯一可能是执行者的人是实际的区块生产者(即,矿工、验证者等),因此他们被指定为能够获得出价的执行者。
我只是希望有人为我创建一个结果状态,并且发送完成该状态的交易的任何人都可以认领该出价。
考虑到这一点,SUAVE 链的区块时间是否会成为偏好表达的瓶颈?考虑一个例子:
如果 SUAVE 链的区块时间为 1 秒,并且
我想表达对区块时间为 500 毫秒的域的偏好
这里有两种可能的情况:
表达我的偏好需要 SUAVE 链上的链上交易 - 我现在受到 SUAVE 链的区块时间的限制。
表达我的偏好不需要 SUAVE 链上的链上交易 - 没有瓶颈。
如果这是一个有意义的瓶颈,那么 SUAVE 链将被迫具有超快的区块时间,以便为具有低区块时间的其他域提供偏好。你将被拖到最低公分母。
让我们来看一个示例偏好生命周期以了解流程:
将资金桥接到 SUAVE 链。但是,如果我已经有 SUAVE 链上的资金,则不需要这样做。
初始化一个智能合约,该合约允许我表达我的偏好并存入资金。如果我需要创建一个新的智能合约或存入资金,那么我将需要进行交易。
如果这是一个通用函数,我可以只重用现有的智能合约(例如,我已部署为智能合约并在其中存有资金的策略)。
选项 1 - 创建一个签名(不是交易),用于表达我的偏好并将其直接传递给 SUAVE 执行者市场,以节省延迟(这是一个与 mempool 不同的网络层)。
选项 2 - 使用 SUAVE 的特殊交易类型将你的签名承诺带入 SUAVE mempool。这确保了最大数量的执行者将看到它。(注意:目前关于这种新交易类型到底是什么,或者它如何实现这些属性的细节非常少。)
SUAVE 执行者竞争和/或协作以满足我在目标链上的偏好。
预言机在我满足偏好后更新 SUAVE 链,并且执行者可以认领我提出的出价。这需要链上交易,但几乎不用担心(执行者可以在事后获得报酬)。
让我们退后一步,了解一下搜索者今天是如何运作的。MEV 机器人部署自定义链上智能合约来执行其策略:
链下 - 源代码首先在链下以易于阅读的 HLL(例如,Solidity)编写。虽然 DeFi 协议的智能合约会验证并发布此代码,但 MEV 机器人不会。
链上 - 智能合约仅将编译后的字节码存储在链上(例如,以太坊的 EVM 字节码)。这不像从中编译它的 HLL 那样容易阅读。它们通常以故意混淆它们的方式编写(即,很难对可见的字节码进行反编译并找出其背后的逻辑)。
智能合约无法自行执行(EOA 必须触发其代码以启动交易)。因此,搜索者运行链下逻辑和实时监控(例如,mempool 交易、CEX 价格、链状态等),然后决定何时进行交易/捆绑交易并根据该信息触发其链上合约逻辑。
他们可以将捆绑包推送到其中,从而表达他们希望如何执行某些操作。对于新策略,他们会部署新合约。与仅即时发送普通的 EOA 交易捆绑包相反,搜索者通常也使用智能合约来提供对执行的更精细的控制:
它们可以提供护栏,在执行模拟期间添加自定义检查,如果未满足某些条件,则可以回滚(例如,如果他们在交易中产生的滑点超出预期)。
更容易地促进在同一交易中跨多个合约的执行(例如,从 Aave 借用闪电贷 + 在 DEX 上交易 + 偿还闪电贷)
潜在的 gas 节省,例如编写比 UI 提供的更有效的东西(例如,直接与 Uniswap 池交互而不是通过他们的路由合约)。
缺点包括:
你正在公开你的代码。原始 EVM 字节码难以读取,但是如果有足够的时间,你可能能够备份有用的信息。
如果你不小心,如果存在漏洞,你的机器人可能会被黑客入侵或利用。
让我们考虑一个简单的三明治机器人示例。我是一个搜索者,在链上部署了一个智能合约 SC
来执行我的策略。交易流程如下:
我的交易系统运行链下逻辑来监控 mempool,并且它发现了一个目标 tx_user
(具有高滑点限制的 SushiSwap 交易)。
交易系统使用交易模拟和/或其他启发式方法处理该信息,以优化和加速该过程。我决定是否可以交易它,以及我愿意出价多少。
我通过 JSON-RPC 请求将我的捆绑包发送给构建者。我的捆绑包由 [ tx_frontrun
、tx_user
、tx_backrun
] 组成,并且我通过直接 coinbase.transfer
向费用接收者提供我的出价(也可以通过 gas 价格进行出价)。
使用 SC
帮助管理链上执行,我可以使 coinbase.transfer
以我的有效性条件为条件(例如,仅当我可以至少从三明治中获得与我预期一样多的收益时才付款)。
我用我的 EOA 签署了我的交易。但是请注意,SC
实际上将执行交易(即,SC
在其中有我的资金,并且这将是对 SushiSwap 执行交易的内容,而不是我的 EOA)。我只是用我的 EOA 签名来调用 SC
。
构建者模拟该捆绑包,其中包括运行我已编程到 SC
中的检查。如果它在模拟时恢复(例如,如果有人在我之前获得了机会,无法满足我的条件等),则构建者将不会包含它。但是,我的交易是成功的,并且他们接受了我的出价。
构建者提交区块 → 中继 → 提议者包含该区块。
EL 节点按顺序执行区块中的交易。这包括我的捆绑包,其中“面包”= 我到我的 SC
的交易。SC
检查字节码中围绕回滚的特定条件。(例如,检查与它交互的发送者、我的 EOA 是否有权这样做,以及是否满足执行的其他条件。请注意,添加更多检查也会增加我的 gas 成本。)。然后它具有一些分支逻辑来执行该策略。现在它成功执行,并且链状态已更新。
总的来说,搜索者_已经_以某种意义上通过智能合约表达了偏好,但他们不会像在 SUAVE 中那样出价。
为了使统一拍卖能够解释范围广泛的偏好,需要某种形式的每个人都可以使用的统一“语言”。在 SUAVE 的情况下:
SUAVE 链将是 EVM 分叉
所有偏好都将通过 SUAVE 上的智能合约表达(EVM 字节码)
图灵完备的 EVM 提供了必需的表达能力。但是,一个问题是 EVM 是否_过于_具有表达能力。该领域存在经典的不可行性定理,表明允许任意表达的出价语言会导致无限的计算复杂性,从而使你的拍卖不切实际。在一个 SUAVE 希望为任意多的域表达任意复杂的偏好的世界中,这种组合爆炸似乎尚不清楚。
这里也可能存在对悲伤攻击的担忧。例如,我可能会通过一个合约表达一种偏好,该合约始终会溢出 gas 限制,除非提供一个特定的输入。然后,在获得该输入之前,没有人可以模拟该合约的实际条件。EVM 在这里没有提供很好的 DoS 防护。
需要 EVM 智能合约来表达所有偏好也似乎不是最佳的。如果你尝试实施复杂的逻辑,例如:
如果 Uniswap 上的价格 > 2000 且 SushiSwap 上的价格 < 2000 → 则首先在 Uniswap 上交易,然后在 SushiSwap 上交易
如果 Uniswap 上的价格 < 2000 且 SushiSwap 上的价格 > 2000 → 则首先在 SushiSwap 上交易,然后在 Uniswap 上交易
那么编写自定义智能合约以将此智能合约实现为决策树似乎是必要的。你显然不会每次想要向 SUAVE 表达任何东西时都编写新的智能合约 - 你将拥有模板合约来执行与前面描述的类似策略。
但是,用户可能拥有的并非所有抽象偏好都将由现有合约提供服务。使用户能够在用户意图级别以更原生方式表达偏好似乎是有益的。
接下来,执行者竞争以满足跨任何域的用户偏好。
你可能已经听说过 MEV-Share - Flashbots 最近宣布了他们的 beta 版本。这是 OFA 的(受信任的)v1,最终将被纳入 SUAVE。这将需要多次迭代才能改进它并减少对 Flashbots 等运营商的信任。
但是,这些细节不是这里的重点。抽象的概念是,用户发送订单,而搜索者(执行者)竞相为用户提供最佳执行。其中的一些变体将成为 SUAVE 的核心部分。
出价 b
由以下组成:
存款 k
收款人 e: S → A
执行谓词 P(s)
加密数据 blob c
加密谓词 Q(s)
窥视者集合 ∑
其中:
e
从 SUAVE 状态 s ∈ S
映射到 SUAVE 帐户 A
的集合
谓词 P(s)
和 Q(s)
同样适用于 SUAVE 的状态
执行出价 b
的结果:
如果 SUAVE 的当前状态 s_cur
满足 P
→ 将存款 k
转移到 e(s_cur)
帐户,将 SUAVE 状态修改为 s_next
如果 SUAVE 的当前状态 s_cur
不满足 P
→ SUAVE 状态保持不变
在出价中,用户有三个可编程隐私控制旋钮:
执行谓词
加密谓词
窥视者集合
可编程隐私 = 允许用户有选择地解密和显示他们希望的尽可能多的(或尽可能少的)数据,以及在什么条件下。例如,你可以部分解密信息,以使执行者可以满足你的偏好,同时又可以使你的经济偏好的各个方面保持私密。
用户可以强制执行以下条件:
“我的 Tx 数据的某些部分只能在针对这些预言机的世界状态满足条件 X 时才能解密”
“我只希望我的 Tx 在区块中首先执行,否则它应该失败。”
SUAVE 还需要可信承诺 - 我们需要强制执行某些执行条件。这已经是 MEV-Share 及其“有效性条件”的一部分。它们与用户的交易一起传递,规定了诸如“必须为此捆绑包的执行向用户支付 >=1 ETH”之类的条件。
在 MEV-Share 的初始阶段,这些条件是不可强制执行的-它们将依靠信任包含它们的构建者。OFA 的后续迭代将着眼于通过利用 SGX 来减少对有效性条件执行的信任。
偏好还可以包括 费用自动扶梯 - 随着时间的推移,交易会提高其 gas 价格。它们甚至可以从负值开始(即,执行者必须为用户支付执行它的权利)。这允许用户无许可地进行隐式荷兰式拍卖,以获得满足其偏好的权利。
举例来说:
Tx 以 -$200 的费用开始
执行 Tx 将允许某人捕获 $100 的 MEV 机会
费用随着时间的推移逐渐增加
执行者应在费用自动扶梯升至 -$100 以上时提取 Tx
当与描述的可编程隐私相结合时,费用自动扶梯可能非常强大。用户可以自由地解密和显示他们希望的尽可能多的内容。
如果你保持此费用曲线和你的交易信息私密,则搜索者可以尝试针对其他捆绑包强制优化此内容。你可以保证用户可以获得最佳的 MEV 执行,同时可以无许可地实时访问他们的 orderflow。这仅依赖于对搜索者和验证者的竞争性假设。
DBB 网络聚合偏好(其中许多偏好现在已由执行者优化了其执行路径),并将它们转换为跨域的区块。
DBB 被描述为 SUAVE 中三个逻辑上独立的组件之一,因为并非所有域都甚至具有区块构建和 PBS 的概念。但是,此 DBB 角色实际上是执行市场中执行者的一个专门实例。
我们今天习惯于搜索者和构建者之间显示的清晰区别,但实际上,界限有些模糊。执行者是满足这些偏好的行为者的总称,这可以包括我们今天在搜索者和构建者中看到的角色。
今天,构建者为以太坊构建整个区块。从长远来看,SUAVE 的最终目标是使这个执行者网络协同构建区块,“滚雪球”成构建一个完整的区块。一个执行者可以构建一个加密区块的一部分,然后另一个执行者可以添加更多交易,依此类推。这种协作是如何获得完全 DBB 的方法。
现在是用户目标链验证者接受(或拒绝)SUAVE 执行者试图满足的内容的时候了。
SUAVE 不会取代链选择其区块的#### 跨域 MEV
SUAVE 允许你表达对跨域交易的偏好。让我们考虑一个例子。一个用户向 SUAVE 传达了他们的偏好,即他们希望在当前区块高度执行两笔交易以结束套利:
交易 1 ( T_1
) - 在 Rollup 1 ( R_1
) 上以 2,000 美元的价格购买 ETH,在区块 1 ( B_1
) 中
交易 2 ( T_2
) - 在 Rollup 2 ( R_2
) 上以 2,100 美元的价格出售 ETH,在区块 2 ( B_2
) 中
这些 Rollup 甚至可能具有完全不同的、未同步的区块时间长度。R_1
可能有 1 秒的区块,而 R_2
有 10 秒的区块。那么,T_1
完成其套利的一条腿,但 T_2
失败,这是完全合理的。
这就是为什么 SUAVE 对如何实际实现偏好并 不 具有规定性。SUAVE 旨在实现最大的灵活性,以便它可以为任何领域和用户进行协调。因此,在不同领域执行将带来不同的挑战。不同的用户将接受不同的结果和风险级别。
如果用户只愿意在两条腿都完成的情况下执行,那么执行者必须为他们承担只有一条腿执行的风险。例如,用户可以要求执行者用自己的资金完成两条腿,然后只有在两条腿都完成的情况下,他们才能用这些资金交换用户锁定的资金。如果他们未能完全满足偏好,那么执行者将被迫承担风险。
这需要复杂的执行者来评估进行统计套利的执行风险,这意味着可能只有更少的执行者会竞标这个机会(他们可能没有前期资本或不想承担风险)。
SUAVE 可以支持任何期望的路径。用户和执行者都可以有自己的风险承受能力,并以他们希望的任何方式进行交互。SUAVE 无法独自提供“技术上的跨域原子性”,但它可以从用户的角度提供这种意义上的“经济上的跨域原子性”(尽管执行者可能会被迫承担风险)。
现在目标链确认了他们自己的区块,SUAVE 链需要意识到这个结果。如前所述,只有满足用户偏好的执行者才能解锁竞标。需要预言机来证明这些偏好在其他地方得到了满足。
这些预言机可以以任何期望的方式实现。在任何情况下,这些预言机合约都负责将外部事件导入到 SUAVE 的状态中。
一个简单的例子是预言机合约,它允许 SUAVE 竞标查询以太坊的历史记录。我可能想竞标 10 个区块中的一个空区块。我可以提交一个竞标,通过创建一个交易,如果预言机告诉它以太坊状态已经转变,使得应该进行支付,那么该交易将输出一个支付。
SUAVE 链在偏好表达中起着重要作用,并且在事后需要进行支付结算。回顾简化的交易流程:
你可能会在这里提出一些问题:
为什么不只是为 SUAVE 偏好表达建立一个独立的全球 p2p 层(类似于 Anoma 的意图网络),然后在目标链上结算支付?
为什么我们需要 SUAVE 链来进行偏好和结算?即使需要一条链,为什么不使用现有的链(例如,以太坊)?
SUAVE 对传输偏好有两个要求:
低成本 - 仅依赖 p2p 层也可以实现这一点。在正常时期(不过度拥堵),SUAVE 链也可以类似地运行。这需要改变实际的链并引入一种新的交易类型。
抗 DoS - 区块链可以通过迫使 DoS 攻击者为垃圾邮件支付成本来阻止他们。一条链允许在网络过度拥堵的情况下收取费用(通过在链上包含偏好)。一个独立的 p2p 网络将不具备收取此类费用的机制。
需要一条链来结算跨域偏好的支付。考虑一下早些时候的例子,用户提交了一个跨域套利的偏好,但只愿意在两条腿都执行的情况下支付。事后必须进行一些预言机验证,以便仅在满足整个偏好的情况下才进行结算。你不能只支付交易的每条腿(例如,你可能会支付交易的一条腿,但另一条腿失败了)。
需要有一些领域提供这种全有或全无的支付选项。将资产桥接到 SUAVE 链并在那里结算一切是一种选择。这可能对某些用户来说是不可接受的,但它需要成为一种可能性,因为 SUAVE 正在尝试支持所有潜在的偏好表达和结算模型。
最好将其作为自己的独立链(而不是现有的链)来提供服务,以便在结算跨多个域的偏好时保持中立。当 SUAVE 转向为所有域提供服务(不仅仅是以太坊)时,这一点也很重要。它可以拥有独立的所有权和参与,与其他任何现有链分开,这可能是获得其他域(无论是 Cosmos、Solana、CEX 等)支持所必需的。
SUAVE 还需要实施各种优化,而这些优化对于现有域来说是不可接受的。它需要控制完整的堆栈链来实施这些优化。这可能就像相对更高的 gas 限制和更低的区块时间一样简单 - 这些对于以太坊来说当然是不可接受的。
另一个例子与 mempool 有关。Flashbots 已经考虑用一种针对更快通信进行优化的不同结构来替换 Geth 中以太坊当前的 mempool。
Flashbots 还考虑将 SUAVE 链长期作为 rollup。这可以允许 SUAVE 链使用 rollup 的推导函数来无需信任地访问以太坊 L1 及其其他 rollup 的状态。这在将其他域的状态转换报告回 SUAVE 链时很有价值,这样就可以将竞标中的有条件支付解锁给执行者。
SUAVE 当然还没有上线,甚至还没有规范发布。这是一个雄心勃勃的愿景,需要数年才能实现。计划分阶段发布:
MEV-Share 是一个 OFA,它可以保护用户交易的隐私,使其不被搜索者发现。它最初依赖于 Flashbots 作为受信任的撮合者。构建者将被信任以尊重用户期望的执行和支付。
SUAVE 链主网允许用户将偏好发送到执行市场
基于 SGX 的 OFA,以消除对 Flashbots 的信任
基于 SGX 的中心化区块构建,以实现开放但私有的订单流
基于 SGX 的去中心化构建网络,以允许无需许可和私有的协作区块构建
将第二个域引入 SUAVE,并允许跨域 MEV 偏好的表达和执行
在长期,Flashbots 计划研究密码经济学、自定义安全 enclave、MPC 和 FHE,以进一步降低系统中信任保证。
来源:dystopiabreaker
那么,谁会使用 SUAVE 以及为什么?一些高级用户可能是:
普通用户 - 我只是想将我的 swap 发送到一个 OFA,它会给我良好的执行。
高级用户 - 我想购买大量的 ETH,所以我表达了一个偏好,即在许多不同的域的交易所上扫荡流动性(例如,我可以指定哪些链和包装的 ETH 版本我认为是可替代的)。这有点类似于传统金融中的 市场间扫单 (ISO)。你可以将其视为一个元 DEX 聚合器。
搜索者 - 我运行特定的策略,寻找 MEV 机会。我可以表达我对想要捕获的特定机会的偏好。
一些最大的开放性问题包括:
偏好 - 表达这种通用概念“偏好”的最佳方式尚不清楚。尝试为当前的区块链堆栈(例如,EVM 智能合约)构建会继承某些限制。
隐私 - 没有人喜欢 SGX,但这似乎是中短期内的实际情况。摆脱这种情况的时间表和可行性尚不清楚。
预言机 - 用于结算的返回 SUAVE 链的预言机引入了许多复杂性和问题。
总的来说,SUAVE 酷毙了。它是一种雄心勃勃且引人入胜的抽象,它展示了如何表达和实现任何通用偏好。
如果 SUAVE 还不够令人困惑和着迷,我还有另一个:
Anoma 是另一个正在开发的协议,它 非常 让人联想到 SUAVE 背后的核心思想。首先,Anoma:
是一种区块链的 架构。它是一个框架。
不是 一条区块链。
任何链都可以实现 Anoma 架构。你可以拥有 Anoma L1、Anoma L2 等等。实现 Anoma 架构的链被称为 Anoma 的“分形实例”,并且都共享某些同质标准。
令人困惑的是,计划中的分形实例之一目前也被称为“Anoma”。为简单起见,当我提到这个特定实例时,我将其称为“Anoma L1”。它将是一条支持 IBC 的 L1 PoS 链。如果我只说“Anoma”,我指的是该架构。
请记住,Anoma 和 Anoma L1 是完全不同的想法。将“Anoma”视为你想到“Cosmos”的方式。你可以拥有 Cosmos L1、Cosmos L2 等等。它只是指共享某些标准集。Anoma 链和 Cosmos 链实施的标准并不完全类似,但这是一个有用的简化。
今天的每个区块链都提供 结算 - 共识同意并最终确定某个更新的世界状态。
但是,它们并没有直接针对 交易对手发现 (CD) 进行优化。对于简单的事情,这实际上并不重要。如果我想给你发送一些 ETH,我不需要 CD。你只需要给我你的地址。我提交一个交易到以太坊 mempool,该交易授权将 ETH 从我的地址发送到你的地址。
对于更复杂的交互(如交易)而言并非如此。这需要 CD 来:
帮助交易对手 互相发现,并且
彼此同意 结算什么
我知道我想要什么(例如,我想将 1 ETH 兑换为 1000 USDC),但我不知道如何获得它。仅仅拥有我想要什么的“意图”不足以在链上进行结算。我需要一个完全形成的状态转换。
你可能在想,“好的,很酷,那又怎样?我可以去 Uniswap 或任何其他应用程序进行 CD。它们就是为此而存在的。” 你是对的!
让我们以 CLOB 作为一个简单的例子。你可以将每个买入价/卖出价都放在链上,但这通常会非常昂贵(而且不必要)。因此,你会看到像 dYdX 这样的构造:
当前 - 结算全部发生在链上,但 orderbook 和撮合引擎完全存在于链下(目前是一个单一的中心化服务器)。
V4 - orderbook 和撮合引擎将在验证器内的内存中(链下)完全运行。每个验证器将托管其自己的订单视图。
因此,这里有两种解决方案:
应用链 - 让你根据自己的需求自定义链,但这至少在今天可能会引入更多的工作和复杂性。此外,可组合性可能会受到一定程度的影响。
链下 - 这样做可以扩展,但它仍然存在一些缺点,例如 信任验证器关于 MEV。例如,他们可以清楚地看到所有内容,并在最后一秒拉出订单/忽略取消/抢先交易/提供更糟糕的执行。
AMMs(如 Uniswap)的出现很大程度上是由于 CLOB 的限制和 gas 效率低下。每个人都可以只使用 AMM 合约作为交易对手发现的中心点。当前的 AMM 在效率方面仍然存在一些明显的缺点,并且天真地广播你的交易存在问题:
将交易发送到公共 mempool = 夹层攻击
将交易发送到私有 mempool(例如,Flashbots Protect)= 信任和次优的执行/包含时间
Anoma 架构试图通过统一以下两者来缓解此问题:
结算 - 与以前相同的东西。你有一组验证器,它们对事物达成一致并进行结算。
交易对手发现 - CD 构建到协议本身中。它没有留给其他人以间接方式处理。
从用户想要做某事 → 区块链结算状态转换,这两项任务都是必需的。区别仅仅在于 Anoma 区块链垂直集成了结算 和 CD。大多数应用程序都需要 CD,并且将其构建到核心架构中为它们提供了一些有趣的优势,我们稍后会看到。
Anoma 的关键部分是他们的“意图”概念。从概念上讲,他们试图实现与 SUAVE 的“偏好”概念非常相似的目标。
总的来说,与 Anoma 这样的系统相比,SUAVE 在偏好表达方面看起来至少受到一定程度的限制,Anoma 是从一开始就建立在“意图”概念之上的。Anoma 计划用户最终 不 提交“交易”。
首先,让我们看一下你今天 实际 如何与区块链交互。我想将 1 ETH 兑换为 2000 USDC,所以我将一个交易发送到以太坊 mempool:
你认为交易说的是 - “我授权某人拿走我的 1 ETH,并给我至少 2000 USDC。”
交易实际说的是 - “我授权这个执行跟踪,并且所有被调用的操作码都可以进行任意计算来改变状态。”
你实际上从未定义 你想要什么。你定义了 你想如何得到它。
如果代码是干净的,我将发送 1 ETH 并收到 2000 USDC。如果不是,而我没有审计我签名的每个操作码(笑),也许一个代理合约会偷我的钱。
现有协议的设计以交易作为其基本单位,但是 交易完全不直观。它们与任何人实际思考的方式都不匹配。你总是从你想要执行的某个状态变化的角度来 思考(例如,我想要一个未来的状态,其中我拥有的 ETH 减少 1 个,而 USDC 增加 2000 个)。
在 Anoma 中,意图是用户表达其偏好的基本单位,意图的工作方式恰恰相反。意图与用户实际的想法相匹配:
具体而言,意图是链下签名的消息,用于描述部分状态转换。它们授权我想要的某个状态偏好(例如,我想要一个未来的状态,其中我拥有的 ETH 减少 1 个,而 USDC 至少增加 2000 个)。意图是完全可编程的 - 你可以表达任何任意复杂的状态偏好。也许我只想在纽约阳光明媚并且扬基队今天获胜的情况下才换我的 ETH。你明白了。意图只是由结算层在运行时评估的任意代码。
你可以将意图视为“部分交易”,因为它们需要一些其他部分来形成完整的交易,以满足用户的约束并实现状态更改。被称为“求解器”(类似于执行者)的专门中间人会查看这些意图以实现它们。求解器促进 CD 并路由意图,以便最终由验证器在链上执行。
用户通过某些客户端(例如,钱包、dApp UI)签署这些具有约束力的意图,然后将其广播到意图 gossip 节点。这可以定向到某些节点类型,也可以是非定向的,即广播到尽可能多的节点。意图 gossip 层只是一个 p2p 网络层,其中包含大量意图(有点像 mempool,但它们是“意图”而不是“交易”)。
验证器不需要查看这些意图。其中大多数可能甚至永远不会在链上结算。你可能会有数十亿个意图在浮动,求解器可以专门订阅他们关心的某些“主题”。随着求解成为 NP 难题,可能会出现某种形式的专业化,因此通用的求解器在大规模下将变得难以处理。
求解器可能只订阅处理以下意图:
Anoma L1
一个特定的应用程序
仅某种意图类型(例如,ETH 交易对),但在许多链上
意图 gossip 网络可以跨越所有 Anoma 分形实例。一个全球连接的意图 gossip 网络可以处理任何和所有 Anoma 分形实例的意图。如果他们愿意,应用程序的 UI 可以支持跨不同安全模型的部署和订单履行。意图能够指定他们愿意结算到的安全模型。
如前所述,使用 SUAVE,全局 p2p 层可能会引起一些 DoS 问题。在实践中,求解器可以像今天的构建者一样运行(例如,为已知的对等方建立信誉系统,根据需要将其列入黑名单等)。尚不清楚在极端情况下这可以有多么稳健。
虽然拥有像 SUAVE Chain 这样的区块链可以让你在悲观情况下收取一些费用,但它仍然无法避免执行计算搜索的需求。这可能仍然存在一些攻击媒介(例如,如先前使用合约溢出示例所述)。
求解器将用户意图转换为满足用户需求的完全形成的状态转换。这实现了与我先前描述的 SUAVE 批处理类似的属性(作为一个广义的例子):
用户 A 意图 - 我想要 1 个 ETH,我愿意花费最多 2000 USDC
用户 B 意图 - 我想要 2000 个 USDC,我愿意花费最多 1 个 ETH
求解器可以匹配这些意图,并将它们作为单个交易在链上结算
与 SUAVE 类似,他们也不需要找到完全抵消的意图。求解器可以使用许多最终以合计方式抵消的意图以复杂的方式路由意图,或者如果它们有吸引力,他们可以自己完成。它是完全通用的。
意图可以指定以 结算 为条件的费用 - 只有在意图满足、结算并在链上通过共识确认后才会支付。这可以在参与 gossip 和求解过程的节点之间分配。
Anoma 还在寻求实施各种 PET 来协调对用户数据的可信运行,我们再次可以将其视为本文目的的黑盒:
来源:Anoma
来源:Anoma
请注意,用户还可以发送描述完整状态转换的意图。例如,如果 Alice 只是想向 Bob 发送 1 ETH,她不需要 CD。如果她不需要求解器做任何工作,她可以跳过它们并亲自提交完整的交易(在某种意义上,充当她自己的求解器)。
在求解器将交易发送到交易 mempool 之前,他们可以对其进行加密。验证器实际上没有看到求解器发送给他们的交易。他们收到交易密文:
使用的特定方案是 Ferveo - 一种分布式密钥生成 (DKG) 和阈值公钥加密协议。请注意,Ferveo 只是一个框架 - 不同的链可以围绕它灵活地实施不同的规则(例如,要求所有交易都加密与拍卖区块的顶部清晰地进行)。你可能听说过 Osmosis 也计划使用 Ferveo。
这是基本的交易流程:
验证器生成共享的阈值公钥。相应私钥的分片根据权益 分布 在验证器之间。
求解器将交易加密到该公钥,然后将其发送到交易 mempool。
提议者将加密交易排序到一个区块中,并将其提议给网络。
验证器集就区块 N 达成共识,承诺排序。这些共识投票还包括验证器各自的私钥分片。一旦 ⅔ 的验证器(按权益)签名以提交到该区块,就可以原子地解密这些交易。每个人都可以立即看到 N+1 中这些交易的最终执行结果,就像签署区块 N 后一样。
解密的交易包含在区块 N+1 中(与区块 N 中提交的顺序相同)并执行。
这提供了 临时的 隐私。这里的隐私是一种达到目的的手段。由于验证器没有清楚地看到交易,他们应该无法抢先或审查它们(如果他们没有串通)。
请注意,今天与 CometBFT 共识(Tendermint)一起实施阈值解密将需要 ABCI++ 来启用“投票扩展”。ABCI++ 尚未最终确定,但预计将在中短期内完成。
使用 Anoma,你可能会让做市商连续不断地以意图的形式发送买入价/卖出价限价订单。你有一个完整的订单簿,作为公共绑定意图而存在。
显然,当信息发生变化时,做市商需要更新其过时的价格:
中心化传统 CLOB - 做市商可以竞相发送取消订单以拉出其过时的买入价。中心化运营商可以按 FCFS 取消。
完全链上 CLOB - 这将需要一个链上交易。只有当你的取消交易及时包含在区块中,你才可以取消订单。
使用 Anoma,做市商可能会间歇性地更新他们的意图。例如,“我愿意以 Y 的价格购买 X,但此订单仅在区块高度 Z 时有效。” 然后他们可以每区块连续更新他们的订单。它们可能会在区块内变得过时,因为没有取消方法。有一个不断更新的意图订单簿,用户可以使用它来执行。
此外,此 DEX 不受单个域的限制。 你不需要考虑一个链上的一个 DEX。 意图是完全可组合,可编程和全局的。 我可以准确地指定我在哪里以及如何执行订单。
作为一个快速的 TLDR,CoW Swap 是一个以太坊应用程序,它使用各种流动性来源通过批量拍卖来匹配交易。 用户在一些预定义的批量拍卖期内将交易提交给 CoW Swap。 然后:
CoW 协议首先在现有批次中寻求希望的巧合 (CoW) 以提供最佳价格(例如,如果 Alice 想要交换 1 ETH → 2000 USDC 并且 Bob 想要交换 2000 USDC → 1 ETH,他们可以 只需匹配)。
如果没有 CoW 提供最佳执行,那么可以通过底层链上 AMM 直接结算交易(例如,Uniswap)或通过 DEX 聚合器结算交易(例如,1inch)具体取决于哪个池/路径提供最佳价格。
该协议不断运行这些批量拍卖。 在批次中,这种最佳订单匹配和路由由许多竞争的“求解器”(是的,这实际上是他们在这里的称谓)来促进。 获胜的求解器是可以通过最理想的 CoW、找到最佳流动性来源或者将两者结合在单个结算中来最大化交易者盈余的求解器。
但是,你在今天 CoW Swap 的例子中依赖于一个中央方来协调这里。 Anoma 可能会分发这种类型的批处理:
根据 Ferveo 阈值公钥加密所有用户的意图并将它们发送给验证器。
验证器包括加密的意图。
这些意图都被标记为用于 Anoma 上的“Anoma CoW Swap”应用程序/有效性谓词,因此验证器知道仅在预定义的批处理周期结束后才解密它们(比如 10 个区块)。
验证器解密所有根据其有效性谓词(在此情况下,在 10 个区块之后)包括的“Anoma CoW Swap”交易。
求解器现在可以查看解密的意图并根据其应用程序的求解算法对其进行计算(例如,每个人都获得相同的清算价格,最佳价格是最佳解决方案)。 有效性谓词可以强制执行这些最优性标准。 求解器无法将新交易注入到批处理中。
Anoma 和 SUAVE 在推广用户意图/偏好的概念上看起来很相似。求解器/执行器的市场竞争以履行它们,以隐私技术为基础,以促进无需信任的协作。 但是,它们具有根本相反的方法。
Anoma 的愿景是许多具有 同质架构 的分形实例。 如上所述,具有共享标准的许多链可以获得很多好处。
SUAVE 采用非常不同的观点 - 它建立在意识到许多链可能具有完全 异构架构 的基础上。 它是堆栈中的另一层,用于为 任何 链提供此角色。 它与你的链的外观无关。 它只是想优化为通用首选项层,并将关键组件外包给任何域。
它们以非常不同的,甚至可能互补的设计目标而构建。
我将在此处假设大家普遍熟悉共享排序器 (SS),例如 Espresso 或 Astria。 如果你不熟悉,请参阅我的 之前的帖子。
如上所述,SUAVE 可以提供尽力而为的“经济原子性”。 对于任何构建者来说,情况都是如此。 只有提议者(验证者)有权保证交易包含。 SUAVE 执行器并不是其他链的验证器,它们无法保证跨链交易的原子包含。
相反,SS 可以保证跨加入它的汇总的交易的原子包含和执行。 SS 充当其所有汇总的共享“提议者”。 但是,SS(例如 Espresso 和 Astria)不执行交易,因此它们无法保证交易在执行时不会恢复。
这就是为什么 SS 需要有状态的构建器位于它们前面。
SUAVE 可能是这样一个构建器。 在前面的示例中,用户希望在下一个区块高度执行两次交易,以完成套利:
交易 1 ( T_1
) - 在区块 1 ( B_1
) 中,在汇总 1 ( R_1
) 上以 2,000 美元的价格购买 ETH
交易 2 ( T_2
) - 在区块 2 ( B_2
) 中,在汇总 2 ( R_2
) 上以 2,100 美元的价格出售 ETH
具有 PBS 的 SS 现在可以在整个过程中获得更强的经济保证:
SUAVE 预计会出现不同的跨链原子性方法,并且它会支持对所有这些方法的偏好表达。 域不需要直接与 SUAVE 集成,采用特定的排序模型,甚至没有 PBS 的概念。 SUAVE 只是一个用于偏好的全局“公告板”,了解风险的复杂参与者可以竞争跨域执行。
SUAVE 可以看作是跨域偏好的需求方聚合器。 它公开了安全表达这些偏好所需的工具。 这样,这将激励解决方案的发展,例如 SS。 它们可以提供跨域交易的“供应”,从而可以更有效地捕获跨域 MEV。
众所周知,跨域 MEV 对区块生产者施加了中心化压力 (例如,验证器/排序器)。 同一个参与者有动力控制跨链区块生产,以更有效地内部化跨链 MEV。
正如我上面所述,SS 可以提供完全相同的保证。 并且它们不需要手头就携带大量状态或执行交易,因此它们可以希望是轻量级的和去中心化的。
但是,我们只是将中心化力量转移到了构建器。 但是,我们已经使用 MEV-Boost 在 L1 以太坊上完成了此操作,那又有什么大不了的? 保持验证者去中心化,并将中心化力量转移到构建者。
但是,与 L1 以太坊之类的东西相比,这里存在更强的中心化力量。 为 L1 以太坊构建区块是一回事,但以低延迟为任意许多高吞吐量域执行此操作是另一回事。
总而言之,此堆栈可能会提高构建器在软件/硬件级别交易执行、跨链库存管理、资产负债表规模和承担风险方面对资源的需求。 要成为有竞争力的区块构建器,可能需要满足这些条件。
需要明确的是,无论是对于 SS 还是任何其他域的构建器来说,跨域 MEV 的中心化力量都存在。 但是,这里有一个区别:
其他域的构建器 - 由于跨域 MEV 的经济激励,仍然存在中心化力量。 但是,这不是严格的“要求”。 如今,作为构建器的准入门槛较低(即,你可以选择仅成为以太坊 L1 构建器)。
SS 的构建器 - 可能完全无法避免地需要极高的要求才能进入市场。 似乎单个构建器都需要为所有 SS 汇总进行构建。
如前所述,SS 需要某种形式的 PBS。 似乎这采用了对所有 SS 汇总区块进行一次大型拍卖的简单形式。 如果此处的 PBS 界面是为所有 SS 汇总构建一个大型区块,则这将巩固最极端的要求。
从理论上讲,SS 可以为其排序的每个单独的汇总运行更精细的拍卖。 然后,它将需要解释这种任意数量的拍卖,检查是否存在冲突的偏好。 例如:
构建器 A 正在为 R_1
和 R_2
的区块 B_1
&B_2
竞标原子包含
构建器 B 正在为 R_2
和 R_3
的区块 B_2
&B_3
竞标原子包含
SS 提议者将不得不梳理所有出价,检查是否存在冲突,并优化合并它们。 这可能听起来很熟悉 - 那就是构建器所做的事情。
因此,在实践中,可能会有一个构建器聚合所有域并以一个大型 PBS 样式拍卖的形式与 SS 提议者进行交互。
基本上,SS 似乎在 speedrunning Endgame。 有一个合理的论点认为无论如何这都是不可避免的,但仍然是一个悬而未决的问题。
我们可能会在 SUAVE 之前看到 SS 和“传统”汇总将它们的排序器去中心化(例如,实施一个简单的共识集)。 但是,将排序器(提议者)去中心化是不够的。 我们还需要考虑汇总区块构建。
似乎某种形式的 提议者-构建者分离 (PBS)、协议拥有的构建 (POB) 等等注定会在中短期内在汇总上出现。 这应该是在考虑如何去中心化时要关注的领域。
SUAVE 是一个去中心化的区块构建器,那么它是否解决了这里的问题? 并不完全是。 如果你正在为 SS 上的所有汇总构建一个大型区块,则仍然不可避免地需要满足高要求。 SUAVE 执行器会将 SS 上的每个汇总填充到它们的 SGX 中,以最终为其构建一个完整的区块(或者在以后使用其他形式的密码学)。
技术挑战是一个明显的问题,但重点是无论如何,SUAVE 不只是降低构建器的硬件要求。 它可以做的是使区块构建过程更具协作性和无需信任。 你可以让许多构建器各自为他们输出的区块贡献一部分。
现在是最困难的部分 - 激励。
真正的对齐问题是模块化堆栈各个组件之间的激励对齐
弄清楚共享排序器(SS)的经济学可能被证明是最具挑战性的组成部分。首先,好的一面 - SS应该允许他们的rollup从MEV中捕获更多的聚合价值。
让我们考虑一个简单的例子。我们有10个相等的(隔离的)rollup,它们的验证者每年各自捕获100万美元。总计,他们每年捕获1000万美元。
现在,这些相同的rollup都决定选择加入共享排序器。没有理由让这1000万美元消失,它仍然存在。由于更好的桥接和互操作性→更多的整体活动,甚至可能是1100万美元。但是现在,他们可以从跨链MEV中获得更多的价值。让我们来分解一下。
基本的单链MEV策略已经商品化。如果你在以太坊L1的SushiSwap和Uniswap之间运行ETH/USDC交易对的原子套利,你几乎会将所有这些价值返还给以太坊的提议者。这实际上是无风险的利润。
跨链MEV则相反。验证者无法做出跨链原子承诺。跨链MEV只能由运行统计套利的复杂搜索者以概率方式捕获。他们必须管理跨链的库存和仓储风险→市场风险更高,竞争力更弱→较低比例的MEV被返还给验证者。
现在验证者(SS)可以做出跨链原子承诺。跨链MEV可以由运行原子套利的搜索者以高置信度捕获。提取变得高效且具有竞争力→更高比例的MEV被返还给验证者(SS)。
这对rollup来说太棒了!他们之前总共捕获了1000万美元,现在假设他们捕获了1200万美元。但是等等 - 我们如何分配这笔钱?
SS在这里拥有很大的权力。默认情况下,他们现在决定所有rollup的交易包含和排序→他们首先获得MEV。因此,我们需要决定如何分配它。拥有一个“完美”的分配机制,该机制需要模拟所有可能的结果,这可能是一个彻底的不可能。
你似乎大致有两条路径:
更精细的拍卖 - 使用SS进行PBS的逻辑方法是为所有rollup创建一个大区块。SS是否可以为各个rollup运行许多子拍卖,或者其他一些创造性的机制?
确定一个“足够好”的分配机制 - 只是对什么是“公平”采取一种有主见但透明的立场(例如,与所有rollup平等分配收入,尽管即使这也不容易)。
今天我当然没有答案。这是一个引人入胜的开放研究领域。
如果弄清楚了上述内容,rollup是否会以“足够好”的方式共享这块蛋糕?或者他们是否会对彼此展开全面的《权力的游戏》?老实说,我们已经看到了一些,所以我不太确定。无论如何,观看它的发展将是一次有趣的政治和社会实验。
当rollup选择加入SS时,他们选择加入某种“一刀切”的模型。有些人甚至认为它们看起来像一个大的rollup。这是一个认识,即每个链注定都会受到其他域的排序的影响。
甚至以太坊也受到币安的影响。以太坊 ←→ 币安确实是当今加密领域最大的MEV来源。几家最大的构建者都在从事这种统计套利,并且这会产生中心化的溢出效应到以太坊中。
这就是跨域MEV的现实。在如何解决这种影响方面存在权衡。
“主权”频谱的一端 - 许多不同的链,具有完全独特和去中心化的验证者集。实际上由于中心化压力而不可行。
“非主权”频谱的一端 - 一个节点统治所有链。如果你想在餐桌上占有一席之地,你就同地协作。可行,但是还有什么意义呢?
选择加入SS允许rollup减轻跨域MEV对其验证者集的中心化力量(因为他们可以运营跨域)。它的节点有望相对于他们所服务的链的数量而言是轻量级的,并且他们可以有效地将跨域MEV内在化。更好的互操作性也降低了跨链UX的影响。
但是,这可能带来一些权衡:
构建者 - 如前所述,这种构造似乎可能会激励高度中心化和资源密集的构建者。
Rollup - Rollup在一定程度上牺牲了可定制性。你将受到限制,无法执行具有自己的验证者集的链可以做的许多事情。
在我看来,在许多情况下,在你的rollup中实现另一个验证者集是没有意义的(作为在SS之前或之后的另一轮处理),原因如下:
便捷性 - 使用SS的部分原因是为了部署的便捷性。如果你要实现第二个验证者集,情况就并非如此了。
失去保证 - 如果你的共识可以在SS之后任意包含、排除和重新排序交易,那么它将无法为你提供任何有用的包含保证。
更强的信任假设 - 你希望继承去中心化SS的池化安全性的实时CR和活跃性。如果你的第二个共识在事后可以审查你/发生活跃性失败,那就失去了。你只能和你最薄弱的环节一样强大。
权衡是 - 你的rollup将无法实现需要验证者集来谨慎执行的功能。示例可能包括:
在不同程度上,权衡和相关的复杂性太高了,以至于在我看来,不值得将其作为SS之上的rollup单独实施。
让我们考虑一个你想要为你的rollup进行阈值解密的示例。假设一个SS包含它没有解密密钥的加密交易(你的rollup自己的节点具有解密密钥)。这将变得有问题 - 你有一个完全独立的共识集,如果他们选择不解密,则有权任意停止你的rollup。SS还存在具有挑战性的时序不匹配。
理想情况下,你的验证者应该是与阈值解密密钥共享相同的组,并且他们应该与你的共识具有相同的法定人数。然后,他们可以将他们的密钥共享作为其共识投票的一部分包括在内,并在签署区块时自动解密。
因此,如果你希望它用于你的rollup,你希望SS本身以原生方式实现阈值解密。需要明确的是,SS可以做到这一点!但是,权衡是它在许多情况下仍然更接近“一刀切”的方法,从而为SS留下了在各种功能上进行差异化的空间。
例如,这似乎有点违背了Cosmos的理念。在那里,我们看到应用程序想要他们自己的定制链,并且他们希望自己的验证者来执行这些规则。如果选择加入SS,则可能无法实现许多这些定制。
虽然这些rollup在某种意义上可能看起来像一条大链,但这里的一个关键区别在于选择加入SS的rollup始终可以分叉离开(例如,如果SS提取的价值过多)。有价值的共享状态是难以分叉离开的,但SS本身并没有这种状态。他们实际上只是一个服务提供商。rollup总是可以通过一个小的硬分叉将其SS换成其他一些排序机制。
此外,rollup当然不会交出全部控制权。他们仍然完全可以灵活地定制他们的虚拟机。他们甚至可以通过在其rollup的状态转换函数(STF)中确定性地编码它们来执行复杂的交易排序规则。例如,“我的区块中的第一笔交易必须具有预言机更新XYZ才能有效”或“这种类型的批处理必须紧随其后”等等。这甚至可以包括诸如Osmosis的ProtoRev模块之类的自定义设置,以自动内在化循环套利。
如上所述,你不会希望每个rollup在SS之后对交易进行一轮完整的非确定性重新排序。只要虚拟机规则是确定性的,构建者就可以在这些规则的范围内创建区块。然后,rollup节点可以根据其rollup自己的确定性规则解释SS的输出。这不需要酌情验证者集来做任何事情。
SUAVE是一项雄心勃勃的尝试,旨在为任何链解绑mempool和构建者角色。它旨在以无需信任和协作的方式实现任何任意偏好的表达和执行。
Anoma是解决一些相同根本挑战的另一个想法。但是,它通过重建整个区块链堆栈来采取一种完全不同的方法,试图让许多链共享相同的标准。
SS可以使许多链再次感觉和表现得更像一条链。但是,它们带来了权衡,包括在一定程度上降低的灵活性、具有挑战性的价值归因以及可能更高资源的构建者。
无论如何,rollup即将到来,去中心化排序器(希望如此)也将到来。它们可能会在SUAVE之类的东西之前到达,因此rollup需要更多地考虑如何将构建者角色负责任地纳入其设计中。
否则,Vitalik可能只是对Endgame的看法是正确的:
区块生产是中心化的,但是区块验证是无需信任的并且高度去中心化的。
免责声明:此帖子中表达的观点仅为作者以其个人身份表达的观点,不代表DBA Crypto,LLC或其关联公司(与其关联公司一起,“DBA”)的观点。本报告的作者在ETH和Skip Protocol Inc.中拥有重要的个人职位。
本内容仅供参考,不应作为投资决策的基础,并且不是,也不应被认为是完整的。本文内容不得解释为法律、商业或税务建议。提及任何证券或数字资产仅用于说明目的,不构成投资建议或提供投资咨询服务的要约。此帖子不构成投资建议或出售要约或购买DBA管理的任何投资工具中的任何有限合伙权益的要约。
其中包含的某些信息已从第三方来源获得。虽然这些信息来自被认为是可靠的来源,但DBA对信息的准确性不做任何陈述。
- 原文链接: dba.mirror.xyz/NTg5FSq1o...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!