# 解析ETH Layer2的发展方向究竟在哪？

By [jiangshan](https://paragraph.com/@jiangshan) · 2021-12-05

---

按照技术原理分类，ETH Layer2可以被分为Plasma、Rollups和Sidechains。这些方案在实现逻辑、安全性、可拓展性和去中心化程度等方面各有优劣。

　　**Plasma**

　　Plasma一开始是由以太坊的核心开发者Vitalik和Joseph在他们的论文《Plasma: Scalabe Autonomous Smart Contracts》之中提出的。

　　Plasma是由智能合约和Merkle树构建的无数子链构成的，它将交易转移至子链上运算与保存，并定期向主链报告状态变更结果来处理争议。

　　它的实现逻辑是由专门的、已抵押押金的验证节点负责运算和记录子链上所有的交易。

　　当用户想要将资产从链下提回链上时，由验证节点将链下的最终状态结果提交至链上，随后进入一段时间的“挑战期”。

　　在“挑战期”内如果有其他节点可以提供“欺诈证明”来证明该验证节点所提交的最终状态结果并非是最新的。那么主链将不会接受原验证节点所提交的状态，并将部分押金转给提出异议的节点。

　　在这一模式下，理论上可以产生无数条子链，**能够将ETH网络的TPS提升到新的数量级。**

　　用户也可以在子链上享受更快的交易确认速度和极低的gas fee，极大地拓展了以太坊区块链网络的性能。

　　Plasma确实是一个解决可拓展性的方案，但它的安全性却存在着较大的风险。

　　在Plasma中，由于子链上的具体交易内容是由个别的验证节点记录在链下的，交易的原始数据对于其他节点不具备可得性。

　　如果原先所有的验证节点同时怠机，存在子链上的资金就将无法提回至主链。受限于此，Plasma方案在ETH Layer2中的应用不如其他方案。

　　**Rollups**

　　Rollups可以被译为汇总交易，\*\*它是Plasma在可拓展性上做出部分牺牲的折中方案，\*\*也是目前ETH Layer2中被广泛应用的方案。

　　它的实现逻辑与Plasma类似，也是由专门的验证节点负责运算子链上的所有交易。

　　但与Plasma不同的是，Rollups会将所有原始交易记录和最终状态变更结果都存储在主链上。

　　这样一来，即使原先所有的验证节点同时怠机，其他节点也可以利用原始的交易数据来成为新的验证者，帮助用户提取存在子链上的资金。

　　Rollups按照防止验证节点作恶的方式不同，又可分为Optimistic Rollups和ZK-Rollups。

　　Optimistic Rollups中文译为乐观汇总交易，与Plasma一样，采用的是“欺诈证明”。

　　与Plasma不同的是，\*\*它把原始的交易记录也保存在主链上，\*\*如果验证节点提交的状态变更结果与交易记录不符，那么任何人都可以在“挑战期”内提交“欺诈证明”，使得错误的状态变更结果被正确的覆盖并获得验证节点的押金。

　　在“欺诈证明”被提交前，其他节点都会默认验证节点提交的状态变更结果是正确的，所以这类Rollups被称为乐观汇总交易。

　　Optimistic Rollups的优点在于良好的兼容性，可以基本满足复杂智能合约的需求。目前ETH主网上的主流智能合约几乎都可以被部署在基于Optimistic Rollups的Layer2网络上。

　　例如由Off Chain Labs团队开发的Arbitrum，其主网Arbitrum One已经上线了诸如INCH、Uniswap、Sushiswap和Curve等一系列主流DeFi项目。

　　Optimistic Rollups的缺点则在于一些安全隐患和资金转回主链需要等待较长时间。

　　Optimistic Rollups的安全性是由验证节点的押金而非算法担保的，且有可能会受到针对主链的“审查攻击”。

　　即在“挑战期”内，作恶者串通矿工不打包挑战者的申诉，一旦超过“挑战期”，错误的交易将无法被回滚。

　　而且，由于“挑战期”一般被设置为7-14天，这一等待时间无疑是漫长的，对于部分用户来说也是无法接受的。

　　Zk-Rollups，中文译为零知识汇总交易，采用的是 “有效证明”。“有效证明”的实现逻辑是，验证节点除了向主链提交原始的交易记录和状态变更结果外，还会提交一个“零知识证明”。

　　**其他节点仅需要验证该证明就可以确保验证节点提交的状态变更结果和交易记录是匹配的。**

　　验证“零知识证明”要比直接运算每笔交易简单得多，并且“零知识证明”的有效性是由密码学原理保证的，而非验证节点的押金所担保的。

　　Zk-Rollups的优点在于，资金从Layer2网络转回主链时不需要“挑战期”，至多几十分钟即可到账。

　　Zk-Rollups的缺点在于同样存在安全隐患和较差的兼容性。部分零识证明算法，如ZK-SNARK，需要可信的初始设置，即算法中一些与安全相关的随机数是需要初始节点选取的。

　　如果有恶意节点保存了这些初始数据，它就可以利用初始数据生成虚假的证明，从而偷走用户在Layer2的资金。

　　而且目前正式上线的基于Zk-Rollups的Layer2网络\*\*仅支持“转账”和“期货交易”\*\*这类较为简单的智能合约，尚不支持部署更为复杂的DeFi项目。

　　原因就在于，尽管验证“零知识证明”要比具体计算每笔交易简单得多，但生成一个“零知识证明”却要复杂得多。

　　尽管链上其他节点的工作量小了很多，但验证节点在链下的工作量却增大了更多。

　　**Sidechains**

　　Sidechains，中文译为侧链，是兼容以太坊虚拟机的独立区块链，它们采用自己的共识模型和区块参数来有效处理交易。

　　同时也可以实现与ETH主网的互操作性，也就可以将部署在ETH主网的智能合约移植到侧链上，从而实现资金和数据的跨链传输。

　　与Plasma和Rollups都不同，Sidechains自行负责其安全性和共识实现过程，并不需要定期向ETH主网报告最新状态变更结果，也不需要将侧链上的交易记录提交至ETH主网。

　　侧链与ETH主网的交互方式可以被称为“双向挂钩”，当资金从ETH主网转移到侧链上时，会被锁定在ETH主网上，并在侧链上被“铸造”。

　　当资金返回时，侧链上的通证会被“销毁”，从而解锁原先锁定在ETH主网上的通证会被解锁。

　　严格来说，Sidechains并不是以太坊的子链，而是独立运行并与ETH主网并行运行的区块链网络。

　　其优点是允许更多的创新和优化，用户有机会获得更快的交易速度和更低的交易成本；其缺点是安全性将与ETH主网脱钩，以太坊网络的算力无法保障侧链不受到“51%攻击”。

　　**各Layer2方案的特点**

　　严格来说，各种Layer2方案实际上都存在或大或小的安全隐患，并不能达到与ETH主网相同的安全性。

　　总体而言，\*\*Sidechains的安全性最弱。\*\*首先，在区块链网络基础安全层面上，Sidechains明显不如ETH主网。

　　分布式账本的不可篡改性是区块链网络共识的基础，而攻击者篡改侧链账本的成本显著低于篡改以太坊账本。

　　其次，\*\*侧链上的DeFi项目可能存在更多智能合约漏洞。\*\*侧链上流行的DeFi项目多是对ETH主网上项目的模仿，而这些仿盘团队的代码开发能力往往不如原创团队。

　　即使这些项目能通过第三方审计公司的审计，但经审计的项目在后续的迭代版本中发生智能合约风险的情况也时有发生。

　　Rollups的风险在于，智能合约漏洞、抗审查攻击、密码学漏洞和人为交易排序等。

　　首先，用户在Layer2网络中使用的资金实际上储存在主网上的智能合约中，如果智能合约收到恶意代码升级，用户资金就有可能被盗。

　　其次，对于Optimism Rollups，潜在的挑战者未必能够检查验证节点发布的所有状态变更结果。

　　而一旦超过挑战期，即使状态变更结果与交易记录不符，错误的结果也无法回滚，用户资金就有可能受损。

　　再者来说，对于Zero Knowledge Rollups，ZK-SNARKs的初始化信任设置一直被认为具有风险，而ZK-STARKs是较新的和实验性的密码学原理，仍需要时间来证明其安全性。

　　最后，Rollups的交易排序是可被人为控制的。在Arbitrum One中，虽然任何人都可以对验证节点提出挑战，**但如果运营商利用交易排序器抢先用户一步，就能够让验证节点的保证金落入项目方自己的口袋。**

　　ETH Layer2的发展方向应当是在保证安全性的前提下，以尽可能去中心化的方式实现更高的可拓展性。

　　综合三方面来考虑的话，采用ZK-STARKs的Zero Knowledge Rollups是较为均衡些的方案。

　　从安全性方面看，Rollups胜过Sidechains，Zero Knowledge Rollups胜过Optimism Rollups，ZK-STARKs胜过ZK-SNARKs。

　　在去中心化方面，尽管零知识证明的生成是由运营商提供的，但其正确性是由密码学原理保证的，\*\*并不依赖挑战者和验证节点间的博弈，\*\*也就减少了中心化交易排序的环节。

　　在效率上，无需挑战期的设定也能方便用户快捷地提取资金。

　　在兼容性和可拓展性方面，随着技术的成熟，ETH主网上的智能合约基本都能够被移植到Zero Knowledge Rollups Layer2上，而Layer2网络的高交易吞吐量使得可拓展性得到极大提升。

---

*Originally published on [jiangshan](https://paragraph.com/@jiangshan/eth-layer2)*
