没有交易对手也能做空垃圾币?DeFi真的越来越有趣了
DeFi世界的演化速度是飞快的。如果之前你认为DeFi还只是笨拙的模仿现实世界里的 金融 ,那么今天这篇文章可能会让改变你的想法。它提出了一种基于联合曲线模型的优化方案,可以实现没有交易对手方的做空功能。我相信机器和代码的结合会慢慢让我们看到另一种可能,而这是之前的传统金融业所无法想象的。金融的迭代将以另一种速度发展下去。
文章篇幅较长,如果不想深入探讨或时间有限,可以看以下总结(TLDR):我们提出了一种优化联合曲线的方法,以便在没有交易对手存在的情况下,直接使用联合曲线模型,进行无需信任的、完全抵押的做空。
这种可做空的联合曲线模型的智能合约可在此处获得:
https://github.com/bandprotocol/contracts/blob/c24c06ed70e61124ac5a898302b71b844ece63f0/contracts/bonding-curve/ShortableBondingCurve.sol
联合曲线模型机制允许发现Token价格的动态变化,并且通过社区Token价格的上涨来激励早期购买者。在传统的联合曲线设置中,当有人发现Token价值被低估时,他们可以在联合曲线上购买Token,然后以更高的价格出售。然而,当Token的价值被高估时,没有直接的方法来向社区释放利空并赚取利润(类似于常规市场中的做空)。在本文中,我们将通过改进智能合约来探索解决此问题的方法,以便自然地支持做空功能。
什么是联合曲线模型
联合曲线模型简介:简单地理解,这就是一种智能合约。当你往这个合约里面转入资金时(通常是eth),智能合约会自动生成一个token。当你往里面转入token时,智能合约又会自动赎回token,并减少支持债券发行的总资产。那token的价格具体是多少呢?token价格完全通过合约事先设置好的算法自动计算,该价格适用于所有用户。
更详细的介绍可以参见这两篇文章:
什么是联合曲线模型用「传销」的方法做慈善:联合曲线在慈善捐赠中的应用
做空简介
传统市场的做空
在传统市场中如果你确信某项资产价格过高,你会怎么做?很简单,你可以做空该项资产,并希望将来以较低的价格回购,从而获得利润。本质上,你从交易所或证券经纪人借入和出售资产,他们确保你始终能够回购资产,或强制清仓。
去中心化市场的做空
传统市场需要值得信赖的组织机构,以便你可以向第三方借入或借出资产而不必担心欺诈。 区块链 世界中并不存在这种担忧。像dYdX、Dharma等各种协议旨在提供去中心化的保证金借贷服务。Ocean Protocol有一系列的技术指南,可以很好的把这些DeFi协议应用于存在交易对手的联合曲线模型中。但是有交易对手存在的情况,引入了不必要的交易费用和摩擦成本。如果你想做空一项资产,但没有人提供该项资产给你借贷,该怎么办?对于没有太大交易量的、没有太多质押锁仓的利基Token来说,这种情况非常普遍。
运用联合曲线模型摆脱没有交易对手的限制
本文将重点介绍直接向联合曲线模型添加做空功能的想法。智能合约中将添加三种方法:shortSell,closePosition和forceLiquidation。为了起到演示的效果,让我们来想象一个带有COMM Token的虚构社区,其价格与ETH绑定。
COMM代币的价格方程如下: P(x)= 10x (P(x)为代币的价格,x为token的总供应量)
抵押资产的方程为: C(x)= 5x ^ 2 (C(x)为总抵押资产,x为token的总供应量)
我们假设目前有100个COMM的未偿付的总供应量,1 COMM的边际价格为1,000 ETH。社区已将marginCall门槛设定为80%(参见清算持仓/头寸小节)。
运用联合曲线模型直接做空
Alice认为COMM价格被高估,并且推测其价格会下跌。她为15 COMM发送了一个shortSell命令,并将10,000 ETH作为抵押。此时,智能合约将Token供应调整为85,并为Alice建立了15个COMM的仓位,有效抵押品为:13,875(从卖出15个Token收到的ETH,计算方式为:抵押品c(100)-c(85) = 5100^2 - 585^2 = 13,875)+ 10,000(额外抵押品)= 23,875 ETH。
平仓
过了一段时间,社区的兴趣确实下降了,其他人在此期间卖出了30个社区代币。社区Token供应因此减少到55. 此时,Alice调用closePosition回购做空的Token并获得:23,875 - 9,375 = 14,500 ETH。这相当于4,500 ETH的净利润!
请注意,如果供应量向上移动,Alice也可以选择平仓,但她赎回的ETH将少于10,000 ETH。在这种情况下,她不会获利。
清仓
假设即使供应量超过103.92时,Alice也拒绝平仓。那时,回购15 COMM的成本将是 C(118.92) - C(103.92)≈16713,这大于Alice的总抵押品的70%。为了防止社区因清仓导致ETH价值下跌而失去抵押品的风险,智能合约将强制清仓并将在赎回时返还给Alice总共23,875 ETH减去购回15 COMM的成本的ETH。
实施细节
ShortableBondingCurve(可做空的联合曲线模型)的智能合约,源代码可以在这里看到。在本小节中,我们将介绍一些重要的技术实现细节及其背后的理论依据。
联合曲线模型中“当前供应量”的概念
传统的联合曲线只有一个Token供应量的概念。然而,在这个可做空的模型中,联合曲线供应量的概念并不直接与Token的实际总供应量等同。相反,当前有效的联合曲线供应量必须减去此时做空的Token总量。
留意可能出现的最坏的清算状况
简单的实施情况下,可以使用联合曲线的供应点来确定清算点。
如果一次只存在一个做空单,这不是问题。但是在有多个建仓的情况下,多次清算事件可能导致抵押品不足以弥补所有损失。
要解决此问题,确定清算点的供应点应该是当前供应加上所有未完成的做空的Token。换句话说,为了检查Alice的仓位是否有足够的保证金,合约假定Alice之外的所有仓位都在她之前被清算。
清算作为一种激励 游戏
在普通的加密货币交易中,交易所等中心化管理机构需要确保所有未平仓的仓位都有足够的抵押品,并负责清算所有可能失去贷款人资金的仓位。链上联合曲线合约并没有真正拥有这种特权。相反,我们打开forceLiquidation函数的调用,把它开放给公众。任何人都可以响应清算事件并获得一个固定比例的Token激励,在清算仓位所有者的清算费用中拿出一部分作为响应者的佣金返还。这类似于MakerDAO的清算方案。
可能的攻击方式和解决方案
最后让我们讨论一些人们预期中的潜在攻击方向,以及我们针对这些攻击的观点和回应。
攻击者做空整个Token供应:当这种情况发生时,社区中没有人可以出售他们的Token,因为供应量直接降至零。乍一看这可能有问题。但是,将供应量降至零会使购买新代币非常便宜。发现Token价值被低估的人可以购买Token来改变供应关系和价格。所以攻击者将在这种攻击行动中稳赔。攻击者使联合曲线往上推进强制每个人清仓:这种攻击在传统交易所中已经成为可能(参见2017年以太坊闪电崩溃)。为了降低风险,做空者必须提供更多抵押品以确保其仓位不会轻易被清算。
结论
在本文中,我们探讨了一种实现思路,允许在联合曲线模型中做空Token。该设计不需要交易对手方,可以结合到任何联合曲线模型中以加速价格发现。我们还提出了一份智能合约,以表明其可行性。话虽如此,这仍然是一项正在进行的工作,我们感谢任何反馈或评论。请致电connect@bandprotocol.com联系我们!
(完)
原文:
https://medium.com/bandprotocol/short-selling-without-counterparty-using-bonding-curve-c499e35c3dc2
作者:Sorawit Suriyakarn
翻译:Wayne
来源: 橙皮书