现代 DeFi 借贷协议 - Morpho Blue是如何构建的

  • mixbytes
  • 发布于 2024-08-27 15:25
  • 阅读 40

Morpho Blue 是一个去中心化的借贷平台,它允许用户创建自己的借贷市场,具有更少的治理要求和更高的灵活性。文章详细介绍了 Morph Blue 的高层设计、治理结构、市场创建流程,以及其实现的核心技术细节。通过灵活的参数设置和安全的代码设计,Morpho Blue 为去中心化金融(DeFi)开发者提供了一个既简单又可靠的框架。

引言

Morpho团队之前的借贷版本Morpho Optimizer成为以太坊第三大借贷平台。然而,随着时间的推移,DeFi市场对涉及更少治理和更多无权限项目的新想法提出了需求。Morpho Blue进一步推动了这些思想,通过实现不可变和孤立的借贷市场,降低治理要求。此方法为用户和项目提供了更大的灵活性,帮助他们更好地利用资产。让我们看看这是如何实现的。

高层设计

Morpho Blue实现了无权限借贷,允许用户创建自己的借贷市场。每个市场都是一个实体,包含两个资产:“抵押品”和“贷款”代币。用户选择必要的参数:抵押品和贷款代币、价格预言机的地址、利率模型以及清算贷款价值比(LLTV),并创建市场。市场创建是无权限的,市场创建者无权访问其他用户的资金或控制市场内的操作,类似于Euler或Uniswap。

Morpho可以使用市场创建者选择的任何价格预言机,从标准的Chainlink价格信息源和Uniswap中间价格到类似于Ajna所使用的先进价格机制(文章)。

Morpho Blue的治理无法直接修改市场的可访问性或其参数,但可以提供新的值组合(如LLTV、利率等),供用户在市场创建时使用。

清算参数总是一个棘手的问题;它总是在借款人和贷款人安全性和激励之间进行权衡。Morpho Blue为每个市场使用静态清算激励因子(LIF),定义为:

其中 maxLIF=1.15, cursor=0.3, LLTV 是给定市场的当前清算贷款价值比。Morpho Blue也没有 closefactor ,允许清算任何可清算债务的数额。

Morpho Blue有一个紧凑且简单的代码库,旨在可审计、可读,从而实现无信任和安全性。

核心

从技术上讲,Morpho Blue是一个单一的合约,保存所有市场并提供所有必要功能。第一个步骤是Market结构,包含有关特定市场的信息:供给/借入资产的总额、借入/供给股份、费用和最后的时间戳更新。市场参数包括抵押品/债务代币的地址,利率模型(IRM)作为合约地址,价格预言机(同样作为地址)和LLTV。

创建新市场(函数createMarket())过程简单。这是治理介入的少数几个地方之一,确保正在创建的市场使用一个“已启用”(由治理启用)的利率模型(IRM)和LLTV。另一个治理设置函数是setFee()函数,设置一个新的市场费用并分配一个新的费用接收者

需要提及使用的代币、IRM和LLTV的要求集,如Morpho Blue团队所描述,以确保创建的市场是“健康的”,在代币数量计算上无问题,并维持协议的连续性。描述这里。这些指南对任何DeFi项目都是有价值的,因为可重置代币、带有转账费用的代币或非标准回退情况,以及类似的“余额修改/锁定”特性总是棘手,且往往对协议的安全性和持续性构成问题。

所有提供供给/提现/借款/还款操作的函数在Morpho Blue中接受资产或股份作为参数,允许用户选择最方便的参数(代币或股份),并简化与基于Morpho Blue构建的协议(如金库或流动性管理项目)的交互。

所有这些函数(包括清算)在操作开始时计算市场利息。 _accrueInterest()函数在各处都存在,甚至有一个可直接调用的单独外部accrueInterest() 函数。计算利息的过程非常明确,以利率模型(IRM)返回的速率同时增加totalBorrowAssets和totalSupplyAssets。将累计利息的绝对金额转换的工作由wTaylorCompounded(x,n)函数处理,该函数使用 e ⁿˣ −1 的前三个非零项的泰勒展开。这种方法以最小的计算来近似累计利息(这是DeFi开发者的一个好点)。市场费用以股份的形式收取,而不是以供给/借入代币的形式。

在应用了利率后,所有供给/提现/借款/还款函数执行类似的操作:计算股份数量,更新地址在当前市场的股份/资产数量,更新股份和资产的总供给,调用用户提供的回调函数,并执行标准的ERC20转账/转账操作。简单的流程,没有DeFi惊喜。用户的借款位置由Position结构表示,包含供给/借用股份的数量和用户抵押品的直接数量。

在Morpho Blue中,上述大多数操作可以被委托给另一个地址。因此,几乎每个执行供给/提现/借款/还款的方法都包括一个address onBehalf参数,允许以其他地址的名义执行这些操作。

此外,Morpho Blue具有闪电贷能力,该能力在非常简洁的flashloan()函数中实现。没有费用,Morpho Blue中的闪电贷是完全免费的。

预言机

Morpho Blue是一个“预言机无关”(oracle-agnostic)协议(根据白皮书)。这意味着你可以使用任何预言机作为资产价格的来源。预言机价格的主要用途当然是在_isHealthy()中评估用户的健康状况。Morpho Blue中的预言机设计得很简单;它们提供一个单独的price()函数,返回每单位抵押品的报价代币数量(通过1e36进行缩放以保持涉及预言机价格的乘法/除法操作的精度)。

风险管理

在Morpho Blue中,对“非健康”头寸的处理通过对“非健康”状态的头寸进行标准清算来管理,并且是“逐借款人”进行的(而不是像CrvUSDLLamaLend或FluidVault那样对多个头寸进行处理)。

liquidate()函数使用当前市场的LLTV(清算贷款价值比)计算扣押的资产(和股份)数量,更新用户的头寸和市场的“总”值。

下一步是坏债的社会化。如果用户的所有补偿品被耗尽,但债务仍然存在,Morpho Blue将简单地减少市场的总借入/供给资产和总股份。这一行动将“坏债务”在该市场的所有贷方之间分配。清算的最后步骤包括在必要时转移代币并对调用者的合约执行回调。

实现细节

Morpho Blue利用广为人知的标准,如ERC-4626进行共享操作和安全的ERC20转账。Morpho Blue中的数学模型不需要复杂的计算;所有设计都旨在简单、安全和可靠。

结论

Morpho Blue是一个“规范”DeFi项目的典范 - 是初学者DeFi开发者的宝典 :) 代码极其清晰且简约,所有的数学都简单可靠。这类项目实现了高水平的安全性,因为一切都是在一个知名且安全的代码库上构建的,逻辑分支、边界情况和数学问题较少。复杂算法的缺失使Morpho Blue变得可预测,为市场制作者提供了一个“安全着陆”地点,为外部协议提供了一个稳固的“基础层”。让我们看看这一方向的下一步将是什么。

请关注我们即将推出的文章

  • MixBytes是谁?

MixBytes是一个由专业区块链审计师和安全研究人员组成的团队,专注于为EVM兼容和Substrate基础项目提供全面的智能合约审计和技术咨询服务。欢迎加入我们在X的讨论,了解最新的行业趋势和见解。

  • 原文链接: mixbytes.io/blog/modern-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
mixbytes
mixbytes
Empowering Web3 businesses to build hack-resistant projects.