共享序列:整理L2汇总生态系统

文章探讨了以太坊扩展的可行性,特别是通过新的共享排序器(Espresso Sequencer)来解决现有链之间和卷轴间的流动性与安全性问题。通过非托管桥接和原子交叉卷轴交易,Espresso Sequencer 提供了透明性和经济安全,减轻了不同区块链之间交互时的风险,提升了用户体验。

随着以太坊的增长,其可扩展性问题从理论变为实践。特别是在高网络活动期间,许多用户已被排除在以太坊区块链的交易发送之外。解决这个问题的方法是通过rollups将交易执行转移到链下。高层次上,rollups将L1区块链的计算外包给单一方,然后该方的任务是向L1区块链证明计算是正确执行的。

目前,这种证明的主要方法有两种。在乐观rollups中,通过故障/欺诈证明实现,而在zk-rollups中通过有效性证明。作为可扩展解决方案,rollups的受欢迎程度不容小觑,开发的rollups数量激增,从ZK到乐观rollups,以及从EVM到特定应用的虚拟机。随着一批新的rollup-as-a-service初创公司的支持,这一趋势可能会持续下去,而以太坊正在推出其以rollup为中心的路线图

虽然rollups是以规模继承某种形式经济安全的优秀解决方案,但它们引入了两个关键的新问题:

  1. 通过依赖单一方进行交易排序和包含在rollup中,它们容易受到垄断定价和审查的影响。
  2. 多种rollup解决方案的普及打破了以太坊生态系统中的可组合性。流动性将在不同的rollups之间碎片化,资产和其他数据将在不同域之间移动困难。

去中心化排序器,作为rollup中负责交易排序和包含的组件,可能有助于解决第(1)个问题,但对单独解决第(2)个问题无济于事。Espresso Sequencer,既去中心化又共享于多个rollups,解决了这两个问题。本文将重点讨论共享排序的好处及其如何消除L2生态系统的碎片化。

桥接

桥接——不同区块链(或在本案例中为rollups)之间交换消息的能力——对于为rollup用户构建良好的体验至关重要。让我们首先通过一个简单的例子来看看共享排序器如何通过跨rollup代币转账受益于桥接。然后我们将研究涉及跨rollup原子交易捆绑的更复杂用例。我们将比较多种rollups使用独立排序器和共享排序器的情境。

回顾:非托管桥接

让我们首先回顾一下非托管桥接如何在两个独立区块链之间工作(即有独立共识协议的状态机)。我们用“链”这个术语作为完整区块链的简写。

  • 链A交易 t 为链B准备一条消息。例如:“在链A的特殊托管合约中锁定ETH。”
  • 链B交易 t’ 验证并执行链A的消息。例如:“在链B铸造wrapped-ETH。”

让我们从链A交易 t 开始。在链A上完成这一交易需要两个步骤:

  • 排序:链A节点必须就t相对于其他链A交易的排序达成共识。
  • 执行:链A节点必须计算t 对链A状态的影响。

上述排序和执行的过程对于链B上的交易 t’ 重复执行。交易t’的有效性将取决于在链A上成功执行交易t 的结果。换句话说,A到B的桥接仅在链B能够验证链A的排序和执行的轻节点证明时才能实现。为了使桥接成为双向的,链A也必须在链B上运行排序和执行的轻节点。例如,这在将ETH从链B最终返回到链A时是必要的。

一般来说,实施这样的非托管桥接是复杂的。执行轻节点类似于rollup(乐观或zk),但因桥接交易的时间敏感性而更加复杂。

跨rollup桥接的功能类似于跨链桥接,只是这两个rollups可能共享或不共享同一共识协议来进行排序和/或支持执行轻客户端的方法(例如,验证zk证明与优化带有欺诈证明等待期的证明)。

共享排序的跨rollup桥接

开发节省

共享排序器将如何影响跨rollup互操作性的基础设施成本?rollups不再需要为每个它们互操作的rollup实现独立的排序轻节点。每个rollup从共享排序器读取,从而提供对所有交易的全局排序。复杂性降低还具有安全优势,减少了攻击面和出错的机会。随着越来越多的rollups随着时间加入共享排序器,这尤为有利。另一方面,它并未消除每个rollup必须支持执行轻节点以桥接到其他rollups的需求。

