为什么我们需要保证金制度?

目前为止,DeFi 期权最大的缺陷之一是发行期权的资本密集程度过高 —— 用户至少需要质押最大损失的 100% 作为保证金。

TradFi(传统金融)上的期权发行方和出售方只需质押远低于最大损失的资金作为保证金。这就是期权在 TradFi衍生品市场上属于杠杆头寸的主要原因之一。

对于我们在 Opyn 上推出的部分质押型期权产品,我们的目标是远远超越当前的 DeFi 期权质押标准。我们旨在确保保证金金额高于期权费(premium)(而非行权价)。因此,保证金在大多数情况下远低于最大损失。

控制期权费

但是,我们一定不能使用实时的期权费 —— 我们需要一些缓冲。为此,我们想要在决定期权费时将黑色星期四等危机情况考虑在内,从而避免立权者(期权卖方)放弃履行义务。

我们将这种最坏情况下的期权费称为 “冲击” 期权费。冲击期权费就是保证金的下限(我们不想再放宽下限,因为这会变得不安全)。

要做到这点很难,因为与传统的期权保证金模型不同,我们假设链上没有可靠的期权费信息输入机制(如果我们假设链上存在期权价格输入机制,我们的系统会变得没那么健壮,但是保证金效率更高)。

我们仅仅假设链上存在标的资产的价格播报机制。这个假设更好,因为期权价格相比标的资产价格容易操控得多。

不同于 Compound 和 Maker之类的保证金借贷交易,我们必须提防对两个变量的冲击—— 标的资产的价格和隐含波动率(implied volatility,IV),因为这两个变量都会在危机发生时骤增,而且会对立权者不利。

示例

接下来,让我们通过一则看跌期权的例子说明 Opyn 的新型期权保证金制度的原理。这是一个具有代表性的例子,因为我们发现每周平价期权非常流行:

-标的资产:ETH;行权价格:2000 美元;ETH当前价格2050 美元;到期时间:7 天后;期权费:115美元;如果隐含波动率飙升到250% 且ETH 价格下跌 25%,期权费将是:540 美元-

因此,我们必须确保我们的保证金要求高于 540 美元,以防黑色星期四等事件再次发生时立权者放弃履行义务。

由上图可见,相比 Reg T (法规 T)的 4.6倍资本效率,Opyn 可以提供 3.0 至 3.6 倍的资本效率。

Opyn 甚至可以提供高于 3.6 倍的资本效率,但是这有可能带来系统风险。密码学货币比股票刺激多了,匪夷所思的事情时有发生。因此,我们在保证金要求上必须更加保守!我们想要确保黑色星期四再次发生时,让立权者不会进入清算区间,且看跌期权的价格在清算执行前回弹。

原理

看跌期权的保证金可以通过以下公式计算得出:

margin(Strike, ETH price, t) = P(t) * min(Strike, (1-SpotShock)SpotPrice)+ max(Strike — (1-SpotShock) SpotPrice, 0)

我们给出的看跌期权例子:

margin(2000, 2050, 7 days) = .14 * min(2000, (1–0.25)*2050)+ max(2000 — (0.75 * 2050), 0) = $677.80

这里,t 指的是到期时间,P(t) 是不同到期日的平价期权(ATM option,行权价恰好跟当前市场的现货价格齐平的期权)的冲击值的映射,SpotShock是我们预期标的资产在清算发生前的价格变化幅度。

高级数学直觉

我们的目标是,当遇到黑色星期四之类用户需要立即抛售资产且价格剧烈波动的情况时,我们的保证金依然高于我们的期权费。从长远来看,治理可以决定用户接受的冲击隐含波动率和冲击抛售。

P(t) 或许是最重要的部分,因为它将到期时间映射成在冲击波动率下对应平价期权的期权费。由于查询所需的 gas成本很低,我们可以添加一些键值对来代表平价期权的到期剩余天数和对应的冲击期权费(在本例中指的是 7天)。这是我们考虑过的众多解决方案中的首选。

这个等式的其余部分利用期权的凸性(convexity property,债权的价格与其收益率之间的关系),在平价期权价格和对应行权价之间进行线性插值。也就是说,由于期权价格相对标的资产价格是凸的,我们可以在价格曲线上的任意两点之间画一条线,这条线总是位于价格曲线之上。我们在平价时的期权费和 ETH价格为零时的期权费(基本上就是看跌期权的行权价)之间画一条线。

