DeFi 需要什么样的扩容网络?从 Radix、StarkWare 技术推论

Li
2021年2月20日 15:50
收藏
有些 DeFi 适合在 Layer 1 扩容,而有些 DeFi 适合在 Layer 2 构建高频繁交易区域。

本文发布于白计划,作者:Li。

 

DeFi 已然成为加密货币世界不可或缺的组成部分。

整个 2020 年,DeFi 规模得到了空前增长。据 DefiMarketCap 统计,Top100DeFi 代币的市值已经接近千亿,而通过查阅可知,DeFi 锁仓资产也已经超过 500 亿美元。

DeFi 该如何选择扩容网络?从 Radix、StarkWare 技术推论上图为 DeBank 显示的 DeFi 锁仓资产变化

这个庞大的数字是基于以太坊形成的,如今,以太坊已经承担着 BTC、ETH 以及 DAI 等其他链上资产的流动价值,但根据以太坊的运行逻辑,在这个庞大的数字背后,是巨大的资源消耗。

通过查阅以太坊 gas 消耗量可知,在 ETH 价格不断攀升、DeFi 应用不断增加的今天,以太坊单日矿工收入峰值已经超过 2700 万美金。除了常规的区块奖励外,这个数字中很大部分收入是由 DeFi 用户调用智能合约所致。

gas 费过高不仅仅增加了用户使用加密货币的门槛,从更高的维度看,这阻碍了加密货币出现的初衷:普惠金融。

所以,加密货币需要解决交易中的成本问题,实现更低成本的 DeFi 交易。目前很多公链项目已经有了明确的发展路线图,以太坊的 DeFi 最多,所以目前其扩容方案最具有代表性,方案有三:转向 PoS、分片、Layer 2。

以 Layer 2 技术扩容的代表项目有 StarkWare、Matic、Celer 等,而以分片等方式扩容的代表网络有 Radix、Near 等。两种形式从技术上各有所长,对 DeFi 赛道的帮助也有所差异,本文中,我们将以这两种扩容设计来推论:DeFi 需要什么样的加密货币网络?

Layer 2 是目前最容易实现的扩容方案

以太坊和其他公链,都在尝试利用多链结构扩容,例如以太坊 2.0 可能实现的同构分片、波卡正在实施的异构分片、COSMOS 的跨链结构。而新出现的雪崩协议等网络,在多链结构里更细化的定义了功能分层和功能模块化实现扩容。

这些都是庞大且长远的设计,例如波卡未来还需要经历插槽拍卖、COSMOS 还需要建立更好的生态,其余的链的技术进展和生态建设也还处于初期状态。

对于其他更聚焦于扩容的项目来说,会更聚焦在单个网络结构里,例如在 Layer 1 实现分片,代表项目是 Radix、Near。从长远来看,Layer 1 的扩容(例如分片)是必然。在这些网络兼容 EVM 后,Defi 都可以快速的迁移到网络上,如果解决资产的转移问题,这些网络都会成为以太坊的扩展网络。

不过对于 DeFi 需求旺盛的牛市,Layer 2 的扩容落地很有必要。

以以太坊为例,以太坊的 PoW 链其性能远不如信标链,如果以太坊可以成功转向 PoS,那其性能会有质的提升,不过以太坊转向 PoS 还会经历漫长的过渡期,在 PoW 链承担网络出块的阶段,只有 Layer 2 是最快实现的扩容方案,很多有先见之明的项目已经开始建立 Layer 2 的测试应用,例如 AAVE、Synthetix、dYdX 等,不过 Layer 2 的原理,会产生一些新的关联问题。

简析 Layer 2 的原理

让我们来看一下 Layer 2 的原理。

还是以以太坊为例,其 Layer 2 解决方案,是在以太坊上建立一个链下结构或者侧链结构,将以太坊上的地址余额映射到 Layer 2 层,然后在 Layer 2 层完成账户之间的交易以及其他操作,然后再将结算结果反馈回链上,确认最后的地址的数据变化。