运营节省

除了集成排序轻节点的前期成本,每个rollup还必须支付持续费用以验证其他rollup的排序器状态。在共享排序器中,这个费用是免费的。共享排序器处理的交易总体量更高,但这也可以是一个优势:在高吞吐量共识协议中,带宽往往未被充分利用,因此将来自多个域的交易打包在一起可能会摊平成本。

桥接延迟

在两个使用独立共识协议进行排序的rollups A和B之间的桥接交易中(例如,在A上锁定类型为X的代币并在B上铸造类型为wrapped-X的代币),在rollup B上的操作(如铸造wrapped-X)必须等待rollup A的共识协议使其在rollup A上的操作(如锁定X)最终确定。这种延迟取决于用于每个rollup的共识协议的类型。虽然某些共识协议在最佳情况下具有快速的最终确认延迟,但所有去中心化共识协议的最坏情况下延迟都很高。但是,当rollups共享一个排序器时,交易不会产生额外延迟。和其他所有交易一样,跨rollup交易可以在最终确认前叠加。在这个例子中,如果锁定X代币的操作在A上最终回滚,这样在B上铸造的wrapped-X代币也会回滚。值得注意的是,执行轻客户端也可能引入延迟,尤其是基于欺诈证明的乐观轻客户端。基于零知识证明的轻客户端则有潜在低延迟的可能。

安全收益

来自独立区块链之间的桥接,或类似地,来自使用独立共识协议进行排序的rollups之间的桥接可能带来系统性风险。

举例来说,考虑一个用于将代币从rollup A包装到rollup B的桥接。当 y 单位类型为X的代币(例如,ETH)被存入rollup A的桥接合约中,或“锁定”,随后 y 单位wrapped-X在rollup B上被铸造。在相反的方向上,当 y 单位wrapped-X在链B上被销毁时,可以从rollup A的桥接合约中撤回 y 单位X,或“解锁”。在rollup B上铸造 y 单位wrapped-X的交易会等待锁定 y 单位X的交易在rollup A上最终确认。

如果一个对手成功破坏rollup A上的交易最终性,在rollup A上将 y 单位X锁定交易回滚,并且这项交易已经被rollup B认可为最终交易,y 单位wrapped-X仍将留在rollup B上。虽然这在技术上不是rollup B及其排序协议的错误行为,但这对rollup B上wrapped-X的用户造成了后果,可以被对手利用,从而降低攻击的成本并增加发起此攻击的动机:

  1. 对手可以通过将其代币存入桥接,铸造wrapped-X,然后从桥接中偷回其锁定的代币,来双倍增加其持有的代币X的有效持有量。自然这会贬值wrapped-X,但对手可能已经在进行攻击前将其wrapped-X的持有量抛售到rollup B上的DEX。
  2. 对手可能会对rollup B上的wrapped-X价格进行押注,并随后发起相同的攻击,回滚rollup B上大量存款(由其他用户发起),以贬值rollup B上的wrapped-X。对手无需在rollup A本身开始持有任何代币X即可从这一攻击中获利。

如果这两个rollups共享一个排序器,那么同样的攻击将无法实现。这两个rollups的状态现在来源于同一个交易日志,由单一共识协议决定。因此,任何破坏该共识协议的攻击(例如,通过分叉最终交易日志来回滚在rollup A上锁定X代币的交易)都会同时回滚在rollup B上的后续铸造wrapped-X代币的交易。

当然,仍然有相似的方式可以让对手从单个共识协议中的交易回滚中获利。例如,对手可以简单地将ETH发送到中心化交易所,以美元出售,然后再回滚将ETH发送到交易所的交易。假设此中心化交易所通过传统银行系统运营,这本质上是一种在两个域之间的桥接形式。攻击者在区块链交易回滚后仍将持有其银行账户中的美元。另一方面,存在更多的摩擦和责任问题,使这一攻击变得困难:交易所和银行知道攻击者的身份,如果客户能与此攻击链接,他们可能会合作找回资产。

综上所述,DeFi无缝和非托管的特性具有许多效率和透明度的好处,但在与独立共识协议之间的桥接结合时,会增加额外的系统性风险。随着L2生态系统被分割为多个独立的rollups,rollups之间的共享排序器可以大大减轻这些风险。

