起因
以太坊上交易越来越多,运行负担变重,tps不能承受日益增长的用户需求,急需提升性能
于是采用模块化方式,给以太坊减负,以太坊叫做layer1,把layer1的工作分配到其他模块。这些其他模块就叫做layer2。
具体分工为:
- layer2负责执行交易(execution part)
- layer1负责安全和存储交易
Rollup
layer2执行交易,定期把(执行过的交易+结果+合法性证明)打包给layer1。这个过程叫做Rollup, Rollup的中文意思就是归纳汇总。
Rollup过程达到以下效果:
- layer2从layer1同步状态,确保自身的安全性
- layer1接收layer2的交易,增长账本数据
具体方案
以太坊上可以有多个layer2模块, 目前比较出名的项目方有:
- Arbitrum, Optimism, zkSync. starkNet, Metis等
这些项目可以归纳为两大类Rollup:
- Optimistic Rollups(Arbitrum, Optimism, Metis)
- ZK-Rollups(zkSync, starkNet)
基本设计是:
- 在以太坊上部署智能合约,负责rollup的处理逻辑
- layer2项目方处理交易,然后把处理结果发送给以太坊上对应的智能合约,由合约来上链数据
Optimistic Rollups
执行结果从layer2打包到layer1的时候,layer1不质疑rollup的正确性,也就是layer1保持乐观(Optimisitic),直接信任结果。而是由第三方来质疑rollup的正确性。
- layer2执行结果,提交到layer1,同时抵押代币,如果layer2作恶,代币会被扣除
- layer1收录结果,等待第三方challenge
- 第三方challenge执行结果,提交证据,扣除layer2代币。第三方也需要抵押代币,如果第三方质疑无效,则扣除第三方代币
Optimistic Rollups总结:
- Optimistic Rollup依赖经济模型,只要有一个诚实的第三方,layer2的执行结果就是可信的
- 需要等待第三方challenge,因此执行结果不能立即上链,需要等待一定的时长
ZK-Rollups
执行结果从layer2打包到layer1的时候,layer1质疑rollup的正确性,这是和Optimistic Rollups最大的不同。需要layer2提交零知识证明(ZK),证明rollup的合法性
- layer2执行结果,提交到layer1,同时提交zk
- layer1验证zk,通过则数据上链
ZK-Rollups总结
- zk-rollups是纯科学,不依赖经济模型,执行结果立即上链
- 过于硬核,当前无成熟方案
- 计算zk对计算机算力要求很高,一般节点无法做到
其他
layer2是以太坊扩容的方案,还有其他方案,比如侧链。侧链现在polygon比较有名
侧链和layer2不同点在于,layer2是运行在以太坊之上的,安全性靠以太坊保障。
而侧链是独立的一条链,可以是各种共识,比如pos, dpos,pow等,安全性完全是由自己保障。
侧链和以太坊交互之间一般是通过锁定币的方式,即在以太坊上锁定xx代币,然后在侧链上执行sxx代币的逻辑,执行完成后,再回到以太坊,解锁xx代币
发表回复