原文标题:《Bancor V2「无常损失」之辩》
原文来源:蓝狐笔记
之前蓝狐笔记提到 Bancor V2 试图解决「无常损失」的问题,但并没有披露细节,前几天 Bancor 进一步披露了部分细节,主要如下图:
(Source:Bancor)
从图中可以看出其核心有两个:一是预言机提供最新价格;二是根据预言机价格更新代币池比重,也就是动态池的模式。
1. 假设初始池为 10ETH-1000BNT,其中假设 ETH 市场价格为 100 美元,ETH 在代币池中的价格也是 100 美元,BNT 市场价格为 1 美元,代币池价格也是 1 美元。也就是,假设 ETH 和 BNT 的市场价格和代币池价格一致,那么,ETH-BNT 池是 2000 美元流动性的代币池,且不存在套利空间。
2.ETH 市场价格上涨。假设 ETH 市场价格涨至 120 美元,ETH 代币池价格为 100 美元,BNT 市场价格为 1 美元,代币池价格也是 1 美元。也就是,ETH 市场价格上涨了 20 美元,那么,这个时候,就存在了套利空间。整个流动性池的实际价值为 2200 美元,而不是 2000 美元。
3. 为了防止流动性提供商产生损失,Bancor V2 通过获取预言机价格,并升级代币池比重。怎么升级?在获取预言机提供的市场价格之后,ETH 的池价格也升至 120 美元,那么,这个时候 10ETH 的代币池价值为 1200 美元,1000BNT 为 1000 美元,整个代币池价值为 2200 美元,跟市场价值趋于一致。而更新之后,10ETH 的占据代币池的 54.5% 的比例,而 BNT 占据 44.5% 的比例。通过这样的调整,作为流动性提供商,就不会因为 ETH 上涨产生「无常损失」。关于什么是无常损失,可以参考蓝狐笔记之前的文章《Bancor 有机会超越 Uniswap 吗?》
那么,这是相对比较粗线条的描述。具体来说,会有什么问题?
对此,Balancer 的 CEO Fernando 提出了不同的看法:动态代币池的概念很有意思,其核心是实现代币池价格和链上预言机价格的一致,不过,可能会存在预言机价格延迟的问题。当 ETH 市场价格上涨至 120 美元,这会导致交易者立即套利并将价格推至 120 美元。预言机价格依然滞后在 100 美元。这会导致将价格重新变为 100 美元,这会产生第二次交易者套利机会,直到预言价格提供跟市场一致的价格为止。这样的结果是:任何预言机喂价和真实市场价格之间的偏差,都会导致代币池中一个代币被消耗光。传统的 AMM 没有价格预言机概念,它通过市场感知来管理,所以在市场价格和池价格之间没有偏差。因此除了同步至新的市场价格之外,没有其他价值可以从池中「抽取」。这些被抽取的价格,也就是所谓的「无常损失」。这是 AMM 固有的部分。
对此,Bancor 的 Nate Hindman 作出了回应:
Nate Hindman 认为 Fernando 作出了错误的假设。首先,Bancor V2 的动态权重并不会根据交易调整比例。因此,一旦发生预言机价格延迟问题(预言机的喂价跟市场价格不一致时),会存在即时套利机会,但权重此时不会调整。只有当预言机价格更新时,才会调整权重,以创造新的套利激励,重新平衡价格。因此不存在二次套利的机会。
总言之,Bancor V2 代币池只根据预言机价格更新调整代币池比重;如果代币池价格跟预言机一致,就不会调整比重;如果 ETH 市场平均价格上涨至 120 美元,交易者将价格 ETH 推至 120 美元,当预言机价格更新,ETH 的代币池价格已经是 120 美元,不会存在套利机会。此外,在第二步和第三步之间,确实存在一定的套利机会。不过预言机价格更新,导致代币池比重变化,且每个池都有两个池代币的事实可以阻止无常损失。
从双方的争议看,Bancor V2 依然存在套利机会,这是不可避免的,不过由于引入了预言机价格来调整代币池的比重,它确实也在一定程度上可以防止无常损失。