原子跨rollup交易

有密码学保证的跨rollup原子捆绑

一组交易称为“原子”的条件是它带有“全有或全无”的保证——要么捆绑中的每笔交易成功执行,要么都不执行。在上一节讨论的跨链(或跨rollup)桥接是跨链(或跨rollup)原子性的一个特殊示例。

跨rollup原子捆绑的另一个例子是资产交换:Alice向Bob在rollup A上交付USDC;Bob在rollup B上向Alice交付ETH。我们希望这两笔交易要么都成功,要么都不成功。实现这种原子性的方式之一,与桥接类似,是通过每个rollup上的托管合约。Alice将她的USDC锁定在rollup A的合约中,只有在(i)看到来自rollup B的Bob锁定ETH在rollup B的托管中轻客户端证明,或(ii)在Bob未采取行动的情况下超时,Alice可以找回她的USDC。Bob在rollup B上则做相同的事情。

这可以推广到多个rollups之间的任意原子捆绑。对于捆绑中的每个rollup C,一些人会在托管合约中锁定C的相关状态,并为其他rollups创建该事实的轻客户端证明。捆绑中的C部分在托管合约看到来自其他rollups的轻客户端证明后进行,或在超时后回滚。暂时锁定状态是跨链或跨rollup交易捆绑的原子执行的基础。

剩下的问题是与自选性有关的公平性问题。先采取行动的一方会给予另一方单方面中止交易的自由选项。假设Alice独立于Bob的rollup B交易 t’ 签署并发布了她的rollup A交易 t。在这种情况下,Alice的交易可能会在Bob的交易之前很早就被排序,留下Bob能够在很长一段时间内中止交易的选项。在价格波动较大的时期,这一选项可能是相当有价值的!

共享排序器可以帮助缓解这一公平性问题。假设Alice和Bob可以各自签署交易对(t, t’),这样共享排序器要么将这个对作为单个交易包含在日志中,要么不包含。两个rollups都会从这个统一日志读取,并执行各自的交易(由A执行t,由B执行t’)。虽然单独在日志中进行原子包含并不能保证共同结果(例如,Bob可能在日志中插入了早期的交易导致t’在失败同时t仍成功)但在必须在联合日志中进行的都是所有方在对(t, t’) 最终确认之前的行为。这样缓解了公平性问题:双方均没有长时间自由选项可以退出交易。利用密码学协议进行签名的公平交换可以进一步实现公平的原子交易。[2]

考虑以下例子以展示这些跨rollup公平原子交易的价值:假设Alice拥有101 USDC并想要购买ETH。在rollup A上(通过Uniswap或类似方式)ETH以101 USDC的价格交易,而在rollup B上ETH以99 USDC的价格交易。如果Alice能够在rollup B找到交易对手,她就能以比直接在链A上交换USDC换取ETH更好的价格。假设Bob在rollup B上有1 ETH,并希望兑换成USDC。Bob可能愿意以100 USDC(比链B的价格高1 USDC)接受1 ETH,这是双方互惠的价格。

Alice和Bob可以进行跨rollup的交换,其中Alice在rollup A上向Bob发送100 USDC,而Bob在rollup B上向Alice发送1 ETH。特别地,如果Alice和Bob参与一个公平的原子交易,他们将确定约定的兑换比率——100 USDC换1 ETH——并避免任何自选性。无论之后发生什么,Alice和Bob都会按照他们希望的汇率成交。这表明在去中心化的共享排序器上,rollups之间实际上共享流动性。

我们现在探讨了一种Espresso Sequencer如何结合签名的公平交换解决跨rollup交易捆绑的公平性问题。然而,这要求利用Espresso Sequencer的链原生支持如上所述的运行签名跨rollup交易捆绑。(如果一个rollup不支持这些捆绑,那么也许该rollup的利益相关者可以考虑调整其执行规则以允许它。)

加密经济保证的跨rollup原子性

