預言機:區塊鏈與外界溝通的橋樑 —— 區塊鏈技術引卷之十五

買賣虛擬貨幣

文:通證通研究團隊

導讀 區塊鏈的優勢在於不依賴第三方解決信任問題,智慧合約在其中起了重要作用。智慧合約可能需要與外部世界進行資料互動,但區塊鏈無法主動獲取現實世界的資料,該如何解決呢?

摘要 區塊鏈是一個確定的、封閉的系統,無法主動獲取鏈外的資料。預言機便是區塊鏈智慧合約與外部世界互動的介面,是區塊鏈與外界相互溝通的橋樑。

預言機有多種應用場景,將會極大拓展區塊鏈在現實世界的應用範圍。所有需要與鏈外資料互動的非中心化應用都需要藉助預言機,例如非中心化的衍生品交易平臺、借貸平臺、穩定通證、保險應用、賭場應用、預測市場等。

預言機的主要作用是為智慧合約提供可靠的外部資料,其核心價值是在可信的基礎上,使區塊鏈與外部世界連線起來。理想狀態下預言機的工作流程是接受請求、獲取資料、返回資料。可供預言機查詢的資料來源一般有網際網路的URL連結、搜尋引擎、其他區塊鏈的資料、星際檔案系統IPFS的資料等。

預言機有多種型別,可以按軟硬體進行分類、按中心化與否進行分類、按資料流向進行分類。

實際應用設計預言機時,需要著重加以考慮資訊保密性(Confidentiality)、完整性(Integrity)、可獲得性(Availability)等問題。

典型的預言機專案有ChainLink、Oraclize、DOS Network、OracleChain等。

總體來看,目前市場上的預言機類專案主要為非中心化預言機 ,且多數都致力於支援多條主流公鏈。為了保障預言機資訊的保密性、完整性和可獲得性,不同專案採取了不同的方案,如ChainLink的方案是結合聲譽合約、訂單匹配合約和聚合合約,Oraclize是利用真實性證明,DOS Network採用了可驗證隨機方程和閾值密碼學,而OracleChain採用了聲譽和抵押證明。

風險提示:隱私洩露

目錄

1 預言機的含義1.1 預言機在傳統網際網路裡的含義1.2 預言機在區塊鏈裡的含義1.3 預言機的應用場景2預言機的工作流程與型別2.1 預言機的工作流程2.2 預言機的分類方法3 預言機實際應用中需要攻克的問題4典型專案分析4.1 ChainLink4.2 Oraclize4.3 DOS Network 4.4 OracleChain

正文

1預言機的含義

1.1 預言機在傳統網際網路裡的含義

預言機英文為Oracle,最初源於古希臘宗教,意為“神諭、先知、預言”。

電腦科學之父艾倫·圖靈於1939年在博士論文裡提出預言機的概念,介紹了超計算(Hypercomputation)。預言機比圖靈機更加強大,可以回答一些無法透過計算解決的問題,例如,“今年世界盃,哪隻球隊將問鼎冠軍?”。

一部預言機是一個帶著“魔法黑盒”的圖靈機,其中黑盒可以解答兩類問題:一是決定性問題(Decision Problem,只需回答“是”或“否”的問題),二是功能性問題(Function Problem,又被稱為複雜型問題,比簡單回答“是否”要複雜,例如,正整數x可以被哪些數整除?)

1.2 預言機在傳統網際網路裡的含義

以太坊將區塊鏈帶入到2.0時代,透過採用圖靈完備的程式語言,實現邏輯判斷等更復雜的功能,而不像BTC那樣僅限於地址間轉賬,從而極大豐富了區塊鏈商用落地的場景,智慧合約(Smart Contract)是其中的關鍵性技術。所謂智慧合約,指的是滿足一定條件會觸發一段程式的自動執行,相當於計算機裡的“if…then…(如果…就…)”程式設計語句。

