楠木轩

以太坊Layer 2 扩容之争,四大方案优劣势对比

由 司空梓瑶 发布于 科技

随着以太坊网络的持续拥堵,众多layer 2解决方案在近期扎堆上线,以争取市场份额,对此以太坊联合创始人Vitalik Buterin于近日转发了一条推文,并评论称:

此后,他还提到称:

因此,如果钱包检测到运营商离线,它会提取你的币并无缝切换为链上钱包。特别是ZK rollup理论上可以允许在几分钟内撤回,即使是在运营商不合作的情况下。

对于上面的评论,没有了解过以太坊生态的读者,可能会对rollup、plasma、ZK rollup这些专业名词感到陌生,总的来说,这些方案都属于layer 2解决方案(ZK rollup有点特殊,但也可以认为是layer 2),目的是解决以太坊网络的扩容问题,根据ethgasstation网站的数据统计显示,当前占以太坊网络使用量最大的交易源自Tether的USDT稳定币,其次则是一个庞氏骗局项目。而目前稳定币的活动正处于高速增长的阶段,因此以太坊网络的拥堵情况,急需要通过layer 2网络为主链分担交易。

OMG网络先声夺人,Vitalik向Tether CTO推荐rollup解决方案

比如OMG网络(原OmiseGO)先是宣布 V1版本上线以太坊主网,随后公布了和Bitfinex及Tether的合作计划,后者将支持使用OMG网络进行USDT的转账,以减少确认时间和手续费。

而OMG网络使用的方案,正是上面提到的plasma方案,这是由Vitalik和闪电网络作者Joseph Poon在2017年首次提出的一种以太坊layer 2扩容方案。但实际上,plasma解决方案存在着较大的缺陷,相关的团队(例如Plasma Group)也已从该解决方案中撤离,唯独OMG网络在坚持开发这种方案。

因此,在看到Tether决定采用OMG网络后,Vitalik忍不住向Tether CTO推荐起了rollup家族的解决方案。

所谓rollup解决方案,是去年开始兴起的一类layer 2扩容方案,目前主要分为了ZK Rollup和Optimistic rollup这两个分支,而它们也是目前最有希望的以太坊layer 2扩容方案。

StarkWare并非采用ZK Rollup,方案重命名为validium

当然,这里Vitalik所提到的StarkWare,实际上它并没有采用ZK Rollup解决方案(尽管其此前一直自称是用ZK Rollup),在Vitalik的追问下,StarkWare成员Avihu Levy解释了他们的设计:

而这样的设计,显然并不属于rollup解决方案,但它与Plasma又有不同,对此,StarkWare联合创始人Eli Ben-Sasson便建议将他们的方案命名为validium,以和ZK Rollup、Optimistic Rollup及Plasma方案进行区分。

好了,摆在我们面前的以太坊layer 2 解决方案,一下从2个变成了4个,对于有选择困难症的用户而言,这显然不是什么好事,那它们到底有何不同呢?下面我们来简单分析并对比下:

首先rollup方案和Plasma方案的最大不同,在于前者将交易的数据放到链上,而Plasma只是把链外的数据在以太坊链上进行一个公证,这会引发一个数据可用性的问题,这使得Plasma的用户体验很糟,也没有办法真正做到无需信任。

而rollup方案的两个分支,ZK Rollup和Optimistic rollup,它们的区别主要是前者使用了零知识证明,后者使用了欺诈证明,在表现上,ZK Rollup(这里主要指zkSNARK)对通用型智能合约的支持较差,因此短期只适合代币的转移和原子互换,这也是它非常适合去中心化交易所(DEX)的原因,而Optimistic rollup则支持任意智能合约逻辑的实现,因此非常适合复杂的defi应用。

而在可扩展性方面,ZK Rollup表现则要优于Optimistic rollup,前者理论上最高可达到Visa的2000 tps级别。

而关于安全性,Optimistic Rollup 模型基于两个假设:

ZK Rollup 模型则基于:

而在延迟方面,根据Loopring CTO Steve Guo的说法,ZK Rollup是要远远优于Optimistic Rollup的,zk Rollup只要证明递交上链就意味着交易已最终结算,但Optimistic Rollup则需要等待一段很长的挑战期(至少以天为单位),依赖于欺诈证明来保证最终结算性。

总的来说,ZK Rollup和Optimistic Rollup方案各有自己的权衡,如果单从简单的ERC-20代币(例如USDT)传输交易来看,zk Rollup方案明显要更胜一筹。

最后说说StarkWare所采用的validium,简单说,它是关掉了链上数据的可用性,而依赖于链外数据可用性解决方案(需要信任),好处是可以实现更好的可扩展性,根据Loopring的说法,这样的选择可以将理论tps扩展到1万以上。

也就是说,从安全性、可扩展性和无需信任的综合角度来看,zk rollup方案是目前最优的。

而单从可扩展性的角度来看,validium可能会有一些优势,这或许是瞄准社交应用而准备的(例如StarkWare自己提到的Reddit社区积分)。

通过上面的简单分析,你会选择哪种Layer 2解决方案呢?