这样对于运行在 Layer 2 的 DeFi 应用来说,只有刚刚启动 Layer 2 层和最终结算的时候,Layer 2 和链上有交互,其他的交易过程都在 Layer 2 发生,不会占用链上的资源,可以实现快速处理交易以及有效减少 gas 的消耗。

但这种方式仍有两个关联的顾虑:

  1. 如果主链性能不佳,在链上出现拥堵的时候,Layer 2 与账户结算仍可能需要较高的 gas 费和较长的确认时间。
  2. 在 Layer 2 层可能无法执行与链上其他资产、合约的交互,如果可以交互,仍需要多次调用链上资源,会产生 1 的问题。

因为除了交易被打包后形成区块存储在链上外,所有智能合约也是上传到链上的,DeFi 的常态是资产合约、借贷、交易合约之间相互调用,所以当合约之间发生调用的时候,就是占用链上资源的时候。

这代表其一:支付 gas 费过程是无法避免的,其二:DeFi 需要丰富的可组合性。

所以解决问题的根本在于,解决以太坊 PoW 链带来的 gas 问题并保持 DeFi 之间可组合性。这就带来了答案:如果 Layer 1 层的性能足够快,并不需要 Layer 2 去扩容,如果不是适合 Layer 2 的业务,尽量使用 Layer 1 扩容技术,因为 Layer 2 会影响智能合约的组合性。

StarkWare 的 Layer 2 设计举例

不过牛市的火热需求里,Layer 2 是很多项目谋求发展的选择,例如 dYdX 将以 StarkWare 的技术搭建 StarkEx 系统用于永续合约交易。我们来看 StarkWare 的技术逻辑。

StarkWare 其目标是在以太坊下层建立一个网络,该网络与链上的交互过程以及 Layer 2 层的通讯过程会应用 Rollup 以及零知识证明以保护其安全,但在这个网络内应用各类 DeFi 的前提是需要把 DeFi 部署在 StarkWare 的网络里。

DeFi 该如何选择扩容网络?从 Radix、StarkWare 技术推论StarkWare 未来将形成的 Layer 2 网络结构

例如 dYdX 是订单簿形式的 DEX,在没有应用 Layer 2 之前,dYdX 的订单簿撮合是在链下工作的,会将结算数据与链上交互同步,这个过程会产生高额的 gas 费,应用 Layer 2 后,StarkEx 系统会将结算过程在 Layer 2 层完成,这会明显降低这个过程的 gas 费消耗。

但这会带来一些关联的影响,例如使用的步骤会略复杂,可能无法在移动端应用、以及可能会产生 Layer 2 的开户成本。此外,带来最大的问题是,如果 dYdX 想要与其他 DeFi 协议开启组合应用,需要其他 DeFi 应用也部署到这个网络里。

从加密货币的初衷来看,这并不是普惠金融的做法,其应用可能最终会成为高级用户和专业用户的领地。

因此相比于能让一些 DeFi (需要频繁交易)跑的更快的 Layer 2,一些 DeFi 更适合使用 Layer 1 的扩容方案或性能更高的网络。

例如 Compound 曾透露可能会转移到其他公链,订单簿形式的 DEX 需要大量的交易过程,因此也更适合 Layer 2。而借贷、稳定币、AMM 池等会更适合运行在性能更好的网络上,在丰富的组合性上发挥最大价值。

更符合 DeFi 特性的 Layer 1 扩容思路

那如何确认 DeFi 需要什么样的 Layer 1 呢?Radix 在其网络设计中给予了一定思路:

  1. 解决共识问题带来的性能瓶颈。
  2. 尽力打造可组合性。

所以 Radix 采取了一些另辟蹊径的方式。

前文我们提到的同构分片、异构分片,其中分布的片,是一部分节点组成的链。可以理解为划分一些节点成为一个分区,这个分区独立其他分区存在,分别处理任务,

例如以太坊 2.0,如果还依据原来执行分片的路线图,初期可能建立 64 个分片,而这些分片都最终由信标链来完成交易验证,分片之间的通讯叫做「交联」,如果其中一个分片需要验证其他分片时,才会进行分片间通讯。而因为分片的存在,DApp 开发者在以太坊上开发 DApp 的时候需要选择一个分片来做为主要的处理区。