區塊鏈是一個確定的、封閉的系統,每個節點需要獲取精確一致的狀態,這賦予了區塊鏈的不變性,但同時也意味著缺少靈活度。觸發智慧合約的“一定條件”可以是鏈上的狀態,例如支付是否完成,也可以是外界的資訊,例如天氣的狀態、航班是否晚點、哪支球隊贏了比賽等等。

區塊鏈網路無法獨立地蒐集外界的資訊,預言機便是區塊鏈智慧合約與外部世界互動的介面,可以查詢和驗證真實世界的資料,並以加密的方式將資訊提交給智慧合約使用,它允許確定的智慧合約對不確定的外部世界作出反應,可以簡單理解為外界資料的前處理器或第三方資料代理商。《區塊鏈能做什麼、不能做什麼?》一文,對預言機是這樣定義的:

區塊鏈外資訊寫入區塊鏈內的機制,一般被稱為預言機(oracle mechanism)。

以Alice和Bob賭球為例來說明預言機在智慧合約裡的作用。假設Alice和Bob先各自向智慧合約裡的地址傳送1 ETH作為賭注,並約定:

1)雙方將賭注提前傳送到智慧合約地址,智慧合約根據預言機提供的外界資訊自動執行相應的程式;

2)如果Alice押注的球隊贏了,Alice將從Bob那裡贏得1 ETH,智慧合約地址裡的2 ETH將自動傳送給Alice;

3)如果Bob押注的球隊贏了,Bob將從Alice那裡贏得1 ETH,智慧合約地址裡的2 ETH將自動傳送給Bob;

4)Alice和Bob押注的球隊打成了平局,智慧合約地址裡的ETH原路退回,兩人均未有輸贏。

整個過程都沒有人為的干預,即便Alice和Bob是兩個陌生人,也不會產生額外的信任成本。

1.3 預言機的應用場景

所有需要與鏈外資料互動的區塊鏈應用都需要藉助預言機,典型的應用場景有:

1) 加密資產衍生品交易平臺

目前典型的加密資產衍生品交易平臺有dydx等,允許使用者做多或做空通證資產。智慧合約需要從鏈外獲取資產價格,來觸發平倉、確定參與方的收益和損失等。

2) 非中心化運作的穩定通證

穩定通證是一類透過特定機制錨定其價值和價格的數字通證。根據價值支撐劃分,穩定通證當前主要有法幣錨、資產錨和內部錨三種模式。透過非中心化運作的穩定通證目前有DAI等。這些非中心化運作的穩定通證需要藉助預言機來感知其自身的價格變化,進而作出相應的決策來穩定價格。

DAI是MakerDAO平臺透過抵押加密資產(目前主要是ETH)發行的穩定通證。MakerDAO平臺透過多個預言機獲取抵押物和DAI的市場價格,在抵押物市場價格跌幅過大時可以作出警告和清算決策。

3) 借貸平臺

基於區塊鏈的借貸平臺目前有ETHLend、SALT等,這些平臺允許使用者抵押加密資產來借貸法幣或其他加密資產,與DAI類似,平臺會藉助預言機監控抵押物的保證金比率,在保證金不足時將會發出警告並觸發清算程式。同時,預言機可以匯入借款人的信用等級,進而確定相應的貸款利率。

4) 保險應用

基於區塊鏈的保險應用目前有Etherisc、HGS等。使用者在平臺上可購買航空延誤險、農作物保險等保險。預言機可以為這類事件引入外部資料來源,以便智慧合約根據協議對保險產品作出是否理賠的決策。

5) 賭場應用

基於區塊鏈的賭場應用目前有FunFair、Edgeless等,透過智慧合約保障遊戲公平、即時安全支付,相比於傳統中心化賭場具有較大優勢。對非中心的賭場應用來說最重要的是不可預測、可驗證的隨機數輸入。

