为什么那么多Layer2解决方案没人用?

  • 2021-1-5 20:12
  • 3971
  • 区块链,数字货币,以太坊

链上扩容并不是一个「新」问题。

早在 2017 年,以太坊和比特币拥堵、无法满足用户需求的弊病就已经显现了,从那时起,陆续有开发团队提出相应的解决方案,只是随后而至的熊市降低了人们的交易热情,这类方案也就淡出了投资者的视野。

 

直到今年 5 月份,随着流动性挖矿及 Uniswap 的火爆,人们再次发现:Gas price 一路飙升到 500 Gwei,未确定交易数达 14 万余笔。有人调侃,以太坊的性能都不足以提供一个 DeFi 项目的正常使用。也因此,链上扩容的问题又重新成为了热议的话题。

 

谈到扩容,就不得不提到区块链的不可能三角问题。对一条公链来说,安全性、去中心化程度、可扩容性三者不可兼得。理论上,为确保去中心化程度及安全性,链上的每一条信息都需要通过所有节点的认证才能达成共识,这意味着一条链的吞吐量就等于一个节点的吞吐量。

 

人们尝试从多个角度来解决扩容问题。最直接的方式就是从不同维度「修改」这条链:小到调整区块大小、尝试不同共识算法,大到改变链的组成及数据传输结构——每种改变都会不同程度地妥协系统的去中心化程度和安全性。利用分片技术是一种新的尝试:让每一分片处理各自片中产生的交易。想法很美好,但目前分片技术在区块链上的应用还不成熟,诸多问题尚未被解决,尤其是跨片通信与互操作性。

 

链下扩容算是唯一还算成熟的技术。这一方案的主要逻辑是将一层主链负担减到最低,二层完成应用逻辑。能够实现这一方案的原因是并非所有的交易都需要达成全局共识,并非每一笔交易都需要改变全局状态,一层公链只需要负责保证公共可验证性就已足够。

 

以太坊的 Layer 2 项目已经非常丰富,但以太坊依然会堵,为什么 Layer 2 的应用很少有人用呢?

 

Layer 2 的生态发展

即便不曾体验过 Layer 2 带来的便捷,很多人或多或少都听说过 Layer 2 项目或者代币。从技术架构来说,Layer 2 方案百花齐放,比如适合大规模转账的 zkRollup,Optimsm,Optimistic Rollup,Hybrid Rollup 和状态通道网络,以及一些还在坚持 Plasma 的项目。

 

DeFi 热潮兴起后,随着以太坊拥堵问题再次显现,开发者对 Layer 2 的关注也在不断的增强。

 

不光是开发者关注,更重要的是,不同公链也在布局自己的 Layer 2 扩容生态,包括 Polkadot,Oasis Labs,Nervos 等等。那么,在如此众多的方案中,这些项目面对的最大技术难题又是什么?

 

不同的路径中间,摆放着各式不同的路障。在与一线开发者的讨论中,目前状态通道网络其实已经没有什么尚未突破的难点了,它基本上已经是一项能进入生产环境使用的技术。

 

但或许很多人都很疑惑:为什么即便已经有那么多的 Layer 2 解决方案,为什么这次 DeFi 热潮的冲击下,以太坊网络还是会如此拥堵?

 

一是开发者问题,「对大多数开发者们来说,他们希望在不改变原有代码的情况下将应用迁移至 Layer 2。因为对代码进行任何改动会涉及到可观的审计及维护费用。但如果 Layer 2 项目方能够让应用开发者们简单的完成迁移,这将在一定程度上促进开发者迁移的意愿。」

 

其次是用户端的问题。「对用户来说,选择使用以太坊主链,还是 Layer 2 应用是一件非常棘手的问题。用户需要明白使用两者的利弊,或者说,Layer 2 项目方能直接让用户实现无感地与 Layer 2 进行交互。在没有合理的激励措施下,将资产在一层与二层间转移对于用户来说是极具挑战性的。

 

进出 Layer 2 的过程往往比较复杂,这个对于技术和用户都是门槛,同时对于生态更是门槛。Layer 1 的基础设施(Infura,浏览器,轻客户端,交易所支持等等)已经比较完善,而在应用迁移到 Layer 2 的过程中,还需要有相应配套的基础设施,更需要一点时间。

 

DeFi 项目适合部署在 Layer 2 上吗?

