编者按:本文来自IOSG,Odaily星球日报经授权转载。随着DeFi市场的兴起,整个DeFi世界的安全性也经历了严峻的考验,多起攻击事件接连发生,给DeFi用户和项目方造成了巨大的资产损失。在其背后不容忽视的真相,其实是对预言机进行攻击操控,造成内外价格差并从中套利。什么是预言机,受攻击的严重后果?
预言机并不是什么玄幻事物,它其实是区块链网络与互联网以及其它区块链网络等保持数据、信息沟通的“桥梁”。特别是在DeFi智能合约这类去中心化应用中,通过预言机,开发者可以调用包括行情价格在内的各种外部数据资源,让Dapp连通外部现实世界的数据环境。可能你会觉得,预言机可能只是一个单一的辅助件,仅能作为外部数据的引入作用,事实恰恰相反。预言机的喂价功能或数据源的可靠支撑只是非常早期的形态,长远来说,预言机将作为现实世界各类数据、信息、信用、资产等诸多要素的集大成者,它提供数据或信息的正确程度、技术实现的去中心化程度以及模块脚本的智能化程度,都将对未来的区块链世界和现实世界的连接产生重大影响。
毫无疑问,能够提供不可篡改、可靠数据的预言机必将成为DeFi发展的重要基石。在DeFi应用中,不论自身配置还是依赖第三方供应,通过预言机可获取各个市场的价格、汇率等重要信息。而对于去中心化交易所来说,获取准确可靠的价格数据意义更为重大。与中心化交易所不同,Dex行情数据的“孤岛化”倾向更为明显,如果不与外界行情保持实时联动,Dex中的自动化做市商资产池很可能会因为交易量、流动性等的剧烈变化而产生价差损失。因此,预言机几乎是所有DeFi协议的主要故障和攻击媒介。DeFiPulse上排名前十的协议中,有30%依赖于Chainlink,另外20%则以某种方式利用LINK令牌。如果Chainlink在某种程度上出现失误,那么DeFi的很大一部分生态就会崩溃。降低风险的解决方案
1、M-of-N报告者机制为了降低预言机风险,项目团队可以从几个预言机提供商获取价格和其它链外数据,然后使用中位数。如果其中一个预言机报价较其他项目偏离X%,则可以忽略不计,这将有可能防止一个预言机被攻击的情况。如今,很多大型项目都在使用这种方法:Maker运行一组由可信实体操作的喂价,Compound创建了OpenOracle,并有像Coinbase这样的预言机报价者,Chainlink聚合了来自Chainlink运营商的价格数据,并在链上公开了这些数据。如果你选择使用这些解决方案之一,那么你现在已经将信任委托给了第三方,而你的用户也必须这样做。2、时间加权平均价格协议可以使用TWAPs来减轻闪电贷攻击。以UniswapV2的TWAP为例,将区块末价格添加到核心合同中的单个累计价格变量中,该变量由该价格存在的时间加权。此变量代表整个合同历史中每秒的Uniswap价格总和。
外部合同可以使用此变量在任何时间间隔内跟踪准确的时间加权平均价格。这是通过在间隔的开始和结束时从ERC20令牌对中读取累计价格来完成的。然后可以将此累计价格中的差额除以时间间隔的长度,以创建该时间段的TWAP。
一般来说,对于长时间没有链拥堵的大型资产池,这种TWAP预言机对预言机操纵攻击具有很强的抵御能力。然而由于其实施的性质,它可能无法对市场剧烈波动的时刻做出足够快的反应,而且它只适用于具有链上流动性的代币资产。3、限制价格变动幅度另外,可以选择限制预言机价格在一定时间内的变动幅度。这可以在预言机价格被泄露和操纵的情况下增加安全性。但如果价格确实变动很大,而预言机报价没有变动,这可能导致严重的市场扭曲,从而严重威胁系统的偿付能力。4、增加交易最短延迟预言机攻击套利是一种对时间敏感的操作,因为套利者总是在观察,并希望有机会优化任何次优市场。如果攻击者想把风险降到最低,他们会想在单笔交易中完成操纵价格预言机所需的两笔交易,这样套利者就没有机会跳到中间。作为协议开发者,如果你的系统支持它,那么只需要在用户进入和退出系统之间实现一个最短的延迟就足够了。结语
作为区块链与「现实世界」的连接器,诸多需要与链外数据平台交互的去中心化应用都离不开预言机,如去中心化衍生品平台、借贷平台、稳定币、保险应用、预测市场等等。为了DeFi世界的整体安全,需要尽可能降低预言机受到攻击的风险。但在金融领域风险通常不能消除,只能转移——不同的机制设计,本质上是在市场不同参与者的利益之间做权衡。对于价格预言机本身,绝不应该是谋求便利找几个节点取中位数简单给链上喂价,而是必须通过合理的方式将价格数据在链上生成出来,就算成本再高、再难,这也几乎是唯一可行的正确逻辑。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。