摘要
本文介绍了一种依据供求关系的去中心化协议,该协议建立了由算法设定利率的货币商场,答应用户无冲突地交流以太坊财物的时刻价值。
1、介绍
加密货币和数字区块链财物的商场现已开展成为一个充满活力的生态系统,出资者、投机者和买卖者交流数千种[1]区块链财物。不幸的是,金融商场的复杂性并没有跟上:参与者几乎没有才能买卖财物的时刻价值。
利率填补了具有搁置财物的人与没有财物(指可用于生产或出资的财物)的人之间的差距;买卖财物的时刻价值对两边都有利,并能发明非零和财富。对于区块链财物来说,目前存在两个首要缺陷:
l 告贷机制极端有限,这就导致了财物定价错误(比如估值莫测高深的“骗子币”,因为没有办法做空它们)。
l 区块链财物有负收益,这是因为巨大的存储本钱和危险(不论买卖所表里),而没有自然利率来抵消这些本钱。这加剧了波动性,因为持币是没有鼓励的。
中心化买卖所(包括 Bitfinex、Poloniex 等)答应客户以确保金买卖区块链财物,买卖所内建有“假贷商场”。这些是依据信任的系统(你必须相信买卖所不会被黑客侵略,不会偷走你的财物,也不会错误地平仓),仅限于特定的客户集体,也仅限于少数(最主流的)财物。最终,余额和头寸都是虚拟的;你不能移动链上的仓位,例如在智能合约或 ICO 中运用借来的以太坊和其它代币,这使得 dApps[2]无法访问这些设备。
点对点协议直接促进了商场参与者之间的典当告贷和无典当告贷。不幸的是,去中心化会给用户带来巨大的本钱和冲突;在每一个查看的协议中,告贷人都被要求发布、办理和(在有典当告贷的状况下)监督告贷供给和自动告贷,告贷实行往往是缓慢和异步的(告贷需求时刻筹集资金)[3-6]。
在本文中,咱们将介绍一种去中心化的系统,用于无冲突地假贷以太坊代币,不存在现有办法的缺陷,使恰当的货币商场能够运作,并发明一个安全的正收益的办法来存储财物。
2、Compound 协议
Compound 是一种在以太坊区块链上创立货币商场的协议,这些商场是依据财物的供求关系,经过算法推导出利率的财物池。财物的供货商(和告贷人)直接与协议交互,赚取(和付出)起浮利率,而不用与同行或买卖对手洽谈诸如期限、利率或典当品等条款。
每个货币商场对应唯一的一种以太坊链上财物(如ETH、ERC-20 稳定币(如 Dai)或 ERC-20 效用型代币(如 Augur)),并包括一个通明和可公开查看的账簿,记载一切买卖和前史利率。
2.1 供给财物
在买卖所或 P2P 平台,用户的财物是经过匹配的办法借给另一个用户,而 Compound 协议聚合了每个用户的供给;当用户供给一项财物时,它就变成了同质化的资源。这种方法供给的流动性比直接告贷大得多;除非商场上的一切财物被借光(见下文:协议鼓励流动性),用户能够随时提取财物,而不用等候特定的告贷到期。
供给给商场的财物由一个 ERC-20 代币余额(“cToken”)表明,该余额使一切者有权取得越来越多的底层财物。跟着货币商场产生利息(这是一个关于告贷需求的函数),cToken 能够兑换比较之前更多的底层财物。这样,赚取利息只需求简略地持有一个 ERC-20 cToken。
2.1.1 首要用例
长期出资于 ETH 和其它代币的个人(“HODLers”)能够运用 Compound 货币商场作为他们出资额定回报的来历。例如,具有 Augur 的用户能够向 Compound 协议供给他们的代币,并取得利息(以 Augur 计值),而不用办理他们的财物、满足告贷恳求或承当投机危险。
无论是 dApps、机器或者买卖所,只要持有这些商场的代币余额,都能够把 Compound 协议当成一种货币化的来历,运用这些余额获取增量回报;这有可能为以太坊生态系统开启全新的商业模式。
2.2 借入财物
Compound 答应用户运用 cToken 作为典当物,毫无冲突地从协议中借用,在以太坊生态系统的任何地方运用。与 P2P 协议不同,从 Compound 假贷只是需求用户指定所需的财物;没有可洽谈的条款、到期日或融资期限;告贷是即时且可猜测的。与供给一种财物相似,每个货币商场都有一个由商场力气设定的起浮利率,它决议了每种财物的假贷本钱。
2.2.1 典当物价值
协议所持有的财物(由 cToken 的一切权表明)被用作从协议告贷的典当物。每个商场都有一个从 0 到 1 的质押率,它代表了底层财物价值中能够借到的部分。流动性差的市值较小的财物质押率比较低,它们不能作为好的典当物。而流动性强的高市值财物有比较高的质押率。一个账户各种底层代币余额的价值乘以各自的质押率,等于用户的告贷才能。
用户可借入不超越其告贷才能的财物,而账户不得采取任何会使所借财物总值超越其告贷才能的行为(例如,借入、搬运 cToken 典当物或换回 cToken 典当物);这能够保护协议避免违约危险。
2.2.2 危险与清算
假如账户未归还告贷价值超越其告贷才能,必定比例的未归还告贷能够被其他账户归还以交流该账户的 cToken 典当品,且清算价格略优于商场价格,是以当时商场价格减去清算扣头;这鼓励了套利者的生态系统敏捷介入,以降低告贷人的危险敞口,并消除协议的危险。
清算系数,是指每次调用清算时,一次清算时可归还的部分占借出财物的比例,范围从 0 到1,如 25%。清算程序能够继续进行,直到用户的借入的资金低于其告贷才能为止。
任何具有所借财物的以太坊地址都能够调用清算功能,以其财物交流告贷人的 cToken 典当品。因为用户、财物和价格都包括在 Compound 协议中,清算是无冲突地,不依赖于任何外部系统或订单。
2.2.3 首要用例
能够无缝地持有新财物(无需出售或重新安排出资组合)给 dApp 的消费者、买卖员和开发者带来了新的超才能:
l 不需求等候订单完结,也不需求进行链外操作,dApps 能够借代币并在以太坊的生态系统中运用,比如在 Golem 网络上购买算力。
l 买卖员能够运用现有出资组合作为典当物,经过借入 ETH 为新 ICO 出资供给资金。
l 期望做空代币的买卖员能够借入代币,将其打到买卖所,然后出售代币,从估值过高的代币下跌中获利。
2.3 利率模型
与单个资金供给方或告贷人必须就条款和利率进行谈判不同,Compound 协议运用了一个利率模型,在每个货币商场中依据供求关系完成利率均衡。依据经济理论,利率(货币的“价格”)随需求函数而上升;当需求较低时,利率会下降。反之亦然。各商场的运用率将供给和需求一致成一个变量:
需求曲线经过管理编制而来,并表明为运用率的函数。例如,告贷利率可能相似于
资金供给方赚取的利率是隐性的,等于告贷利率乘以运用率。
2.3.1 流动性鼓励结构
该协议并不确保流动性;相反,它依托利率模型来鼓励它。在对某项财物需求极度旺盛的时期,该协议的流动性(可提取或借入的代币)将下降;当这种状况发生时,利率会上升,影响供给,按捺假贷。
3 完成与系统结构
货币商场的核心是一个账本,它答应以太坊账户供给或借入财物,同时核算利息,这是一个时刻的函数。该协议的智能合约将对公众开放,机器、dApps 和用户都能够免费运用。
3.1 cToken合约
每个货币商场都被构造成一个智能合约,实行 ERC-20 代币标准。用户的余额表明为 cToken 余额;用户能够经过向商场供给财物来铸造mint(uint amountUnderlying) 或换回 redeem(uint amount) cToken 来交流底层财物。 cToken 和底层财物之间的价格(汇率)跟着时刻的推移而添加,因为利息是由财物的借入方累积的,并且每个货币商场都是由实行 ERC-20 代币标准的智能合约构建的。用户的余额表明为 cToken 余额;用户能够:
跟着商场总告贷额的添加(作为告贷人利息累积的函数),代币与底层财物之间的汇率也会添加。
3.2 利率机制
Compound 货币商场的定义是对一切告贷人一致适用的利率,跟着供求关系的改变,利率会跟着时刻的推移而调整。
每个货币商场的每一种利率的前史都被一个 Interest Rate Index (利率指数)所记载,这个指数是在每次利率改变时核算出来的,它是由用户铸造、换回、告贷、还款或清算财物时产生的。
3.2.1 商场动态
每发生一笔买卖,该财物的利率指数就被更新,以复利自前一项指数以来的利息,运用期间的利息,以 r * t计价,运用每一区块的利率核算
商场未归还告贷总额被更新,以包括自上一个指数以来的待付利息:
一部分累计利息被保存(预留)作为准备金,由 reserveFactor(准备金系数)决议,范围从 0 到 1:
3.2.2 告贷动态
告贷人的余额,包括待付利息,就是一种比率,由当时指数除以用户余额在前次查看点时的指数核算得出。
每个告贷人地址在 cToken 中的余额被存储为一个 account checkpoint(账户查看点)。一个账户查看点是一个 Solidity 元组 <uint256 balance, uint256 interestIndex>。这个元组描述最终一次利息被付出时的账户余额。
3.3 告贷
期望告贷并且有足够余额存储在 Compound 当中的用户,能够在相关的 cToken 合同中调用 borrow(uint amount) 函数。该函数掉用后,将查看用户的账户价值,假如账户内有足够的典当物,将更新用户的告贷余额,将代币搬运到用户的以太坊地址,并更新货币商场的起浮利率。
告贷计息与第 3.2 节中核算余额利息的方法完全相同;告贷方有权在任何时候经过调用 repayBorrow(uint amount) 函数,来归还一笔未归还的告贷。
3.4 清算
假如因典当品的价值下降,或借入财物增值,用户的告贷余额超越其总典当品价值(告贷才能),公共函数 liquidate(address target, address collateralAsset, address borrowAsset, uint closeAmount) 能够被调用,调用者将会以略优于商场价格的条件,将自己的财物与借方的典当物进行交流。
3.5 喂价
Price Oracle(价格预言机)保持每个支撑财物的当时汇率;Compound 协议将设定财物价值的才能托付给一个委员会,该委员会将前 10 名的买卖所的价格集中在一起。这些汇率被用来决议告贷才能,典当物需求,以及一切需求核算账户估值的功能。
3.6 审计官
Compound 协议不默许支撑某些特定的代币;相反,商场必须被列入白名单。这是经过一个办理函数,supportMarket(address market,address interest rate model) 来完结的,该功能答应用户开端与财物交互。为了借入财物,必须从价格预言机里取一个有用的价格;要运用财物作为典当物,必须要有一个有用的价格和质押率。
每个函数调用都经过战略层进行验证,战略层称为 Comptroller(审计官);在答应用户进行操作之前,该合约承认典当物和流动性。
3.7 管理
Compound 将从对协议的中心化操控开端(例如挑选每个财物的利率模型),跟着时刻的推移,过渡到完全由社区和利益相关者操控。协议中的以下权限由办理员操控:
l 创立一个新的 cToken 商场。
l 更新每个商场的利率模型。
l 更新预言机的地址。
l 提取某个 cToken 的准备金。
l 挑选新办理员,就像一个由社区操控的 DAO;因为这个 DAO 本身能够挑选新的办理员,办理层将依据利益相关者的各个决议跟着时刻的推移而演化。
4 总结
l Compound 为以太坊财物发明了正常工作的货币商场。
l 每个货币商场的利率由底层财物的供给和需求决议;当借入财物的需求添加,或者供给削减,利率就会上升,从而影响额定的流动性。
l 用户能够向货币商场供给代币以赚取利息,而无需信任中心方。
l 用户能够运用协议中的余额作为典当来借入代币(用于运用、出售或再出借)。
视野开拓
商业社会的突出特色是私人领域和公有领域的划分——或者,如果你愿意可以说,在商业社会中的私人领域所包含的内容要比封建社会或社会主义社会分派给它的多得多。这个私人领域与公有领域分得清清楚楚……-《资本主义、社会主义与民主》