DeFi 应用中的多频、复杂交互是导致本次以太坊拥挤的本质原因,那么 DeFi 应用是否适合部署在 Layer 2 上呢?

 

理论上来说非常适合,Layer 2 可以极大地降低交易成本。但这里面的核心难题还是之前提到的两点:生态支持和时间的检验。

 

目前,DeFi 繁荣的生态是非常依赖应用的组合性的,单木不成林。这种组合性其实在一些基础性协议,比如 Maker、Uniswap 的长期运行和检验后迎来的综合性爆发。从开发者的角度看,最适合 Layer 2 的,可能是那些类似于 dYdX、Loopring DEX 等这种相对来说不依赖组合性的 DApp,然后慢慢再聚沙成塔的一个过程。

 

除了内生生态,外部生态的环境也很重要。如果没有交易平台的支持:你挖了基于 Layer 2 的红薯,如果还要等很长时间才能转回到 Layer 1,之后发送到交易平台再完成交易的话,可能市场价格早就变了。

 

此外,虽然理论上这中间不存在安全性问题,但实际上,无论是工程化,还是生产级的产品质量,都需要时间的检验和信心的积累。

 

据了解,近期已经有部分 DeFi 项目迁移至了 Matic,包括 dYdX 也迁移至了基于零知识证明的 Layer 2 解决方案 StarkWare。

 

如何给 DeFi 选择 Layer 2 方案?

zk Rollup 的特点是二层区块的交易数据(calldata)和零知识证明上链之后,交易有效性就能立刻确认。而由于零知识证明的特性,正确性验证是很简单的操作,可以直接在 Layer 1 完成验证,确认及时性比较高,适合转账

 

当然,这个方案也有缺点。「首先验证链路的构造没有一个通用的解决方案,所以目前没有很好的办法做到很广义的虚拟机逻辑。简单来说,zk Rollup 必须对每一个用例定制;其次是程序正确性的验证相对复杂,要对多项式 curcuit 做验证;最后是二层打包节点负担重,成本高,计算零知识证明所需时间长,用户延迟的体验角度仍然比较差。

 

而 Optimistic Rollup 主要的缺点是它本身的交易延迟有点高。这个延迟甚至比 Layer 1 还要高,但它的优点是可以支持无限参与者的任意智能合约逻辑。一次可以打包很多,在董沫博士看来,「交易排序和打包机制没有很好的解决办法,只是需要比较复杂的矿工剩余价值拍卖(MEV auction)的机制来选择打包节点,且容易出现 censorship 的问题。」

 

当然,不是所有的交互都有那么高的安全性要求,只有涉及到交易时的操作安全性要求会比较高,但很多应用的数据交互并不需要那么高的安全性要求。因此,我们大概可以这么考虑:很多对安全性要求不高的操作可用侧链来确认,与此同时,还可以在同一条侧链上组合多个 Rollup 来达到应用层类分片的效果,提高可组合性。即使确认出现了问题,还是可以通过最终的主链确认,进行事后的纠错。

 

对于去中心化交易所以及各类支付平台,应用中需要进行大规模转账,zk Rollup 将会是合适的解决方案。应用 zk Rollup 的去中心化交易所 Loopring 就是一个很好的例子,另外近期 Tether 也在考虑将 ERC-20 的 USDT 迁移至 zk Rollup 的 Layer 2 上。
若应用内需要执行复杂的合约逻辑,且对吞吐量要求较高,那么 Optimistic Rollup 或者 Hybrid Rollup 的机制与此类应用比较契合。合成资产平台 Synthetix 尝试使用 Optimistic Rollup 来大幅提升预言机报价频率,以此解决在一层网络会遇到的交易暂时停滞问题。
在 Rollup 解决方案中,Hybrid Rollup 尽量优化降低了延迟,提高用户体验,但对于安全性做了一定的妥协。因此许多底层 Layer 1 项目,像以太坊、波卡、Near、Conflux,都选择了使用 Celer的状态通道作为他们的二层扩容解决方案。

 

在以太坊 2.0 到来之前,如果计算复杂、用户热度高的应用能够选择迁移至二层网络,以太坊网络拥挤问题可以得到一定程度缓解。

只是目前来看,短时间内要想大规模用上部署在 Layer 2 的 DeFi 项目,仍有待时日。

点赞