一文了解应用特定排序(ASS)让 DeFi 变得可持续
如何化解最大可提取价值(MEV)的负面影响,这个问题可以说是以太坊心头的一块石头。价值供应链的存在,让套利者们像闻到血腥味的鲨鱼一样,借助各种策略频繁出击,而散户用户往往就成了买单的一方。很多研究人员尝试从协议层动刀来解决 MEV,但坦率地说,这些努力至今还没能给出一个让人满意的答案。
正是在这种背景下,特定应用排序(ASS,Application-Specific Sequencing)进入了我们的视野。它的思路不是去重写协议层的规则,而是让每个应用自己掌握交易的排序权。这样一来,链上应用既能保护自己的用户和流动性免受 MEV 的侵蚀,又有机会捕获那些原本会流向以太坊验证者的价值。
设想一下这个画面:现在的情况是,高频交易者争相从每一个用户身上榨取最大的套利价值,而这些价值几乎全都流向了验证者和底层链。但如果每个应用都能自定义交易排序规则呢?那就能为自己创造一个更公平、更高效、也更贴合用户需求的系统。这意味着我们尝试解决 MEV 的战场,从网络层转移到了真正关键的地方——应用层。
背景
特定应用排序这个概念,源头可以追溯到 Matheus 关于去中心化交易所(DEX)中可验证排序规则(VSR)的研究。当时 Matheus 已经证明,VSR 能通过减少矿工对交易排序的干预,来改善交易执行并减轻 MEV。后来 Tarun 又把这个想法往前推了一步,展示了应用专属的排序规则如何能显著改变用户、验证者和排序者这些协议的参与者的回报函数。
这里说的“回报函数”,说白了就是不同交易排序所对应的经济价值。这个价值反映了参与者通过交易排序能获得多少利润或效用,也直观地展示了排序如何影响最终的经济结果。它有两个关键特征值得留意:
- :排序只要出现一点点微调,MEV 就可能剧烈波动。
非平滑回报
- :排序的微小变动,有时候能让 MEV 增加,有时候却会减少,变化方向完全摸不着规律。
非单调回报
当回报函数同时具备这两个特征时,要想优化排序策略,难度直接拉满。这就迫使我们在应用层采用更复杂、更有针对性的方法,才能确保用户获得公平的结果,整个 DeFi 生态系统也才能可持续地运转下去。
特定应用排序如何工作?
要理解 ASS 是怎么运作的,先得搞清楚现有的交易供应链是个什么样子。
在当前的系统里:
交易被提交到公共或者私有的内存池(mempool)。
构建者(builder)把这些交易收集起来,打包成区块。
然后构建者们去竞争区块拍卖,胜出者的区块会被纳入区块链,他出的价则付给该区块的提议者(proposer)。
而基于 ASS 的应用,其运作方式完全不同:
- :应用会设定一个限制,只有被指定的排序者或质押的验证者才能和它的合约交互。这样就能防止其他人绕过应用内部的价值分配逻辑。
受限排序权
- :用户不再把交易扔进公共内存池,而是把他们的“意图”发送到应用自己的专属内存池。这些意图接下来由应用专属的排序者统一收集和处理。
应用专属内存池
- :为了让排序规则能生效,给目标用户带来最优的经济回报,ASS 交易在设计上需要做到:无论构建者对其他交易的排序怎么变,它的执行结果都不受影响。这背后的实现逻辑是,应用的状态由它自己的共识机制来控制。ASS 的订单会被整合成一个捆绑包,发送给构建者去包含进区块。因为这个捆绑包不会和其他应用访问的状态起冲突,所以它在区块里的位置是无关紧要的。
与顺序无关的结果
靠着这几条基本原则,ASS 让任何链上的应用都能重新拿回对自身执行和合约状态的主权,成为真正意义上的主权应用。

实际案例:Angstrom
说起主权应用,Angstrom 是一个很典型的例子。它是 Uniswap V4 的一个“钩子”(hook),主要作用是保护流动性提供者,让他们不至于被中心化交易所(CEX)和去中心化交易所(DEX)之间的套利者占便宜,同时也能保护普通交易者免受“夹层攻击”的伤害。Angstrom 节点网络会与以太坊并行运作,对即将执行的交易集合达成共识。它的工作流程是这样的:
CEX-DEX 套利者通过竞价,来争夺通过 AMM 进行第一笔交换的权利(这笔交换是免手续费的)。
与此同时,用户把他们的预定交换操作,以签名限价单的形式,发送到 Angstrom 的内存池。
Angstrom 网络运行共识协议,打包成一个捆绑包。这个捆绑包里,第一笔交换是出价最高的套利者交易,他的出价会按比例分配给交换范围内基础流动性提供者。而其他所有有效的限价单,以及 AMM 的流动性,则按照同一个统一的清算价格来执行。
最后,这个捆绑包由提议的 Angstrom 节点发送给以太坊的构建者和公共内存池。