请注意,我们的近似值不仅计算效率高,而且非常接近不同期权的实际期权费:

-上图反映了当行权价为100美元时,不同的现货价格对保证金要求的影响。如上图所示,如果现货价格高于期权行权价 25%,所需保证金金额陡增 -

-上图反映了当行权价为 100 美元时,不同的现货价格对保证金要求的影响。如上图所示,如果现货价格高于期权行权价 25%,所需保证金金额陡增 -

未来几周内,我们将发布一篇文章来深入详细介绍部分质押型期权背后的数学理论。

如何维护保证金系统的安全性?清算

别忘了,保证金必须超过期权的价值,再加上一些缓冲。例如,价值 7 美元的期权可能需要高达 65 美元的保证金。

如果保证金的价值保持在 70 美元以上,金库就是安全的。但是,如果保证金低于 65 美元,该金库进入清算区间;如果保证金价值低于 7美元,该金库进入资不抵债区间。

在清算区间,金库中的保证金高于用户的债务(用户所创建的期权的价值)。在这种情况下,我们可以为理性清算者提供足够多的质押物,激励他们代表用户销毁期权,从而关闭金库。

这一过程是如何发生的?

在 Opyn 1.0,我们采用的是类似 Compound 的清算机制,但是这对于期权产品来说惩罚力度太大。这是因为上述设计对最低质押金额的要求可能是质押物价值的数倍。因此,如果我们只要求清算者通过销毁期权来换取质押物,清算者就可以从中赚取巨额利润。虽然这对清算者很有利,但是对于想要出售期权的普通用户来说太残忍了。

因此,我们必须引入某种由市场决定的价格发现机制来进行金库清算。

我们可以将流动 AMM 作为价格发现工具,但是这意味着期权也需要将流动 AMM 作为价格发现工具 —— 这个问题还没有得到解决!

因此,针对我们的期权产品,我们提议的价格发现机制是拍卖,灵感来自 Yield Protocol。

受 Yield 启发的逆向荷兰式拍卖

协议拍卖可清算金库的质押物来换取该金库中所有已卖出的裸期权。随着时间的推移,协议会拍卖越来越多的质押物。就像 Yield一样,“金库中的质押物可供全部或部分购买”,(如果是部分购买)只要 “剩余质押物超过Liquidations.DUST 即可”。

Opyn 的例子(为便于理解,加入了数据):

假设某个金库已售出 100 手期权,且每手期权需要 10 美元的保证金,但是每手期权价值 5 美元,因此总共价值 500美元的期权需要 1000 美元的保证金。但是,金库中只有 700美元的质押物,处于清算区间。

系统发现了这个金库,并试图使用金库中的部分质押物来购买该金库所创建的期权。

系统会怎么做呢?首先,它会为这 100 手期权出一个很低的价格,比方说价值 10 美元或 0.1 美元的质押物。没人会执行该交易。

过了一会儿,Opyn 的出价达到 100 美元。没人会执行该交易。出价是逐区块递增的。

又过了一会儿,Opyn 的出价提高到了 550美元。这时,可能会有清算者执行交易,如果没有的话,等到 Opyn 将出价提高到 600 美元以上时,肯定能达成交易(假设 gas 费低于100美元)。

如此一来,Opyn 就可以在不知道期权价格的情况下以较为公平的价格完成清算!这都要归功于它将拍卖作为价格发现机制。

虚拟拍卖

我们在 Yield 协议上的改进有一点反直觉 ——我们实际上可以在链上启动虚拟清算,却不执行任何交易。

到目前为止,基于拍卖的清算必须由用户启动 —— 参考 Maker 的 “bite(触发清算)” 。然而,启动清算的人通常是仁慈的用户,尤其在出现暴跌行情且 gas 价格上涨时需要调用该交易。

这种方式之所以可行,是因为使用了信息输入机制来提供标的资产的可靠历史价格。我们的清算系统具有确定性,也就是说,在任何一个区块,价格输入机制都会提供每个金库的标的资产的清算价格,而且清算价格都是可知且可计算得到的。

