預言機是鏈接鏈上智能合約和鏈外世界的橋樑,是智能合約獲取鏈下數據的途徑。

作者:鹿目圓

區塊鍊是獨立於現實世界運行的系統。加密世界的數據在鏈上產生,也在鏈上繼續被使用。鏈外世界的數據無法直接傳遞到區塊鏈上。

但是在某些智能合約的應用場景中,又需要使用外部世界的數據,例如在某些 DeFi 合約中,需要獲取外部資產的價格作為智能合約運行的參數。在這些場景中,就需要用到預言機(Oracle)。預言機是向鏈上智能合約傳遞鏈外數據的工具,也可以將鏈上數據傳輸給鏈下世界。

預言機是鏈接鏈上智能合約和鏈外世界的橋樑,是智能合約獲取鏈下數據的途徑。如果沒有預言機,智能合約能使用的就只有鏈上產生的數據,不能使用外部的數據。

圖片

隨著各種協議之間的互動增多,相互之間的數據依賴性也逐漸增強,預言機正成為區塊鏈世界重要的基礎設施。

從表面上看,預言機解決的是將鏈下數據傳遞到鏈上的問題。但實質上,這並不是一個很難的過程, 如何讓這些傳遞到鏈上的數據真正可信、可靠,才是預言機真正要解決的問題。

也就是說,預言機解決的其實是信任的問題。預言機需要通過技術和機制的設計,使自己提供的數據能夠被數據需求者接受和信任。

預言機分類

如前文所述,如何令人對其提供的數據產生信任,是預言機的頭等大事。

根據信任產生機制的不同,預言機可以分為幾種不同的種類:

  1. 中心化預言機
  2. 去中心化預言機
  3. 聯盟預言機

中心化預言機

中心化預言機由單個中心化機構為智能合約提供數據。這種情況下,數據需求方需要相信這個預言機不會欺騙他們,所以這個中心化預言機需要證明自己是值得信任的。

圖片

中心化預言機有兩種實現機制:

  • 第一種是通過算法等真實性證明機制來證明自己運行在可信的執行環境中,提供的數據是數據源在某個時間點真實的、未被篡改的數據。數據使用者無需信任中心化的機構本身,只需要信任中心化機構使用的技術和機制即可。
  • 第二種是由數據源提供的官方預言機。這些數據源通常是一些鏈下世界可靠可信的機構,自身擁有比較好的信用和聲譽,數據使用者只需要信任機構本身。這種模式比較類似於傳統的互聯網,用戶使用機構提供的服務,並全權信任這些服務商。

中心化預言機有自己的優勢和劣勢。

由於數據由單一機構提供,用戶對機構的信任決定了預言機的信用,單一數據源無法避免單點故障,對作惡行為也無法進行約束,安全性難以保證。

另外,中心化預言機通常也很難連接到其他的預言機,因而提供的數據范圍受限。

但是由於無需多節點進行協調和博弈,節省了大量的時間,提升了效率,同時因為不需要多個節點來支撐服務,也就無需支付多節點網絡的費用,使用費用較低。

去中心化預言機

去中心化的預言機符合區塊鏈去中心化的設計精神,通過機制的設計,來保障數據的可信。

在去中心化預言機中,眾多節點組成分佈式節點網絡,一起合作來提供數據,相互博弈和製約,通過經濟模型減少作惡的可能性,提升整個系統的容錯能力。

因為需要多節點共同工作,去中心化預言機的節點網絡的規模會影響其提供的數據的可靠性,規模更大的網絡提供的數據具有更高的可信度,所以系統通常會提供一些經濟激勵來鼓勵更多節點參與。

參與提供服務的節點在提供數據時通常也被要求質押一部分代幣(一般是項目代幣本身),一旦系統發現節點有作惡行為,質押的代幣就會被沒收。

去中心化預言機在設計時需要考慮以下幾個問題:

  1. 節點共謀問題,如果多個節點聯合起來作惡,應該如何應對;
  2. 數據隱私,在節點數據開放傳輸和查詢的情況下,如何保障這些數據的私密性;
  3. 數據獲取的時效性,如何減少多個節點之間數據的協調和確認時間;
  4. 節點從其他節點複製數據的問題,如何防止節點直接獲取其他節點的數據而非從數據源處提取數據;

去中心化節點網絡可以避免產生中心化預言機的單點故障,但是相應的,由於需要向多個節點支付服務費用,去中心化預言機使用起來也更加昂貴。

聯盟預言機

聯盟預言機是去中心化預言機的一種特殊形式。組成節點網絡的不止有普通節點,還有一些指定的可信機構作為節點。例如 MakerDAO 的 v2 版本的預言機,其節點就包括了 dYdX、0x 等機構。

聯盟預言機的信任來源相比前面兩種更加複雜,既包括了對作為節點的有業內聲譽的機構的信任、也包括了對整個網絡制衡機制的信任,還包括了對預言機項目方挑選節點的機制的信任,數據使用者需要信任所有這些相關方不會因為利益而選擇作出傷害自身信譽的行為。

