# Rollup

Rollup 是 [Layer2](https://support.token.im/hc/zh-cn/articles/4414704940569) 方案之一，也叫卷叠，通过将以太坊主网（即 Layer1）上交易的计算和存储转移至 Layer2 处理并压缩，再将压缩后的数据上传至以太坊主网以拓展以太坊性能。

按照确保压缩数据的有效性（即数据正确）的不同方案，Rollup 又可分为 ZK Rollup 和 Optimistic Rollup。

* ZK Rollup 是一种采用零知识证明的 Rollup 方案，ZK 是 zero knowledge（零知识）的缩写。和其他 Rollup 的不同之处在于，ZK Rollup 采用 zkSNARK 算法（一种零知识证明算法）来压缩数据和确保安全性。\
  \
  采用 ZK Rollup 方案的项目有：[zkSync](https://support.token.im/hc/zh-cn/articles/4405480116889-%E4%B8%80%E6%96%87%E4%BA%86%E8%A7%A3-Layer2-%E6%89%A9%E5%AE%B9%E6%96%B9%E6%A1%88-zkSync-) 等
* Optimistic Rollup 字面理解是乐观主义的 Rollup，它乐观地默认被同步到 Layer1 上的数据是正确的，如果谁认为被同步的数据不正确（即存在欺诈行为），可在挑战期发出挑战。因此这种证明方式也叫欺诈性证明，以此保证最后同步到 Layer1 的数据是有效的。



## 总结分析

通过 Ordinals，比特币可以存储各种数据，成为一个高度安全的数据库。将 Rollup 的证明数据上传到 BTC 网络中，的确能保证其无法被篡改，但这不能确保 Rollup 内部交易的有效性和正确性。

BTC Rollup 核心问题在于验证。

大多数 BTC Rollup 可能会选择主权 rollup (客户端验证) 的方式，验证者在链下同步 Rollup 的全部数据，并自行检查。

但这也无法利用比特币最强的能力，即数十万个节点的的 POW 共识，来担保 rollup 的安全。最理想的状态，当然是让 BTC 网络能去主动验证 Rollup 的证明，像 ETH 一样，并拒绝掉无效的区块数据。

同时，也要确保 Rollup 中的资产可以在最极端的情况下，去信任的提取到 BTC 网络中，即使是 Rollup 的节点/排序器一直宕机或拒绝接受交易，仍然可以通过安全逃生通道取出。

这对于没有智能合约，只有脚本执行的 BTC 来说，也许能利用 MAST 的能力将脚本组合为逻辑电路，实现可验证，虽然难度较高，但属于 BTC 最原生的思路。
