原文:《一文读懂市场操纵和预言机操纵的区别》
作者:Chainlink
区块链预言机的安全性对于Web3来说至关重要,安全的预言机催生出了一系列丰富的去中心化应用,大幅降低了对手方风险并实现了流畅的价值交换。在为DeFi应用接入金融市场数据时,开发者不仅要确保预言机在安全性、防篡改性和激励机制方面无懈可击,还要考虑到预言机所连接市场的质量及其抵御攻击的能力。
本文将讨论市场操纵和预言机操纵的区别,Chainlink Price Feeds如何全面覆盖资产的市场价格,以及开发者如何提高应用的安全性。
市场操纵指通过改变供需平衡来人为操纵资产价格。这是由攻击者故意发起的行为,通常目的是从其他交易者身上获利。
低流动性的资产更有可能被操纵
攻击者操纵价格的能力取决于资产本身的流动性。流动性指在不影响资产价格的前提下交易资产的难易程度。资产的流动性越高,操纵其价格就需要动用越多资金。相反,资产流动性越低,操纵价格的成本也就越低。因此,流动性低的资产更容易导致市场操纵,因此也会为相关金融产品带来更大的风险。
资产的流动性取决于其交易量、交易深度和交易市场。下面我们来说说每个指标的定义及其重要性:
需要防范的市场操纵行为
有很多种方式来操纵市场,以下是部分操纵传统金融和DeFi市场的方法:
这些策略可以操纵一小撮市场的价格,也可以操纵整个市场的价格。相比操纵整个市场的价格而言,操纵一小撮市场的成本更低。不过这类局部操纵攻击也更容易抵御,而且获利也更小。
DeFi协议的市场操纵风险
在过去几年中,市场操纵行为导致DeFi以各种方式损失了大量价值。即使DeFi协议集成的喂价预言机正常运行,如果预言机接入的市场被操纵,协议仍然存在风险。
存在市场操纵风险的DeFi平台有:
自动化的资产管理——交易算法基于错误价格可能造成投资损失。
预言机为区块链和智能合约输入数字资产价格、体育比赛结果以及天气数据等外部数据。
预言机操纵行为会导致预言机报告关于外部事件或真实世界的错误数据。这可能是预言机有意发起攻击或不小心犯错,也可能是预言机的数据源头出问题。
由于错误报告导致预言机操纵
错误报告指预言机上传的喂价与真实喂价存在偏差。无论是预言机有意还是无意导致了错误报告,都会给接入预言机的协议带来操纵风险。
比如,假设某一资产的真实市场价格是100美元,但是预言机上报的价格是50美元。这可能导致接入预言机喂价的借贷平台错误触发清算。即使建立了清算引擎,还是会由于预言机上传了错误的资产价格而错误清算。
由于市场覆盖广度不够而导致的预言机操纵
市场覆盖广度不够可能导致预言机错误报告资产价格。如果预言机只覆盖少数交易市场,就更有可能被操纵,因为攻击者可以在不影响整体市场价格的情况下操纵这几个交易市场的价格。
比如,假设某个资产在5家交易平台上交易,85%的交易量都发生在其中两家平台,那么如果预言机覆盖的是另外三家流动性较低的平台,就说明覆盖广度不够。如果攻击者操纵这三家低流动性交易平台上的价格,预言机报告的价格就会与实际价格出现偏差,并导致操纵风险。
预言机如果接入低流动性交易平台的数据,可能会导致预言机操纵风险
安全性极高的预言机
提高预言机设计的安全性可以有效消除预言机的操纵风险。预言机的安全性包含以下几个环节:1)从所有交易环境获取喂价,以实现覆盖广度;2)通过去中心化防止外部方篡改数据,消除单点故障;3)建立经济激励机制来保障预言机报告的准确性。
预言机如果没有建立这些防御机制和经济激励机制,就很有可能错报资产价格。安全的预言机可以抵御操纵攻击并报告准确的市场价格。
预言机建立了合理的机制,保障数据质量和传输过程的可靠性,并防止被操控
DeFi协议的预言机操纵风险
货币市场、期权市场、合成资产、算法stablecoin和自动化资产管理等DeFi协议一旦出现预言机操纵,会造成一系列负面后果,比如stablecoin脱锚、恶意套利交易、强制清算以及协议流动性枯竭。虽然预言机操纵的风险与市场操纵的风险差不多,但是这两类行为的根源是不同的。
市场操纵和预言机操纵都是通过操纵喂价来使其偏离真实的市场供需情况。虽然这两种行为的风险很类似,但是形成机制却大相径庭。
市场操纵改变的是资产价格,而预言机操纵是将错误或无效的喂价上传到链上,这些喂价并不反应资产的真实价格。由于乍一看都是资产价格失真而导致的资金损失,因此这两个问题一直以来都被混为一谈。
市场操纵的本质是改变资产的底层供需关系,以至其价格偏离正常水平。在正常情况下,预言机会基于实际情况真实地上报资产价格。如果资产的全市场价格被操纵,那么预言机仍然会上报这个价格——这也是预言机本来的用途。
当预言机被操纵,市场价格仍反应真实的供需关系,但预言机会有意或无意地错报价格。
故障点示例
基于真实供需关系的价格 | 市场价格 | 预言机上报的价格 | |
市场操纵 | $100 | $200 | $200 |
预言机攻击 | $100 | $100 | $70 |
正如上表所述,市场操纵和预言机操纵的故障点是不一样的。假设有一个资产基于真实供需关系的交易价格应该是100美元。当市场被操纵时,100美元的真实价格被人为操纵成200美元,这就是故障点。而预言机只是准确地上报200美元的市场价格而已。而当预言机被操纵,市场价格仍维持在100美元。预言机将价格错误地报告成了70美元,这是故障点。
开发者如果要打造安全的DeFi协议,并防范市场操纵和预言机操纵,就必须既要考虑预言机的安全性,又要考虑底层交易市场的质量,包括交易量、交易深度和交易环境。否则,协议就很难抵御风险。
Chainlink Price Feeds可以保护dApp免于预言机攻击
为了消除预言机攻击的风险,应用可以集成Chainlink Price Feeds来访问优质且防篡改的市场数据。
Chainlink Price Feeds拥有多种安全特性,包括:
Chainlink Price Feeds如何应对市场操纵
如果资产的全市场价格被操纵,Price Feeds就会上报这个价格,因为预言机会准确反映市场的当前状态。但如果只有一小部分市场被操纵(比如几个低流动性的市场),那么Chainlink Price Feeds仍会上报全市场的价格,以此来抵御操纵攻击。
Chainlink Price Feeds采用多层级聚合模式,因此交易量加权平均价格(VWAP)计算方式(以及其他类似计算方式)和异常值监测就可以很好地防止少数市场被操纵。VWAP机制给交易更活跃的市场分配了更大权重,并随着流动性在各个市场之间转移而灵活调整权重。数据聚合商通常会过滤出闪崩和虚假交易等市场异常情况,以确保不影响最终聚合出的数据点。
探索Chainlink Price Feeds,视频详情:https://youtu.be/-pJqlI61ZKc
DeFi开发者要保障dApp的安全性,第一步就是要集成Chainlink Price Feeds,以获得准确、防篡改且可靠的价格数据。第二,开发者必须评估协议中的资产质量。
低流动性的资产作为抵押物会更容易被攻击,因为攻击者更容易操纵这些资产。因此,应该对市场风险展开具体的分析,明确如何设置贷款价值比(loan-to-value ratio)才能最好地保障协议的流动性并规避风险。
进一步增强dApp的安全性:
风险意识一直都要有,因此要根据不断变化的市场环境持续监控、升级并完善流程。
如果要在日常生活中普及DeFi应用,那DeFi的安全一定要做到滴水不漏。这意味着我们必须解决市场操纵和预言机操纵的问题。虽然可以使用Chainlink有效避免预言机操纵,但开发者必须采取安全防御措施,用户在将资金存入某一协议之前也必须自己做研究。归根到底,要保障Web3资产的安全,必须要多管齐下。我们要共同协作,保障用户资金的安全。
如果你是一名DeFi开发者,并希望集成Chainlink Price Feeds,请查看我们的开发者文档,在Discord群组中提问,或与Chainlink专家进行电话沟通。