区块链去中心化的特性,使得存储和计算性能受限,需要进行扩容(Scaling)
扩容可以分为
On-chain,Layer1。对区块链本身的性能提升
共识。中心化换性能。Avalanche、Solana。
Sharding。分库分表、并行计算。ETH2.0、Near。
Off-chain,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提走
将无效的状态同步到主链,并提币
DA, 所有节点跑路后的问题 , 所有的钱被锁在主链的合约里
如果保证Layer2 state 的持久化,存去中心化的layer1 里 还是存中心化的layer2 里?
举例:StarkEx为State的存储方式提供多种选择
https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb
Data On-Chain : Data 在layer1 上
Data Off-Chain: Data 在layer2 上
Valition:数据具体在哪个链上,由用户自己选择
原理: 链下交易,链上结算
DA & SV
DA:数据存在Layer2,由Channel双方保证DA
SV:
Channel结束后提交Final State到Layer1,Layer1不验证,但要求提交者质押
允许一周内提交Fraud Proof,Fraud Proof可验证(比如签名了更新的State),通过则扣除质押
项目: 闪电网络
分析:
安全: Fraud Proof 非常安全,但就是提币慢
性能: TPS 一般, 就是两个人之间转账
兼容: 智能合约比较难, 就是两人质检的转账操作,不是一条链
是一条完整的链, 和主链之间有一个桥
原理:Two-way-pegged Cross-chain Bridge,主链质押Token,侧链生成Wrapped Token。主链Lock侧链Mint,侧链Burn主链Withdraw。
DA & SV
DA:数据存在Sidechain,由侧链的Validators保证DA, sideChain 本身有自己的安全机制
SV(多种方案安全性由强到弱)
Light Client Bridge(例如Near的Rainbow Bridge),trustless:任何人可以将侧链的State Root同步到主链,主链合约实现侧链的轻客户端,验证State Root (整个树的树根),保证SV
反过来也一样,如Solana 的彩虹桥Rainbow Bridge也会实现主链(ETH)的轻客户端,将ETH的header同步到Solana, Solana的智能合约会验证eth header的正确性,侧链会同步主链的状态
验证也很麻烦
Plasma Bridge(例如Polygon的)trustless:侧链Validators定期将State Root同步到主链, 主链并不会像 Light client bridge 那样验证, 需要人提交质疑,主链通过Fraud Proof保证SV
如何验证 需要写复杂的代码,很麻烦
Multi-signature Bridge(大多数)trusted: 桥的Validators定期将State Root或Burn Event同步到主链,主链检查多签保证SV
比如,avalanche的桥, 就是由几十个人来多签,通常是项目方开发者,或大持币者 , 大部分桥都是多签
多签比较简单
项目:
所有架设了wo-way-pegged Cross-chain Bridge的链, 都可以理解为eth的侧链, 通过wraped-token扩容主链
分析
兼容: 一条单独的链, 可完美支持智能合约
性能: tps 高 不同的链 有自己的tps方案
安全:根据桥不一样,安全性不一样
Light client bridge 虽然安全,但开发难度大, 很多链不支持Light Client,比如eth2.0 后,共识算法换掉,不再支持light client?
https://notes.ethereum.org/@vbuterin/HF1_proposal
ii. Plasma bridge ,虽然安全,但是提币慢 ,
iii. Multi-sign 的安全性低,必须要信任一些人, 跟PoA共识一样, 实现简单,充币提币快
之前的State channel 和 Sidechain ,都是有layer2 来存储数据,保证数据的DA, State channel 的数据在channel 里, sideChain 的数据在Chain 上 ,不会把数据传到layer1 上 , 只会把状态传到layer1 上, 都非常难以应对节点跑路的问题,如果维护者全跑了,数据全删掉后,所有的资金都会被所在主链的合约里(锁在桥上),在DA上不安全
原理 & DA & SV
DA
Rollup: layer2的数据压缩后存到layer1 上, 由layer1 保证DA
压缩Address, 用序号表示,而不是长地址
压缩value, 用科学计数法表示
zk Rollup 省去签名,Optimistic Rollup不省签名(签名也比较占存储) ,zk 比 opt 压缩的更多, zk不需要签名, 直接用zk proof 证明交易的有效性
Validium 变体: 数据不上传到Layer1,还是由多个Validators 托管,(在Da上类似 sidechain, 但由于是从Rollup衍生出来的,所以会拿来和rollup 比较,其SV 就是rollup的方案)
Volition & zkPorter : 由用户自由选择数据是链上还是链下, 不同项目叫法不一样,在StarkWare 叫Volition, 在zkSync 叫zkPorter
有两类地址, 可供用户选择
https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf
SV
ZK Rollup:定期同步State Root及其Validity Proof(ZK证明)到Layer1,Layer1用合约验证Proof保证SV
Optimistic Rollup:定期同步State Root到Layer1,Layer1通过Fraud Proof保证SV , 提币慢
ZK少签名,数据量更小;ZK提币快;ZK暂时EVM兼容性不好,但在开发中。所以ZK是长期的更优方案。
分析:
安全: da & sv 都有layer1 保证,非常安全 ; validium安全性稍低
性能: 一般,数据压缩上传至Layer1任消耗gas, 而且存储的空间受layer1的限制
兼容
Optimistic Rollup: 可较好兼容evm,提币慢
ZK Rollup : zkEVM 需要开发, StarkWare 有zk友好的合约编程语言Cairo; 提币快
侧链是性能和兼容性最好的。虽然桥的安全性依赖于PoA,但是Validator通常大量持币,从经济角度保证了安全性。
Rollup因为其安全性高,成为了后起之秀。性能和兼容性尚可,需要继续开发以进一步优化。
zkSync的zkEVM(兼容)
Ethereum社区的zkEVM(兼容),V神主导的Sharding+Rollup(性能)
StarkWare的Cairo(兼容)、StarkNet(性能)
市场对扩容抱有很大的期待,可以预期还将继续诞生新的方案和项目,已有的项目会因为落地而迎来市场(比如开发中的这些)。
