ESWAP:五分钟了解基于 AMM 的无清算借贷协议 Timeswap_Noodleswap

撰文:iambabywhale.eth,ForesightNews

当下市场每个新公链的启动都几乎伴随着两种DeFi协议的建立,一种是基于AMM的DEX,另一种就是借贷。二者所需要的流动性为新公链积累了早期的资本沉淀,推动了后续经济基础设施的建设。这其中,DEX大都实现了利用联合曲线来处理交易,简单的数学模型让DEX的逻辑很少出现漏洞,但隔壁的借贷协议却因为预言机等较为复杂的组件而有被攻击的风险。

那么有没有可能利用联合曲线来建立一个借贷市场呢?Polygon上的Timeswap给出了一个解决方案。

协议简介

Timeswap是建立在Polygon上的,基于AMM的无清算借贷协议,协议的机制我们稍后来详细介绍,先来看下Timeswap的基本信息。

Timeswap已于2022年3月22日上线主网,当前团队会不时开放一些小的借贷市场来对协议进行测试,用户可以选择在Polygon上出借自己的USDC,或者抵押MATIC借入USDC来进行尝试。Timeswap在2021年10月宣布完成种子轮融资,但并未披露融资金额,参与此轮融资的投资方包括MulticoinCapital、MechanismCapital和DefianceCapital。

Timeswap的创始团队主要由菲律宾人组成有,其中创始人RicssonNgo是菲律宾马尼拉雅典耀大学金融数学硕士,也曾是菲律宾当地社区教育平台Einstar的创始人;联合创始人HarshitaSingh此前在印度的沃尔玛任供应链主管;另一位联合创始人AmeethDevadas曾是链接项目与资本的投资平台的产品经理,更重要的是他是Polygon的天使投资人。创始团队的其他成员包括了Zapper.fi的创始人DipeshSukhani、前Polygon财务副总裁KeyurShah等。

实现机制

当前借贷协议的模式大都是由流动性提供者提供借款池,借款者通过超额抵押另一种代币从而在池中进行借出,流动性提供者获得借款人利息的收益。当抵押物的价值下降至某一个阈值一下时,就会将抵押物出售进行清算,部分补偿LP的损失,部分成为清算人的利润。

Timeswap则是通过联合曲线实现自动化的借贷,无需预言机喂价,也不会对抵押物进行清算。在上文中提到的借贷协议模式中,曾出现因为为某些资产提供喂价的预言机被操控从而实现对协议的攻击的事件。Timeswap希望通过联合曲线建立一个不会出现预言机攻击,并且无需许可的开放借贷市场,并最终成长为大型的货币市场。

当下实现其借贷协议的函数为XYZ=k,其中X本金代币数量、Y代表每秒收益、Z代表抵押代币数量,而k则是常数,类似Uniswap中XY=k的模型。

举例来说,当我想设置一个为期6个月的DAI-ETH借款池,初始资金为1万枚DAI,期望的初始年化收益率为15%且抵押率为167%时,此时X=10000,而年化收益15%就意味着每秒的收益Y为0.0000475DAI,此时假设以太坊价格为4000DAI,则Z为10000*1.67/4000=4.175,所以初始的曲线公式为:

XYZ=10000*0.0000475*4.175=1.98=k

当池子设置好了之后,市场上会出现三种类型的用户,分别为想继续添加流动性的LP、贷款人和借款人。其中原理就类似于Uniswap中流动性提供者以及交易者。当添加或撤出流动性时,参数等比例增减,k值发生改变;当市场上增加或退出了新的贷方或借方时,参数会随着X与Z的增加与减少进行自动调整。

Timeswap实现这一切的方式,是通过向每一类参与者发放代表不同池中份额的ERC-20以及ERC-721代币,并在市场关闭后通过实际池中剩余的资金按比例分发给不同参与者。

贷款方

贷款方即向协议中添加可借资产的用户,此类用户在转入可借资产之后,会收到4种代币:债券本金代币、债券利息代币、保险本金代币、保险利息代币。

其中BPT代表的是可借资金池的份额,该资金池即初始的可借资产加上贷款方存入的资金减去借款方借出的资金后的总金额;BIT即利息池的份额,也就是借款人支付的所有利息的池子;IPT代表贷款方债券代币中未实现资产在贷方持有的保险范围内的份额;IIT则代表了债券利息代币未变现资产的份额。

借款方

