Sovereign Rollup、Based Rollup详解

行业热点3年前 (2023)发布 EditorY
7,000 0

除了大家熟悉的Validity Rollup及Optimistic Rollup,还有哪些不同的Rollup分类方式?

  • 理解 Rollup 的运行方式以及 Rollup 的资料可得性(Data Availability)问题

https://medium.com/taipei-ethereum-meetup/rollup-and-data-availability-227340f1dbd6

汇总

不管是Validity Rollup还是Optimistic Rollup,它们都会将资料上传到L1(比如以太坊),让所有人都可以通过存取L1来存在取到该Rollup的资料,并借此导出Rollup最新的状态,比如爱丽丝有10 USDT、鲍勃有5 USDT。

没有把资料上传到 L1 的就不仅仅属于 Rollup(例如 Validium、zkPorter 或者 Arbitrum AnyTrust),它们不是这篇文章要讨论的对象。其他文章也不会讨论 Rollup 如何验证状态的有效,也就是有效性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 发生什么事,只要 L 1 本身没有被攻击(例如发生 Re-org 或者是链停摆), Sovereign Rollup 就不会受到影响。

第二部分将介绍 Based Rollup。Based Rollup 移去 Sequencer 这样的角度,将交易排序的权力交给 L1 的矿工、Validator、MEV Searcher 等。不只让排序交易变得更去中心化,同时也能简化设计、移除系统允许多少元器件。

未来如果有其他新的 Rollup 出现,也会继续补充在这篇文章里。

**汇总

数据可用性层和结算层

Classic Rollup例如Arbitrum、Optimi、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?有不同原因或原因:

  1. 如同开头所描述,如果 Rollup 的 Settlement Layer 在 L1,则它会受到 L1 所影响,不管是要升级还是被攻击
  2. 可能 L1 本身不支持复杂的运算来做记录 Rollup 状态并利使用这个状态进入消息资源的交互等功能,就像在 Celestia 上你只能单纯发布资料上去,或者像在比特币上你只能进行能力有限的运算,这样的L1也就没有事务法成为结算层
  3. 或者也许Rollup本身不需要另外一条链来作为结算层,它有自己的原生代币、生态,不需要和L1互联资产

Sovereign Rollup 运行方式

Sovereign Rollup 单纯将 L1 作取数据可用性层,把资料上传到 L1,仰赖 L1 确保资料可得和资料排列不会改变。Sovereign Rollup 的节点则靠读L1上的资料并进行解读,算出Sovereign Rollup当前的最新状态。「读、算出」代表的其实现就是Sovereign Rollup的公共规则、状态转换函数:怎么从L1资料中筛选出符合该Sovereign Rollup格格式、规则的块和交易、筛选后怎么验证这些区块和交易、验证后怎么操作这些交易来算出最新的状态。

Sovereign Rollup 节点从 L1 资料中筛选出自己的区域,并解读、算出最新状态

如果两个 Sovereign Rollup 的节点是不同版本的,就可能会读出不同的资料、或者是算出不同的最新状态,也因此这两个节点就不会在同一条链上,它们各自所见的其实就是两条分开的链条的其中一条。

不同版本本的节点可能会得到不同的状态,也只是分岐到不同的链接上

这其实就和你跑不同版本的以太坊节点一样,两个版本可能不会是同一条链。比如硬分叉后,忘记更新节点版本、不想更新节点点版的人自然会留在原地的链上(例如ETC、ETHPoW),而更新节点版本的人就会在新的链上(ETH)。

看到这边读者应该也知道为什么它会被称为Sovereign Rollup了,因为在Sovereign Rollup中大家可以各按照自己群的(社会)公共,去选选择节点版本、去阅读资料。如果今天天应该 Sovereign Rollup 社群体出现像是ETHPoW vs ETH的区别,那就是大家各走各的,选择不一致的节点版本本去阅读资料,但资料还是原来那一份,没有改动过。

注:当然分叉,各自各自的节点符合符合规则资料资料到到到到到到资料资料资料届时边边都会会直接直接过

在中间的时间点下面的节点分到了v1.1.2版,之后彼的分区就各独立了

有哪些 Sovereign Rollup?

之前没有什么 Sovereign Rollup 的例子,不过随着区块链的模型化设计风潮越来越热,确定会有很多 Sovereign Rollup 出现。例如 Celestia 正在设计的模块化框架Rollkit可以透过Coos SDK 打造一个Sovereign Rollup。不像原始使用 Coos SDK 打造的链(一个 L1)会需要执行 Tendermint 共知来决定交易顺序,该 Sovereign Rollup 可以像目标之前常见的 Rollup 一样使用单音序器来顺序交换,省去需要多个公共知识点并仰赖其安全性的障碍以及执行公共知识演算法所消耗诗歌的资源。而且应该 Sovereign Rollup 是将交易资料上传到 Celestia,但同时因为是 Sovereign Rollup 所以不会受到 L1 影响(例如升级或被攻击)。

