通過去中心化方式將價格數據在鏈上生成出來,這或許是唯一可行的正確邏輯。

原文標題:《預言機爲何成爲當前 DeFi 高危點?》
撰文: WebX 實驗室

一件接着一件,Compound 動輒千萬美金資產清算事件的爆出,讓從前備受推崇的預言機成爲衆矢之的。而且閃電貸攻擊系列事件給外界塑造了一種愈演愈烈的惡性示範,從一系列事件上來看,基於可重入性的漏洞利用在過去幾年中有所下降,而基於預言機價格操縱的漏洞利用率現在正在上升,預言機成了一個高危地帶。

從當紅明星到 DeFi 高危地帶,預言機安全問題該如何防範?

爲什麼預言機是 DeFi 中的重要角色?

預言機主要圍繞着區塊鏈協議如何以可靠、可信的方式從第三方來源收集數據,然後將數據反饋給高度網絡化和自動化的去中心化應用 Dapp 和智能合約,以實現來自鏈外世界的信息源、數據源的溝通引入,從而建立鏈上權威事實。

這種外部數據的引入,將作爲鏈上智能合約觸發的重要依據。以 Compound 爲例,他們需要預言機的價格來確定借貸能力和抵押要求,以及用於需要計算賬戶價值的的所有功能,從而判定要不要對這個賬戶的資產進行清算從而滿足抵押需求。而對於一些採用 AMM 方案的 DEX 來說,由於交易規模小,深度不足,其市場價格很容易受到大額交易的影響而出現劇烈波動,這也需要預言機提供主流交易所數據來避免這種劇烈波動。

講到這裏可能你會覺得,預言機可能只是一個單一的輔助件,僅能作爲外部數據的引入作用,事實恰恰相反。預言機的喂價功能或數據源的可靠支撐只是非常早期的形態,長遠來說,預言機將作爲現實世界各類數據、信息、信用、資產等諸多要素的集大成者,它提供數據或信息的正確程度、技術實現的去中心化程度以及模塊腳本的智能化程度,都將對未來的區塊鏈世界和現實世界的連接產生重大影響。

從當紅炸子雞到高危點的預言機

本身預言機在今年 DeFi 爆火的盛夏中名聲大燥,包括 Chainlink、NEST Protocol 等項目一度成爲市場聚光燈下的當紅明星項目。但早先的熱度與最近一個月裏的輿論風向形成了鮮明反差,預言機被推到了另一個方向的風口浪尖上。

起因就是預言機越來越成爲閃電貸攻擊、Compound 清算等事件的突破點。Compound 首席執行官 Robert Leshner 迴應道,「Compound 協議本身似乎沒有遭受損失,對於預言機攻擊是否是有人故意爲之還是意外,或者是兩者兼有,無法得知。」

回顧早先 Synthetix 的攻擊事件,其核心邏輯是在 Synthetix 上,用戶可以合成其他貨幣資產,Synthetix (當時)依靠定製的鏈下喂價機制,從一組祕密喂價覈算出總價格,並以固定的時間間隔發佈在鏈上。然後,依據計算出來的價格,允許用戶針對資產進行多頭或空頭交易。

從當紅明星到 DeFi 高危地帶,預言機安全問題該如何防範?Synthetix MKR 操縱的演示

然後 2019 年 6 月底,Synthetix 所依賴的其中一個喂價渠道錯誤的報告了韓元價格,報價比真實匯率高出 1000 倍,這個價格被系統接受併發布在了鏈上。有一個交易機器人迅速在 sKRW 市場上進行了買入和賣出,利益匯率差賺取鉅額利潤。雖然 Synthetix 從多個來源提取價格,然後一個錯誤的報價就使得整個平臺遭遇了毀滅性的打擊。

