解讀 | Compound 遭受價格預言機操縱攻擊事件始末

買賣虛擬貨幣
撰文 | 區塊鏈金融分析師.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 預言機全方位綜合對比》

其中 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 中文白皮書


可以理解為,nest 預言機系統是將經過全市場驗證後的價格資料在鏈上生成出來,利用驗證者與報價礦工之間的博弈,來懲罰犯錯誤的報價礦工,使得錯誤資料不會被 nest 預言機系統收錄。而其他預言機將鏈下價格資料 “上傳” 到鏈上,無論資料錯誤與否,呼叫者無法驗證。他們是先使用,後驗證。如果出了錯,使用者資產受到損失再進行追溯和懲罰。而 nest 是直接杜絕錯誤資料被採用,這是 nest 預言機與其他預言機的本質區別。defi 開發者:如何呼叫 nest 預言機價格資料

分析總結:


目前的 defi 協議實質上是傳統金融的區塊鏈化。這裡有一個“滑稽”的事實:當前的大多數 defi 開發者們並沒有使用符合區塊鏈原則的方式去開發,而是用網際網路的方式去改造,這與區塊鏈精神背道而馳。我看到了一些 defi 開發者一味的妥協和折中,捨本逐末,越走越偏。

defi 開發者們還需要認清一點,若想在區塊鏈世界裡構建一個龐大的金融帝國,必須要先解決價格預言機問題。對於價格預言機本身,必須要做到,透過符合區塊鏈共識機制的方式將價格資料在鏈上生成出來,就算成本再高、再難,這也是唯一可行的正確邏輯;而不是謀求便利找幾個節點取箇中位數簡單的給鏈上喂價。金融是非常嚴謹的一門學科,行業亟需金融專業選手與開發者一起構建符合區塊鏈本質的專業金融產品。


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;