Compound V2 中文白皮书翻译

  • cheng139
  • 更新于 2023-03-03 17:48
  • 阅读 2367

Compound白皮书

Compound:货币市场协议

版本1.0

2019年2月

作者

Robert Leshner, Geoffrey Hayes <https://compound.finance/>

摘要

在本文中,我们介绍了一种去中心化协议,该协议通过基于供需的算法设定利率来建立货币市场,允许用户无摩擦地交易以太坊资产的时间价值[指的是利用时间进行增值,类似放在银行吃利息]

1 简介

加密货币市场和数字区块链资产已发展成为一个充满活力的投资者、投机者和交易者的生态系统,交易数千 [1] 区块链资产。不幸的是,金融市场的复杂性并没有遵循:参与者几乎没有能力交易资产的时间价值ok

内部空间填补了拥有多余资产(他们不需要)的人和拥有其他资产(他们没有生产或投资用途)的人之间的差距;交易资产的时间价值有利于各方,并创造非零和财富。对于区块链资产,目前存在两大缺陷:

  • 借贷机制极为有限,这导致了定价失误(例如,估值难以估计的“骗局”,因为没有办法做空它们)。
  • 区块链资产具有负收益率,这是由于大量的存储成本和风险(包括场内和场外)导致的,没有自然利率来抵消这些成本。这助长了波动性,因为持有量被抑制了。

中心化交易所(包括Bitfinex、Poloniex……)所有客户都拥有区块链资产,并在交易所内置“借贷市场”。这些以信任为基础的系统(你必须相信交易所不会被解冻,不会带着你的资产潜逃,也不会正确地失去你的头寸)仅限于特定的客户群体,并且仅限于少数(主流)资产。最后,余额和头寸是虚拟的;您不能移动链上的位置,例如,在智能承包商ICO中使用托管的以太网或令牌,从而使dApps无法访问该位置[2]。

直接在市场参与者之间进行对等协议抵押贷款和抵押贷款。在审查的每一项协议中,贷款人都需要发布、管理和(如果是集体贷款)监督其他报价和活跃贷款,以及贷款的实现是缓慢和异步的(贷款需要资金,这需要时间)[3-6]。

在本文中,它没有在现有方法的缺陷下,为以太坊代币的谨慎无息借贷引入分散系统,使适当的货币市场能够正常运行,并创建一种安全的正收益率方法来存储资产。

2 Compound协议

Compound 是以太坊区块链上的一个协议,它建立了货币市场,是根据代币的供求关系,以算法推导出利率的代币池。资产的供应商(和借款人)直接与协议进行交互,赚取(和支付)浮动利率,无需与同行或者交易对手协商到期、利率或抵押品等条款。

每个货币市场都是 ERC-20 代币(如代币化的以太币,稳定币如 Dai 或实用代币如 Golem)所独有的,且包括一个透明的、可公开监督的资产负债表,记录了所有的交易和历史利率

2.1 提供资产

与交易所或点对点平台不同的是,一个用户的代币被匹配并借给另一个用户,而 Compound 协议则是将每个用户的供应量聚合在一起;当一个用户供应代币时,它变成了一种可变现的资源。这种方式提供了完整的流动性;用户可以随时提取代币,不需要等待特定的贷款到期。

货币市场中的余额根据该资产特有的供应利率计算利息。用户可以实时查看他们的余额(包括应计利息);当用户进行更新他或她的余额的交易(供应、转移或提取代币),应计利息被转换成本金并支付给用户。

2.1.1 主要使用案例

对以太坊和代币进行长期投资的个人(“HODLers”)可以使用复合货币市场作为投资的来源和条件。例如,如果Augur可以根据复合协议更换代币,并且无需管理其资产、满足贷款要求或承担投机风险即可获得权益(以Augur命名)。

具有平衡的应用程序、机器和交换机可以使用复合协议作为移动的来源,并通过“全面”平衡逐步返回;这有可能为以太坊生态系统锁定全新的商业模式。

2.2 借贷资产

对于以太坊系统中的任何地方,使用cToken作为抵押品,允许用户从协议中轻松地提取部分信息。有到期期限、到期日期或融资期限;贷款是可以预测的。类似于供给市场,每个市场都有利率,由市场力量决定每种资产的借贷成本。

2.2.1 抵押品价值