早先的閃電貸攻擊原理就很簡單,即作惡者從閃電貸中貸出巨量資金,用於深度或流量少的交易所或池子中,而這樣就會造成短時間內資產價格被操控的局面,這種不符實際被操控的數據波動將會爲預言機帶來錯誤的輸入和輸出,作惡者利用這些錯誤的輸入和輸出所造成的後果就可以輕鬆獲利,更直白的說,攻擊者在交易過程中幾乎完全控制了價格,受害者只能被動的接受損失。同理,Compound 清算事件中,由於 Coinbase Pro 平臺上的穩定幣 DAI 價格一度被拉昇至 1.3 美元,這導致使用該平臺預言機喂價信息的 DeFi 協議 Compound 出現了大規模清算。

而「罪魁禍首」DAI 上漲是因爲 Coinbase Pro 採用的是訂單簿模式,當流動性不足時就很容易對價格進行操縱。攻擊者事先計算好了操縱 Coinbase Pro 平臺 DAI 價格所需的金額,以及通過清算 Compound 巨鯨能夠獲得的利潤,並在短時間內完成了這次攻擊。

由此看來作爲重要的依據的預言機很大程度上無法保證數據來源的真實性或者有效性,Compound 平臺的預言機取價數據來源中心化且單一,而中心化的來源則很容易被僞造、篡改、修改或隱藏信息,這種將任何單一的中心化數據源用作價格預言機是不明智的也是極度危險的,預言機攝入遭破壞或無效的數據可能會給下游用戶帶來巨大的災難。

另一方面,就是鏈下數據對價格波動的反應一般比較慢,不夠智能。背後原因是需要相信推送鏈上數據的特權用戶不會變壞也不會被脅迫推送不良更新,而這種信任推送不允許任何特權方訪問,這也就意味着即使被攻擊,也只能坐以待斃,由於沒有更好的解決方案跟上,這就引發了一起又一起的資產損失,但本質來說,攻擊者的操控手段也並非高深,只是在現階段預言機還不夠智能,很難及時應對和抵禦。未來一個相對成熟的預言機應該是一個協議的權威真相來源,關於資產的價格,關於市場的狀態,關於危機事件的處理。

拯救 DeFi 安全先要拯救預言機

既然上面已經提到了預言機的漏洞所在,尤其遭受諸多慘痛代價後,將預言機這個「短板」暴露無遺。那麼,在拯救 DeFi 安全性上,首先應該就是在數據源供應方的選擇上,預言機本身必須要做到,通過符合區塊鏈共識機制的去中心化方式將價格數據在鏈上生成出來,這也是唯一可行的正確邏輯,而不是找中心化數據源幾個節點取箇中位數簡單的給鏈上喂價。

除此以外,預言機應該尋求更多的防護罩,這方面可以依託更安全的第三方機構保駕護航,進一步降低危機漏洞發生的可能性。在報價方面,預言機應儘量從多節點聚合數據,對價格偏差預留處理機制,並按照時間同步更新,確保提供給智能合約的數據可靠、可信、抗干擾,像數據可信驗證機制,異常報警機制等都應該用於預言機上。

最爲重要的是,在異常數據的處理上,如何做到及時反饋並阻止事件發生,這裏面我們可以適當增加一些人爲干預,即在市場波動大、鏈上表現異常、價格更新慢的時候,我們可以設置專門的報告人手動在鏈上發佈更新。而更智能的阻止異常數據的發生,可借鑑參考 Nest 預言機項目,其構建的去中心化驗證者和報價礦工之間的博弈機制,形成質押報價交易對資產的方法進行雙邊報價的鏈上生成,直接杜絕錯誤數據被採用。

不論是 DeFi 發展還是區塊鏈新領域的拓展,鏈上、鏈下的數據交換勢在必行,預言機的作用不可小覷。隨着預言機海量的數據類型越來越多,其影響力和關鍵作用越來越重要,預言機也將從價格預言機向事件型預言機發展,市面上諸如博彩、政務、遊戲等行業已經出現了事件型預言機的採用和推廣,相信歷經滄桑,預言機依然將作爲溝通鏈上和鏈下世界的重磅武器,只不過需要時間修煉。