有些 DeFi 适合在 Layer 1 扩容,而有些 DeFi 适合在 Layer 2 构建高频繁交易区域。
原文标题:《从 Radix、StarkWare 技术推论:DeFi 需要一个什么样的底层网络?》 撰文:Li
DeFi 已然成为加密货币世界不可或缺的组成部分。
整个 2020 年,DeFi 规模得到了空前增长。据 DefiMarketCap 统计,Top100DeFi 代币的市值已经接近千亿,而通过查阅可知,DeFi 锁仓资产也已经超过 500 亿美元。
这个庞大的数字是基于以太坊形成的,如今,以太坊已经承担着 BTC、ETH 以及 DAI 等其他链上资产的流动价值,但根据以太坊的运行逻辑,在这个庞大的数字背后,是巨大的资源消耗。
通过查阅以太坊 gas 消耗量可知,在 ETH 价格不断攀升、DeFi 应用不断增加的今天,以太坊单日矿工收入峰值已经超过 2700 万美金。除了常规的区块奖励外,这个数字中很大部分收入是由 DeFi 用户调用智能合约所致。
gas 费过高不仅仅增加了用户使用加密货币的门槛,从更高的维度看,这阻碍了加密货币出现的初衷:普惠金融。
所以,加密货币需要解决交易中的成本问题,实现更低成本的 DeFi 交易。目前很多公链项目已经有了明确的发展路线图,以太坊的 DeFi 最多,所以目前其扩容方案最具有代表性,方案有三:转向 PoS、分片、Layer 2。
以 Layer 2 技术扩容的代表项目有 StarkWare、Matic、Celer 等,而以分片等方式扩容的代表网络有 Radix、Near 等。两种形式从技术上各有所长,对 DeFi 赛道的帮助也有所差异,本文中,我们将以这两种扩容设计来推论:DeFi 需要什么样的加密货币网络?
以太坊和其他公链,都在尝试利用多链结构扩容,例如以太坊 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 的 DeFi 应用来说,只有刚刚启动 Layer 2 层和最终结算的时候,Layer 2 和链上有交互,其他的交易过程都在 Layer 2 发生,不会占用链上的资源,可以实现快速处理交易以及有效减少 gas 的消耗。
但这种方式仍有两个关联的顾虑:
因为除了交易被打包后形成区块存储在链上外,所有智能合约也是上传到链上的,DeFi 的常态是资产合约、借贷、交易合约之间相互调用,所以当合约之间发生调用的时候,就是占用链上资源的时候。
这代表其一:支付 gas 费过程是无法避免的,其二:DeFi 需要丰富的可组合性。
所以解决问题的根本在于,解决以太坊 PoW 链带来的 gas 问题并保持 DeFi 之间可组合性。这就带来了答案:如果 Layer 1 层的性能足够快,并不需要 Layer 2 去扩容,如果不是适合 Layer 2 的业务,尽量使用 Layer 1 扩容技术,因为 Layer 2 会影响智能合约的组合性。
不过牛市的火热需求里,Layer 2 是很多项目谋求发展的选择,例如 dYdX 将以 StarkWare 的技术搭建 StarkEx 系统用于永续合约交易。我们来看 StarkWare 的技术逻辑。
StarkWare 其目标是在以太坊下层建立一个网络,该网络与链上的交互过程以及 Layer 2 层的通讯过程会应用 Rollup 以及零知识证明以保护其安全,但在这个网络内应用各类 DeFi 的前提是需要把 DeFi 部署在 StarkWare 的网络里。
例如 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 呢?Radix 在其网络设计中给予了一定思路:
所以 Radix 采取了一些另辟蹊径的方式。
前文我们提到的同构分片、异构分片,其中分布的片,是一部分节点组成的链。可以理解为划分一些节点成为一个分区,这个分区独立其他分区存在,分别处理任务,
例如以太坊 2.0,如果还依据原来执行分片的路线图,初期可能建立 64 个分片,而这些分片都最终由信标链来完成交易验证,分片之间的通讯叫做「交联」,如果其中一个分片需要验证其他分片时,才会进行分片间通讯。而因为分片的存在,DApp 开发者在以太坊上开发 DApp 的时候需要选择一个分片来做为主要的处理区。
这意味着这个 DApp 如果需要向其他分片获取数据的时候,会出现一些冗杂的步骤。在波卡、COSMOS 实现的结构也是如此,波卡的平行链就是异构分片结构里的分片,平行链之间的交互是通过中继链进行,但交互过程较为复杂,需要平行链之间去单独定义。COSMOS 也是如此。
这样的分片,是一种划定界限的设计,每个分片链会形成一定的孤岛效应,自然会出现一些后续问题。
但如果变化一下思路就可能产生一些新的技术思路。
例如 Radix 在数据库分片的形式之上设计了新的共识机制。可以理解为一个数据库分片+共识的新的分片结构。
这种分片不同于上文提到的定义一些节点作为分片链,而是把加入网络的计算资源全部先切分为不同的分片,分片不是通过链划分的,而是通过随机命令随机分配到已经确定的分片位置里,这些通过命令分出的分片再组成一个个大的分区。
这种预先设定好分片位置,然后动态的将命令分配到各个位置形成分片的方式,需要通过共识来确认最终的状态。Radix 的 Cerberus 共识是执行这个过程的,与信标链的 ghost 算法实现最终确定性一样,Cerberus 共识可以确定交易的排序以及形成最终的数据集交给验证者验证。
这样做最好的方式是,可以实现更大的并行,调动所有的资源去使用,而不是固定分区带来的一些边界问题。
其次,重要的问题是组合性。
对比以太坊,链上的组合性是智能合约之间的相互交互,例如通过 Compound 借贷出的 cToken 等可以在其他 DeFi 里进行挖矿以及 swap。这就代表了 DeFi 的合约要调用 Compound 合约去确认 cToken。该合约之间的调用是组合性的体现。
如果两者不在同一个网络或者分片里部署,那就很难组合到一起,需要网关的处理或者需要一个映射的智能合约存在。
为了解决这个问题,Radix 的思路是,减少智能合约的编程复杂性,因为智能合约中一定会对账户的账本做记录以输出最终结果,但如果在 Layer 1 里实现,就可以把智能合约换成更小单位的执行过程,Radix 将这个执行单位成为「组件」,其提前定义了「组件」的功能,这些组件的执行非常简单直接,从而让多个组件组合在一起也可以快速执行 DeFi 的业务。
例如,当一个智能合约是转账的情况下,这个智能合约需要对两方的账户做编辑,即形成一个小的总账本,在转账方销毁,在接收方增加。而如果使用 Radix 的组件设计,将组件设计为 a 的转账代币属于 b 即可,这样执行起来非常快速,无需更多的证明。
这会实现足够多的组合可能性。
据官方技术文档介绍,目前 Radix 基金会建立的组件将包含 DeFi 应用的一些标准功能。会包括(如图的):资产(可替代或不可替代代币)、账户(包括多 sig 控制)、流动性池、交换系统、可购买资产、数据预言机等。
这些组件都可以直接实例化,例如通过 API 调用创建自定义 token 的供应或者以各种方式进行模块化组合创建更复杂的功能。
就像 Compound 曾透露在考虑新公链一样,对于当下红极一时的 DeFi 来说,选择新网络,是有挑战的。
迁移到另一条公链的可行与否,不仅仅是性能上的考虑,与这条链对于以太坊、比特币等网络的资产兼容、链上基础货币的价值都有偌大的关系。
所以暂时看,没有 DeFi 能够逃离以太坊,但不乏有新的尝试出现。2 月 11 日消息,Chainlink、Aave、mStable 和 Messari、Radix 宣布联合推出了一个新的 DeFi 联盟 GoodFi。这个联盟旨在促进 DeFi 行业的教育、研究和实践发展。这让我们看到了希望。
期待成本低、体验好的 DeFi 早日出现。