预言机 解读 | Compound 遭受价格预言机操纵攻击事件始末

NestFans_Zhiyu · 2020年12月05日 · 318 次阅读
本帖已被设为精华帖!

撰文 | 区块链金融分析师.Matlif

出品 | NEST爱好者(nestfans.com)已获作者授权发布

11 月 26 日下午 Coinbase 交易所稳定币 DAI 价格出现剧烈波动,一度暴涨超 30% 至 1.34 美元(图1),后又快速回落,这导致使用 Coinbase 作为预言机喂价信息的去中心化借贷平台 Compound 的抵押资产出现了大规模清算。

图1 :Coinbase 交易所 DAI/USD 交易对价格,数据来源 Coinbase

Debank 数据显示,有价值高达 87837568 美元的加密资产被系统强制清算(图2)。

11 月 26 日 Compound 抵押资产大规模被清算。

图2 数据来源:Dune Analytic

Compound 是目前 DeFi 市场上主流的以太坊借贷平台之一,成立于 2018 年 9 月。

Debank 数据显示,截止 2020 年 11 月 30 日 11 点,平台总锁仓的加密资产高达 16 亿美元。借款总量 16.26 亿美元,在抵押借贷平台中排名第一(图3)。

抵押借贷平台借款总量排名

图3 数据来源:Debank

Compound 内不同币种的抵押率最低要求各不相同,DAI 一般是 75%。DAI 价格的大幅波动导致平时看起来比较安全的抵押率(债务价值/抵押资产价值)出现了大幅波动,因此触发了清算线。

举个例子来计算,如果某用户使用 300 UDST 贷出了 210 DAI,若 DAI 和 USDT 的价格均能稳定在 1 美元左右,其抵押率是 70%,当 DAI 涨至 1.34 美元,借款价值大增而抵押资产价值不变,此时的抵押率将升至约 93.8%,远大于抵押率最低要求,导致清算发生。

而本次 Compound 预言机攻击事件并非近期首起针对报价系统进行的攻击,Harvest Finance、Value DeFi、Cheese Bank、Origin Protocol 等近期都先后遭到类似预言机的攻击,MakerDAO 和 Aave 历史上也都因此发生过大规模清算。

操控预言机所依赖的信息源进行短时间的价格操纵以达成误导链上价格是典型的预言机攻击,其本质是对预言机进行操控,造成内外价格差并利用闪电贷等新型金融工具从中套利。

Compound 需要预言机的价格来确定借贷能力和抵押要求,以及用于需要计算帐户价值的所有功能。Compound 白皮书中提到将所谓的预言机功能委托给了一个委员会,该委员会从前十大交易所中汇总价格,现实情况是 Compound 使用的 DAI 价格数据只依赖 Coinbase 这个中心化的交易所来提供,其预言机取价数据来源中心化且单一,而中心化的来源则很容易被伪造、篡改、修改或隐藏信息。

使用中心化预言机的主要弊端具体分析有以下 3 点:

1)可靠性差,容易被攻击,中心化预言机有单点故障和单点攻击的问题;

2)用户需要信任中心化平台或者第三方独立机构,这违背了区块链的去信任、去中心化的基本原则:

3)单平台和第三方机构掌握所有用户 Query 数据的信息,无法保证用户的隐私。

去中心化预言机拯救 DeFi 生态:NEST Protocol

Compound 是典型的 DeFi 项目,是去中心化的,一个去中心化的借贷平台一直采用的是一个自建的中心化预言机,这是很矛盾的。所以我认为使用符合区块链本质的去中心化的预言机服务是避免这类事件的最佳解决方案。

预言机是一个能够将数据从链下世界以某种符合区块链共识机制的方式带到区块链上的基础设施。DeFi 对链下信息的需求很大,其发展离不了真正去中心化验证的价格预言机。

现在市场上去中心化预言机项目并不多,最具代表性的有:Chainlink、NEST Protocol、Band Protocol 等,(图4) 综合分析了各预言机方案的优劣势,我们认为 NEST 预言机是现在唯一一个经过证明的可以被DeFi使用的预言机,可参读《为什么 NEST 是唯一可用于 DeFi 的预言机》。

图4:当前主要预言机项目对比分析

Chainlink、NEST Protocol、Band Protocol 和 Tellor。这四个预言机遵从不同的设计原则,并拥有不同的去中心化程度,可参读文章《Chainlink、NEST、MakerDao 预言机全方位综合对比》:https://www.jinse.com/blockchain/602096.html

其中 NEST Protocol 采用了一种全新的激励方法来进行去中心化数据上链过程,矿工通过质押报价交易对资产的方法进行双边报价。例如,同时质押 30 个 ETH 和 17400 个 USDT 意味着该矿工对 ETH 的报价为 580 USDT/ETH。当报价不正确时,套利者可以在 25 个区块内(约 5 分钟),对报价矿工质押的任意一边通证进行买入,从而进行价格修正。若在 25 个区块内,报价未被挑战,则意味着该报价无法被套利;该报价将被 NEST Protocol 下游 DeFi 协议所调用(图5)。在其它预言机中并无类似的验证过程,因此,其它预言机无法保证其价格数据不被市场套利。

图5:NEST 预言机的套利机制使得报价处于一个可计算的范围内

NEST Protocol 的验证机制使得恶意报价难以生效。若攻击者在 NEST Protocol 进行恶意报价,便会暴露给市场很大的套利空间。有关 NEST 预言机的抗攻击性机制和攻击成本的计算,可参考 NEST Protocol 中文白皮书: https://nestprotocol.org/doc/zhnestwhitepaper.pdf

可以理解为,NEST 预言机系统是将经过全市场验证后的价格数据在链上生成出来,利用验证者与报价矿工之间的博弈,来惩罚犯错误的报价矿工,使得错误数据不会被 NEST 预言机系统收录。而其他预言机将链下价格数据 “上传” 到链上,无论数据错误与否,调用者无法验证。他们是先使用,后验证。如果出了错,用户资产受到损失再进行追溯和惩罚。而 NEST 是直接杜绝错误数据被采用,这是 NEST 预言机与其他预言机的本质区别。DeFi 开发者:如何调用 NEST 预言机价格数据

分析总结:

目前的 DeFi 协议实质上是传统金融的区块链化。这里有一个“滑稽”的事实:当前的大多数 DeFi 开发者们并没有使用符合区块链原则的方式去开发,而是用互联网的方式去改造,这与区块链精神背道而驰。我看到了一些 DeFi 开发者一味的妥协和折中,舍本逐末,越走越偏。

DeFi 开发者们还需要认清一点,若想在区块链世界里构建一个庞大的金融帝国,必须要先解决价格预言机问题。对于价格预言机本身,必须要做到,通过符合区块链共识机制的方式将价格数据在链上生成出来,就算成本再高、再难,这也是唯一可行的正确逻辑;而不是谋求便利找几个节点取个中位数简单的给链上喂价。金融是非常严谨的一门学科,行业亟需金融专业选手与开发者一起构建符合区块链本质的专业金融产品。

共收到 0 条回复
NestFans_Zhiyu 将本帖设为了精华贴 12月19日 16:19
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册