虽然先前讨论的原子捆绑可以轻松支持像CoW交换和NFT交易等简单用例,但有些捆绑可能并不简单。例如,考虑上述代币交换示例的一个复杂情况:Bob在rollup B上还没有ETH——相反,他必须先在rollup B上用USDC兑换ETH,然后再将ETH交付给Alice。Bob只愿意在确保从交易中获得USDC利润的情况下参与此捆绑。原子捆绑现在是:

  1. Bob在链B上支付最多99 USDC买1 ETH。假设这笔交易在像Uniswap这样的去中心化交换上执行。
  2. Bob将1 ETH交付给rollup B上的Alice。
  3. Alice在链A上向Bob至少交付100 USDC——这样Bob至少可以获得1 USDC的套利利润。

在这个例子中,Uniswap交易是原子捆绑的一部分。与前一示例中Bob仅锁定他控制的状态(即在rollup B的托管合约中的ETH)不同,这次他还必须锁定在rollup B上的Uniswap的整个状态。

Espresso Sequencer在多大程度上能支持这种跨rollup套利?或者更一般地说,共享排序能在多大程度上支持跨rollup交易执行的任意条件?Bob无法仅凭自己锁定Uniswap——他需要帮助。我们希望Bob能够明确规定其捆绑应在什么条件下执行。如果条件不满足,捆绑将不会被包含在链中(他甚至不需要支付Gas费!)。例如,他可以指定条件,“仅当步骤1的价格最多为99 USDC时平衡此捆绑。”

由于排序器节点通常不知道他们正从中排序的各个rollup的状态,因此我们可以引入一个对所有rollup状态都很了解的第三方来提供帮助。这些方被称为构建者(例如,SUAVE或选择提供此服务的排序器节点),他们负责创建符合Bob和其他rollup用户设定条件的区块。这被称为提议者-构建者分离或PBS。结合共享排序器,PBS赋予新的互操作超级能力。考虑以下简单池用一种方式让用户与构建者合作,执行涉及Uniswap的跨rollup套利。

Bob和块构建者可以对这一约定进行签名。因此,如果块构建者违反这一条件(使得捆绑执行时Bob在Uniswap上支付超过99 USDC购买ETH),那么Bob就有证据证明块构建者的恶意行为。这个证据可以用来惩罚恶意块构建者,比如削减该块构建者发布的安全保证金,或者用这一保证金对Bob进行赔偿。如果块构建者履行他们的义务,也可以给予相应奖励。虽然这类互操作性确实依赖第三方(如块构建者或内部协议实例化构建者),但它不需要对rollup进行任何协议内的更改,并提供了共享排序的rollups之间的强大组合性。

如果没有共享排序器,就没有便捷的方法来确保捆绑中的所有交易获得同时排序,或根本原子地处理。为了便于构建者在没有共享排序器的情况下维持其交易,块构建者必须同时控制多个独立共识协议的排序器,或者只包括部分捆绑的风险。特别是,如果块构建者的工作存在争议,他们可能会面临削减的风险或放弃奖励,即使他们正确地执行了工作。

Espresso Sequencer能够强制执行构建者的区块以预期的方式全部执行,或者根本不执行。这使得块构建者更加愿意专注于使用Espresso Sequencer的rollups,相较于使用独立排序器的那些。同样,这也可能为共享排序的rollups引入更多的活动。

结语

我们探讨了Espresso Sequencer在如何消除二层生态系统分碎片的多个不同方式。我们期望能在rollups之间连接流动性和应用的能力,大大提高单个rollup的效用,并为其用户提供更好的用户体验,通过实现无需依赖第三方的密码学保证的原子捆绑和依赖于块构建者的更具表现力的原子捆绑(可提供额外的加密经济保障)。

有关Espresso Sequencer的更多信息,你可以阅读这里以及在Twitter上关注Espresso Systems


  1. 假设市场存在多种对wrapped-X的卖空方式(例如,采取传统的卖空态度)。另外,如果在rollup B的AMM上wrapped-X与某个代币Y交易,那么wrapped-X的真实价值突然下降可以创造巨大的套利机会。这主要惠及rollup B上的块构建者和/或提议者,他们在利用DEX套利方面拥有优先权。↩︎

  2. https://crypto.stanford.edu/~dabo/pubs/abstracts/timedcommit.html, https://eprint.iacr.org/2012/288.pdf ↩︎

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

0 条评论

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