# Layer2  方案

By [muranSquat](https://paragraph.com/@muransquat) · 2022-09-16

---

为什么
===

1.  区块链去中心化的特性，使得存储和计算性能受限，需要进行扩容（Scaling）
    

分类
==

1.  扩容可以分为
    
    1.  On-chain，Layer1。对区块链本身的性能提升
        
        1.  共识。中心化换性能。Avalanche、Solana。
            
        2.  Sharding。分库分表、并行计算。ETH2.0、Near。
            
    2.  Off-chain，Layer2。链下计算，结果上链；离线批处理。
        

Layer2 扩容方法
-----------

典型区别点： data availability (DA) & State Validity (SV)

所有Layer2 扩容方案都在这两个方面有所不同

*   SV，Layer2 维护者作恶问题
    
    *   如何保证Layer2 State的正确：ZK Proof？Fraud Proof？PoA多签？Light Cilent？
        
    *   防止Layer2的无效的状态回传到主链
        
        举例：[Solana Wormhole Bridge漏洞，导致Solana上whETH被凭空增发，最终将Ethereum上质押的ETH提走](https://news.huoxing24.com/20220204112203716173.html)
        
        将无效的状态同步到主链，并提币
        
*   DA， 所有节点跑路后的问题 ， 所有的钱被锁在主链的合约里
    
    *   如果保证Layer2 state 的持久化，存去中心化的layer1 里 还是存中心化的layer2 里？
        
    *   举例：StarkEx为State的存储方式提供多种选择
        

Untitled

[https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb](https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb)

Data On-Chain : Data 在layer1 上

Data Off-Chain: Data 在layer2 上

Valition：数据具体在哪个链上，由用户自己选择

State channel
-------------

1.  原理： 链下交易，链上结算
    
2.  DA & SV
    
    1.  DA：数据存在Layer2，由Channel双方保证DA
        
    2.  SV：
        
        1.  Channel结束后提交Final State到Layer1，Layer1不验证，但要求提交者质押
            
        2.  允许一周内提交**Fraud Proof**，Fraud Proof可验证（比如签名了更新的State），通过则扣除质押
            
3.  项目： 闪电网络
    
4.  分析：
    
    1.  安全： Fraud Proof 非常安全，但就是提币慢
        
    2.  性能： TPS 一般， 就是两个人之间转账
        
    3.  兼容： 智能合约比较难， 就是两人质检的转账操作，不是一条链
        

SideChain
---------

是一条完整的链， 和主链之间有一个桥

Untitled

1.  原理：Two-way-pegged Cross-chain Bridge，主链质押Token，侧链生成Wrapped Token。主链Lock侧链Mint，侧链Burn主链Withdraw。
    
2.  DA & SV
    
    1.  DA：数据存在Sidechain，由侧链的Validators保证DA， sideChain 本身有自己的安全机制
        
    2.  SV（多种方案安全性由强到弱）
        
        1.  **Light Client Bridge**（例如Near的Rainbow Bridge），trustless：任何人可以将侧链的State Root同步到主链，主链合约实现侧链的轻客户端，验证State Root （整个树的树根），保证SV
            
            反过来也一样，如Solana 的彩虹桥Rainbow Bridge也会实现主链（ETH）的轻客户端，将ETH的header同步到Solana， Solana的智能合约会验证eth header的正确性，侧链会同步主链的状态
            
            验证也很麻烦
            
        2.  **Plasma Bridge**（例如Polygon的）trustless：侧链Validators定期将State Root同步到主链， 主链并不会像 Light client bridge 那样验证， 需要人提交质疑，主链通过Fraud Proof保证SV
            
            如何验证 需要写复杂的代码，很麻烦
            
        3.  **Multi-signature Bridge**（大多数）trusted： 桥的Validators定期将State Root或Burn Event同步到主链，主链检查多签保证SV
            
            比如，avalanche的桥， 就是由几十个人来多签，通常是项目方开发者，或大持币者 ， 大部分桥都是多签
            
            多签比较简单
            
3.  项目：
    
    所有架设了wo-way-pegged Cross-chain Bridge的链， 都可以理解为eth的侧链， 通过wraped-token扩容主链
    
4.  分析
    
    1.  兼容： 一条单独的链， 可完美支持智能合约
        
    2.  性能： tps 高 不同的链 有自己的tps方案
        
    3.  安全：根据桥不一样，安全性不一样
        
        1.  Light client bridge 虽然安全，但开发难度大， 很多链不支持Light Client，比如eth2.0 后，共识算法换掉，不再支持light client？
            
            [https://notes.ethereum.org/@vbuterin/HF1\_proposal](https://notes.ethereum.org/@vbuterin/HF1_proposal)
            
            ii. Plasma bridge ，虽然安全，但是提币慢 ,
            
            iii. Multi-sign 的安全性低，必须要信任一些人， 跟PoA共识一样， 实现简单，充币提币快
            

Rollup 及相关变体
------------

之前的State channel 和 Sidechain ，都是有layer2 来存储数据，保证数据的DA， State channel 的数据在channel 里， sideChain 的数据在Chain 上 ，不会把数据传到layer1 上 ， 只会把状态传到layer1 上， 都非常难以应对节点跑路的问题，如果维护者全跑了，数据全删掉后，所有的资金都会被所在主链的合约里（锁在桥上），在DA上不安全

1.  原理 & DA & SV
    
    1.  DA
        
        1.  Rollup: layer2的数据压缩后存到layer1 上， 由layer1 保证DA
            
            1.  压缩Address， 用序号表示，而不是长地址
                
            2.  压缩value， 用科学计数法表示
                
            3.  zk Rollup 省去签名，Optimistic Rollup不省签名（签名也比较占存储） ，zk 比 opt 压缩的更多, zk不需要签名， 直接用zk proof 证明交易的有效性
                
        2.  Validium 变体： 数据不上传到Layer1，还是由多个Validators 托管，（在Da上类似 sidechain， 但由于是从Rollup衍生出来的，所以会拿来和rollup 比较，其SV 就是rollup的方案）
            
        3.  Volition & zkPorter ： 由用户自由选择数据是链上还是链下， 不同项目叫法不一样，在StarkWare 叫Volition， 在zkSync 叫zkPorter
            
            有两类地址， 可供用户选择
            
        
        [https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf)
        
    2.  SV
        
        1.  **ZK Rollup**：定期同步State Root及其Validity Proof（ZK证明）到Layer1，Layer1用合约验证Proof保证SV
            
        2.  **Optimistic Rollup**：定期同步State Root到Layer1，Layer1通过Fraud Proof保证SV ， 提币慢
            
        3.  ZK少签名，数据量更小；ZK提币快；ZK暂时EVM兼容性不好，但在开发中。所以ZK是长期的更优方案。
            
2.  项目： [https://l2beats.com/](https://l2beats.com/)
    
3.  分析：
    
    1.  安全： da & sv 都有layer1 保证，非常安全 ； validium安全性稍低
        
    2.  性能： 一般，数据压缩上传至Layer1任消耗gas， 而且存储的空间受layer1的限制
        
    3.  兼容
        
        1.  Optimistic Rollup： 可较好兼容evm，提币慢
            
        2.  ZK Rollup ： zkEVM 需要开发， StarkWare 有zk友好的合约编程语言Cairo； 提币快
            
    
    分析
    ==
    
    1.  侧链是性能和兼容性最好的。虽然桥的安全性依赖于PoA，但是Validator通常大量持币，从经济角度保证了安全性。
        
    2.  Rollup因为其安全性高，成为了后起之秀。性能和兼容性尚可，需要继续开发以进一步优化。
        
        1.  zkSync的zkEVM（兼容）
            
        2.  Ethereum社区的zkEVM（兼容），V神主导的Sharding+Rollup（性能）
            
        3.  StarkWare的Cairo（兼容）、StarkNet（性能）
            
    3.  市场对扩容抱有很大的期待，可以预期还将继续诞生新的方案和项目，已有的项目会因为落地而迎来市场（比如开发中的这些）。

---

*Originally published on [muranSquat](https://paragraph.com/@muransquat/layer2)*
