除了大家所熟知的 Validity Rollup 及 Optimistic Rollup,还有哪些不同的 Rollup 分类方式?
撰文:NIC Lin
理解 Rollup 的运作方式以及 Rollup 的资料可得性(Data Availability)问题
不管是 Validity Rollup 还是 Optimistic Rollup,它们都会将资料上传到 L1(例如 Ethereum),让所有人都可以透过存取 L1 来存取到该 Rollup 的资料,并藉此推导出 Rollup 最新的状态,例如 Alice 有 10 USDT、Bob 有 5 USDT。
没有把资料上传到 L1 的就不属于 Rollup(例如 Validium、zkPorter 或 Arbitrum AnyTrust),它们不是这篇文章要讨论的对象。另外本篇文章也不会讨论 Rollup 如何验证状态的有效性,也就是 Validity Rollup 和 Optimistic Rollup 的区别。
本篇第一部分将介绍 Sovereign Rollup。Sovereign Rollup 如其名,是属于拥有自主权的 Rollup,进行 Rollup 版本升级或硬分叉都发生在 Sovereign Rollup 上,不像大家现在所熟悉的 Rollup 们(以下简称 Classic Rollup),Classic Rollup 进行升级、硬分叉的地点不在 Classic Rollup 上,而是在 L1 的 Rollup 合约上:在 L1 的 Rollup 合约藉由多签钱包或治理投票执行版本升级。也就是由一个 L1 上的合约来决定一个 Rollup 目前该用哪个版本。而且如果 L1 发生针对该 Rollup 的攻击,例如攻击治理机制或攻击 Rollup 合约本身,该 Rollup 都是会受影响的。相反地,因为 Sovereign Rollup 只单纯把 L1 当成放资料的地方,所以所有 Sovereign Rollup 成员都可以自己在链下决定目前该用哪个版本,而且不管 L1 发生什么事,只要 L1 本身没有被攻击(例如发生 Re-org 或是链停摆),Sovereign Rollup 就不会受影响。
第二部分将介绍 Based Rollup。Based Rollup 移除 Sequencer 这样的角色,将交易排序的权力交给 L1 的矿工、Validator、MEV Searcher 等等。不只让排序交易变得更去中心化,同时也能简化设计、移除系统许多元件。
Classic Rollup 例如 Arbitrum、Optimism、StarkNet 等等,除了把 Ethereum(L1)当作放资料的地方(也就是 Data Availability Layer),还同时将 Ethereum 当作 Settlement Layer:在 Ethereum 上进行结算,把 L2 的状态(也就是 L2 各个地址的馀额)写到 L1 上。
为什么会需要把 L2 状态写到 L1 上?因为这样 L2 和 L1 就能互通讯息、互通资产:L1/L2 的 dApp 能同步讯息并合作、L1 的 ETH 能安全地在 L1/L2 之间流转、L2 的 ARB/OP 也能安全地在 L1/L2 之间流转。
L1 能读得到 L2 状态,就能安全地进行讯息传递,L1/L2 之间就能互通有无
而 Sovereign Rollup 便是拿掉 Settlement Layer(或是说将自己变成 Settlement Layer),单纯将 L1 作为 Data Availability Layer 使用。
L1 只读取得到 Sovereign Rollup 放到 L1 的区块或交易资料,但不知道 L2 最新状态,也就没办法互通
为什么要拿掉 Settlement Layer?有不同理由或原因:
Sovereign Rollup 单纯将 L1 作为 Data Availability Layer,把资料上传到 L1,仰赖 L1 确保资料可得且资料排序不会改变。Sovereign Rollup 的节点则靠著读取 L1 上的资料并进行解读,来算出该 Sovereign Rollup 当前的最新状态。「解读、算出」代表的其实就是 Sovereign Rollup 的共识规则、State Transition Function:怎么从 L1 资料中筛选出符合该 Sovereign Rollup 格式、规则的区块和交易、筛选后怎么验证这些区块和交易、验证后怎么执行这些交易来算出最新的状态。
Sovereign Rollup 节点从 L1 资料中筛选出自己的区块,并解读、算出最新状态
如果两个 Sovereign Rollup 的节点是不同版本,就可能会解读出不同资料、或是算出不同的最新状态,也因此这两个节点就不会在同一条链上,它们各自所看到的其实就是两条分岔的链的其中一条。
不同版本的节点可能会得到不同的状态,也就分岔到不同的链上
这其实就和你跑不同版本的 Ethereum 节点一样,两个版本有可能不会是同一条链。例如硬分叉后,忘记更新节点版本、不愿意更新节点版本的人就会自然地留在原本的链上(例如 ETC、ETHPoW),而更新节点版本的人就会在新的链上(ETH)。
看到这边读者应该也知道为什么它会被称作 Sovereign Rollup 了,因为在 Sovereign Rollup 中大家可以各自按照自己群体的(社会)共识,去选择节点版本、去解读资料。如果今天该 Sovereign Rollup 社群出现像是 ETHPoW v.s. ETH 的分歧,那就是大家各走各的,选择不同的节点版本去解读资料,但资料还是原本那一份,没有改变过。
注:当然分叉后,各自版本的节点就会上传符合自己规则的资料到 L1,届时两边都会直接过滤掉对方上传的资料。
在中间的时间点下面的节点分岔到了 v1.1.2 版,之后彼此的区块就各自独立
目前没有什么 Sovereign Rollup 的例子,不过随著区块链的模组化设计风潮越来越热,肯定会有许多 Sovereign Rollup 出现。例如 Celestia 正在设计的模组化框架 Rollkit 可以透过 Cosmos SDK 打造一个 Sovereign Rollup。不像原本使用 Cosmos SDK 打造的链(一个 L1)会需要执行 Tendermint 共识来决定交易排序,该 Sovereign Rollup 可以像目前常见的 Rollup 一样使用单一 Sequencer 来排序交易,省去需要多个共识节点并仰赖其安全性的困扰以及执行共识演算法所消耗的资源。且该 Sovereign Rollup 是将交易资料上传到 Celestia,但同时因为是 Sovereign Rollup 所以不会受 L1 影响(例如升级或被攻击)。
注 1:Rollkit 后来也支援了将 Bitcoin 当作 Data Availability Layer,这样的 Rollup 能继承 Bitcoin 安全性但 throughput 就会受限于 Bitcoin。
注 2:基本上基于 Celestia 的链都可以称作 Sovereign Rollup。
或是假设 Arbitrum 不再使用 Ethereum 当作 Settlement Layer、不再需要和 Ethereum 互通讯息或资产,单纯把 Ethereum 当成放资料的地方,则这样的 Arbitrum 也会成为一个 Sovereign Rollup。
另外也有像是 Settlement Rollup 这样的定义出现,不过它基本上就是 Sovereign Rollup,然后这个 Sovereign Rollup 还会是其他链的 Settlement Layer。也就是说,如果一个 Sovereign Rollup 上面还会有其他链、其他 Rollup 将它当作 Settlement Layer 的话,这个 Sovereign Rollup 就可以称作 Settlement Rollup。
注:要能成为其他链的 Settlement Layer 必须要有基本的智能合约功能,让两边能互通讯息、资产。
如果 Ethereum 今天改成把链的资料都上传到 Celestia,那这样的 Ethereum 就会是 Celestia 上的 Sovereign Rollup,且同时也是 Settlement Rollup,因为 Ethereum 上面还有许多链、许多 Rollup 把它当作 Settlement Layer。
Ethereum 是 Celestia 上的 Sovereign Rollup,也是 Settlement Rollup
注:或许未来大家逐渐熟悉模组化、熟悉不同 Layer 的功能,不再从 Rollup 角度出发,Sovereign Rollup 或 Settlement Rollup 这样的名词就会渐渐消失。反正重要的是你这条链(不管是 L1 还是 L2 还是 L3 etc.)怎么设计、怎么做出取捨,为不同 Layer 选择适合的建造工具。
另一个最近出现的 Rollup 分类是 Based Rollup,又或著称 L1-sequenced Rollup。Based Rollup 的 Based 指的是在排序交易这件事上,Rollup 不是交给一个 Sequencer(或多个 Sequencer)来排序交易,而是完全交给 L1 的矿工、Validator 或 MEV Searcher 等等来排序交易。Classic Rollup 将资料上传到 L1 时,L1 Rollup 合约会检查是不是符合资格的 Sequencer 所上传的,而 Based Rollup 则是没有限制,任何人都可以上传。
任何人都可以上传 Based Rollup 的区块
Based Rollup 最大的优点就是没有 Sequencer,也就没有单点故障的问题或甚至需要担心 Sequencer 有完全交易排序权力的问题,也就是不需要担心 Sequencer 当机导致链停摆或故意不收特定使用者的交易,或是担心 Sequencer 会恶意套取使用者的 MEV。Based Rollup 完全继承 L1 在出块上的去中心化程度。
Based Rollup 有以下优点:
一般 Rollup 为了避免 Sequencer 故意不收入特定使用者交易或是 Sequencer 停摆导致使用者无法离开 Rollup,会设计一套 Force Inclusion 机制或是 Escape Hatch 机制来让使用者可以不透过 Sequencer 而直接到 L1 安插自己的交易到 L2 区块中。但这样的设计第一个代价是成本高,使用者必须要自己付出 L1 矿工费去安插交易,第二个代价是从 L1 安插的交易可能会影响 Sequencer 打包 L2 区块的过程:有可能 L1 安插的交易会导致 Sequencer 准备收入到 L2 区块裡交易无效,例如 Alice 在 L1 安插的交易把钱都转给 Bob,导致 Alice 在 L2 区块裡转钱给 Carol 的交易失败。
Sequencer 收到 Alice 的交易后,确认交易结果并放进下一个区块中
但 Alice 直接透过 Force Inclusion 将另一笔交易直接送到 L1,导致 Sequencer 收到的 Alice 交易失败
Arbitrum 为了避免 L1 安插的交易影响 Sequencer 打包 L2 区块的过程,所以 L1 安插的交易不会马上生效,需要等待 Sequencer 主动申请将该交易收入最新一个区块才会生效,或如果 Sequencer 都没反应,过一段时间后就会强制生效。Optimism 则是允许交易立即生效,如果 L1 安插的交易影响到 L2 区块裡的交易,Sequencer 必须要自己想办法处理。可以看这篇介绍了解更多 Arbitrum 及 Optimism 在处理 L1 安插交易的比较。
Based Rollup 比一般 Rollup 少了 Sequencer 的角色,也就少了硬体的负担(不必担心 Sequencer 机器负载问题)以及任何为了让排序交易更公平的机制(例如去中心化 Sequencer 的机制)。然后也不需要 Force Inclusion/Escape Hatch 机制,包含 L1 的相关合约及相关链下工具来方便使用者能自己在 L1 安插交易。
但 Based Rollup 也有一些缺点:
有 Sequencer 的话,Sequencer 可以很快告诉使用者他的交易执行结果。只要使用者相信 Sequencer,就能立刻确认交易结果,不需等待交易上传到 L1。
Based Rollup 中,Alice 等到交易上传到 L1 才相信自己的交易被收入,要等至少一个 L1 区块的时间
一般 Rollup 中,如果 Alice 相信 Sequencer 会收她的交易的话,马上就能确认交易是否会被收入
MEV 不再交由 Sequencer 来把关、提取,而是交给 L1,因此 L2 本身没办法获得 MEV 收益。可以透过设计出块权利的竞标机制来捕捉 MEV 收益,但相对地会拉高 L1 参与者参与出块的门槛,也就降低去中心化程度,且引入竞标机制也带来一定複杂度。
Sovereign Rollup
https://www.alexbeckett.xyz/a-snapshot-of-the-current-rollup-ecosystem/
https://twitter.com/CelestiaOrg/status/1554868094815780864
https://blog.celestia.org/sovereign-rollup-chains/
https://blog.celestia.org/introducing-sovereign-rollups-to-developers/
https://stonecoldpat.substack.com/p/settlement-layers-ethereum-rollups
https://www.youtube.com/watch?v=h1uhKkknR2Y&t=27271s
https://twitter.com/sreeramkannan/status/1634966046326280192?s=20
Based Rollup
https://ethresear.ch/t/based-rollups-superpowers-from-l1-sequencing/15016
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。