注 1:Rollkit 以后也支持了将比特币当做数据可用性层,这样的 Rollup能够继承比特币安全但吞吐量就会受限于比特币。

注 2:基于 Celestia 的链接都可以称作**汇总。

或者是假设 Arbitrum 不再使用 Ethereum 当做结算层、不再需要和 Ethereum 互通消息或资产,单一把 Ethereum 当成资源的地方,那么这样的 Arbitrum 也会成为一一个**汇总。

结算汇总

另外还有像 Settlement Rollup 这样的确定出现,不过它基础上就是 Sovereign Rollup,然后这个 Sovereign Rollup 还会是其他链的 Settlement Layer。也就是说,如果一个 Sovereign Rollup 上界面还会有其他链接、其他 Rollup 将它当做 Settlement Layer 的话,这个 Sovereign Rollup 就可以称为做 Settlement Rollup。

注:要能成为其他链的结算层必须要有基础的智能结合能力,让双方能够互通消息、资产。

如果今天以太坊改成把链的资料都上传到Celestia,那么这样的Ethereum就会是Celestia上的Sovereign Rollup,同时也是Settlement Rollup,因为Ethereum上面还有许多链、许多Rollup把它当作结算层。

Ethereum 是 Celestia 上的 Sovereign Rollup,也是 Settlement Rollup

注意:或者许未来大家逐渐熟知模型、熟知不同层的功能,不再从 Rollup 角度发出,Sovereign Rollup 或 Settlement Rollup 这样的名词就会渐趋消失。反正重要的是你这条链(不管是L1还是L2还是L3等)怎么设计、怎么取出舍,为不同层选择合适的构建工具。

基于汇总

另一个最近出现的 Rollup 分类是 Based Rollup,又或者称 L1-sequenced Rollup。Based Rollup 的 Based 指针的是在排序交换这个事情上,Rollup 不是传递给一个 Sequencer(或者多个 Sequencer)来顺序交易,而且是完全交到L1的矿工、Validator或MEV Searcher等来排序交。的 Sequencer 所上传的,而 Based Rollup 则没有限制,任何人都可以上传。

任何人都可以上传基于 Rollup 的区块

Based Rollup 最大的优点就是没有Sequencer,也就是没有单一故障的问题或者什么至需要承担Sequencer的问题,也就是不需要承担Sequencer当机导向停止摆动或故意不收特定使用者的交易,或者是担心Sequencer会恶意套取使用者的MEV。Based Rollup完全继承L1在出块上的去中心化程度。

Based Rollup 有以下优点:

使用者关闭 Rollup 的结果很低

一般 Rollup 为的是避免 Sequencer 故意不收特定使用者交易或者是 Sequencer 停摆引导致使用者无法开启 Rollup,会设计一套 Force Inclusion 机制或者是 E scape 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都没有反应,过一段时间后就会增强生产效率。Optimi则允许交易立即生产效率,如果L1安插的交易影响到L2区块里的交易,Sequencer必须要自自己想办法处理。可以看看这篇介绍介绍了更多 Arbitrum及Optimi在处理L1安插交易的比较。

设计简单单许多

Based Rollup 比一般 Rollup 少了 Sequencer 的角度,也少了实体的负载(不必担心 Sequencer 机器负载问题)以及任何为了让排序交易更公平的机制(例如去中心化 Sequencer 的机制)。然后也不需要Force Inclusion/Escape Hatch 机制,包含L1的相关链接及相关链接下方工具来方便使用者能够自己在L1安插交易。

但基于 Rollup 也有一些不足之处:

没有交易前确认的服务

有Sequencer的话,Sequencer可以很快的告诉使用者他的交易执行结果。只要使用者相信Sequencer,就能立刻确认交易结果,不需要等交易上传到L1。

基于 Rollup 中,Alice 等到交易上传到 L1 才相信自己的交易被接收,要等到最小一个 L1 区块的时间

一般 Rollup 中,如果 Alice 相信 Sequencer 会收她的交易的话,马上就能确认交易是否会被收入

失去MEV收益来源

MEV不再交由Sequencer来把关、提取,而且是交给L1,因此L2本机没有办法获得MEV收益。可以透过设计出块权的竞标机制来捉捉MEV收益,但相对地会拉高L1 参与者与参与者出块的门槛,也只是降低了去中心化程度,而引入竞标机制造也带来了一定的复合度。

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

© 版权声明

相关文章