詳解預言機:連線區塊鏈與現實世界的橋樑

買賣虛擬貨幣
區塊鏈的去中心化賬本和智慧合約為當今社會解決了P2P互動的信任問題,無需任何中心化機構進行信任背書,這是人類社會信任體系的重大革新。但是當前的智慧合約無法主動向外部獲取鏈外資訊,使得它只能在一個封閉、孤立的環境中執行任務,無法做到和外部世界的互通互連。預言機(Oracle)的出現旨在為區塊鏈解決上述問題,作為智慧合約與外部世界通訊的閘道器,為區塊鏈開啟了一扇通往外部世界的窗戶。什麼是預言機?在計算機領域,預言機是一種抽象電腦,又稱諭示機。預言機具備圖靈機的一切功能,並額外擁有一種能力:可以不透過計算直接得到某些問題的答案,這個過程叫做Oracle(神諭)。也就是說,預言機可以解決圖靈機透過計算也無法解決的問題,比如從外界獲取問題的答案。

舉個例子,有一個天氣預報預警的DApp,使用者可以透過鏈上智慧合約進行天氣預報的查詢。天氣預報的資料不是在鏈上自行生成的,而是需要智慧合約向氣象服務網站的介面發起請求獲取資料。這時預言機就起作用了,智慧合約可以向預言機發起請求,由預言機執行氣象服務網站介面的呼叫,返回一致性的響應資料給智慧合約,供智慧合約處理。

看似很簡單的執行流程,實際上其中隱含著許多問題,比如:

區塊鏈的去中心化賬本和智慧合約為當今社會解決了P2P互動的信任問題,無需任何中心化機構進行信任背書,這是人類社會信任體系的重大革新。但是當前的智慧合約無法主動向外部獲取鏈外資訊,使得它只能在一個封閉、孤立的環境中執行任務,無法做到和外部世界的互通互連。

如何保證資料來源的資料不會做惡?如果一個資料來源給預言機節點A的答案是“是”,而給預言機節點B的答案是“否”,該怎麼辦?這裡就需要引入多資料來源請求來保證資料來源的資料真實性。而事實上我們是不能保證使用者請求的資料一定存在多個真實可信的資料來源的,那麼我們的預言機系統就必須要容忍資料來源作惡這種問題的存在,比如不能對返回錯誤答案的預言機節點進行懲罰。

諸如此類的問題還有很多,為了預防這些問題的出現,去中心化預言機需要進行縝密、全面的設計。

A. 多預言機節點

為了防止單節點預言機的信任問題,需要多個節點共同執行預言機資料的請求處理。多節點會帶來的資料不一致問題,這時資料的聚合一定是需要的。常用的聚合演算法有BFT共識演算法或者門限簽名演算法等。

B. “提交-揭露”機制

預言機節點之間的資料廣播會帶來Free-loading(吃空餉)問題,即一個預言機不是透過訪問資料來源來獲取資料,而是複製其它預言機的答案。當吃空餉的節點佔據大多數時,如果這些節點複製了一個錯誤的答案,這將變成一次大多數攻擊,危害系統安全。我們可以透過“提交-揭露”機制解決此問題,預言機節點分兩階段提交資料答案,第一階段提交的答案是加密的,在收到足夠多的預言機答案之後,才解密全部答案。

C. 多資料來源或可信單資料來源

資料來源的誠信問題是很難解決的,因為這不是預言機的問題,而是一個外部問題。使用者在使用預言機時應確認所訪問的資料來源是安全可靠的,而當使用者訪問到一個不安全的資料來源時,不安全的資料很可能導致預言機返回一個錯誤的結果。當然,透過使用多資料來源訪問資料可以在一定程度上防止少數資料來源的作惡,但是這種做法不具通用性,因為並不是每一條資料都具備多個外部資料來源供應。

D. 利益分配

去中心化預言機需要設計一套激勵機制,以給與預言機節點行為對應的獎勵和懲罰。預言機節點在加入去中心化網路時需要支付一定的保證金,以防止節點的作惡。理論上獲取到與共識結果相同答案的預言機都應該獲得相同的獎勵,因為他們都是達成共識結論的貢獻者。在懲罰規則方面,我們不能因為某個預言機節點的答案與共識結果不同,或者不能即時返回請求結果就懲罰他,因為我們不能辨別是預言機節點在作惡還是資料來源在作惡。而對於Free-loading的問題,一旦在“揭露-提交”階段發現節點在吃空餉,則需要按一定比例扣除其質押的保證金。

當前市場的預言機專案

1. ChainLink

Chainlink 的目標是構建一個完全去中心化的預言機網路,網路節點相容以太坊、比特幣和 Hyperledger,並支援模組化:系統的每個部分都支援升級。其主要的想法是為預言機打造一個可信的市場。有良好行為的預言機節點會受到激勵,其表現和聲譽會公之於眾,反之有惡意行為的節點會受到懲罰。Chainlink 一開始是在鏈上對預言機的資料進行聚合,後續設計為鏈下進行資料聚合。

2. DOS Network

DOS Network是一種可擴充套件的 layer2 協議,它為主流區塊鏈提供分散的資料饋送 oracle 和分散的可驗證計算 oracle。它將鏈上智慧合約與鏈下網際網路資料連線起來,為區塊鏈提供無限可驗證的計算能力,使更多的商業應用能夠與真實世界的用例相結合。

3. Provable

Provable是一款中心化的預言機應用服務,為Ethereum、Rootstock、R3 Corda、Hyperledger Fabric、EOS等區塊鏈提供預言機服務。

Provable開發的解決方案是使用中心化預言機,並證明從原始資料來源獲取的資料是真實的和未被篡改的。證明透過返回的資料與稱為真實性證明的文件一起實現。真實性證明可以基於不同的技術,例如可審計的虛擬機器和可信執行環境。

預言機應用場景

1. 去中心化衍生品

衍生品是兩方或多方之間的金融合約,其價值基於相關資產。衍生品允許人們對標的資產提出不同的視角(長期或短期),從實質上促進金融穩定。公共智慧合約平臺可以建立和交易金融衍生品,包括基於區塊鏈的資產。預言機可以透過提供價格饋送,結算價值和合約到期來確定參與方的收益或損失,從而在去中心化衍生品中發揮重要作用。

2. 穩定幣

獲取有關穩定幣和它們所固定的資產之間的匯率的外部資料是預言機的一個重要場景之一。

3. 去中心化預測市場

像Augur和Gnosis這樣的去中心化預測市場利用人群的智慧來預測現實世界的結果,如總統選舉和體育博彩結果。如果投票結果受到使用者的質疑,預言機可用於快速和安全的解決方案。

4. 智慧合約保險

在免信任且可靠的信任源加持下,保險產品可以透過智慧合約的形式實現。當前的商業案例比如Etherisc的去中心化的保險應用(如航班延誤保險和作物保險)平臺,FlyingCarpet 的人工智慧和地理資料的新型可程式設計保險等。

5. 去中心化貸款平臺

像SALT Lending和ETHLend這樣的去中心化點對點借貸平臺允許匿名使用者在區塊鏈上抵押加密資產,以換取法定或加密貸款。可以應用預言機在建立貸款時引入市場利率,並監控加密抵押品與貸款金額的比率,如果貸款週期到了,則觸發清算事件。

免責聲明:

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

推荐阅读

;