Rollups 远不止是 L1 的一个扩展解决方案。 Rollups 也是部署独立、主权区块链的一种强大方式,就像任何 L1 链一样,更加丝滑
原文:Rollups as Sovereign Chains(Celestia)
作者:Mustafa Al-Bassam, Ertem Nusret Tas, Nima Vaziri
编译:Hoyt
原用标题(译后):Rollup 将是有主权的链
大多数应用都会被布署在 rollup 上,他们把 Celestia 用作共识层和数据可用层。作为首个为增加交易容量而提出的二层解决方案,rollup 将是大多数区块链应用的家园,无论它们用 Celestia,还是以太链,还是别的平台做共识层和数据可用层。
在本文中,我们将讨论什么是 rollup,它们当前是如何工作在以太链上的,以及它们将如何工作在 Celestia 上。
对现有的以太链的 rollup 来说,以太链是高高在上的结算层,以太链 rollup 完全就像以太链的 ‘婴儿链’ 一样,因为正确的 rollup 链是由以太链上的合约定义的。相比之下 Polkadot 平行链模型也是一样,中继链对平行链来说,也是高高在上的结算层。
另一方面,对 Celestia 来说,我们认识到一种新型的 rollup:有主权的 rollup 链。它们是独立的,他们有权作为子网本身,来定义自己的正确性,就如同独立的一层链一样,并且可以通过受信任的或无需信任的桥,连接到其它的链或者结算层。
目录:
- 什么是 rollup?
- 以太链(高高在上的结算层)上的 rollup
- Celestia 上的 rollup(有主权的)
- 有主权的跨 rollup 通讯
- 为什么需要主权?
什么是 rollup?
rollup 是一种吧它们的区块发送到另一条链的区块链,并且继承另一条链的共识和数据可用性(那条链因此被称为 ‘共识层和数据可用层’)。
典型的 rollup 由三方共同维护:排序者,rollup 的全节点,rollup 的轻节点。所有 rollup 都有自己的状态,比如用户在某个时间点的的账户地址和代币余额。
排序者:是一种收集 rollup 的用户发送的交易的节点,把交易打包成区块,并且把区块发布到共识层和数据可用层。区块由两部分组成:区块头和实际的交易数据。区块头包含但不限于链的,密码学上的状态确认——通常说来是默克尔树。
Rollup 的全节点:它下载 rollup 的全部区块头和交易数据,处理和验证所有的交易,从而计算出 rollup 的状态,并且验证所有交易的有效性。如果全节点在 rollup 的区块中发现一个无效交易,他会拒绝并忽略这个区块。这样一来,排序者不能把无效交易打包到有效区块中,因为其它节点会通过自己的判断拒绝有问题的区块。
Rollup 的轻节点:只下载 rollup 的区块头,但是不下载或者处理任何交易信息,因此不能全靠自己来计算最新状态或者验证 rollup 状态的有效性。作为替代,他们可以通过 rollup 的最新的区块头了解到最新的确认状态。他们也间接地验证交易的有效性,通过诸如欺诈证明或有效性证明。
当 rollup 节点同步 rollup 链的数据,它们只能按照共识层和数据可用层确定的排序。对每个区块高度,他们将接受发布到数据可用层的第一个有效的 rollup 区块——不管是直接(全节点)还是间接(轻节点)验证有效性。
关于 rollup 的更多细节和技术性的解释,我们建议阅读 Celestia 论坛上的这个帖子。
以太链(高高在上的结算层)上的 rollup
当前以太网上的 rollup 把它们的区块发送到基于 EVM 的智能合约,这被称为 ‘桥合约’。这个合约实际上有效地在主链上实现了一个 rollup 的轻节点,它接收区块头并处理欺诈证明或者有效性证明。在这种模型中,存在一个高高在上的,硬编码的,只需要最小信任的,通往以太主链的桥。
通过桥合约,用户可以在 rollup 和桥所在的执行链间,以只需要最小信任的方式,抵押或赎回资产。因为在欺诈证明或有效性证明的帮助下,合约不会接受排序者提供的无效区块。
以太链,扮演了共识层和数据可用层,它只负责记录,按照桥合约定义的规则,确定有效的区块。因此,rollup 全节点和轻节点(与智能合约无关的),把以太链上的轻节点,看做是根本的信任来源,这才是一条典范的(正确)的 rollup 链(译者注:即能取得最终共识的链)。在这个模型中,我们把以太链看作是高高在上的,和 rollup 配对的结算层。同时,rollup 对以太链来说,就像一条 ‘婴儿链’ 一样,而不是有自主权的独立的链。
Celestia 上的 rollup(有主权的)
Celestia 上,有主权的 rollup 完全不需要把他们的区块提交给智能合约,而是直接作为原始数据提交到链上。Celestia 的共识层和数据可用层,完全不翻译或者执行 rollup 区块中的计算逻辑,当然也不需要要运行在主链上的,rollup 的轻节点。
作为替代,rollup 完全像一层链一样运行:全节点和轻节点直接从 rollup 的点对点网络下载区块。(译者注:跟传统的一层链相比)主要的区别是,他们也要验证 rollup 的区块数据,被包含和正确排序在 Celestia 的数据可用层里,以默克尔证明的方式。因此,和一层链相似,典范的链,通过本地验证分叉选择规则和 rollup 交易的节点来确定,而不是一个高高在上的,主链上的轻节点。
欺诈证明和有效性证明的工作方式也和他们在一层链的工作方式类似。欺诈证明,通过点对点网络,被直接传播给节点。并且如果是有效性证明的话,它可以直接包含在区块头内(例如,参见 Mina 协议)。因为,网络同步时,点对点网络的延迟,明显要小于从主链获取欺诈证明的延迟。这表示点对点网络的挑战期,有可能要短很多,对轻节点来说,最终确定链状态将快很多。
在这个模型中,rollup 和结算层之间,没有高高在上的桥,因为 rollup 只是简单直接地把区块发布到数据可用层,而不是某个合约。这和 Cosmos 的设计哲学一致,因为 Cosmos 连接器对 Cosmos 领域来说,也不是高高在上的,而是可选的,可以在允许各领域保持主权独立的条件下添加。rollup 和 rollup 之间,可能还是会需要一些要求最小信任的桥——我们将在下一个小节讨论。
如果 rollup 不依赖于高高在上的结算层来选择分叉和验证交易,它就是主权独立的。进一步说,rollup 的典范链是由 rollup 的点对点网络上的节点来确定的(这个网络在数据可用层中,它也确保区块是可用的)。这表示结算层不可能把交易强加给 rollup。
‘不需要高高在上的结算层’,更多是一个公众的选择,而不是基于技术,这表示 rollup 的社区间,有一个公共的约定,它要求 rollup 交易的验证规则,由社区确定,而不是一个不可变的一层合约。实践中,这表示通往 rollup 的桥,不能是高高在上的,必须是可变的,以便有一种升级的方法,使得有主权的 rollup 上的硬分叉可以被确认(下一节将具体讨论)。
因此,这表示 rollup 的社区可以通过硬分叉来更新链,而不会导致结算层或数据可用层,或一层链上的监管,破坏链的最小信任本性。这对有主权的 rollup 上原生铸造的资产来说很重要,而不需要所有资产都从其它链转移而来(译者注:即都需要主链资产的背书)。
有主权的 rollup 也可以只把以太链用作数据可用层,而不是高高在上的结算层,但这样和采用 ‘纯粹’ 的数据可用层,比如 Celestia 相比,麻烦更多。因为 rollup 的节点,需要关注以太链结算层上所有交易的有效性,才能运行以太链上数据可用层的节点(译者注:因为以太链的所有功能是打包在一起的,不能说只运行其中一部分)。
构建一个 Celestia 上的 ‘结算 rollup’ 也是可能的,它也是一种有主权的 rollup。一个有主权的 rollup,可以被一些非主权独立的 rollup,用作结算层。不过,这种结算层的主权和以太一层链的主权类似,它的社区经常通过具有公众共识的硬分叉来更新链(译者注:即通过类似 EIP 的机制达成公众共识,然后通过硬分叉实现更新)。
有主权的跨 rollup 通讯
正如前面提到的,Celestia 上的 rollup 完全不需要一个高高在上的桥来连接任何结算层。rollup 的结算层和执行层就因此而被解耦和模块化了。那么,Celestia 的 roullup 如何桥接到其它链?不受高高在上的结算层的限制,我们设计跨链桥的空间更宽广了。我们对设计空间和选项有如下探索。
让我们假设有主权的 rollup 链 A 想要桥接到另一个链 B——假定也是一个 rollup。
点对点结算 vs. 链上结算
A 和 B 可以直接互相在对方嵌入轻节点。比如,两条链都运行 A 和 B 的轻节点。这样,轻节点可以直接通过点对点网络接收相应的欺诈证明或者可用性证明。我们把这称之为 ‘点对点结算’。
两条链上都可以有桥接合约,这允许资产被抵押或赎回到其中任何一个链(比如通过 ‘锁定然后铸造’ 机制),并且被互相的排序者和执行交易的验证者监督(无论是直接还是间接的)。
另一方面,轻节点也可以被实现为链上的智能合约,并且区块头和欺诈证明或者零知识证明可以被提交给链上的智能合约。这就是以太链上的 rollup 的情况。我们称之为 ‘链上结算’。
连接器和有中心点的网络 vs. 点对点桥接
当前,rollup 预期连接到单个结算层,这个结算层像结算连接器,比如以太链(连接器和有中心点的网络)。如果 A 和 B 都同时连接到相同连接器,那他们可以通过桥互相转移资产,并把连接器看作是结算中介。
不过,就像 IBC,rollup 可以选择直接互相连接,并采用一条中介性的连接链(点对点桥接)。
动态桥接 vs. 静态桥接
根据 rollup 的不同的执行环境,链的更新或者硬分叉可能要求桥接到新的链。这是因为 A 和 B 必须互相支持对方的执行环境,以便对方的欺诈证明或者零知识证明可以工作。
让我们假定某个 optimistic rollup 链 A 的状态机是直接用 Golang 写的(比如,利用 Cosmos SDK),而不是一个智能合约环境,比如 EVM 或者 CosmWasm。为了桥接到链 B,B 需要更新他们节点上的软件,以便以功能库的方式,包含 A 的状态机,以便验证 A 的欺诈证明。这是因为 B 不能自动添加 A 的状态机操作码,因为这些代码可能是恶意的或者非确定性的,这会有安全风险。因此,公众共识或监督这些桥是必要的。这和用零知识证明构建的有效 rollup,不能被 B 理解的情况是相似的。我们把这叫做 ‘静态桥接’,因为桥(译者注:的功能)必须在更新链的时候,被明文添加。这种桥可以按照 IBC 轻节点来实现。
另一方面,如果某个 optimistic rollup 链 A 是在沙盒智能合约环境,比如 EVM 或 CosmWasm 环境中编写的,那链 B 可以允许 A 的状态机操作码被直接添加到 B 的状态机中,而不需要公众共识或监督,比如通过一个智能合约。作为对比,如果 A 是个零知识证明 rollup,它可以被动态地桥接到 B,只要 B 能兼容理解 A 的零知识证明。我们称之为 ‘动态桥接’
非高高在上的结算层 vs. 高高在上的结算层
如果一个 rollup 链把它的区块和证明发布到,像连接器那样工作的结算层,比如以太链。我们说这种结算层是 ‘高高在上的’,如果典范链和它的交易验证由结算层来决定。
另一方面,如果 rollup 把它的区块和证明发布到结算层,但 rollup 的典范链完全是由 rollup 自己的网络决定的,我们说这种结算层是 ‘非高高在上的’。为了使非高高在上的结算层有意义,需要有某种方式能够更新 rollup 而不要求结算层硬分叉。
基于委员会的桥 vs. 基于证明的桥
为了使两个 rollup 之间的桥只需要最少的信任,rollup 链必须互相验证欺诈证明或者零知识证明。这表示他们必须互相能够理解对方的状态机(‘基于证明的桥’)。
不过,‘基于委员会的桥’ 也是存在的(比如现在的 IBC 桥)。相比于依赖状态有效性证明,这些桥依赖一个委员会来证实区块的有效性。这种桥不是最小信任的,因为为会员有可能盗窃资产。不过,这种桥的复杂性可能会低一些,因为部署桥的链,不需要,跟源头链一样的,处理欺诈证明或者零知识证明的功能。
可升级的桥 vs. 不可升级的桥
当前以太链上的 rollup,事实上是要求 rollup 不能被多签或者委员会升级,因为如果他们可以,他们就不是最小信任的了,而资产可以在升级过程中被盗窃。在这种模型中,rollup 只能通过一层链的硬分叉来升级,因为典范链是一层结算层来确定的,意味着 rollup 没有主权。
要使有主权的 rollup 有实用性,应该有某种升级途径,来确认 rollup 的主权,而不是用高高在上的结算层。要达到目的,有几种方式可以考虑,基于桥是否是最小信任的。假定 A 链正要硬分叉,而 B 链需要升级它上面 A 的轻节点。
对静态桥,B 也需要硬分叉。这种升级路径,意味着桥是最小信任的,因为不需要多签或者委员会的参与。
对动态桥,链 A 控制的委员会(比如 DAO)可以更新 B 上的轻节点。这需要桥被信任。
对动态桥,链 B 控制的委员会(比如 DAO)可以更新 B 上的轻节点。如果 B 是结算层,这给结算层带来了升级负担,这可能是符合预期的,如果结算层有专业的监管需求,或者有很高的金融安全需求。这也要求桥被信任。
为什么需要主权?
就其核心而言,rollup 是简单的区块链,rollup 桥是这些区块链的简单的轻节点。当前被以太链带动起来的 rollup 的目标是不可升级的 rollup,同时有一个高高在上的结算层。这等于是运行一个永远不能升级的区块链节点,它的区块只有被链上的高高在上的,这个 rollup 的轻节点接受才是有效的。正如我们上面所说的,这只是 rollup 设计空间中一个很小的子集。
在 Celestia 的实验室,我们对不需要高高在上的结算层的,有主权的 rollup 更感兴趣。因为我们相信区块链中最重要的一层是公共共识。事实上,区块链是允许社区在主权的基础上,实现集体领导的工具,而不被现状所拖累。这表示硬分叉是一种特性,而不是缺陷,因为硬分叉能强化主权社区实现公共共识的能力。这在某个公共资源出问题的情况下,尤其重要,比如以太链因 DAO 的破坏而分叉的时候。
有主权的 rollup 将是一个强有力的途径,它使主权社区能利用社区的计算设备,来跟踪和加强社会经济价值和协议,而不需要,为启动和维护他们自己的共识层和验证者集,付出额外的代价。且不需要在公共共识上从属于某个高高在上的结算层,无论这个结算层是否适合自己。
有主权的 rollup 对开发者来说,在执行环境上有跟大的灵活性,因为他们不受限于,某个需要为他们的 rollup 处理欺诈证明或者零知识证明的,高高在上的结算层。尤其是在很多情况下,这些结算层不能便利和高效的处理某些欺诈证明和零知识证明。
请关注我们的后续文章,我们将进一步列举例子来说明,主权对区块链来说,为什么特别重要。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。