活性与信任假设
说到底,ASS 本质上是一种“部分区块构建”的形式。主权应用按照自己制定的排序规则,把排序权委托给一个去中心化的运营商网络。这也就意味着,引入额外的外部方,不可避免地会带来一些关于活性和信任的新假设。
活性假设
主权应用需要依赖自己专属的排序器,来正确遵守协议并及时更新状态。万一出现活性被破坏的情况,比如网络分区,用户可能就暂时无法和应用中的某些部分进行交互了,直到有效共识恢复为止。
一个值得注意的应对方式是,主权应用可以主动限制合约状态的范围,让只有一部分关键状态的更新依赖其排序器。这样能最大限度地减少合约的外部依赖性。即便排序器真的出了故障,那些最核心的状态(比如已经存入的流动性)依然能被用户访问。
信任假设
为了保证排序器真的按规矩办事,主权应用可以借助密码经济学的解决方案(比如权益证明 PoS),也可以用密码学方法(比如可信执行环境 TEE 或安全多方计算 MPC)。具体用什么方法,完全取决于应用自己的需求——有些应用可能需要就执行优化达成共识,另一些则更看重通过加密机制来保障执行前的隐私。工具很多,关键在于如何为每个主权应用的独特目标,找到降低排序器信任开销的最佳方案。
抵制审查
在以太坊生态里,审查的形式其实有好几种:
- :目前最突出的一种形式,主要由中继器执行。构建器和中继器会根据 OFAC 制裁名单来审查交易。
监管审查
- :有动机的攻击者可以通过贿赂区块提议者,来审查掉受害者交易。
经济审查
- :P2P 网络里的节点可能拒绝广播某些传入的交易。如果协议是在假设大多数节点能看到相同交易的前提下运行的,那这就是个大问题了。更麻烦的是,对手可能会被激励去分裂诚实节点的本地视图,比如在一个时隙的最后时刻,只把手里的交易发给一半节点,以此来让协议停摆。
节点级审查
很多研究人员都在呼吁,以太坊需要更好的抗审查机制。像多并发提议者(MCP)和分叉选择强制包含列表(FOCIL)这类提案也已经出现,成了大家持续讨论的热点。
审查阻力同样是主权应用的核心关切。要知道,应用专属的排序器本身也是外部实体,有自己接收额外私人交易和订单流的各种意图。比如,一个本身就兼做市商的应用专属验证者,自然就有动机去审查掉竞争对手发来的交易。所以,即使底层协议本身不作恶,顶层的这个主权应用内部,也可能遭受“本地审查”。
回到 Angstrom,它提供了一个对抗审查的机制范例。为了确保所有有效订单都能被包含在即将到来的时段中,Angstrom 节点必须广播所有它们验证过的传入订单,并就将其纳入提议的交易包达成共识。如果某个交易包少了大多数网络节点都观察到的订单,那么提出这个交易包的提议者就会受到惩罚。

可组合性困境
主权应用面临的一个核心挑战是:如何确保它能够与那些需要和外部合约状态交互的交易保持可组合性。简单地把自己应用专属的交易和任意外部交易捆绑在一起,就会破坏掉保护主权应用及其用户所必须的“订单不可知性”。只要有一个无效的非 ASS 交易和它们打包在一起,就可能产生连锁反应,导致整个捆绑包回滚。这种情况下,即使应用内已经达成了有效共识,它也无法在分配的时间段内执行用户的订单,最终受损的是用户体验和整体福利。
当然,可组合性这个问题并非无解。各个团队正在探索好几种方案,包括纳入预确认、共享应用特定排序器,以及构建者承诺等等。这些方案本质上是在“可组合性”的程度和“信任开销”之间做权衡。
纳入预先确认
要理解“纳入预确认”,得先说说“基于预确认”是啥意思。基于预确认利用密码经济学来确保:提议者已经提供了质押抵押品,保证在当前时期内的某个指定时段之前,纳入特定的交易集。这个保证的上限,由参与提议者发布的保证金规模决定。
而“纳入预确认”是“基于预确认”的一种特殊形式,它的特点是:交易的纳入和任何合约状态都无关。请求这种预确认的交易,必须是与状态无关、没有争议的,也就是它们的执行结果不会因为放在区块的什么位置而改变。通过使用纳入预确认,提议者可以做出一个承诺:只有当某个 ASS 捆绑包也包含在同一个区块里时,自己才会去纳入那些非 ASS 的交易。这种方法,在无争议交易和 ASS 捆绑包之间,提供了一种带有密码经济学强制力的可组合性。

