DeFi 世界的演化速度是飞快的。如果之前你认为 DeFi 还只是笨拙的模仿现实世界里的金融,那么今天这篇文章可能会让改变你的想法。它提出了一种基于联合曲线模型的优化方案,可以实现没有交易对手方的做空功能。我相信机器和代码的结合会慢慢让我们看到另一种可能,而这是之前的传统金融业所无法想象的。金融的迭代将以另一种速度发展下去。

文章篇幅较长,如果不想深入探讨或时间有限,可以看以下总结(TLDR):我们提出了一种优化联合曲线的方法,以便在没有交易对手存在的情况下,直接使用联合曲线模型进行无需信任的、完全抵押的做空。这种“可做空的联合曲线模型”的智能合约,具体代码可在 github 上查看。

原文标题:《没有交易对手也能做空垃圾币?DeFi 真的越来越有趣了》
原文作者:Sorawit Suriyakarn
翻译:Wayne

联合曲线模型允许发现 Token 价格的动态变化,并且通过社区 Token 价格的上涨来激励早期购买者。在传统的联合曲线设置中,当有人发现 Token 价值被低估时,他们可以在联合曲线上购买 Token,然后以更高的价格出售。然而,当 Token 的价值被高估时,没有直接的方法来向社区释放利空并赚取利润(类似于常规市场中的做空)。在本文中,我们将通过改进智能合约来探索解决此问题的方法,以便自然地支持做空功能。

一、什么是联合曲线模型

联合曲线模型简介:简单地理解,这就是一种智能合约。当你往这个合约里面转入资金时(通常是 eth),智能合约会自动生成一个 token。当你往里面转入 token 时,智能合约又会自动赎回资金,并减少支持债券发行的总资产。那 token 的价格怎么确定呢?token 价格完全通过合约事先设置好的算法自动计算,该价格适用于所有用户。

更详细的介绍可以参见这两篇文章:《什么是联合曲线模型》《用「传销」的方法做慈善:联合曲线在慈善捐赠中的应用

二、做空简介

2.1 传统市场的做空

在传统市场中如果你确信某项资产价格过高,你会怎么做?很简单,你可以做空该项资产,并希望将来以较低的价格回购,从而获得利润。本质上,你从交易所或证券经纪人借入和出售资产,他们确保你始终能够回购资产,或强制清仓。

2.2 去中心化市场的做空

传统市场需要值得信赖的组织机构,以便你可以向第三方借入或借出资产而不必担心欺诈。区块链世界中并不存在这种担忧。像 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,000ETH。社区已将 marginCall 门槛设定为 80%(参见清算持仓 / 头寸小节)。

3.1 运用联合曲线模型直接做空

没有对手也能做空?DeFi 的世界里没有不可能

Alice 认为 COMM 价格被高估,并且推测其价格会下跌。她为 15 COMM 发送了一个 shortSell 命令,并将 10,000ETH 作为抵押。此时,智能合约将 Token 供应调整为 85,并为 Alice 建立了 15 个 COMM 的仓位,有效抵押品为:13,875 (从卖出 15 个 Token 收到的 ETH,计算方式为:抵押品 c(100)-c(85)= 5_100^2 - 5_85^2 = 13,875)+ 10,000 (额外抵押品)= 23,875 ETH。

没有对手也能做空?DeFi 的世界里没有不可能

3.2 平仓

过了一段时间,社区的兴趣确实下降了,其他人在此期间卖出了 30 个社区代币。社区 Token 供应因此减少到 55。此时,Alice 调用 closePosition 回购做空的 Token 并获得:23,875 - 9,375 = 14,500 ETH。这相当于 4,500ETH 的净利润!

没有对手也能做空?DeFi 的世界里没有不可能

请注意,如果供应量向上移动,Alice 也可以选择平仓,但她赎回的 ETH 将少于 10,000 ETH。在这种情况下,她不会获利。

3.3 清仓

假设即使供应量超过 103.92 时,Alice 也拒绝平仓。那时,回购 15 COMM 的成本将是 C (118.92) -C (103.92)≈16713,这大于 Alice 的总抵押品的 70%。为了防止社区因清仓导致 ETH 价值下跌而失去抵押品的风险,智能合约将强制清仓并将在赎回时返还给 Alice 总共 23,875ETH 减去购回 15 COMM 的成本的 ETH。

四、实施细节

ShortableBondingCurve (可做空的联合曲线模型)的智能合约,源代码可以在这里看到:

https://github.com/bandprotocol/contracts/blob/c24c06ed70e61124ac5a898302b71b844ece63f0/contracts/bonding-curve/ShortableBondingCurve.sol

接下来,我们将介绍一些重要的技术实现细节及其背后的理论依据。

4.1 联合曲线模型中“当前供应量”的概念

传统的联合曲线只有一个 Token 供应量的概念。然而,在这个可做空的模型中,联合曲线供应量的概念并不直接与 Token 的实际总供应量等同。相反,当前有效的联合曲线供应量必须减去此时做空的 Token 总量。

没有对手也能做空?DeFi 的世界里没有不可能

4.2 留意可能出现的最坏的清算状况

简单的实施情况下,可以使用联合曲线的供应点来确定清算点。

如果一次只存在一个做空单,这不是问题。但是在有多个建仓的情况下,多次清算事件可能导致抵押品不足以弥补所有损失。

要解决此问题,确定清算点的供应点应该是当前供应加上所有未完成的做空的 Token。换句话说,为了检查 Alice 的仓位是否有足够的保证金,合约假定 Alice 之外的所有仓位都在她之前被清算。

没有对手也能做空?DeFi 的世界里没有不可能

4.3 清算作为一种激励游戏

在普通的加密货币交易中,交易所等中心化管理机构需要确保所有未平仓的仓位都有足够的抵押品,并负责清算所有可能失去贷款人资金的仓位。链上联合曲线合约并没有真正拥有这种特权。相反,我们打开 forceLiquidation 函数的调用,把它开放给公众。任何人都可以响应清算事件并获得一个固定比例的 Token 激励,在清算仓位所有者的清算费用中拿出一部分作为响应者的佣金返还。这类似于 MakerDAO 的清算方案。

4.4 可能的攻击方式和解决方案

最后让我们讨论一些人们预期中的潜在攻击方向,以及我们针对这些攻击的观点和回应。

1、攻击者做空整个 Token 供应:

当这种情况发生时,社区中没有人可以出售他们的 Token,因为供应量直接降至零。乍一看这可能有问题。但是,将供应量降至零会使购买新代币非常便宜。发现 Token 价值被低估的人可以购买 Token 来改变供应关系和价格。所以攻击者将在这种攻击行动中稳赔。

2、攻击者使联合曲线往上推进强制每个人清仓:

这种攻击在传统交易所中已经成为可能(参见 2017 年以太坊闪电崩溃)。为了降低风险,做空者必须提供更多抵押品以确保其仓位不会轻易被清算。

五、结论

在本文中,我们探讨了一种实现思路,允许在联合曲线模型中做空 Token。该设计不需要交易对手方,可以结合到任何联合曲线模型中以加速价格发现。我们还提出了一份智能合约,以表明其可行性。

来源链接:medium.com