都上Layer2了,DeFi 可组合性怎么办?
DeFi可组合性的支离破碎,将难以避免。
对以太坊上的 DeFi 农民来说,种地不仅要关注收成(收益率)如何,还得看汽油 (gas) 费怎样。不过只要在以太坊交易还能获得巨大的经济价值,gas 价格就会居高不下。
对于致力于为以太坊提供扩展方案的团队,交易手续费高昂带给用户的困扰,则是个好消息。以太坊 2.0 姗姗来迟犹抱琵琶半遮面,Layer2 方案则如火如荼,进展不错。
在《DeFi+Layer2已成趋势,Layer2谁更受青睐?有哪些机会?》中,我们对比了多个 Layer2 领域的方案,而每组方案都在安全性、通用性、性能等诸多方面互有长短。这篇文章,我们关注 Layer 2方案的另外一面:对于 DeFi 可组合性的影响。
DeFi 被称为金融乐高,可组合性是 DeFi 最基本的特性。在以太坊网络上,不同 DeFi 应用的聚合和交互非常常见,聚合交易、闪电贷,流动性挖矿,持有 LPtoken(流动性凭证)挖矿,甚至将 NFT 结合 DeFi 平台的玩法,也逐渐出现。这是因为大家都是基于以太坊底层之上,在单个事务之中,可以同时调用多个智能合约。
不过当我们把目光转向 Layer2 的时候,问题会复杂得多,未来随着越来越多的 DeFi 采用了 Layer2 方案,DeFi 的可组合性还能存在吗?
DeFi+Layer2 三种场景
假设有这样两个 DeFi 应用:A 和 B。当 Layer2 方案上场,我们会遇到这几种场景:
- 场景 1:A 应用和 B 应用,都采取了同一种 Layer2 方案;
- 场景 2:A 应用采用了一种 Layer2 方案,而 B 应用采取了另外一种方案;
- 场景 3:A 应用采取了 Layer2 解决方案,而 B 应用仍然是原生的以太坊应用。
场景1:兄弟同框,万事好商量
如果不同的 DeFi 应用,使用了相同的 Layer2 解决方案,问题相对容易一些。不过,前提是所采用的的 Layer2 技术支持不同 DeFi 之间的互操作,并且 Layer2 方案一定要支持智能合约才行,对于 EVM 的兼容性,也要足够强,才足以支持 DeFi 应用之间实现可组合性。
这些标准列下来,就排除了许多的 Layer2 方案了。这也是本文关注的重点:采用同一种 Layer2 方案的 DeFi 应用,如何实现组合性?下面我们会重点了解 OR (Optimistic Rollup) 方案下,对于 DeFi 可组合性的影响,这可能也是最有可能实现二层可组合性的方案了。
场景2:鸡同鸭讲,靠谱的翻译挺重要
笔者视野所限,暂时还没留意到比较好的解决方案,能够解决场景 2 的问题,能够让使用了不同 Layer2 方案的 DeFi 应用,能够用一种优雅可信的方式相互组合,能够互操作。也欢迎读者予以指教。
场景 2 所提到的困难在于,由于不同 Layer2 方案在实现机制上千差万别,而 DeFi 应用与其他应用不同之处在于是重资产类型, 对于资金安全的要求更苛刻。如果由于 Layer2 方案之间彼此不兼容而带来资金安全方面的问题,就失去了 Layer2 方案的意义了。
不过也并非完全没有可能,毕竟就算是 Layer2 方案不同,其底层也都是以以太坊底层为基础。如何构建一种彼此兼容的底层构件,让 Layer2 方案之间的互通性更为普遍,用协议约定的方式,方便不同 Layer2 生态下的 DeFi 之间能够良好兼容,这也是需要持续努力的方向。
场景3:可能用单向通道的方式来解决
在该场景下,A 应用采取了 Layer2 解决方案,而 B 应用仍然是原生的以太坊应用。那么 Layer2 方案对于复杂操作的支持灵活性,就变得很重要。支持简单的转账操作相对容易,而和原生底层的以太坊网络之间进行交互,就要考验到 Layer2 在智能合约支持、转账的完结性确认效率等方面的设计了。
值得提醒的是,在 Layer2 解决方案如何影响 DeFi 应用的可组合性这个问题上,目前实际的探讨、文献和实践案例并不太多,所以本文更多是起到抛砖引玉的作用,难免受到笔者本人认知局限的限制,还请读者批评指正。
以上是 3 种场景的简单介绍,下面我们重点探讨场景 1 的情况,即如果不同的 DeFi 应用采取了同样的 Layer2 方案,可组合性会受到什么影响。在那之前我们要先了解下 Optimistic Rollup 的实现原理。
Optimistic Rollup
实现原理Optimism 发布了测试网,是上周 Layer 2 领域的大新闻。
Layer2 中文名为第二层扩展方案,鉴于以太坊处理能力有限、gas 费高昂的现状,Layer2 的项目近来热度上涨,而在诸多解决方案中,Optimism 公司所开发的 Optimistic Rollup 的方案,得到了包括 Vitalik 、Uniswap、Synthetix 等各方的赞扬或合作。
在 Optimism 测试网发布的同一天,知名合成资产平台 Synthetix 也公布了 Layer2 版本的 demo,采用 Optimism 的 Layer2 解决方案,进行 SNX 的铸造管理。
在许多人看来,OR 的方案优秀可靠,不仅具有以太坊的安全特性,同时不需要发币,OVM (Optimism 所创建的通用虚拟机)还可以完美兼容 EVM(以太坊虚拟机)。如此一来,提供了通用的方案,让诸多以太坊应用可以很方便的迁移升级,用 Layer2 增加应用的扩展性。之前的文章里,我们也对此做了更详细的介绍。
这里先解释下什么是 Rollup ? 简单说来,将多笔交易汇集,然后压缩至一笔交易中发送到以太坊之上,通过这种方式,用第二层网络分担了以太坊的交易压力,从而节省交易费用。
为了确保交易有效,让 Layer2 上的交易也像以太坊上交易一样,具有同样的安全性,不同团队也提出了不同的方案,常见的有 ZK Rollup 和 Optimistic Rollup 方案。前者用零知识证明来确保安全性,后者则参考了 Plasma 的惩罚机制。
OR: 分担以太坊的负荷
在 2020 年 4 月份发布在 banless 的一篇文章中,Daniel Goldman 探讨了 OR 和 DeFi 应用的多个方面。本文中探讨可组合性问题,多数的思考源自这篇文章。
Rollup 的方案中,侧链分担了以太坊网络的交易压力。从用户角度看,可以分为2个部分。
首先用户将资金存入到以太坊上的智能合约中,资金会转入到位于第二层的 rollup 链上。如何确保资金不会被 rollup 的操作者或者用户所挪用? 如何确保用户对于交易并不需要额外增加信任?这就要考验 rollup 链的设计了。
其次如果用户希望将资产返回到 Layer1 的以太坊时,他们需要发起一笔特殊的取款操作。在 OR 的安全模型下,会设计一个宽限期,防备存在欺诈行为。简单说来,用户取回资产到 Layer1 上,需要等待一定时间。有研究者认为大概 3 小时就足够了。通过流动性提供者的存在,可以减少等待时间。
不过,也有不同意见存在。
Matter Labs CEO Alex Gluchowski 看来,OR 并非最好的 DeFi 扩容方案,他更倾向于 ZK Rollup。“Optimistic Rollups 将如何成功地实现其 100% 可组合性的承诺?我们尚不清楚。到目前为止,我们还没发现其中隐藏的陷阱。这项技术并不像看起来那么简单。”
除此之外,Alex 也担心 OR 方案中需要用户等待期过长,尽管可以通过引入流动性提供者来缓解,但是需要以类似于使用订单簿的分散交易的方式,每个订单单独去撮合,快速撤资可能会成为问题。
DeFi
可组合性的挑战
Rollup 技术实现的 Layer2 方案,相当于是创建了一条或者多条的侧链,用技术手段确保侧链上交易也同样有效。
同一条 rollup 链上存在多个 DeFi 的情景
这是 Layer2 中最简单的一种情形:不同交易存在同一条 rollup 链上,处理之后的结果会发送到位于底层的以太坊网络。这样一来,跨链操作通讯的复杂度就消失了,使用不同的 DeFi 进行组合拼装,和在 Layer1 上几乎一致。唯一不同的是,当资产需要向原生账号转换时候,用户需要花费时间等待。这是所有 Layer2 方案都会遇到的情形。
尽管 DeFi 间的可组合性不会受到太多影响,但是问题也存在:如果大量的 DeFi 应用和交易,集中到了同一条 rollup 链上,那么 Layer2 带来的优势会打折扣。尽管 Layer2 方案可以在性能上有所提升,但是随着大量用户的进入到同一条 Layer2 的链上,无论是采用了哪种解决方案,也都会面临这一问题。
不过,这其实并没有什么好担心的。因为未来以太坊 2.0 上线之后,也会出现同样的情形。尽管采用了不同的分片,但是在不同的分片之中,如同都市里的空间错落一样,也会出现金融区,DeFi 将会聚集成群。金融区/金融分片上,相比其他的分片而言,交易量更为集中,费用也会更高。这跟我们在 Layer2 领域未来会见到的情形一致。
由于以太坊的 DeFi 头部效应,未来 DeFi 应用集中在某种 Layer2 生态甚至某条专门链上的情形,并不让人意外。目前 Optimism 公司在创建通用的 OVM, 也跟头部 Uniswap、Synthetix 推进合作,正是这类效应的体现。
不同 rollup 链或者不同 Layer 方案之间
DeFi 在 Layer1 的以太坊上,就像在同一个屋子里的舍友一般,吃吃喝喝打打闹闹,亲密无间。而如果采用了不同的 Layer2 方案,或者采用了同一种方案但在不同的 rollup 链上,那么他们就像是住在同一条街上,不同房子里的邻居一样,活动空间更大,不过彼此交流和协作,也相比之前多了一些阻隔。
不同的操作,复杂度也会有所不同。由于采用了不同 Layer2 方案的 DeFi 相互之间是否能够操作还很难说,所以我们主要看下采用了比如 OR 这种方案的例子。
如果只是简单的转移资产,比如将 DAI 从一个 DeFi 应用转到位于另一条 rollup 链上的 DeFi,并没有什么太困难的。但是如果涉及到复杂的操作,就很难说了。
在 Daniel Goldman 的文章中,举了 PoolTogether 无损失彩票的例子。
用户存入资金到 PoolTegether ,用户存入的资金PoolTogether 会存到 Compound 等 DeFi 平台中赚取利息。隔一段时间平台开一次奖,中奖者能够得到平台在此期间理财所得到的收益,而没有中奖的人,也可以取回本金。整个过程中平台没有抽佣,用户需要支付的也仅仅是发起交易时的手续费而已。
假设 PoolTogether、 Compound 和 Dai 三者位于三条不同的 rollup 链上,PoolTogether 要将 Dai 资产存放到 Compound 上,这个交易就没那么简单了。
有单向的监听:PoolTogether 所在的 rollup 链(Layer2 的一条链),就需要具备访问和“侦听” Compound 所在 rollup 链更新信息的能力。还有更复杂的情况:双向对话。某些情况下,双方都需要知晓对方所在 Layer2 链的情形。
如何实现跨 rollup 链通讯,跟以太坊 2.0 中实现分片的跨区通讯类似,都需要借助于一套系统的架构协议才行,而 Layer2 解决方案是否提供了这种支持,也无法一概而论。
总之当出现了多一条链或者多个解决方案,复杂程度是急速增长的,而复杂度增加的地方,往往是更容易隐藏错误之处,需要谨慎对待。
跨 Layer2 方案进行 DeFi 应用的组合,会是一个棘手的问题。而即便在同一个 Layer2 方案之中,如果涉及到不同侧链的情形,也有赖于 Layer2 方案比如 OR 提供的底层支持。
Layer2:一条长长的光谱
经过上述探讨,我们或许可以得到一点启示:既然全部集中在一条 Layer2 链上的方式会带来拥堵,而基于以太坊、不同 Layer2 方案或者不同 rollup 链之间进行通讯也有麻烦之处,是否可以将这两者结合?
这是可能的。回到前面的例子,在都市之中不可避免出现金融区、娱乐区、购物区,在 Layer2 领域中,随着时间推移,也会出现聚焦于 DeFi 的 Layer2 链,聚焦于游戏的 Layer2 链等。但是通过地铁、CBD 可以和住宅区打通,就像不同的 Layer2 方案之间可以借助于通讯协议彼此相通一样。
考虑到 DeFi 的特殊性,笔者认为,头部 DeFi 集中在某条 Layer2 生态中的情况并不奇怪。而别忘了,同一DeFi 也仍然可以在不同的 layer2 上设立“分部”,形成协同效应。聚焦和分散,借助于通讯协议或者底层的以太坊实现互通或者单向监听,会是 Layer2 生态中同时存在的现象。
小结
以太坊堵了又堵,Layer2 希望曲径通幽,另辟蹊径。Layer2 许诺了一个更美好的未来,应用程序和用户可以根据需要,获得更优质的服务和体验,网络更顺畅,费用更低。
就当前的 Layer2 解决方案而言,尽管有评价认为当前测试网表现不及预期,但 OR(Optimistic Rollup) 提供了一套有希望的解决方案,这也是本文着重观察的方案。
随着第二层网络(Layer2)相关项目的进展,我们应该可以有更多方案可供选择;而随着头部应用逐渐青睐 DeFi + Layer2 的组合,如何实现 DeFi 之间互操作的问题,我们会见到更多有趣的思路。
笔者认为,观察 Layer2 的发展,一定程度上也是在窥探以太坊 2.0 的未来。就 Layer2 而言,DeFi 会聚族而居么,聚集和分散会以什么面貌出现在不同的 Layer2 方案中,又要花费怎样的气力去改善用户使用 DeFi 的体验,这些都留待时间给我们答案。
但一个可能的结果是,随着 Layer2 的逐渐发展,DeFi 的可组合性可能在一段不短的时间内变得支离破碎。