一个 Secured Rollup 就是像 Arbitrum 或 Optimism 这样模式, 结算, 共识, 数据可用性均依赖以太坊等 L1, 自己仅负责执行的 Rollup.
如果 Rollup 中结算, 共识, 数据可用性使用了除 L1 以外的方案, 那么它就不是一个纯粹的 Secured Rollup, 也就不是狭义的 Rollup.
图片 0. Rollup 的本质与原理 a) Rollup 的本质
给区块链扩容有两种方式: 一种是优化区块链本身, 另一种是以更好的方式使用区块链.
Rollup 就是第二种, 它真正的本质很简单, 是更快更便宜且 “可信” 地使用区块链, 来扩容区块链 (基本特指以太坊).
图片 Rollup 是: 链上的智能合约 + 链下的聚合器.
就这么简单. 而这两个特性结合起来就定义了 Rollup 也丰满了它的概念.
链上智能合约, 表示了它的信任模型就是以太坊上的一个智能合约, 借用了以太坊的安全性, 而不是像 Alt L1 一样需要建立新的信任共识. 我们可以像信任 Uniswap 的协议 (核心是智能合约) 一样信任 Arbitrum 的协议. 链下聚合器, 表示它会链下执行并聚合交易, 将大批量的交易压缩, 最终放上以太坊主网, 达成更快更便宜的目的. 以太坊的原理是, 每个节点都存储且执行用户提交给它的每笔交易, 所以这么一个去中心化网络非常昂贵.
后文是以 Aribitrum 和 Optimism 为代表的 Optimistic Rollup, 与以 zkSync 和 StarkNet 为代表的 zk Rollup 两大 Rollup 的机制原理, 可供读者简单理解.
b) Optimistic Rollup 的原理
Optimistic Rollup 顾名思义是乐观的, 采用的类似是无罪推定, 大家会默认相信每个执行是正确的, 通过每个批次状态可被通过欺诈证明挑战而保证安全性.
图片 用户在 Arbitrum 提交交易, Arbitrum 的 sequencer 对交易进行执行, 分批次将状态根与交易数据完整提交到以太坊主网上的智能合约中.
图片 Optimistic Rollup 执行产生错误了怎么办?
Optimistic Rollup 有一个争议验证周期, 也就是说上了链之后的数据还要过比如一周的时间才会真正地被敲定 Finalized, 期间任何人都可以对它进行挑战, 证明批次不正确. c) zk Rollup 的原理
zk Rollup 顾名思义是用了 zk 零知识证明技术 (实际上是 Validity Proof), 采用的类似是有罪推定, 大家会默认质疑每个执行都是错误的, 通过每个批次所包含的证明保证安全性.
图片 用户在 zkSync 提交交易, zkSync 的 sequencer 对交易进行执行和存储, 分批次将状态证明和新状态完整提交到以太坊主网上的智能合约中.
图片 zk 如何证明自己的执行不是错误的?
Prover (大多数情况下就是 sequencer) 会对交易的执行生成无法伪造的证明, 证明这些新的状态和执行是正确的. Sequencer 会把证明等数据压缩后提交到以太坊主网中的智能合约进行验证. 它们如何压缩数据, 从而减少 gas fee?
Rollup 可以在每个交易的字节数上进行压缩, 包括 Nonce 和签名等. 对于 zk Rollup 来说, 它可以进一步压缩, 不用将与状态更新无关的数据上链, 因为 zk 证明已经可以证明状态更新的正确性, 而 Optimistic Rollup 却由于需要能够被挑战, 因此没法忽略这部分数据. 它们俩为什么都要完整状态?
因为为了防止 sequencer 跑路, 我们可以通过以太坊上的数据来重建整个 Layer2. 这就是数据可用性的概念. d) 两种 Rollup 的区别
如果实在还是理解不了, 可以查看下面的图解.
图片 Optimistic Rollup 的设计更像是 Arweave, 通过经济学和博弈来设计机制, 性能好但其实无法保证 100% 的正确.
zk Rollup 的设计则更像是 Filecoin, 通过密码学和数学来设计机制, 可以保证 100% 的正确但永远会有额外的计算和时间开销.
它们的区别就是一个用了挑战期来保证发生错误可以被纠正, 一个用了密码学来保证错误不可能发生.
我们在后文会通过两者的终局表现来详细对比它们.
- Rollup 很优秀 首先我们来盘点一下 Rollup 网络整体的优秀之处:
生态: Arbitrum 跑出了 NFT 和元宇宙生态; Optimism 发了币, 有了治理和社区; StarkNet 酝酿着各种 GameFi 的创新; zkSync 有不少 DeFi 的新项目. 每个 Rollup 单拿出来都自成一派. 扩容: TPS 确实优异, 虽然没有理论峰值那么高, 但是 L2 的快速确认提供了一个快速且便宜的 Web3 体验. 体验: 对开发者和用户来说, 切换到 Rollup 上都是一件简单的事, 且体验与以太坊几乎无异. 各种跨链桥, 钱包, Uniswap 等基础设施也为用户的流畅体验服务. 这个也是良好的生态所撑起的. 创新: Rollup 已然是以太坊应用创新的优秀土壤, 同时也比 Polygon 的 “大型测试网” 式网络更加具有想象力. 除此之外, 如果对子网与 Rollup 的对比感兴趣的话, 可以参考我们之前的研究, 以及 Toghrui 的观点.
图片 更细化地来说, 各大 Optimistic Rollup 和 zk Rollup 分别给出了如下的表现:
Arbitrum: TVL 在 24 亿美元左右. Nitro 升级已经上线测试网, 之后会用 WASM-Geth 替代掉 Arbitrum 现有的 VM, 优化性能和适配性. (之后的文章我们可以详细聊聊 WASM 的各种潜力) Optimism: 发币了, 在此基础上做出了很多 “开创性且无比 Optimistic 的实验” (出各种岔子, 隐瞒着事实且无动于衷, 最近经常被失望的用户质疑为是 “以太坊基金会的废太子”). Bedrock 升级会让 VM 变成 MIPS-Geth, 做到 EVM 等同性. Optimism 的开发人员也一直在说 zkMIPS 的概念, 不知道他们会不会在之后往这个方向努力呢? StarkNet: 目前跨链桥还没完全开放. 特制语言 Cairo 和 StarkNet 开发生态打造得不错, 游戏生态值得关注. StarkEx 的 Validium 模式也做出了 dYdX, ImmutableX 等应用. 而且 StarkNet 自己也可以做结算层, 搭建 L3. zkSync: 最早地做出了比较完善的 zkEVM. 2.0 版本的 Volition 模式可以让用户灵活选择 zkPorter 或以太坊的数据可用性方案. Aztec: UTXO 模型的隐私 zk Rollup, 即将支持隐私 DeFi 生态 (但由于交易数据大小过大, 目前还需要额外优化). 尽管不支持通用计算, 但是是为数不多真正 zk 的 zk Rollup. Fuel: V1 是一个 Optimistic Rollup, 而且非常去中心化. V2 不走寻常路, 没有去适配 EVM, 而是通过一个 UTXO 模型的高性能 VM 来支持并行 tx 处理, 致力于打造最快的执行层. 除了以以太坊为主网的 Rollup 以外, 还有这些:
everPay: Arweave 上基于 SCP 范式的 Layer2. Milkomeda: Algorand 上的 EVM Rollup. Orbis: Cardano 上的 Validium 模式的 Rollup. Rollup 方案不同的设计有非常多的独到之处, 真正地服务了无数的用户, 带来了更好的 Crypto 与区块链体验.
- Rollup 有待提高 上面一章的表扬后, 我们会在本节指出 Rollup 一些需要解决的问题:
a) 中心化