协议所持有的资产(由代币所有人代表)用于协议贷款的抵押。每个借贷市场都有范围从0到1一个抵押因子,这意味着能够从协议借出标的资产的部分,流动性弱的、小资产的抵押因子低,他们不能够有高的抵押借贷,而流动的、高资产的抵押因子却很高,账户余额的总和乘以抵押因子,等于用户的借贷能力。

用户可以借贷但不超出他们的借贷能力,并且可以采取任何行动(例如,借入、转让代币抵押品或赎回cToken抵押品)来提高借入资产的总价值超过其借贷能力;这可以保护协议免受违约风险。

2.2.2 风险&清算

如果账户未偿余额的价值超过其借款能力,则可按照当前市场价格减去账户清算折扣,支付未偿借款的出资额,以换取交易对手的账户;这是一个积极的风险生态系统,可以迅速介入,减少借款人的风险敞口,并消除协议的风险。

符合条件的比例,即一个风险因素,是可支付的流动资产的一部分,范围从0到1,例如25%。清算过程可能会继续进行,直到用户的借款低于其借款能力。

任何拥有所抵押资产的以太坊也会调用清算功能,交换借款人的cToken抵押品的第一个集合。清算无摩擦,且不会影响其他系统或订单簿。

2.2.3 主要使用案例

有效持有新资产的能力(不出售或重新排列投资组合)为dApp消费者、贸易商和开发商提供了新的权力:

  • 在不等待用户填充或请求断链行为的情况下,dAppscanborow将存储在以太系统中,例如在Golem网络上购买计算能力
  • 交易者通过借贷以太币,利用现有投资组合作为抵押品,为ICO投资提供融资
  • 希望做空代币的交易者可以将其卖出、卖出,并从高估值代币的下跌中获利

2.3 利率模型

Compound协议不是单个供应商或借款人之间的交易,而是在基于供应和人的货币市场中实现利率均衡的策略模型中的复合协议。根据经济学理论,利率(货币的“价格”)应该增加需求的功能;当需求较低时,市场利用率将供给和需求转化为一个变量:

$$ U_a = Borrows_a/(Cash_a + Borrows_a) $$

需求曲线通过治理进行编码,并压缩作为利用率。例如,借款利率可能如下:

$$ Borrowing Interest Rate_a = 2.5\% + U_a * 20\% $$

供应商赚取的利率是隐性的,等于借款利率乘以利用率.

2.3.1 清算激励结构

协议不保证有效性;相反,它采用了一种交互式模型来实现实时性。在对某个集合的特殊需求期间,协议的流动性(可以使用draw或borow)将下降;当这种情况发生时,利率间波动,刺激供应,并减少借贷。

实现&架构

在其核心,一个复杂的货币市场有一个账户,在计算利息的同时,该账户提供或存储资产,这是一个时间函数。该协议的智能合约将是可公开访问的,机器、应用程序和人类可以完全免费使用。

3.1 cToken合约

每个货币市场结构都是实施ERC-20代币规范的合同的一部分。用户余额以代币余额表示;用户可以通过向市场提供资产来创建(uintamountUnderground)cTokens,或者为下一资产创建(uintomount)cToken。cToken和下一资产之间的价格(汇率)随着时间的推移而增加,因为资产的借款人会累积利息,并且等于:

$$ exchangeRate = \frac{underlyingBalance + totalBorrowBalance_a -reserves_a}{cTokenSupply_a} $$

随着市场总借贷余额的增加(作为累积贷款利息的函数),cToken与基础资产之间的汇率增加。

功能ABI 描述
mint(uint256 amountUnderlying) 将基础资产转移到市场,更新smsg.sender的cToken余额
redeem(uint256 amount)redeemUnderlying(uint256amountUnderlying) 将基础资产转出市场,更新smsg.sender的cToken余额
borrow(uint amount) 检查msg.sender抵押品价值,如果足够,将基础资产从市场转移到msg.sende,并更新msg.sender的借款余额。
repayBorrow(uint amount)repayBorrowBehalf(addressaccount, uint amount) 将基础资产转移到市场,更新借款人的借款余额。
repayBorrowliquidate(address borrower,address collateralAsset, uintcloseAmount) 将基础资产转移到市场将基础资产转移到市场,更新借款人的借款余额,然后将cToken抵押品从借款人转移到msg.sender
                            表2.ABI及主要cToken智能合约功能汇总

3.2 利率机制