傳統的隨機數產生方式是中心化的,隨機數的具體數值與特定機器的物理狀態有關。區塊鏈上的隨機數需要滿足分散式的特點,在每個節點產生的隨機數要具有一致性的隨機性,傳統方式無法滿足這一要求,透過預言機可以實現從鏈外輸入具有這種特性的隨機數。

6) 非中心化的預測市場

非中心化的預測市場目前有Augur、Gnosis等專案,在體育賽事、總統競選、通證價格變化等事件上可以做出預測,押注不同的結果預測。押注之後可以選擇等待最終結果,也可以選擇在二級市場提前交易“開獎券”。預言機將獲取最終真實的結果,並根據此結果來計算盈虧。

7) 基於區塊鏈的物聯網應用

基於區塊鏈的物聯網應用,是將鏈外感測器資訊透過預言機傳到鏈上,讓智慧合約驗證後觸發下一步行為。

2預言機的工作流程與型別

2.1 預言機的工作流程

預言機的主要作用是為智慧合約提供可靠的外部資料,其核心價值是在可 信的基礎上,使區塊鏈與外部世界連線起來。理想狀態下預言機的工作流程如下:

1) 接受請求。預言機接收到使用者合約(USER-SC Contract)傳送的請求Req=(Src,τ,q),其中Src表示查詢指定的資料來源,τ表示時間點或時間段,q表示查詢的內容。

2) 獲取資料:將查詢內容q在時間τ傳送到Src,進行查詢;

3) 返回資料:一旦獲得答案a,將a返回給智慧合約使用。

可供預言機查詢的資料來源一般有:

1) 網際網路的URL連結;

2) 搜尋引擎;

3) 其他區塊鏈的資料;

4) 星際檔案系統IPFS的資料;

5) 感測器的資料等。

2.2 預言機的分類方法

1)按軟硬體進行分類

預言機獲取資料的來源是線上(包括網際網路、區塊鏈鏈上),和線下(物理世界的感測器資料),分別對應軟體預言機和硬體預言機。

2)按中心化與否進行分類

預言機反饋的結果是透過單一節點獲得,或透過分散式節點“集思廣益”而獲得,分別對應中心化預言機、非中心化預言機。非中心化的預言機效率較低,中心化的預言機可靠性較差。

3)按資料流向進行分類

外部資料可以透過預言機流向區塊鏈觸發智慧合約執行下一步程式,智慧合約產生的資料也可以透過預言機流向物理世界(例如區塊鏈智慧鎖,當智慧合約檢測到指定區塊鏈地址收到轉賬後,將觸發智慧鎖自動解鎖)。

3預言機實際應用中需要攻克的問題

預言機在實際應用進行設計時需要著重考慮以下三個要素:完整性(Integrity)、保密性(Confidentiality)、和可獲得性(Availability)。

完整性是指資訊完整準確可靠,沒有被有意無意地破壞、篡改。

保密性是指智慧合約向預言機請求查詢的內容不會被洩露出去。例如非中心化的保險業務,使用者或許並不希望預言機透露自己的航班資訊給全世界;再如非中心化的衍生品交易,使用者也並不願意透露自己的投資組合和操作策略。

可獲得性是指透過預言機調取資料時,可以及時得到所需要的資訊,包括可以實現抗審查(censorship-resistance)。

針對完整性,一般可透過多重資料來源、多重預言機、聲譽系統、可信執行環境(可信硬體)、真實性證明等方案加以解決。具體參見下文典型專案分析。

針對保密性,預言機節點使用公鑰對查詢請求進行加密,並對預言機做出資訊流限制,僅僅在查詢資訊源時才去解密。

針對可獲得性,非中心化的預言機可以有效解決。

4典型專案分析

4.1 ChainLink

ChainLink致力於打造高可靠性的分散式預言機網路。使用者合約(USER-SC)發出查詢請求,CHAINLINK-SC為請求的事件分配介面卡,介面卡呼叫外部API並返回結果,CHAINLINK-SC聚合相關響應並把一個最終結果反饋給USER-SC。