但话说回来,鉴于这个方案能提供的可组合性其实相当有限,其增加的复杂性和信任开销,可能对一些主权应用来说得不偿失。因此,我们还需要探索其他替代方案,在简单性和功能性之间找到更好的平衡点。
共享特定应用排序器和制造商承诺
主权应用也可以使用应用专属的排序器,来管理跨多个应用的交易排序,这样就不用再依赖提议者的承诺了。举个例子,如果一个排序器能同时处理多个主权应用的交易,只要它遵循每个应用自己的排序规则,就能在它们之间实现原子级的可组合性。这种共享应用专属排序器的思路,能让主权应用之间的协同与可组合性变得非常顺畅。
但面对“非主权应用”,就得用另一套方案了。区块构建者可以通过“交易纳入承诺”来参与主权应用的排序。这种承诺,可以在非主权应用和主权应用之间建立起原子可组合性。构建者需要保证两种类型的应用之间,交易顺序是事先指定好的。这也就是所谓的“构建者承诺”,它目前是填补 ASS 可组合性空白的一个重要手段。

主 权和非主 权 dApp 之间原子可组合性的构建者承诺图示(右)以及主 权应用程序之间原子可组合性的共享应用程序特定排序器图示(左)
当然,关于构建者承诺的经济学原理、纳入预确认的可行性以及潜在的二阶效应,目前还有很多疑问。但就我们的判断而言,ASS 面临的可组合性难题,随着时间推移应该能得到解决。像 Astria 和 Primev 这样的团队,已经在积极研究和开发共享排序和构建者承诺的改进框架。随着这些进步不断推进,可组合性将不再是主权应用面临的阻碍。
ASS 与特定于应用程序的 L2 和 L1
就目前的现状而言,如果一个 dApp 想控制自己交易的排序,它通常只能选择去构建一条应用专属的链。像“协议自有构建器(PoB)”这类概念,能让 Cosmos L1 拥有更具表现力的排序规则,帮助捕获 MEV 并将其重新分配给链上的应用。同样,带有 VSR 的 L2 排序器也能实现类似的操作。虽然这两种方案都让应用获得了对 MEV 进行排序和捕获的更多主动权,但 ASS 之所以显得独特,是因为以下几个特点:
- :ASS 本身并不执行或结算排序过的交易,它只是把排序权委托出去了。所以,它对信任的基线假设,依然源于原生执行环境(比如以太坊或其他 L2)的安全保障。
交易执行不增加信任开销
- :用户不需要进行资产桥接。dApp 可以直接利用自己所在链上的用户流量和流动性。
获得流动性和订单流
- :与 L2 不同,大多数 ASS 方案不需要用户把资金锁定在桥接合约里。这个设计选择带来了更好的安全性:万一应用专属的排序器出了问题,损害也是有限且可控的,因为排序器只能控制智能合约所设定的边界内的交易。相比之下,虽然一些 L2 方案确实提供了安全功能(比如紧急出口和强制包含),但这些措施在实践中往往很难用。在失去与 L2 更新连接后,用户可能需要等上好几天才能激活紧急出口;通过 L1 强制包含通常也至少有至少一天的延迟。更重要的是,这些安全措施通常需要用户具备大多数人不具备的技术专长,对普通用户来说并不好用。
资产保留在本机执行环境中,无法被冻结
- :L2 的活性取决于执行节点(通常是 rollup 排序器,除非它是基于排序的);L1 的活性取决于诚实的大多数节点重新执行相应的状态转换函数。而主权应用的活性则主要取决于底层执行环境,它的智能合约可以指定,哪些部分需要依赖应用专属的排序器。
Strong-ASS 活性假设

主 权应用程序、L2、基于 L2 和 L1 的比较表