复合货币市场是由一个利率决定的,适用于所有借款人,随着供求关系的变化,利率会随着时间的推移而调整。 每个市场的利率历史都是由利率指数确定的,利率指数在每次利率变化时都会计算,这会导致用户购买、赎回、借款、偿还或清算资产

3.2.1 市场动态

出现八个参数时,利息率指数最新更新,以完成其利率,使用以r*t表示的每个周期的利率,使用每个区块的利率计算:

$$ Index{a,n} = Index{a,(n-1)} (1 + rt) $$

更新市场的未偿贷款总额,以包括自上次指数以来的应计利息:

$$ totalBorrowBalance{a,n} = totalBorrowBalance{a,(n-1)} (1 + rt) $$

应计权益的一部分仍保留(预留)为准备金,由准备金系数确定,范围为0至1:

$$ reservesa = reserves{a,(n-1)} + totalBorrowBalance_{a,(n-1)} (r t*reserveFactor) $$

3.2.2 借贷人动态

上面的余额,包括已冻结的利息,允许在最后一次检查用户的余额时,将当前余额除以索引。

此后,每一笔借款的余额都会添加到一个账户检查点的历史记录中。账户检查点是Solidity uple<uint256 balance,uint256 interestIndex>。该列表描述了该账户上一次应用利息的时间。

3.3 借贷

如果用户确定账户余额以及账户中存储的余额是否足够,则可以在相关的代币合约上借款(uintamount)。该功能将检查用户的账户价值,并提供足够的抵押品,将更新用户的借款余额,将代币转移到用户的以太坊地址,并更新货币市场的浮动利率。

在第3.2节中计算了以余额形式存在的借款利息;原住民有权通过调用偿还贷款(uint amont)随时偿还未偿还的贷款,以修复未偿还的余额

3.4 清算

如果由于抵押品价值下降或者借贷资产价值上升导致用户借贷账户超过他们的总的抵押品价值(借贷能力),公用函数 liquidate(AddressTarget,AddressBorrowasset,AddressBorrowasset,UintCloseamount)将会被调用,它以略高于市场价格的价格将调用用户的资产交换为借款人的抵押品。

3.5 价格喂养

APriceOracle维护所支持数据集的当前汇率;复合协议将资产价值的设定权委托给一个委员会,该委员会的集合价格来自10个交易所。这些汇率用于确定借贷能力和抵押品要求,以及所有需要计算账户等价价值的功能。

3.6 审计合约

默认情况下,复合协议不支持特定标记;相反,必须将市场列为白名单。这与管理员功能supportMarket(地址市场,地址交互模型)兼容,该功能允许用户开始与资产交互。为了进行交易,必须获得PriceOracle的有效许可;为了使用担保,必须有有效的价格和担保因子。该合同在允许用户操作之前验证抵押品和流动性。

3.7 治理

复合物将成为协议集中控制的区域(如选择利益相关者或资产),并将转变为完全的社区和利益相关者控制。协议中的以下权利由管理员控制:

  • 能够列出新的cToken市场
  • 能够更新每个市场的利率模型
  • 更新oracle地址的能力
  • 提取cToken储备的能力
  • 选择新管理员的能力,如社区控制的DAO;由于该DAO可以自行选择,因此行政部门有权根据利益相关者的决定进行变更

总结

  • 复合物为以太坊资产创造了正常运作的货币市场
  • 每个市场都有利率,该利率由地下资产的供求决定;当贷款需求增长或供应减少时,利率就会上升,从而刺激更多的流动性
  • 用户可以向货币市场提供代币以赚取利息,而无需信任中央方
  • 用户可以通过使用其在协议中的余额来进行借贷(使用、出售或出借)

参考

[1] Cryptocurrency Market Capitalizations. <https://coinmarketcap.com/> [2] Bitfixex Margin Funding Guide. <https://support.bitfinex.com/> [3] ETHLend White Paper. <https://github.com/ETHLend> [4] Ripio White Paper. <https://ripiocredit.network/> [5] Lendroid White Paper. <https://lendroid.com/> [6] dYdX White Paper. <https://whitepaper.dydx.exchange/> [7] Fred Ehrsam: The Decentralized Business Model. <https://blog.coinbase.com/>

原文链接

https://compound.finance/documents/Compound.Whitepaper.pdf

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

2 条评论

请先 登录 后评论
cheng139
cheng139
0x5D19...3f0F
爱好去中心化