Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
借贷是基于以太坊的区块链应用的基石。和数十亿资产被借出,了解借用的运作方式对于开发人员、建筑师或研究人员至关重要。
就像编程范式的演变一样,这些 DeFi 应用程序具有不同的架构设计,反映了从安全性到效率和用户体验等不断变化的优先事项。
此分析着眼于应用程序的架构,例如MakerDAO ,化合物,阿夫,欧拉, 和屈服。我们将重点介绍关键的创新和设计模式,它们是未来贷款应用程序开发的重要经验教训。
如果您是开发人员、架构师或安全研究人员,那么本文适合您。最后,您将轻松了解以太坊上的新借贷应用程序,快速而全面地掌握其架构。深入了解这些 DeFi 巨头是如何从头开始构建的。
大多数 DeFi 借贷是超额抵押。如果用户提供的抵押品价值高于贷款的价值,则用户可以借入特定资产。与传统贷款不同,许多此类贷款没有定期还款或固定结束日期。从本质上讲,你可以借,永远不还。
然而,有一个问题。
抵押品的价值必须始终超过贷款价值预定的幅度。
如果抵押品价值低于此值,则贷款清算的。
在清算期间,其他人偿还您的部分或全部贷款,并且他们会收到您的部分或全部抵押品作为回报。
遵循这种财务结构的所有借款申请都需要相同的构建块,然后可以通过多种方式进行安排:
借贷可以被认为是独立的功能。在 DeFi 中,我们在大多数借贷应用程序中都发现了这两种功能,但它们并不总是能够很好地集成。
在Compound、Aave 和Euler 中它们是。借款人和贷款人的利率是内部相关的;事实上,这就是使这些应用程序以最少的干预运行的原因。
另一方面,MakerDAO 和 Yield是他们借给借款人的资产的发起者。
他们不要求用户提供资产以便其他用户可以借用。
本文将重点讨论链上借贷,并在很大程度上忽略借贷。由于抵押要求,借款要复杂得多,并且了解借款模式通常可以更好地理解整个协议。
MakerDAO ,用以太坊术语来说是古老的,于 2019 年 11 月以当前形式推出,它持有$4.95B 抵押品。尽管其模块化架构具有针对每个功能的不同合同和独特的术语,但它仍然易于理解和验证。
MakerDAO 中的财务职能由加入合同。
有一个单独合同对于每个被批准作为抵押资产的代币。
相反,MakerDAO 不拥有任何借贷资产 DAI。
相反,它仅仅薄荷糖和燃烧 DAI按要求。
会计处理是在溶胶合同。连接更新本合同当抵押品进入或退出系统时。如果用户借钱,他们直接与 vat.sol 合约交互。
此操作会更新用户的债务余额,并允许他们在 DAI 加入中铸造 DAI。
为了偿还,用户在 DAI 加入中燃烧 DAI。然后,此过程会更新增值税,使用户能够结清贷款。
此外, vat.sol
合约充当风险管理引擎。它维持全球借贷限额,设定每个用户的最低阈值,并监督抵押比率。
当用户的债务或抵押品余额发生变化时,vat.sol 合约会评估利率和现货。
这些是指基于所使用的抵押品和现行 DAI 与抵押品价格比率的利率。有趣的是,这些值由其他 MakerDAO 合约输入到 vat.sol 合约中,这种方法与大多数其他应用程序不同。
MakerDAO 在设计阶段就将安全放在首位——当时天然气成本等因素是次要的,用户体验是次要问题,竞争也可以忽略不计。
因此,它可能会显得古怪、使用成本高昂且难以驾驭。
然而,其管理的庞大资产和没有重大违规行为的运营记录凸显了其稳健的设计和执行。
强调:
Yield v1作为固定利率的概念证明收益空间。该版本在 MakerDAO 之上构建了其抵押债务引擎。然而,Yield v1 使用起来既昂贵又难以通过新功能进行增强。
认识到 YieldSpace 的潜力后,我们迅速转向开发Yield v2 。仍然从 MakerDAO 汲取灵感,但现在完全独立,Yield v2 2021 年 10 月推出; Yield v2 优先考虑降低 Gas 成本和增强用户体验。
所有会计、风险管理和抵押检查均合并为一份合同:Cauldron。效仿 MakerDAO 的方法,我们将财务职能分布在各个部门加入合约,每个合约专用于特定资产。
我们改进了预言机集成,将价格和利率预言机合并为一个通用接口。我们反转了 MakerDAO 的预言机流程,这样 Cauldron consults 语言机 根据抵押检查的需要。据我所知,这是除 MakerDAO 之外的所有地方的首选流程。
与 MakerDAO 方法的另一个重大偏差是我们引入了Ladle。该合约充当用户和 Yield 之间的唯一中介。它对财务和会计拥有广泛的控制权,但作为回报,它为功能开发提供了巨大的灵活性。
总而言之,Yield v2 中的借贷工作原理如下:
这Compound的第一个版本曾经是一个概念验证,证明可以在以太坊上建立货币市场。因此,其设计优先考虑简单性。这 MoneyMarket.sol 合约封装了所有功能,包括借贷。
Compound v2 于 2019 年 5 月推出,点燃流动性挖矿时代,激发无数分叉。它也起到货币市场的作用,允许用户借出和借入资产。
基于其白皮书和结构,很明显,一个主要目标Compound v2是使用ERC20标准代表借贷头寸。这确保了可组合性,允许用户借给Compound,然后在其他区块链应用程序中使用这些计息头寸。
有趣的是,白皮书并没有强调Compound v2 纳入了奖励纳入其智能合约。鉴于这一遗漏,该功能的巨大影响可能无法预见。
2022 年发布,Compound v3采用更为保守的风险管理策略,将流动性划分为i流动池对于每项可借资产。该设计还揭示了对用户友好性和天然气成本的担忧。
由于所需调用次数的减少,该系统对于开发人员和用户来说都更加直观。此外,单一合约设计通过最大限度地减少合约之间的调用来降低天然气成本。隔离的货币市场是对基于预言机的攻击的防御,这现在是一个主要的安全问题。
文中提到的其他相关功能发行说明包括:
有趣的是,Compound v3 镜像了Compound v1 的架构,让单个合约处理每个可借资产的所有功能。其他值得注意的功能包括:
禁止借用抵押品提高了抵押品存入者的安全性。这降低了治理错误或故意攻击危及抵押品的可能性。
消除所提供抵押品的回报可能是由于Compound 设法在 v2 中积累了大量流动性的结果。我的直觉是,在Compound v2 中,借贷限额要么低于或不高于用户借给应用程序的资产。
假设他们将管理 v3 类似水平的流动性,禁止借出抵押品可以使应用程序安全,这是 v3 的核心目标之一。
从架构的角度来看:
Aave v1曾是2019年10月推出,继 ETHLend 之后。 Aave v1 引入了共享流动性池,而不是 ETHLend 的点对点方法。
正如在 Yield v2 中一样, 路由合约还掌握了业务逻辑。这借贷池核心履行会计、风险管理和财务职能。将资金集中在一个合约中是与Compound v2 的一个区别点。
保留抵押支票的决定自己的合同,从路由器而不是会计合约调用似乎很弱,但它可能适合目的,因为 Aave v2 在 v1 发布两年后才发布
Aave v2曾是2021 年 12 月发布。虽然它保留了与 Aave v1 类似的功能,但与 Aave v1 和 Compound v2 相比,它引入了改进且更简单的架构。在此版本中,Aave 还引入了aTokens (类似于Compound的cTokens)和vTokens ,代表代币化债务。
为了简单起见,省略了 Aave v1 中使用有限的某些功能。 Aave v1 中的问题(例如应计利息的复杂表示)已在 Aave v2 中得到解决。
Aave v3曾是2023 年 1 月发布具有多链支持和其他功能。这些添加不会改变核心架构。此次更新还改进了风险管理和天然气效率。
尽管有许多进步,但就本研究而言,Aave v3 与 Aave v2 并没有本质上的不同。事实上,这可能表明 Aave v2 的架构在 2023 年仍然保持稳健。
Euler 曾是于 2022 年 12 月推出,旨在为货币市场提供无需许可的功能和最少的治理。
其设计的一个标志是钻石般的图案。 A 单个合约拥有应用程序的所有存储空间。可以通过不同的方式访问该存储代理,每个管理系统的不同概念元素。
尽管一份合约存储了所有资产、会计和风险管理数据,但仍然有用于抵押品和借贷的 eToken,以及用于债务的 dToken,类似于 Aave v2。然而,这些代币合约仅仅是中央存储合约的视图。
对代码的分析表明,最小的天然气成本是首要任务,从而导致整体设计消除了合约间调用的需要。通过严格的测试和审核确保了安全性。只有逻辑分布在各个模块中,作为存储合约的实现,存储合约主要充当代理合约。
这种统一的设计还支持轻松升级。如果不需要更改存储,则可以快速更换模块以修改或引入功能。
Euler 在发布 15 个月后以及升级引入该漏洞后 6 个月后遭到黑客攻击。
我不认为整体架构在资产流失中发挥了作用;相反,是对代码更新的监督不够。
辛苦的工作完成了,让我们回顾一下我们学到的东西
MakerDAO、Compound 和 Aave 等早期以太坊应用程序展示了以太坊超额抵押借贷的潜力。一旦这些概念验证被证明是成功的,重点就转移到引入一系列新功能以占领市场份额。 Compound 和 Aave 的后续版本引入了流动性挖矿、可组合性和集合流动性,这些技术在牛市条件下尤其蓬勃发展。
一个重大发展是Compound v2引入了代币化借贷头寸,这使得这些头寸能够被其他应用程序识别为标准资产。 Aave v2 和 Euler 通过实施代币化债务头寸更进一步,其更广泛的效用仍然是一个争论的话题。
高 Gas 成本成为牛市期间的主要问题,促使用户体验发生变化,如 Yield v2、Aave v2 和 Euler 所示。路由合约和整体实施有助于降低用户的交易成本。然而,这是以更复杂、因此风险更大的代码为代价的。
Compound v3 似乎开创了先例,将安全性置于财务效率之上。它偏离了传统的流动性池模型,以更好地防范潜在的黑客攻击。 L2 网络的兴起(其中 Gas 成本变得越来越可以忽略不计)可能会影响未来抵押借款应用程序的设计。
在本文中,我全面概述了以太坊上的关键抵押借款应用程序。我用来分析每个申请的方法也可以用于快速掌握其他抵押借款申请的复杂性。
在开发区块链借贷应用程序时,请始终考虑资产的存储、会计记录的放置以及风险和抵押品评估的方法。当您考虑这些注意事项时,请利用以前应用程序的历史记录以及本概述中的见解来为您的决策提供信息。
感谢您的阅读,祝您好运。
-END-