借款方存入抵押资产来借出资金,并获得ERC-721格式的抵押债务代币,该代币记录了借款人要支付的利息和锁定的抵押品的信息。在到期之前,若借款人偿还债务,则将销毁该代币并释放抵押品,否则会将抵押品分配给贷款方。

流动性提供方

流动性提供方在提供流动性后将获得LP代币,并将通过借贷双方的利差获取收益。在官方文档中标出的流动性提供者收到的CDT代币可能代表着收益的份额,也可能仅仅是错误。

借贷行为发生时的数据变化

当借贷行为发生时或者流动性增减时,流动性提供方所占份额的变化不难计算,因为其只会收到LP代币。这其中计算最为复杂是贷款人和借款人,我们以官方文档中的数据举例。

这里需要提前说明的一点是,无论用户在选择借款或贷款时都可以自行选择收益率和抵押资产之间的关系,例如贷方可以降低收益率以提高自己贷出资产被借方抵押资产覆盖的比例;借方也可以通过提高抵押资产数量来降低借款利息。但即便如此,对借方的影响仍然不大,因为借方只需要按照成交时的数据支付利息即可。

贷方

现在假设一个DAI/ETH借贷池的初始参数为X=10000、Y=0.0000475、Z=4.16、k=1.979,期限为1年。再假设此时A在该池期限结束前一个月存入1000DAI,选择了10%的年化收益率。此时,x=1000,而A最大的收益率即z=0时,可以理解为完全不为收益投保的情况下,y=0.00000425,最大收益约为13.41%,Timeswap将最小收益率定义为最大收益的1/16,这里就是0.84%,保证了贷款人多少会有收益。

A的本金为1000DAI,所以会收到1000枚BPT代币,10%的年化收益存30天,会收到约8.19DAI,故会收到8.19枚BIT代币。

接下来计算收到的IPT与IIT代币数量,A将收到的IPT数量即为当Y不变时Z的变化量,在本例中即为0.37,即A将收到0.37枚IPT代币。现在将10%的收益率带入计算,得出Z的变化量z为0.1,IIT的计算方式为z*30天的秒数/2^25=0.0077,即A将收到0.0077枚IIT代币。

最终结算时,本金和收益有任何一方出现不足都将使用对应的保险代币进行偿付。若DAI池中的代币足够偿付贷款人,则无需动用以太坊代币池。

借方

有了贷方作为例子,借方的计算就顺理成章,只是从X变化引发的Y和Z的变化,变为Z的变化引发X和Y的变化。

假设此时B在同样时间,同样的借贷池内,希望以10%的利率借出1000DAI,按照同样的计算方法,B最终需要还回1008.19DAI才能收回抵押资产,而其抵押资产的计算则是关键。首先计算其最小的抵押数量,即Y不变,X减少1000时,Z的变化量为0.469,再通过10%的利率计算z的变化量为0.18,将0.18*30天的秒数/2^25=0.139,所以B总共需要抵押0.4829ETH才能借出DAI,抵押率超过了190%。

总结

Timeswap使用三个可变参数来对借贷池中的数据进行实时处理,这样的方案好处在于因为不存在预言机喂价的问题,所以不因为预言机被操纵从而受到攻击,也意味着长尾资产也可以自由的在Timeswap上设立市场。但作为一个去中心化的市场,Timeswap也存在一些问题。在例如Aave的借贷市场中,作为贷款方几乎不会亏损的可能性,因为当抵押资产跌到一定程度就会被清算来补偿贷方投入的资金。Timeswap目前仍然是一个定期的借贷市场,如果在到期时出现行情大幅波动,导致抵押资产价格几乎都低于借出资产价格,就会出现贷方虽然收到了抵押资产作为补偿但仍然出现法币本位的亏损。

此外,Timeswap之所以将本金和收益代币分离,是因为此前测试并未区分二者,也就是说贷方依据本金比例去分配最终资金池,这就导致在某些APR短时间内极高的极端情况下,贷方可以获得大量的本金代币,从而在最终拿走池中大部分的代币使得部分前期的贷款人甚至遭受了本金损失。所以设置两种代币可以尽可能保证贷款人的本金安全,并且保险也是本金和收益分开投保的状态。

Timeswap进行了一次有趣的尝试,并且未来也将在目前借贷平台的基础之上慢慢丰富产品,建立一个大型的去中心化货币市场。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:279ms