## 概述 借贷协议是 DeFi 系统内最重要的部分。但对于借贷协议而言,不同的借贷协议出于对治理机制的考虑推出了不同的架构。本文将主要讨论治理制度视角下的借贷协议的架构。出于本文的出发点,本文的内容主要讨论 Collaterals 和 Liabilities 的关系组建和借贷协议的因子配置。 ## Collaterals 和 Liabilities ### Monolithic Monolithic 是目前仍是最主流的借贷协议的架构。在这种架构下,用户可以使用多个资产作为 Collaterals 借出其他资产,同时用户存入的 Collaterals 也可以再次被其他用户借出,所以用户的 Collaterals 也是可以获得利息的。 在 Monolithic 架构下,为了避免风险,存在部分代币只可以借出但不能充当 Collaterals。比如下图中,用户可以存入 wstETH 和 USDC 作为 Collaterals 借出 LINK 代币,但无法使用 LINK 代币作为 Collaterals 借出 WBTC。 ![Monolithic](https://hackmd.io/_uploads/SkvK3XZOJx.png) 最符合 Monolithic 架构的借贷协议就是目前以太坊内部最大的借贷协议 AAVE V3。AAVE V3 内的大部分资产都可以既可作为 Collaterals 也可作为 Liabilities(即下图中的 Normal 情况)。AAVE V3 也具有 Isolation Mode,在此模式下,部分资产只可以作为 Collaterals 借出稳定币,但无法作为 Collaterals 借出其他代币。 ![AAVE V3 Isolation](https://hackmd.io/_uploads/S1TRe4ZOJe.png) Monolithic 架构的资本效率比较高。对于普通用户而言,用户可以直接存入多种代币作为 Collaterals 来借出所需要的资产,同时 Collaterals 也可以获得利息。但是该架构最大的问题是无法将大部分代币纳入 Collaterals,因为一旦引入价值不稳定代币作为 Collaterals 就可能导致借贷协议的巨额损失。 AAVE V3 的代币审核就极其严格,所以目前 AAVE V3 只支持 30 种左右的代币作为抵押品,这 30 种代币中不少处于 Isolation Mode 下,无法作为通用的抵押品。 ### Isolated Pairs Isolated Pairs 也是目前较多使用的一种借贷协议结构。在这种借贷机构下,用户存入的 Collaterals 只能用于借出某种代币。同时,用户存入的 Collaterals 不会再次被借出,所以 Collaterals 无法获得利息。 ![Isolated Pairs](https://hackmd.io/_uploads/Byu8u4Z_yg.png) 目前使用该模式的是以太坊内第三大借贷协议 Morpho Bule。该借贷协议内存在一系列离散的市场,用户可以选择向某一个市场存入 Collaterals 借出对应的 Liabilities 代币,但是由于 Collaterals 不会被借出,所以用户无法获得 Collaterals 的利息收入。下图显示了 WBTC 与 USDC 的市场,用户存入的 WBTC 只能用于借出 USDC 代币,且用户存入的 WBTC 并不能获得利息。 ![WBTC/USDC Market](https://hackmd.io/_uploads/Bk2KFVZdye.png) 所以在 Morpho Bule 内存在另一批用户,这些用户向借贷市场提供 USDC 获取利息,比如用户可能将 USDC 注入上图中的以 WBTC 作为 Collaterals 的市场内赚取利息。所以在 Isolated Pairs 系统内,用户被分为以下两类: 1. 存款人,为市场提供 Liabilities 代币以供其他用户借出,获取借贷利息 2. 借款人,提供担保品借出代币,但放弃担保品的利息收入 对于存款人而言,在 Morpho Bule 协议中,同一种代币可能在多个市场内都可以被借出,比如既存在使用 `WBTC` 作为 Collaterals 借出 USDC 的市场,也存在使用 `wstETH` 借出 USDC 的市场,这些市场中支付给 USDC 的利率是不同的。下图展示了一些可以使用不同 Collaterals 借出 USDC 的市场利率: ![Load USDC Marknet](https://hackmd.io/_uploads/rJ_sqEZ_kl.png) 所以用户存入 USDC 并希望获得较高利率,那么用户就需要将 USDC 划分到不同的市场内,这并不是一个简单的工作,因为部分市场可能选择了高波动的 Collaterals 代币,一旦为这种市场提供 USDC 就可以遭受因为代币剧烈波动而穿仓的损失。所以在 Isolated Pairs 市场内,往往会出现第三种市场参与者——Curator。Curator 往往是一些专业的金融机构,这些机构会分析每一个市场的风险和收益度,然后设计自己的资金分配方案。而用户可以根据 Curator 的资金分配方案和收益情况将 USDC 委托给 Curator 管理。 ![Curator](https://hackmd.io/_uploads/SJllyBb_1x.png) Isolated Pairs 的另一个好处是完全避免了 Monolithic 架构下的治理问题。任何用户都可以自己创建借贷市场,而无需经过治理。比如 USD0++ 作为一种新型的收益代币很难进入 AAVE 这种借贷协议,但 USD0++ 却可以直接在 Morpho Bule 内建立市场。 从开发者角度看,Isolated Pairs 架构存在另一个巨大的优势,即该架构由于不涉及 Collaterals 的二次借出,所以也不存在给 Collaterals 记录利息的相关代码,整体实现较为简单。Morpho 也是目前开发者最为追捧的借贷协议。 ### Isolated Groups 该架构在借贷协议内目前只有 Compound V3 在使用。在该架构下,不同的 Liabilities 具有不同的 Collaterals。 ![Isolated Groups](https://hackmd.io/_uploads/BJ5sEzH_Jl.png) 一个具体的例子是在 Compound V3 的主网版本内,我们假如我们需要借入 ETH,那么我们可以给出如下的担保品: ![Compound V3 ETH](https://hackmd.io/_uploads/S1cfUzr_Jg.png) 相比于 Isolated Pairs 系统,Isolated Groups 允许用户为单一资产提供多种担保品。这种模式理论上可以允许开发者自由部署借贷市场,并配置 Collaterals 和 Liabilities 的关系。但是目前唯一使用此模式的 Compound V3 仍是引入了一套基于 COMP 代币的治理模式,所有市场的创建和 Collaterals 的修改都需要经过 COMP 代币持有者投票: ![COMP governance](https://hackmd.io/_uploads/S1MuOfBdkg.png) 较为尴尬的是,Compound 出现过两次代码存在漏洞的情况。这两次错误具体可以参考 Rekt 编写的 [Compound Errors](https://rekt.news/compound-errors/) 和 [Overcompensated](https://rekt.news/overcompensated/)。但是这两次错误都没有对借贷协议内的资产产生影响,所以目前 Compound 依旧是以太坊主网内的第 5 大借贷系统。 ### Isolated Groups with Mutual Collateral 该借贷协议架构也较少使用,目前 DefiLlama [借贷协议 TVL 排行榜](https://defillama.com/protocols/Lending) 内的第 18 名 Silo Finance 使用了此架构。 ![Silo Groups](https://hackmd.io/_uploads/r1VH6fH_ye.png) 上图展示了 Silo Arbitrum 版本内的 Silo 代币对应的借贷市场的借贷关系。Isolated Groups with Mutual Collateral 架构下,代币之间会互相绑定,互为 Collateral。在 Silo Arbitrum 版本内,所有的借贷市场内部都存在 ETH 和 USDC 两种代币,与市场创建者指定的第三种代币,在上图内为 Silo 代币。 在 silo 文档内,ETH 和 USDC 被称为 `bridge assets`,而市场创建者制定的第三种代币被称为 `base assets`。此处 `bridge assets` 的命名是有道理的,因为用户可以基于 ETH 和 USDC 构造一些链式借贷路径实现自己的需求,比如使用 Silo 代币作为抵押品借入 ETH,然后使用 ETH 作为抵押品借入 ARB。通过上述路径,我们实际上实现了 Silo 代币借入 ARB 的目的。 Isolated Groups with Mutual Collateral 的好处在于既实现了 Isolated Groups 带来的风险隔离,用户可以根据个人风险喜好和要求选择对应的借贷市场,也一定程度避免了流动性的碎片化,用户可以设计链式的借贷路径借助 `bridge assets` 间接实现某些借贷。最后,由于存在 Mutual Collateral 关系,用户存入的 Collateral 实际上是可以获得利息的。 > 但是 Silo 也允许用户配置 Collateral Status。该选项可以在放弃 Collateral 利息的前提下,避免 Collateral 被借出,由此保证 Collateral 的安全 ## 参数 在本文的第二部分,我们将讨论借贷协议内的参数问题,本文主要讨论与借贷协议内资本效率最相关的参数 Collateral Factor。该参数衡量 Collateral 在借贷协议内的折价情况。Collateral Factor 越高,该资产在借贷协议内部的折价越低。一般来说,对于 ETH 等稳定的资产,Collateral Factor 较高,而低市值资产往往具有较低的 Collateral Factor。 ### Global Paternalism Global Paternalism 是目前借贷协议内部最常见的 Collateral Factor 参数配置模式。简单来说,就是协议方直接设置和修改 Collateral Factor 参数。比如 AAVE 内部,AAVE 的 DAO 组织会进行提案修改某些 Collateral 的相关参数。下图显示了 ezETH 作为 Collateral 时,AAVE 治理为其配置的参数。 ![AAVE Proposal](https://hackmd.io/_uploads/r1m3NO5Okx.png) 对于协议和用户而言,Global Paternalism 都是一种最简单的方案。 ### The Invisibal Hand 目前,以 Morpho 为代表的借贷协议坚持不引入治理系统,所以 Global Paternalism 无法在 Morpho 协议内执行。所以 Morpho 使用了另一种方案。在该方案下,任何用户都可以构建任意 Collateral Factor 参数的市场,而存款者会将自己的资产存入自己认为最可靠的市场内部。 ![The Invisibal Hand](https://hackmd.io/_uploads/H1yMI_qd1x.png) 比如在 Morpho 中,我们可以看到对于 `USD0++ / USDC` 的市场内存在两种不同参数的市场,而用户会根据自身的风险偏好将 USDC 资产存入不同的市场内部。 ![Morpho USD0](https://hackmd.io/_uploads/rywYIu9_ke.png) ## 总结 本文主要介绍 DeFi 借贷协议目前常见的架构。简单来说,因为对治理的依赖不同而出现了不同的借贷协议。我们可以将借贷协议的简单的二分为以下两类: 1. 强依赖治理。借贷协议内参数和担保品选择都需要严格的治理流程 2. 不依赖治理。借贷协议允许随意构建市场,并随意给定参数,用户“靠脚投票” 对于强依赖治理的协议,治理机制是最为核心的。Compound 及其 fork 项目都曾多次出现治理问题而导致协议出现问题。目前来看,AAVE 是所有协议内具有最优秀的治理机制的项目。强依赖治理的协议有一个相当大的优点:在信任协议治理机制的前提下,存款者除存入资产外并不需要进行任何其他操作。这对于以太坊基金会等基金会架构的组织是极其具有吸引力的。 对于不依赖治理的协议,一切都由市场决定。这对于借贷参与者提出了更高的要求,存款人和借款人都需要关注市场的动态,随时在不同的借贷市场内重新分配资金以获得最优的利率。这对于基金会用户是极其不友好的,这些用户因为机制问题无法频繁进行资金操作。当然,用户可以选择将资金委托给第三方,但目前来看,Morpho 内部的第三方并没有比 AAVE 值得信赖。