Solana上的DeFi平台Mango昨日因为机制问题,遭受超过1亿美元的资产损失,至今尚未提出可行的解决办法。对此事件,FTX创办人SBF在Twitter上解释Mango遇到的问题,并以FTX为例,给出可行的预防措施。
SBF谈Mango遭遇的问题
SBF在贴文开头先浅谈了Mango的保证金机制及预言机问题,其假设有个保证金交易协议的演算法为:初始保证金率30%,维持保证金率20%,并利用以下案例进行说明:
根据预言机,XYZ代币的价格为0.4美元,用户Alice拥有5亿枚XYZ(价值2亿美元),并借出2,500万美元。
Alice账户净值:1.75亿美元、保证金率:87.5%(1.75/2)。
若想维持保证金率在30%以上,则Alice仅能再借出1.15亿美元。此情况下,Alice账户情形则为拥有5亿枚XYZ(价值2亿美元),并借出1.4亿美元。
Alice账户净值:6,000万美元、保证金率:30%(0.6/2)。
SBF表示这便是Mango预言机遇到的状况,明显地XYZ就是MNGO,尽管市场上真的有人购买了足量的MNGO使其价格短暂达到0.4美元,但其实际价值仅约为0.04美元。
然而在此情况下,Alice却能额外借出巨额资产。而在MNGO价格因卖压回落后,尽管Alice保证金率迅速跌至0%以下,但协议的资产早已大量流出。
在此事件中,SBF表示问题不全然出自于预言机,因为预言机的确有精准的提供MNGO当前价格,只是此价格与公允价格相差甚远。
如何避免此问题
SBF以FTX为例,为了避免类似情形发生,其使用指数加权移动平均(EWMA)价格带,来限制价格在5分钟内有超过20%的波动。
原因如下:
如果一项资产的价格在1分钟内移动了3倍,那么它很可能是来自错误数据,或只是短暂的波动。
如果资产的价格能够维持5小时,那么这个新的价格有可能为真实的经济价格。
因此MNGO价格大幅上涨时,FTX上的价格并没有上涨如此剧烈(高点约为0.07美元)。
另外,FTX还使用了IMF(Initial Margin Fraction)因子来增加安全性,当用户的仓位越大时,会要求越高的保证金率。
以MNGO代币来说,其保证金率的计算公式为:0.00025*MNGO枚数的平方根。若想要开启5亿枚MNGO的仓位,FTX会要求500%的保证金率。
原因在于当仓位越大时,会对市场带来越大影响,尤其在流动性不足的资产。
预言机到底有无出错
最后,SBF重新谈及预言机的价格问题,到底0.4美元的MNGO算不算是出错?
SBF表示,从字面上来看预言机仅告诉了实际的交易价格,在某些交易所也的确也有相应的交易发生,但这里的真正问题在于,是否直接使用预言机的价格信息。
「预言机告诉了你一切但其实也什么都没有告诉你。」SBF说道。
虽然预言机反应了过去及当前的市场信息,但是如何使用这些讯息是风控系统的工作。应该要为其建立一套规则,使其更加谨慎,并在价格剧烈变化时妥善处理问题。