因此,我们能做的是,确保在任何一个区块,一旦标的资产触及清算价格,“虚拟拍卖” 就会启动。然而,合约不会意识到它们正处于拍卖状态 —— 它们需要事后被告知自己之前处于拍卖状态。

这一运作方式(假设我们正在进行一场 oToken 的虚拟逆向荷兰式拍卖)以及清算方式规定了,每当一个新的区块添加到链上,协议给 oToken 的出价就会增加 5 美元。

假设 ETH 的价格在区块 A 时是 1500 美元,导致某个金库进入清算区间。虚拟拍卖就会启动 —— 具体流程是,假设当前区块是区块 A + 10(即,自区块 A 之后又有 10 个新区块被添加到链上),如果有用户利用信息输入机制提供的相关历史价格来证明该金库在区块 A 时进入清算区间,就能以 50 的价格卖出 oToken。从这个角度来看,协议即处于拍卖状态,自标的资产触及清算价格以来,每新增一个区块,协议就会将报价提高 5 美元,无需通过任何交易来正式启动拍卖。

历史价格可以由 Chainlink 的 roundId、Uniswap 的历史 TWAP 或其它信息输入机制解决方案提供。我们的系统只需要确认信息输入机制提供的价格的时间戳,并确保它处于拍卖期即可。我们提议最初的实现利用 Chainlink 定价合约,该合约接受特定资产的 roundId。Chainlink 合约可以用来查询相关价格和时间戳。

用户可以往金库内补充质押物,或支付 gas 费来查看金库的质押率并更新金库上的时间戳来证明该金库没有低于质押率阈值。即使虚拟拍卖开始后,用户也能这么做,只要金库没有(部分或全部)清算即可。金库的时间戳起到了清算检查的作用,任何清算使用的喂价所附带的时间戳必须在上一次金库更新/质押率检查的时间戳之后。这样做的好处是,可以让用户在拍卖开始时迅速行动,保护自己的金库。同时还可以防止片刻低于质押率阈值的金库被清算。

Maker 1.0 清算机制的问题:质押物的荷兰式拍卖

想象一下,我们质押 1ETH(价值 1500美元)创建了一个金库,生成了 1000DAI。假设 ETH 的价格跌至1300美元,这个金库因质押率低于 150% 的阈值而遭到清算。

Maker 系统想要关闭这个金库。为了销毁 DAI 以清偿金库的 1000DAI 债务,系统会通过拍卖让清算者用 DAI 竞拍质押物。如果拍卖需偿还的 DAI 债务达到100%,就会转而对质押物进行逆向荷兰式拍卖,即,清算者为自己愿意偿还的 DAI 债务报出自己愿意接受的质押物数量,要求质押物数量最低者胜出。如果第一次拍卖没有收到高于全部 Dai 债务的报价,金库中的所有质押物由最高出价者得。

如果遇到失活问题,且用户(由于 gas 费等原因)无法在区块链上敲定其清算交易,可能会严重影响系统的健康。就像

黑色星期四

那样,由于链上清算延迟,清算者只花 0 DAI就拍下了价值 832 万美元的质押物。

结果导致,系统丢失了大量质押物,其 DAI 债务却丝毫没有减少。这种清算本身对系统健康的伤害性极强,如果没有发生过这些清算,Maker 系统会更加健康。

Opyn 提议的机制:oToken 的逆向荷兰式拍卖

如果是 Opyn 2.0 出现失活问题,导致用户无法在区块链上敲定交易,我们不希望发生不健康的清算 —— 与其发生上文所述的那种清算,我们宁可不要有清算发生。

这就是我们选择逆向荷兰式拍卖的原因,与 Yield 协议中的拍卖机制高度相似,但是做了一些调整。

在 Opyn 协议下,金库将为 oToken 债务出价,最开始先拿出少量质押物来交换全部 oToken 债务。如果没人接受该报价,就会拿出更多质押物来交换,直到拿出所有质押物为止。

如果金库拿出了所有质押物还是没人愿意帮着偿还债务,我们就可以认为金库已经无偿债能力,或者系统出现活性问题。

Opyn 的保证金系统由 Zubin Koticha、Andrew Leone 和 Apoorva Koticha 设计。