一文读懂市场操纵和预言机操纵的区别
区块链预言机的安全性对于Web3来说至关重要,安全的预言机催生出了一系列丰富的去中心化应用,大幅降低了对手方风险并实现了流畅的价值交换。在为DeFi应用接入金融市场数据时,开发者不仅要确保预言机在安全性、防篡改性和激励机制方面无懈可击,还要考虑到预言机所连接市场的质量及其抵御攻击的能力。
本文将讨论市场操纵和预言机操纵的区别,Chainlink Price Feeds如何全面覆盖资产的市场价格,以及开发者如何提高应用的安全性。
什么是市场操纵?
市场操纵指通过改变供需平衡来人为操纵资产价格。这是由攻击者故意发起的行为,通常目的是从其他交易者身上获利。
低流动性的资产更有可能被操纵
攻击者操纵价格的能力取决于资产本身的流动性。流动性指在不影响资产价格的前提下交易资产的难易程度。资产的流动性越高,操纵其价格就需要动用越多资金。相反,资产流动性越低,操纵价格的成本也就越低。因此,流动性低的资产更容易导致市场操纵,因此也会为相关金融产品带来更大的风险。
资产的流动性取决于其交易量、交易深度和交易市场。下面我们来说说每个指标的定义及其重要性:
- 交易量——交易量指资产在某一时间段所交易的数量。交易量高就说明市场流动性高。然而,有些资产虽然交易量高,但却缺乏交易深度。
- 交易深度——交易深度指各个价位挂出的买单和卖单的数量。这代表了市场吸收大单而不产生大幅价格波动的能力。
- 交易市场——资产同时在多个平台上交易,包括中心化的交易平台、去中心化交易平台(DEX)以及OTC场外交易市场。某个平台的流动性可能比市场总体的流动性要低,当平台交易量不足以吸引套利交易者创建跨平台市场的时候尤为如此。也就是说,即使某个资产在市场中整体流动性很高,也可能在某些交易平台保持较低的流动性。
需要防范的市场操纵行为
有很多种方式来操纵市场,以下是部分操纵传统金融和DeFi市场的方法:
- 幌骗(spoofing)——发布交易但却不执行。用机器人来发布大量交易,以此来影响买卖双方的行为,然后在执行前撤销交易。
- 炒作(ramping)——人为拉高资产市价,刺激真实买家的需求,然后再向这些买家出货。
- 熊市搜捕(bear raid)——通过砸盘或做空人为拉低资产价格。
- 跨市场操纵(cross-market manipulation)——在某一市场发起交易,以操纵另一个市场的价格,最终通过套利来获利。
- 虚假交易 (Wash trading)——自己既当买家又当卖家,制造虚假交易量,以吸引真正的交易者进入市场。
- 抢跑交易(frontrunning)——基于内幕消息发起交易,在市场得知消息或有反应之前先进行操作。在加密行业中,抢跑交易也是MEV的一部分。
这些策略可以操纵一小撮市场的价格,也可以操纵整个市场的价格。相比操纵整个市场的价格而言,操纵一小撮市场的成本更低。不过这类局部操纵攻击也更容易抵御,而且获利也更小。
DeFi协议的市场操纵风险
在过去几年中,市场操纵行为导致DeFi以各种方式损失了大量价值。即使DeFi协议集成的喂价预言机正常运行,如果预言机接入的市场被操纵,协议仍然存在风险。
存在市场操纵风险的DeFi平台有:
- 货币市场——借贷协议如果不及时高效地清算低抵押贷款,可能会出现坏账或甚至流动性枯竭。人为操纵价格还可能导致用户资金被错误清算,并造成损失。
- 期权市场——与货币市场一样,期权市场为了保持流动性,也必须高效触发清算。这些清算可能是强制的。
- 合成资产——基于错误价格支付头寸或生成坏账,可能会给流动性提供商造成资金损失。
- 算法stablecoin——如果由于价格操纵破坏了stablecoin的稳定机制和隐性激励机制,那么stablecoin可能出现脱锚。
- 自动化的资产管理——交易算法基于错误价格可能造成投资损失。
什么是预言机操纵行为?
预言机为区块链和智能合约输入数字资产价格、体育比赛结果以及天气数据等外部数据。
预言机操纵行为会导致预言机报告关于外部事件或真实世界的错误数据。这可能是预言机有意发起攻击或不小心犯错,也可能是预言机的数据源头出问题。
由于错误报告导致预言机操纵
错误报告指预言机上传的喂价与真实喂价存在偏差。无论是预言机有意还是无意导致了错误报告,都会给接入预言机的协议带来操纵风险。
比如,假设某一资产的真实市场价格是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拥有多种安全特性,包括:
- 在多个层面实现去中心化——基础架构在数据源、节点运营商和预言机网络层面实现去中心化,可以规避单点失效风险,并保障预言机报告能够反映真实的市场价格。
- 可靠性极高的预言机节点运营商——节点运营商分布在全世界各个角落,不仅经验丰富,经过了安全评估,还可以抵御女巫攻击。这些节点负责为Web3网络传输价格数据。
- 深度防御策略——链上透明性、主动监控、故障切换、灾难恢复以及备用预言机网络等,共同构建出多层级的架构。
Chainlink Price Feeds如何应对市场操纵
如果资产的全市场价格被操纵,Price Feeds就会上报这个价格,因为预言机会准确反映市场的当前状态。但如果只有一小部分市场被操纵(比如几个低流动性的市场),那么Chainlink Price Feeds仍会上报全市场的价格,以此来抵御操纵攻击。
Chainlink Price Feeds采用多层级聚合模式,因此交易量加权平均价格(VWAP)计算方式(以及其他类似计算方式)和异常值监测就可以很好地防止少数市场被操纵。VWAP机制给交易更活跃的市场分配了更大权重,并随着流动性在各个市场之间转移而灵活调整权重。数据聚合商通常会过滤出闪崩和虚假交易等市场异常情况,以确保不影响最终聚合出的数据点。
探索Chainlink Price Feeds
DeFi开发者如何保障dApp的安全性
DeFi开发者要保障dApp的安全性,第一步就是要集成Chainlink Price Feeds,以获得准确、防篡改且可靠的价格数据。第二,开发者必须评估协议中的资产质量。
低流动性的资产作为抵押物会更容易被攻击,因为攻击者更容易操纵这些资产。因此,应该对市场风险展开具体的分析,明确如何设置贷款价值比(loan-to-value ratio)才能最好地保障协议的流动性并规避风险。
进一步增强dApp的安全性:
- 熔断机制——万一价格出现极端波动,智能合约会暂停运行。
- 延迟合约升级——直到协议收到最新的data feed,合约才会更新。
- 手动的紧急停止开关——如果在上游智能合约中发现漏洞,用户可以手动暂停运行并临时切断data feed。
- 监控——一些用户会自行创建监控报警机制,当data feed偏差超过一定阈值时发出报警。
风险意识一直都要有,因此要根据不断变化的市场环境持续监控、升级并完善流程。
提升dApp安全,推动DeFi实现主流应用
如果要在日常生活中普及DeFi应用,那DeFi的安全一定要做到滴水不漏。这意味着我们必须解决市场操纵和预言机操纵的问题。虽然可以使用Chainlink有效避免预言机操纵,但开发者必须采取安全防御措施,用户在将资金存入某一协议之前也必须自己做研究。归根到底,要保障Web3资产的安全,必须要多管齐下。我们要共同协作,保障用户资金的安全。
如果你是一名DeFi开发者,并希望集成Chainlink Price Feeds,请查看我们的开发者文档,在Discord群组中提问,或与Chainlink专家进行电话沟通。