CHAINLINK-SC主要由聲譽合約(reputation contract)、訂單匹配合約(order-matching contract)、聚合合約(aggregating contract)構成。聲譽合約透過響應時間、保證金數額、請求完成率等指標對預言機節點進行聲譽評分,訂單匹配合約藉助聲譽合約將請求事件與預言機節點進行自動匹配,增加可用性。聚合合約收集彙總預言機節點的響應,並將節點指標反饋給聲譽合約。

為保障資訊的完整性和可獲得性,ChainLink採用分散式資料來源(Distributing Sources)、分散式預言機(Distributing Oracles)、使用可信硬體(Use of Trusted Hardware)三種方案。

ChainLink的願景是支援所有的智慧合約,輕鬆實現智慧合約與資料來源和API的連線,可實現跨鏈和鏈下的互動和支付。

4.2 Oraclize

Oraclize是一個具有真實性證明的中心化預言機,目前支援以太坊(Ethereum)、Rootstock、R3 Corda、Hyperledger Fabric和EOS等多個平臺。

智慧合約透過對Oraclize釋出一個呼叫請求來獲取資料,指定資料來源和引數,Oraclize根據請求獲取資料後,利用callback函式返回結果。

Oraclize認為非中心化預言機的解決方案具有效率低下、所有參與方都需要付費、耗費時間長等侷限性。Oraclize的思路是證明從源頭獲取的資料是真實的且未篡改的,類似於網路技術中, HTTPS協議取代HTTP,在客戶端和伺服器之間建立加密和驗證通道,提供身份驗證。

真實性證明可以透過硬體或軟體的方案來加以解決,例如可信執行環境TEE(硬體)、可審計的虛擬機器(軟體)。

4.3DOS Network

DOS Network是支援多條主流公鏈的非中心化預言機服務網路。

DOS Network是一個Layer-2的預言機解決方案,由鏈上和鏈下兩部分構成。智慧合約指明合約需要的資料來源以及資料型別,向鏈上系統合約傳送一個預言機請求,接著該請求會被隨機分配給一個鏈下工作組。工作組內的每個成員節點都會從指定的資料來源獲取資料並按照規定的型別和結構來解析。隨後組內節點透過閾值密碼學的方式對資料結果達到組內共識並且產生一個對共識結果的證明。經過組內共識的資料和相應的證明將會以一條交易的方式發回系統合約,並觸發合約對提交組返回結果證明的驗證。

DOS Network認為基於聲望來選擇服務節點容易因“馬太效應”造成中心化問題,因此採用隨機的方法來選取預言機工作組合節點。DOS Network基於可驗證隨機方程(VRF)和閾值密碼學(Threshold Cryptography)的方式產生安全、無法被預測並且可以被公開驗證的隨機數,避免了聲望系統的種種問題,對參與節點更加公平公正。

4.4OracleChain

OracleChain是基於EOS平臺面向EOS生態的非中心化預言機平臺。OracleChain採用PoRD(Proof-of-Reputation&Deposit,聲譽和抵押證明)的雙效機制,本質上是一種抵押保證金的聲譽系統,獎勵善意節點,懲罰惡意節點。

總體來看,目前市場上的預言機類專案主要為非中心化預言機,且多數都致力於支援多條主流公鏈。為了保障預言機資訊的保密性、完整性和可獲得性,不同專案採取了不同的方案,如ChainLink的方案是結合聲譽合約、訂單匹配合約和聚合合約,Oraclize是利用真實性證明,DOS Network採用了可驗證隨機方程和閾值密碼學,而OracleChain採用了聲譽和抵押證明。

附註:因一些原因,本文中的一些名詞標註並不是十分精準,主要如:通證、數字通證、數字currency、貨幣、token、Crowdsale等,讀者如有疑問,可來電來函共同探討。

免責聲明:

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

推荐阅读

;