預言機是現(xiàn)實世界(鏈下)服務和區(qū)塊鏈(鏈上)協(xié)議之間架起橋梁的中間方。預言機檢索鏈下數(shù)據(jù),并將這些數(shù)據(jù)發(fā)布到區(qū)塊鏈上供智能合約使用。它們還將智能合約中的信息和指令轉發(fā)給鏈下的外部系統(tǒng)。此外,預言機還必須確保提供準確的數(shù)據(jù),并能抵抗操縱。
在計算復雜度理論與可計算性理論中,預言機(英語:oracle machine),又稱諭示機,是一種抽象電腦,用來研究決定性問題。可以被視為一個多了個黑盒子(預言者)的圖靈機,這個黑盒子的功能是可以在單一運算之內解答特定問題。預言者可以解答的問題,根據(jù)給定可以是任何復雜度類之內的問題。甚至可以使用不可判定問題,像是停機問題。
理想中的預言機應有以下幾種特質:
1. 高水平的準確性——價格預言機應準確反映當前數(shù)據(jù)。
2. 抗操縱性——預言機應能抵抗操縱。
3. 及時性——來自價格預言機的數(shù)據(jù)應該及時提供,且最好是每個區(qū)塊的數(shù)據(jù)。
4. 去中心化——預言機價格要在去中心化且無準入的系統(tǒng)中進行驗證。
DeFi預言機可分為鏈上鏈下兩種,前者的價格來自鏈上源(如Uniswap),而后者的價格則來自鏈下源。除此之外,預言機還可以進一步分為中心化和去中心化的,前者的數(shù)據(jù)由單一運營商驗證(如Compound),而后者的數(shù)據(jù)則由獨立運營商驗證(如MakerDAO)。
雖然 DeFi 中預言機的主要用途是與借貸協(xié)議的清算有關,但價格預言機還有其他幾種用途:
1. 抵押品不足的貸款清算--借貸協(xié)議(即Maker、Compound、Cream和Aave)依靠價格預言機來決定何時清算用戶的貸款。如果一個用戶的抵押品下降到某個閾值以下,該賬戶就可以被清算。
2. 衍生品定價--衍生品平臺(即Synthetix、Perpetual、Hegic)使用預言機來計算加密資產,包括期權、期貨、合成資產的價值。
3. 指數(shù)定價--指數(shù)平臺(如Set)使用預言機來檢索指數(shù)成分的價格。
4. 保險協(xié)議--保險協(xié)議(如Nexus Mutual)在向區(qū)塊鏈報告和發(fā)布索賠之前利用預言機來驗證索賠。
5. 預測市場--去中心化的預測市場(即August和Gnosis)依靠預言機進行鏈下事件結算。
每個預言機,無論鏈上或鏈下,都有自己的優(yōu)勢和弱點。以太坊價格預言機是否會遭受另一個黑色星期四的崩潰,仍有待確定。在評估預言機時,牢記以下攻擊載體或許會有所幫助:
1. 51%攻擊:如果一個實體擁有或一個團體勾結控制了大多數(shù)節(jié)點?屆時,這部分實體便可以控制哪些價格信息被使用,將哪些數(shù)據(jù)認作是絕對真理。
2. 鏡像攻擊:一個預言機節(jié)點能否將其數(shù)據(jù)分享給它所控制的其他節(jié)點呢?虛假的信息可以像電話游戲一樣輕松傳播。
3. 數(shù)據(jù)篡改:預言機是否從可信的來源接收數(shù)據(jù)?外部數(shù)據(jù)提供者可能會發(fā)送被操縱的或錯誤的數(shù)據(jù)。
4. 活躍度問題:預言機或節(jié)點是否及時向鏈上推送數(shù)據(jù)?預言機或節(jié)點的更新可能會有意或無意地停止,從而對依賴它們的智能合約造成破壞性影響。
隨著加密協(xié)議的不斷發(fā)展,準確的鏈上和鏈下數(shù)據(jù)的重要性也在不斷增加。此外,隨著這些無準入?yún)f(xié)議與外部系統(tǒng)、物聯(lián)網設備和其他軟件的進一步整合,將外部數(shù)據(jù)準確傳達給區(qū)塊鏈網絡的需求將獲得極大關注。不同的用例可能需要特定的預言機設計,協(xié)議或公司也需要根據(jù)上述的權衡選擇特定的解決方案。