这意味着这个 DApp 如果需要向其他分片获取数据的时候,会出现一些冗杂的步骤。在波卡、COSMOS 实现的结构也是如此,波卡的平行链就是异构分片结构里的分片,平行链之间的交互是通过中继链进行,但交互过程较为复杂,需要平行链之间去单独定义。COSMOS 也是如此。

这样的分片,是一种划定界限的设计,每个分片链会形成一定的孤岛效应,自然会出现一些后续问题。

但如果变化一下思路就可能产生一些新的技术思路。

例如 Radix 在数据库分片的形式之上设计了新的共识机制。可以理解为一个数据库分片+共识的新的分片结构。

DeFi 该如何选择扩容网络?从 Radix、StarkWare 技术推论Radix 的分片部署示意图

这种分片不同于上文提到的定义一些节点作为分片链,而是把加入网络的计算资源全部先切分为不同的分片,分片不是通过链划分的,而是通过随机命令随机分配到已经确定的分片位置里,这些通过命令分出的分片再组成一个个大的分区。

这种预先设定好分片位置,然后动态的将命令分配到各个位置形成分片的方式,需要通过共识来确认最终的状态。Radix 的 Cerberus 共识是执行这个过程的,与信标链的 ghost 算法实现最终确定性一样,Cerberus 共识可以确定交易的排序以及形成最终的数据集交给验证者验证。

这样做最好的方式是,可以实现更大的并行,调动所有的资源去使用,而不是固定分区带来的一些边界问题。

其次,重要的问题是组合性。

对比以太坊,链上的组合性是智能合约之间的相互交互,例如通过 Compound 借贷出的 cToken 等可以在其他 DeFi 里进行挖矿以及 swap。这就代表了 DeFi 的合约要调用 Compound 合约去确认 cToken。该合约之间的调用是组合性的体现。

如果两者不在同一个网络或者分片里部署,那就很难组合到一起,需要网关的处理或者需要一个映射的智能合约存在。

为了解决这个问题,Radix 的思路是,减少智能合约的编程复杂性,因为智能合约中一定会对账户的账本做记录以输出最终结果,但如果在 Layer 1 里实现,就可以把智能合约换成更小单位的执行过程,Radix 将这个执行单位成为「组件」,其提前定义了「组件」的功能,这些组件的执行非常简单直接,从而让多个组件组合在一起也可以快速执行 DeFi 的业务。

例如,当一个智能合约是转账的情况下,这个智能合约需要对两方的账户做编辑,即形成一个小的总账本,在转账方销毁,在接收方增加。而如果使用 Radix 的组件设计,将组件设计为 a 的转账代币属于 b 即可,这样执行起来非常快速,无需更多的证明。

这会实现足够多的组合可能性。

DeFi 该如何选择扩容网络?从 Radix、StarkWare 技术推论Radix 的组件示例

据官方技术文档介绍,目前 Radix 基金会建立的组件将包含 DeFi 应用的一些标准功能。会包括(如图的):资产(可替代或不可替代代币)、账户(包括多 sig 控制)、流动性池、交换系统、可购买资产、数据预言机等。

这些组件都可以直接实例化,例如通过 API 调用创建自定义 token 的供应或者以各种方式进行模块化组合创建更复杂的功能。

是否能期待 DeFi 应用在新网络?

就像 Compound 曾透露在考虑新公链一样,对于当下红极一时的 DeFi 来说,选择新网络,是有挑战的。

迁移到另一条公链的可行与否,不仅仅是性能上的考虑,与这条链对于以太坊、比特币等网络的资产兼容、链上基础货币的价值都有偌大的关系。

所以暂时看,没有 DeFi 能够逃离以太坊,但不乏有新的尝试出现。2 月 11 日消息,Chainlink、Aave、mStable 和 Messari、Radix 宣布联合推出了一个新的 DeFi 联盟 GoodFi。这个联盟旨在促进 DeFi 行业的教育、研究和实践发展。这让我们看到了希望。

期待成本低、体验好的 DeFi 早日出现。

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击 “举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界