這種節點網絡的組成方式帶有某種程度上的中心化的特性,但是作為高性價比的 trade-off,在行業發展的初期,不失為一個不錯的選擇。只是這種帶有中心化色彩的信任機制,可能難以承載價值過大的智能合約的需求。

從上述描述中不難看出聯盟預言機面臨的問題:

  1. 可信節點的身份保密程度會影響到節點是否會被勒索或者賄賂,進而影響網絡的安全運行;
  2. 可信節點提供的數據是否具有很大的自身利益相關性,畢竟如果涉及到自身利益,很難避免數據被惡意操控的可能。

預言機賽道代表項目

下文將簡單介紹預言機賽道的龍頭項目 Chainlink 和 NFT 預言機中的代表項目 Banksea。

鏈環

預言機的工作機制可以概括為:有使用數據需求的用戶智能合約(User-SC Contract)向預言機合約請求數據,預言機從外部數據源 API 獲取數據後,匯總處理後返回一個加權結果給用戶智能合約。

這個過程中有幾個主要角色:數據需求方(用戶智能合約)、預言機和鏈外數據源。

圖片

Chainlink 屬於去中心化的預言機,它的分佈式節點網絡中的多個節點在收到數據需求後,會向外部的多個數據源請求數據,然後各個節點將收集到的數據發送給鏈上進行數據聚合的預言機合約,這個合約會對收集到的數據進行審核,剔除異常值後,取一個均值數據傳給數據需求方。

圖片

Chainlink 中有三個主要的智能合約,分別是聲譽合約、訂單匹配合約和匯總合約。

聲譽合約用來記錄預言機節點提供服務的歷史表現;訂單匹配合約通過 Service level agreement(SLA,服務水平協議)為數據需求方匹配合適的節點網絡方案,參考因素包括節點聲譽、價格、節點網絡的節點數量等;匯總合約對預言機節點提供的數據進行匯總處理,並給出最終的結果數據。

用戶通過選定價格水平、網絡規模、節點聲譽等參數,篩選組合出符合需求的預言機節點服務商,確定 SLA 提案,提案會被提交到訂單匹配合約,之後被篩選出來的服務商節點選擇是否出價,出價時需要附上質押金(一定數量的 LINK 代幣),質押金用來避免節點進行惡意行為,一旦發生惡意行為,押金會被扣除。當出價的節點數量達到要求後,就不再接受新的節點出價,並在之前出價的節點中挑選出最終的服務提供者。沒有被選中的節點質押的押金會被退還。

被選中的節點會去鏈下收集數據,並最終將在多個數據源收到的數據提交給匯總合約,匯總合約經過各種處理,如剔除明顯偏離的數據、進行加權計算等。用戶智能合約使用 LINK 代幣來支付費用給提供數據的服務商節點。

在節點提供服務的過程中,聲譽合約會記錄節點的表現。主要包括:被分配的請求總數(完成響應和未完成響應的);已完成的請求總數、完成的成功率;被接受的請求總數、被合約接受的請求總數、準確率;平均響應時間;質押金額、罰金數額等。

濱海

NFT 預言機作為 NFTFi 行業重要的基礎設施,為市場上 NFT 的估值定價提供參考,支撐後續的金融服務的開展。

比較典型的應用場景是 NFT 的抵押借貸。借助 NFT 預言機的數據,借貸服務商可以確定借款方能夠借出的金額,並在市場價格發生變化時決定抵押的 NFT 是否需要被清算,以及時止損。

圖片

根據 Banksea 的官方白皮書,Banksea 是一個去中心化的 NFT 預言機,集成了 NFT 數據分析、NFT 估值和 NFT 綜合風險評估等功能。

Banksea NFT 預言機由數據聚合器、AI 分析和用戶界面組成。其中數據聚合器收集和處理原始數據,包括鏈上數據、NFT 交易市場上的交易活動、社交媒體上的用戶觀點等;AI 分析通過 AI 模型生成 NFT 估值、24 小時均價、地板價、風險評估等數據提供給智能合約;用戶界面 (Oracle Contract / Banksea API) 可以對外輸出這些估值。

圖片

結語

預言機剛剛誕生的時候,因為缺少應用場景,並沒有受到太多重視。

但是隨著智能合約的應用場景逐漸增多,各種 DeFi 和 NFTFi 應用破土而出,區塊鏈越來越需要與鏈外世界進行交互,預言機也漸漸成為區塊鏈世界重要的基礎設施。

中心化的預言機雖然費用低、效率高,但是其設計違背了去中心化的精神,永遠擺脫不了關於可靠性和安全性的質疑。相較起來,去中心化預言機雖然效率稍低,但是可以有效地避免單點故障的風險,網絡節點間互相競爭制衡也可以減少作惡行為。

歸根到底,預言機要解決的還是信任和安全的問題。去中心化是一種解決問題的方向,未來是否還會有其他方向和產品出現,我們也拭目以待。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。