萬字說透區塊鏈預言機架構原理:以 Oraclize 與 Chainlink 為例

買賣虛擬貨幣

摘要

預言機本質上是一種資料呼叫和訪問的中介軟體,它分別解決了“是或否”“資料是多少”兩類問題,從而實現了智慧合約對外部資料的呼叫。它既可以從原生的鏈上獲取資料,也可以透過爬蟲或者可信第三方機構從鏈下獲取資料。

理想的預言機網路應當滿足五個條件:資料呼叫是基於雙方相互信任且不可篡改的、資料呼叫的高效性、資料呼叫的安全性、預言機網路設計符合激勵相容原則、資料資產化。

按照商業的組織模式分類,預言機可以分為中心化預言機和去中心化預言機。雖然二者的架構自下而上都可以分為網路層、操作層、合約層和應用層,但是二者在操作層和合約層上存在較大差異。

中心化預言機在價效比和使用者體驗上具有先發優勢,而去中心化預言機因在客情和生態的模式上佔優而具有較大的後發優勢。Oraclize和Chainlink分別針對中心化預言機和去中心化預言機的優勢和侷限性做出了適當的完善。

預言機在資料資產化、物聯網、金融、保險、導航等方面具有較大的應用場景和可擴充套件性,但是仍然面臨著一定的挑戰需要完善。

1

預言機的背景與現狀

1.1

預言機的起源與發展

1.1.1. 預言機的起源

Oracle在指古代原始人類在向神靈祈禱和祭祀時,神靈降下來的神諭。顧名思義,古代的象形文字和神諭大多數以甲骨文的形式記錄,在藝術和文化上充滿著神秘的色彩。

神諭(Oracle)的目的在於傳達神的旨意從而預測未來,比如石器時代巫師對神的祈福和《易經》的八卦推演等。

1.1.2. 傳統計算機領域中的預言機

在傳統計算機領域,預言機最早的雛形是由圖靈於1939[1]年提出,由單帶圖靈機衍生而來。預言機本質上是一個用於回答問題的黑箱,只適合回答決策類問題(二級制“是”或“否”兩個答案)和功能性問題(如24能否被哪些數整除),但是預言機並不具備大規模資料處理的能力。

美國高科巨頭甲骨文公司在1970年創立時用Oracle命名,最初為聯邦調查局提供關聯式資料庫的軟體服務,我們認為Oracle一詞在資料庫中,反映了關係型資料庫解決了查詢資料時“判斷資料是否存在”等決策性問題,以及“查詢並輸出資料搜尋結果”的功能性問題。

自此,計算機領域中的“預言機”應用開始逐步與資料的訪問和呼叫掛鉤。

傳統計算機領域中的預言機真的可以獨立預測未來嗎?答案顯然是否定的。

預言機在計算機領域扮演著對決策型事件結果的記錄、溝通和反饋的作用,它僅僅只是完成資料的呼叫和資訊反饋,所以資料計算和處理並不是它的側重點。

在計算機領域中,對未來發展趨勢的預測主要是透過人工智慧(AI)演算法實現,而AI演算法的本質是資料的最佳化與迭代,更不要說利用資料預測未來。因此,當前的預言機需要預測未來需要與預測方法(AI演算法等)相結合。

1.1.3. 區塊鏈中的預言機

自從Nick Szabo[2]於1995年首次提出智慧合約的概念以來,越來越多的線上交易合約均採用智慧合約的模式,尤其是以ETH為代表的公有鏈平臺,其主要原因在於人們希望透過比傳統合約更安全並且成本更低的方式實現在計算機網路上的交易。

雖然智慧合約允許在沒有第三方的情況下進行可信交易,實現交易的可追蹤且不可逆轉,但是無法與區塊鏈外的資料發生直接聯絡(如外部資料的獲取與呼叫等),因此需要一個外部的圖靈機將資料寫入區塊鏈或分散式賬本中。

它在其中扮演著資料來源API介面之間橋樑的角色,從而實現區塊連結口與外部資料API介面形成對接,而這個圖靈機就是預言機(Oracle)。

預言機(Oracle)和智慧合約天然的契合點在於,智慧合約本質上是控制類的指令碼程式碼,而預言機本質上回答決策性問題和功能性問題,二者只是實現資料的呼叫而非計算。

安全性方面,智慧合約不具備大型資料處理的能力,而且容易造成計算溢位,因此需要新增預言機對外部資料的呼叫而非計算,從而規避了智慧合約在呼叫智慧合約時陷入圖靈停機的困境[3];可擴充套件性方面,預言機用於解決“智慧合約在指定資料來源的情況下,上傳資料有可能會被篡改”的問題,從而彌補智慧合約平臺缺乏網路效應和可擴充套件性的不足。

因此,預言機應用在智慧合約的呼叫有利於實現資料資產化與價值化,並擴大智慧合約的可移植性。

我們採用兩個案例來對預言機的用途做進一步解釋說明:

案例1:甲計劃於2019年12月31日上午10點買入10個以太幣,報價為140美元,透過Oraclize從CoinMarketCap呼叫以太幣在約定時刻的價格,並判斷在成交時該智慧合約能否執行。如果約定交割時刻ETH價格高於140美元,則交易失敗;如果ETH價格不高於140美元,則交易成功。

案例2:乙計劃構建多因子量化策略模型預測ETH價格未來的走勢,透過Oraclize從coinmetrics.io實時呼叫難度係數、全網總算力、成交量等指標的原始資料,並且利用公司的3臺伺服器執行多執行緒分散式計算,從而實現程式化自動交易。

案例1中包括1個決策性問題和1個功能性問題,預言機完成了對ETH價格的實時呼叫,計算過程簡單。

案例2不僅僅是資料呼叫的決策性問題和功能性問題,而且還包括量化投資策略的具體實施和計算,計算過程複雜,一旦在智慧合約上執行會導致計算溢位,從而導致智慧合約失靈,所以一般在鏈下實施分散式計算後,再透過預言機實施資料的呼叫。

1.2

預言機的定義與分類

1.2.1. 預言機的定義

在計算機領域中,預言機(Oracle Machine),又稱諭示機,是一種抽象電腦(圖靈機),其決策機制為一個研究決定型問題的黑箱,它能夠解決任何決策性問題或功能性問題。

在區塊鏈領域中,區塊鏈中的預言機扮演著將外部資訊寫入鏈上的角色,是整個寫入機制的總體[2],它與至少一個預言者(Oracles)相連。

在區塊鏈領域中,預言機是連線智慧合約與區塊鏈外部世界的中介軟體(Middleware),是區塊鏈重要的基礎設施,它的作用是為區塊鏈上的智慧合約提供資料資訊。

注意,預言機網路中設定的代幣絕大多數是基於ETH網路的,使用需要消耗Gas,預言機本質上是一種中介軟體,它並不具備單獨的區塊鏈,其代幣只在預言機網路中扮演著價值傳遞媒介的角色。

1.2.2. 預言機的資料獲取方式

預言機既可以從鏈上獲取原生資料,也可以透過網路爬蟲或者傳統第三方機構獲取資料。

對於預言機從鏈上獲取資料,由於鏈上應用(Dapp)落地不及預期,導致使用者對鏈上資料的需求有限,不足以支撐該模式的長期發展。

如果預言機從鏈下獲取資料,它既可以是授信傳統第三方機構作為公鏈或者聯盟鏈的節點給鏈上輸出資料,也可以是預言者透過網路爬蟲的方式抓取特定資料。

一般來說,對於資料呼叫要求低時延的服務請求(如ETH價格實時呼叫),不適合採用透過爬蟲的方式獲取資料,因為爬蟲的程式碼和資料的準確性受到網頁結構和網路環境的制約;

目前主流的預言機專案(如Chainlink等)都採取授信第三方可信機構(如Google、甲骨文等)作為節點,從而完善相關DeFi產品的喂價機制。

圖表1:預言機的資料獲取方式

1.2.3. 資料預言機與爬蟲的區別

目前,行業內有人認為預言機是在爬蟲的基礎上增加了去信任機制。

我們認為這是有失偏頗的,如上文1.2.2節所述,因為爬蟲只是一種抓取網頁資料的方式,而預言機雖然採用爬蟲的方式獲取資料,但是更多的是採用授信傳統第三方機構作為節點的方式獲取資料。

預言機和爬蟲在資料輸出格式上也有顯著的差異

一方面,利用爬蟲抓取的資料極有可能是非結構化的,可讀性較差,而預言機獲取的資料在格式上必須符合智慧合約呼叫的要求,使用者和預言者可以根據智慧合約的要求自定義資料的輸出格式。

更重要的是,預言機在呼叫高頻資料(如BTC價格等需要實時更新的資料)上遠遠優於爬蟲,可以避免資料在獲取的過程中因程式執行故障而陷入停機,而爬蟲則很容易在程式執行過程中陷入中斷。

1.3

理想預言機網路應當滿足的條件

1.3. 理想預言機網路應當滿足的條件

理想的預言機網路應當滿足以下五個條件:

  1. 資料呼叫是基於雙方相互信任的(不可篡改)。預言機在呼叫外部資料引入智慧合約時,應當保證最終反饋給使用者的資料與資料來源本身的資料一致,防止預言者中途篡改。

    經過服務請求方的確認和其他預言者的驗證後,如果呼叫資料結果無誤,則將呼叫資料寫入智慧合約,並將交易記錄上傳到區塊鏈上;如果呼叫資料出現不一致,則該交易將被定義為非法交易。

  2. 資料呼叫具有高效性。預言機合約透過智慧合約規定,如果預言者沒有在請求發出後的規定時間內響應使用者請求,或者是響應請求沒在規定時間內將資料反饋給使用者,就會自動取消交易,並且對服務供應商實施懲罰。

  3. 資料呼叫安全性高。預言機的設計必須有效遏制各種資料腐敗行為,比如女巫攻擊、映象攻擊、複製答案(吃空餉)等。

    並且,透過強制節點在TEE(Trusted Execution Environment)環境中執行解密,並向區塊鏈彙報所有使用者和節點都能看到的通用答案。

  4. 符合激勵相容原則。預言機激勵機制和監督機制的設立必須實現激勵相容,但是無論是PoW(Proof-of-Work)還是PoS(Proof-of-Stake)都很容易造成多數人攻擊,前者體現在挖礦方面——透過礦池等組織形式發起攻擊,後者則是透過超額抵押(Staking)和賄選等方式實現攻擊。

    因此,治理機制的設計必須充分調動其他競爭預言機的監督積極性,並且不能夠將代幣獎勵和打包概率等決定預言者收益的指標相掛鉤。否則,將不可避免的發生預言者和使用者因利益不一致而產生的委託代理風險。

  5. 資料資產化。資料應當作為一種資產,根據其資源的重要性和稀缺性進行定價,以公允價值的形式寫入智慧合約。

    目前,資料資產缺乏有效的定價機制,因為資料的種類千奇百怪,不同型別的資料對不同使用者的作用也是存在顯著差異,而目前資料定價權歸資料的資源方主導,並沒有實現去中心化。

2

預言機架構

2.1

預言機的起源與發展

根據商業組織形式分類,預言機可以是中心化的單一預言者的機制(如Oraclize)——中心化預言機,同樣也可以是去中心化的多個預言者的機制(如Chainlink、DOS Network等)——去中心化預言機。

中心化預言機(圖表2)由單一預言者(Oracle)為服務請求方提供資料,對某一特定的資料服務請求,在請求方指定n個資料來源並向中心化預言者傳送合約請求後,服務商從1個或多個資料來源的介面呼叫資料,最終反饋給請求方的資料可以是1個資料來源的,也可以是從多個資料來源的結果進行彙總。

一般來說,由於單一資料來源的成本遠低於從多個資料來源彙總的成本,中心化預言機僅有從最可信的一個資料來源呼叫資料,以實現整個預言機系統的高效執行。

去中心化預言機(圖表3)由多個預言者共同提供資料獲取服務,利用糾刪碼(Erasure encoding)技術實現答案冗餘,增強整個預言機系統的容錯能力。

當所有的預言者的規定時間內提交的答案彙總(彙總的方法包括加權平均、中位數或眾數的方法,按具體呼叫的資料而定)後,將彙總後的答案反饋給請求方。

圖表2:預言機的分類

圖表3:中心化預言機的關係模型(對於特定資料請求)

圖表4:去中心化預言機的關係模型(對於特定資料請求)

中心化預言機和去中心化預言機兩類除了底層的網路協議(TCP/IP協議)、加密基礎設施和硬體執行環境(一般為TEEs)相似以外,二者在技術架構上有著顯著差異。

其中標誌性的差異是:中心化預言機需要可信第三方作為驗證人或者審查機構自證清白,而去中心化預言機透過多個預言者(Oracles)之間進行相互驗證。

2.2

中心化預言機技術架構

中心化預言機由可信中心提供資料透過第三方企業,提供智慧合約執行所需要的外部資料,並將資料傳輸至智慧合約中。

它的技術架構自下而上依次為網路協議(一般為TCP/IP)、操作層、合約層和應用層。

圖表5:自下而上的中心化預言機技術架構

注:紅字部分指中心化預言機特有的架構成分

2.2.1. 網路層

最底層為網路協議,中心化預言機的網路拓撲結構中,由單一或寡頭的中心化服務商控制一個或多箇中介節點,其網路傳播速度完全取決於中介節點對服務請求的反應,面臨著一定程度上的單點故障風險。

2.2.2. 操作層

往上一層是操作層,操作層包括可信第三方驗證系統、可信執行環境(TEEs)和格式配置器。

可信第三方驗證的渠道必須是讓使用者可信的。一般來說,中心化預言機網路的審查人最好是由國家權威部門、大型企業(如Facebook、Amazon等)擔任,並且審查人和專案方無利益關係。

比如Oraclize由Amzon雲主機充當審查的角色,並且透過TLSNotary Proof證明自己是誠實的[4]

硬體方面,智慧合約的執行和資料呼叫均在可信執行環境(TEEs)上進行。TEEs基於可信硬體(即與系統其他部分隔離開的硬體),擁有獨立處理器和記憶體,其執行完全獨立於作業系統、虛擬機器監視器(Virtual Machine Monitor, VMM)、Bios以及普通計算機的其他核心部件。

TEEs分別在安全性和保密性方面發揮著重要作用。安全性方面,TEEs建立多個安全層,將可信硬體與計算機最脆弱的部分完全隔離,從而大幅縮小了駭客可攻擊的範圍。保密性方面,TEEs讓節點無法檢視運算資料,資料在鏈下進行傳輸和計算。

格式配置器一般是將最終傳輸給服務請求方的資料進行格式統一,為了增強資料的可讀性的同時,使服務合約的執行便於驗證,一般採用JSON格式。

2.2.3. 合約層

在合約層方面,中心化預言機包括訂單匹配合約、服務請求合約、資料呼叫介面和服務標準協議。

使用者(服務請求方)透過呼叫服務請求合約提出獲取特定資料內容的請求,並規定服務標準協議(如規定服務響應時間、獲取什麼內容的資料等),中心化服務商在接受該請求後,呼叫訂單匹配合約生成服務訂單,最後透過訪問資料來源的介面(資料呼叫介面)獲取資料。

2.3

去中心化預言機技術架構

去中心化預言機系統架構自下而上同樣可分為網路協議、操作層、合約層和應用層。

去中心化預言機系統雖然在網路協議和應用客戶端上與中心化預言機系統無顯著差異,但是因其P2P(Peer-to-Peer)的網路結構使其在操作層和合約層上與中心化預言機系統存在顯著差異。

圖表6:自下而上的去中心化預言機架構

注:紅字部分指去中心化預言機特有的架構成分

2.3.1. 操作層

操作層方面,去中心化預言機在中心化預言機的基礎上,新增了多重簽名機制和外部介面卡。

去中心化預言機無需可信第三方機構的背書來自證清白,但是需要依賴多重簽名機制讓滿足超過最小誠實節點數的預言者(Oracles)同時為相應節點簽名

如Chainlink採用門限(Schnorr)簽名技術,讓其他節點來檢查提供服務的預言者是否具有不當行為且交易是否合理,必須最少一半以上的可用節點在鏈下實施簽名才能夠實施交易。

更重要的是,外部API介面卡的設定使預言機可以將複雜的資料呼叫需求拆分成多個子任務,將多個預言者以分工協作的方式參與到服務過程中。

與我們在《萬字講透去中心化儲存》一文中提出的分散式儲存類似,外部介面卡恰好是一種分散式的體系,提出需要多步驟複雜請求的節點越多會讓更多的預言者參與到其中,從而讓服務請求的人越多,得到的反饋速度越快,從而讓完成服務的時間越短。

2.3.2. 合約層

去中心化預言機系統在中心化預言機系統的基礎上新增了信譽合約和彙總合約。

信譽合約方面,因為去中心化預言機系統本質上是由多個預言者(Oracles)組成的服務網路,所以需要透過呼叫信譽合約來統計每個預言者的歷史服務情況,對存在不當行為(如搭便車複製其他預言者提供答案的雜湊值、映象攻擊、女巫攻擊等)的預言者扣減信譽評分和已質押。

彙總合約方面,由於去中心化預言機是一個存在多個預言者的資料服務網路,因此,在大多數情況下存在多個預言者在規定時間內同時對同一種服務請求進行響應。

此時,預言機網路透過呼叫匯總合約,採取加權平均或中位數等方式對所有預言者提供的答案進行彙總。

3

預言機專案比較和簡析

3.1

專案分類與比較

根據本文1.2.2節對預言機的分類,預言機專案按商業組織模式的差異可以分為中心化預言機網路和去中心化預言機網路。

因為資料掌握在特定資料來源(大型機構)手上,專案方需要透過整合多方資源為預言機網路引流,所以行業存在顯著的先發優勢和團隊優勢,而Oraclize和Chainlink本身作為最早佈局且流量規模最大的兩個預言機網路恰好具這一優勢。

因此,本文僅對代表性專案Oraclize和Chainlink進行介紹,而對FOAM、DOS Network等其他缺乏流量的預言機網路不做過多贅述。

再者,以DOS Network為代表的對一種資料請求開發一條區塊鏈的預言機專案本身因開發成本和運營維護成本較高,不具備規模效應的需求。

圖表7:中心化預言機VS去中心化預言機

3.1.1.從商業模式看可擴充套件性

從商業模式的角度出發,中心化預言機的商業模式本質上是一個資料服務平臺(類似Wind和Bloomberg),而去中心化預言機是一個多元的資料服務網路,後者的商業模式顯然更加有利於擴大全網規模。

原因在於——雖然二者將資料服務網路擴大取決於專案方本身的資源,但是去中心化預言機網路在不僅僅有效利用了專案方本身的資源,更有效整合了其加盟的多個預言者的資源,有利於整合多方的資源共同擴大預言機網路,從而形成有效的商業閉環。

3.1.2. 安全性比較分析

中心化預言機與去中心化預言機在安全性方面各有優劣。前者的安全隱患主要來源於第三方的信任成本和駭客攻擊,後者的安全隱患主要來源於因資料腐敗導致整個網路失靈。

對於中心化預言機,其安全性取決於可信第三方的身份。如果可信第三方為政府權威部門,則第三方信任成本較低;如果可信第三方為大型企業,則可信程度較高,但仍存在一定程度上的委託代理問題。

對於去中心化預言機,其安全性取決於大多數節點是否誠實,並且在一旦發生資料腐敗行為後,採取有效的懲罰措施。有效遏制資料腐敗的前提是大多數的節點是誠實的(每個節點均為了實現自身利益最大化),只有在滿足這個條件下,女巫攻擊、映象攻擊和吃空餉(Freeloading)等腐敗行為就會得到有效遏制。

3.1.3. 成本定價分析

中心化預言機在成本和定價方面比去中心化預言機更具優勢。

定價方面,二者在同樣費用中心化預言機採用法幣作為計價單位,不存在大幅波動的風險,而去中心化預言機一般採用其代幣作為計價單位,波動幅度較大,無法遏制投機性需求對交易需求的負面效應;

成本方面,雖然二者的主要成本為智慧合約執行的Gas Fee,但是去中心化預言機網路需要將結果在鏈上彙總和呼叫信譽合約。因此,對同一種資料服務請求,去中心化預言機的程式碼執行比中心化預言機需要消耗更多的Gas Fee,即使去中心化預言機將信譽統計、答案彙總和計算處理放在鏈下(Off-chain)處理也是一樣。

未來,以Chainlink為代表的去中心化預言機網路將會進一步完善定價機制,採用法幣(如美元等)作為計價單位,而其Token僅僅只發揮交易職能和監管職能,中心化預言機的定價優勢將會逐步弱化。

3.1.4. 服務效率比較分析

中心化預言機和去中心化預言機的服務執行效率因服務請求的時效性不同而存在差異。

對於高時效性的資料呼叫請求(如為DeFi金融合約實時呼叫ETH價格等資料來源確定的服務請求),中心化預言機因為無需多重簽名的驗證機制和鏈下答案彙總,只需要可信第三方單方驗證和審查即可,所以其服務效率高於去中心化預言機網路,智慧合約可以更快地獲取資料。當其他條件不變時,資料呼叫的對時效性的要求越高,中心化預言機的效率優勢就越凸顯。

對時效性要求相對較低的資料服務請求(如獲取甲骨文中小企業的資料庫、年度資料和月度資料等),去中心化預言機更具備優勢。

一方面,去中心化預言機網路透過外部任務介面卡(External Task Adapter)將複雜的資料服務請求步驟化(分散式),從而實現了資源的有效配置;

另一方面透過資料來源多樣化、彙總合約、信譽合約等機制設計分散了因資料來源本身問題帶來資料失真的風險的同時,遏制了資料腐敗的動機,從而進一步提高了資料的準確性。

同理,當其他條件不變時,服務請求對時效性的要求越低,去中心化預言機網路的優勢就更加凸顯。

目前,高時效性的服務請求(如智慧合約呼叫相關數字貨幣價格)佔主導,中心化預言機處於優勢地位。但是,隨著未來資料資產化的推進和物聯網的快速發展,去中心化預言機將會更具後發比較優勢。

3.1.5. 彙總分析

從價效比、使用者體驗、客情和生態比較目前中心化預言機和去中心化預言機各自的競爭優劣:

  1. 價效比方面,中心化預言機目前佔據優勢。一方面當前的中心化預言機專案在成本定價上具有較大優勢。另一方面,因為目前價格調動(對DeFi合約喂價)等低時延服務請求仍是預言機應用最多的場景,並且M2M(Machine-to-Machine)的應用場景尚未落地,所以目前中心化預言機在使用效能上佔優。

  2. 使用者體驗方面,因大多數資料服務請求為低時延的DeFi喂價,中心化預言機目前也佔據優勢。

  3. 客情和生態方面,主流去中心化預言機(如Chainlink等)透過授信第三方實體機構為節點的方式,利用多方的資源整合提升預言機全網的可擴充套件性,未來將隨著M2M場景的普及和資料資產化程序的推進將大有可為。顯然,中心化預言機並不具備這一優勢。

圖表8:目前中心化預言機與去中心化預言機競爭優勢比較

針對上文論述的中心化預言機和去中心化預言機各自的優勢和侷限性,以Oraclize為代表的中心化預言機專案和以Chainlink為代表的去中心化預言機專案針對其優勢和不足做了進一步的完善。

3.2

Oraclize——最大的預言機網路

3.2.1. Oraclize簡介

Oraclize首次於2015年提出,是世界上最廣泛應用的區塊鏈預言機服務。它針對智慧合約和區塊鏈應用程式的提供外部資料呼叫服務,每日在ETH、Rootstock、R3 Cord、Hyperledger Fabric(超級賬本)和EOS等平臺上處理數千個資料服務請求。

Oraclize透過TLSNontary證明、安卓證明等方式旨在證明從原始資料來源獲取的資料是真實且不可篡改的。

3.2.2. Oraclize預言機協議

——Provable協議

Oraclize的架構如上文圖表4的中心化預言機架構相同,同樣自下而上包括網路協議、操作層、合約層和應用層,其特殊性表現在基於可信第三方的證明機制、資料來源、格式介面卡(Parsing Helper)和服務定價四個維度。

(1)Oraclize可信第三方證明機制——軟體+硬體使Oraclize自證清白

  • TLSNontary Proof

TLSNotary Proof充分利用了TLSNotary 1.0和1.1協議(程式碼開源)的功能,允許在伺服器、受稽覈方(Oraclize)和稽覈方(Amazon雲主機)之間分割TLS主金鑰,透過給Amazon雲主機共享部分服務請求資料的方式,讓稽覈方可以驗證資訊的同時,又不至於洩漏更多資訊,從而有效避免了其他參與者在本地修改html程式碼、PS圖片等證明做假的情況。

  • Android Proof

Android Proof利用Google開發的稱為SafetyNet的軟體遠端證明技術,分別驗證了“一個特定的應用執行在一個安全、沒有後門的環境裡”、“執行的程式碼和事先公開的是否一致”以及“系統版本是最新版本”。

首先,Android Proof透過驗證給定的Android應用程式是否在連線到Provable基礎設施的物理裝置上執行,從而實現第一個證明需求;

其次,Android Proof透過遠端驗證應用程式程式碼的雜湊值,從而實現對裝置上正在執行的應用程式進行身份驗證,由此實現第二個證明需求;

更重要的是,Android Proof透過新引入的Android硬體證明來證明該物理裝置已更新為最新的可用Android版本,從而實現了第三個證明需求。

  • Ledger Proof

Ledger Proof(Ledger指法國的專門硬體強制加密貨幣錢包的Ledger公司,而非指賬本)利用程式碼證明和裝置證明功能來證明任何第三方,證明Oraclize開發的應用程式正在真實Ledger裝置的TEE中執行,證明格式如下:

圖表8:Ledger證明格式

(2)資料來源

Oraclize支援以URL、WolframAlpha、IPFS、Computation為主的資料型別。其中,URL為資料來源的HTTP連結地址(輸出格式為JSON),WolframAlpha為支援直接訪問WolframAlpha知識引擎API(輸出格式為字串),IPFS為儲存在星際網路(IPFS)上的所有檔案(20s後沒有匹配的IPFS系統上的檔案則資料呼叫請求失敗),Computation則透過訪問Amazon雲主機實現對金融產品套利交易的結算。四類資料服務請求分別透過以下機制進行驗證:

圖表9:不同資料型別的驗證方式

(3)資料輸出格式多樣化

Oraclize針對不同資料來源和不同的服務請求,分別支援JSON、XML、HTML Parser和Binary Helper四種格式作為輸出,並支援不同輸出格式之間的轉換,從而增強了資料的可讀性。

(4)服務定價

  • 首次試用免費;

  • 服務請求費用(Call Fee)——佣金:包括基礎費用和證明費用,根據ETH兌美元最新的匯率進行結算,同時以Wei為單位結算將以太幣兌換成美元結算消耗的Gas Fee。服務請求費用的結果如下表所示:

圖表10:Oraclize服務定價模型

注:N/A指不收費

資料來源http://docs.provable.xyz/#security-deepdive-authenticity-proofstypes-ledger-proof

  • 支付方式以鏈下支付渠道為主。

3.2.3. 專案評價

Oraclize是當前最大的預言機網路,其優勢具體體現在以下幾個維度:

(1)安全性方面,Oraclize亞馬遜雲主機、Google、Ledger等第三方可信任機構足以自證清白。Oraclize預言機網路中,區塊鏈應用程式的開發人員和此類應用程式的使用者不必信任Oraclize,從而導致oraclize呼叫智慧合約和程式碼的燃料費成本低於去中心化預言機網路,並且使整個預言機網路的執行效率較高,使其天然契合對時效性要求高的資料服務請求。

(2)使用者體驗方面,資料提供者不必修改其服務即可與區塊鏈協議相容,智慧合約可以直接從網站或API訪問資料。

(3)服務定價方面,Oraclize以美元為計價貨幣,充分保證了其服務價值不發生大幅波動,更加有利於整個網路規模流量的擴大。

但是,Oraclize在專案可擴充套件性上值得商榷:

(1)可擴充套件性方面,Oraclize作為單一模型的預言機網路,在可擴充套件性上難以像去中心化預言機那樣整合多個預言者(Oracles)的資源。

(2)資料校驗方面,Oraclize對時效性要求低的資料服務請求難以進行容錯和糾正,特別是對善意的資料呼叫錯誤。並且,Oraclize缺乏一個有效的信譽評分系統,使用者(服務請求方)無法對相應服務進行打分和反饋。

3.3

Chainlink

——去中心化預言機的先行者

3.3.1. Chainlink介紹

Chainlink本質上是一個去中心化的預言機網路,它為任何區塊鏈上的複雜智慧合約提供可靠的防篡改輸入和輸出,再配合“鏈上+鏈下”的架構模式得以實施。

Chainlink初期依託於ETH網路,隨著2019年Chainlink分別與Google、甲骨文、Etherisc等商業巨擘合作逐步接入外部資料來源,並用元預言機使DeFi相關金融產品的報價的資料匯入更加完善。

3.3.2. Chainlink架構

——“鏈上+鏈下”的技術架構

Chainlink架構分為鏈上(On-chain)部分和鏈下(Off-chain)部分,鏈上部分作為合約層完成Chainlink內所有資訊的記錄,而鏈下部分負責程式碼和命令列以及輸出資料的具體執行。

圖表11:Chainlink“鏈上+鏈下”的技術架構

(1)鏈上部分——閉環的合約層

鏈上部分執行的操作包括使用者(服務請求方)對預言者(服務供應商)的挑選(Oracle Selection)、資料服務的反饋報告(Data Report)和最終結果彙總(Result Aggregation)。Chainlink透過呼叫信譽合約記錄預言者歷史服務情況、訂單匹配合約和彙總合約共同實現整個Chainlink網路在鏈上的閉環體系。

信譽合約——記錄服務供應商(預言者)的歷史表現

服務請求方(使用者)在挑選合適的預言者為其請求提供服務時,必須呼叫信譽合約檢視預言者的歷史表現情況,再根據其在服務請求中指定的資料來源、響應時間和具體資料要求完成對預言者(Oracles)的選擇。

而在服務請求完成後,Chainlink網路記錄其完成的情況,生成資料包告(Data Report)後呼叫信譽合約對提供服務的預言者的信譽評分進行適當增減。

服務請求方對不同預言者進行信譽評級,Chainlink計劃佈置以下參考標準如下:

(a)預言者同意接受請求的總數,包括已實現和未實現的;

(b)完成請求數,計算出完成率(+);

(c)與其他預言者的回覆相比,透過計算合約被判斷為可接受的請求總數(+)。它一般根據接受任務總數和已完成任務總數的平均值來衡量。

(d)平均回覆時長(-);

(e)累計懲罰金額(-)——懲罰是因預言者不當行為(Freeloading複製對方答案、透露或使用服務請求的資料)而扣除其已質押的LINK。

注:+表示該項增加會使預言者加分,-表示該項增加會使服務供應商扣分。

訂單匹配合約

Chainlink透過呼叫訂單匹配合約將特定的資料服務請求與使用者挑選好的一個或多個預言者進行匹配,並生成訂單後將訂單抽象到鏈上。

彙總合約

Chainlink透過多個預言者(Oracles)提供的答案根據特定問題進行彙總,彙總方式一般為對反饋資料進行加權平均(剔除極端值)後得到的彙總答案,並最終反饋給服務請求方。

(2)鏈下部分(Off-chain)——執行層

鏈下部分分為Chainlink Core、外部介面卡和Subtask Schemas三部分。其中,Chainlink Core是在可信執行環境(TEEs)下的命令視窗,外部介面卡根據服務具體的需求將複雜的任務拆分成多個子任務以便於執行,Subtask Schemas統一所有預言者最終輸出的答案為JSON格式,便於程式碼執行和可讀性。

圖表12:Chainlink的執行流程

資料來源:《Chainlink白皮書》

如圖表12所示,Chainlink工作流程分為以下7個步驟:

(a)USER-SC合約發出資料呼叫請求;

(b)ChainLink-SC合約為預言者記錄請求,並編譯到Core命令列;

(c)Core透過在合約程式前新增外部API來設定介面卡,並分配任務;

(d)介面卡將請求反饋給外部API;

(e)ChainLink收到預言機服務商的回覆,並將其反饋給Core命令列;

(f)ChainLink Core將資料包告給反饋給ChainLink-SC;

(g)ChainLink-SC彙總所有的答案,後反饋給使用者端。

3.3.3. Chainlink的激勵機制與驗證系統

Chainlink的代幣為LINK,任何個人或組織都可以透過質押LINK代幣的模式成為預言機系統中的預言者為使用者提供資料服務,Chainlink透過信譽合約對使用者的行為進行打分,對錶現好的預言者獎勵一定數額LINK代幣獎勵,而對有不當行為的預言者扣除其抵押的LINK作為懲罰,並在信譽合約中記錄其評分。

最重要的是,透過檢舉揭發對等預言者不當行為可以獲得LINK代幣獎勵,這是Chainlink實現整體激勵相容的根本原因。

Chainlink的驗證系統分別從可用性和準確性兩個維度實施驗證。

可用性方面,Chainlink要求Oracle對從其他Oracles收到的一組回覆答案進行數字簽名證明,驗證合約將接受並再次獎勵提交證書的Oracles,證書陳述表現不佳的Oracles向其對等方顯示出一致的無回覆特徵;

準確性方面,Chainlink將驗證服務實現為一個智慧合約,該合約將獎勵Oracle提交偏離答案的證據(因數字簽名可以容易被查詢),並獲得相應LINK,並扣減提交偏離答案的Oracle處罰其已質押的LINK。

3.3.4. 專案評價

Chainlink是預言機專案中去中心化的典範,在激勵機制、執行機制和巢狀合約上實現了有效的閉環,貫徹落實了預言機網路激勵相容的價值主張,不論是內部機制設計還是外部引流和發展都具有較大的優勢:

安全性方面,Chainlink具有以下四大優勢:

  1. Chainlink運用Schnorr多重簽名機制解決了Freeloading(吃空餉——預言者直接複製之前已提交答案的雜湊值的行為)的問題。設立最大容錯節點數為Chainlink節點總數的2/3(其中不具備可用性的Oracle數量為總節點數的1/3,不具備準確性的容錯為1/3),要求必須至少有1/3以上對等預言者簽名才可以透過驗證。

  2. Chainlink在一定程度上遏制了女巫攻擊和映象攻擊。Chainlink計劃透過對高質量的Oracle發起背書(認證)的方式,監控驗證系統關於Oracles的統計資料,並對提交至鏈上的資料執行事後檢查,將它們與直接從信譽良好的資料來源獲得的答案進行比較,證書認證機制目前仍在進一步設計當中。

  3. Chainlink透過資料來源和預言機的多樣化有效分散了因資料來源本身的問題導致資料失真的風險。

  4. Chainlink長期引入可信執行環境(TEEs)作為硬體的安全保障,從而實現合約的保密性,並生成可靠的隨機性。

激勵機制方面,Chainlink實現了有效的閉環。透過對預言者檢舉其他預言者並提供有效證據的行為獎勵LINK,對存在不當行為的預言者扣除其質押的LINK作為懲罰的方式,並且Chainlink僅僅作為一種中介軟體,Oracle的收益與其提供服務的行為和提供其他Oracle不當行為證據的行為掛鉤。

可擴充套件性方面,Chainlink將不斷降低對ETH網路的依賴性。Chainlink透過與Google、Oracle和Etherisc等巨頭達成戰略合作,實現保險、物聯網、DeFi金融合約、隨機數生成等多個領域的應用,進一步增強資料來源的多樣性。並且在依託於ETH網路的智慧合約中,Chainlink透過構建元預言機將聚合了鏈下真實的市場資料和鏈上價格資料,既為使用者保障了定價效率也為鏈上流動資金池提高了定價效率。

但是,Chainlink仍有進一步改進和完善的空間,並付諸實踐:

  1. 服務定價方面,Chainlink仍然採用LINK代幣作為計量單位,造成了服務價格的大幅波動,不利於構建長期穩定的預言機服務體系。

    從2019年5月至2020年2月,由於Chainlink和Google、甲骨文等行業巨擘達成戰略合作等類似事件作為催化劑,LINK價格從不到0.5美元上漲至超過4美元。

    一方面LINK價格大幅上漲使服務收費標準大幅提升,很容易導致客戶流失轉移到Oraclize;另一方面,LINK代幣的上漲導致成為預言者的資金門檻大幅提升,而Chainlink僅有21個官方認證的節點(可以執行數字貨幣價格資料呼叫的服務節點),總共正在執行的合約節點僅為73個。因此,Chainlink正在部署以美元為計價單位的支付體系,使其服務定價趨於穩定。

  2. 激勵機制方面,Chainlink中預言者的未來收益仍然與其質押LINK代幣的份額掛鉤,容易造成安全隱患和信譽評分系統的失靈。

    新發行的LINK代幣金額有35%仍會根據預言者最開始質押的份額實施獎勵,這一方面很容易造成預言者透過大筆質押LINK代幣而不提供相應服務和貢獻,從而賺取LINK代幣的分紅而坐享其成,另一方面大額質押LINK代幣的預言者容易透過同時控制多個節點發起攻擊,一旦有1/3以上的節點被控制,其信譽評分系統的檢舉機制將會失靈,其遏制女巫攻擊、映象攻擊和吃空餉(Freeloading)等行為的前提假設將不會成立。

    這是Chainlink當前面臨的最大挑戰。

4

預言機的未來展望

4.1

預言機的未來發展前景

預言機在金融、保險、導航定位和物聯網等面臨著資料大規模呼叫的領域大有可為。

雖然智慧合約的使用技術門檻較高,並且在法律上不具有與一般合約等同的法律效力,但是自動化合約執行有利於規避因權責不清晰而造成的糾紛,並且迎合程式化和自動化發展的大趨勢。

(1)預言機與資料資產化

資料資產化擴大了預言機的可擴充套件性。資料資產化是未來的必然發展趨勢,而大部分資料資源和定價權掌握在網際網路巨頭和行業寡頭的手中,而預言機專案方透過與掌握資料的巨頭以戰略合作的模式引流,大大增強了預言機網路的可擴充套件性。

一旦資料資產定價方式得到完善,由網際網路巨頭控股或者是網際網路巨頭本身開發的預言機專案將會在未來主導預言機服務的市場,充當資料價值傳遞的主要媒介。

(2)預言機與物聯網

物聯網方面,物聯網足以滲透到我們生活的方方面面,從而需要引入智慧合約使其產生的資料資產化,而智慧合約的引入將需要預言機來獲取外部的資料呼叫。

以車聯網為例,車險是最容易發生權責糾紛的合約之一,而物聯網透過感測器實時記錄車輛行駛、車輛碰撞部位、車輛違規行為記錄等資料,假設車險合約以智慧合約的形式呈現,必須透過預言機技術呼叫相關資料判斷是否可以觸發智慧合約的執行條件。

(3)預言機與金融

金融方面(特別是DeFi),需要透過預言機來保證鏈上結算的正確執行。尤其是與智慧合約相契合的利率互換、期權、去中心化槓桿交易等金融產品,比如MakerDao、CDx、0x protocol等,從而確保每筆交易以準確的價格和成交量完成交割。

(4)預言機與保險

保險方面,預言機的設計讓智慧合約保險在實現權利義務明確和自動執行(消除傳統保險合約因陳述條款模糊而導致的糾紛)的基礎上,更進一步的遏制保險欺詐,防止投保人和保險人的委託代理風險。

比如Etherisc和Fizzy實現了航班延誤的自動賠付。Nexus Mutual讓受激勵驅動的本地預言機驗證本地尚未釋出的宣告,並上報給區塊鏈。Flying Carpet實現人工智慧和地理資料的新型可程式設計保險。

但是,目前智慧合約保險僅僅只侷限於權利責任分明的保險合約,對於權利義務模糊的智慧合約(特別是複雜保險案例的界定)上具有較大的侷限性,但未來隨著保險案例的逐漸增多和法律制度的完善,這個侷限性會逐步被彌補。

(5)預言機與智慧導航

導航方面,一旦GPS被駭客攻擊不僅會給貨運、航運和航空運輸帶來嚴重的紊亂(如因定位錯誤造成國際貿易交割的違約和損失),而且將對國家安全帶來難以想象的調整(如GPS導彈系統被入侵),因此需要透過引入預言機技術使得從GPS介面獲得的定位資料沒有被篡改。

譬如FOAM強呼叫戶對其GPS資料具有所有權,使用預言機技術將GPS導航相關資料上傳到鏈上,透過定位證明機制(Proof-of-Location, PoL)證明某個人或某件事確實在某一特定時刻在某一特定地點,從而有效降低GPS資料的信任成本。

4.2

預言機面臨的調整

當前,預言機網路發展面臨著以下六大挑戰:

(1)預言機無法保證資料來源本身資料的準確性

預言機只是解決資料在傳輸過程中可能會被篡改的風險,從而在預言者和使用者之間建立可信的機制,讓不可信任的雙方可以實現價值交換

但是,一旦資料來源本身出現問題,反饋給使用者的資料同樣是失真的。

例如,駭客攻擊採用兩種不同方式攻擊GPS系統,第一種攻擊方式是透過在地位資料的傳輸渠道中篡改了目標定位的資料,第二種是直接攻擊GPS系統的資料儲存系統。

假設預言機中大多數節點是誠實的,顯而易見,第一種攻擊方式採用去中心化預言機的模式,只要GPS系統更新資料,將不同預言者呼叫資料的結果進行對比,就可以解決該問題;

第二種攻擊方式導致GPS系統本身資料來源的資料被篡改,即便GPS系統後期更新資料,它儲存資料庫的錯誤資料仍然沒有被修正,從而導致定位資料失真,進而造成航運交割的違約。

對沖資料來源出錯資料失真的方法是保持資料來源的多樣性,從而降低因資料來源本身的問題導致資料失真的可能性。

但是,在資料來源單一(如GPS定位資料、IoT裝置感測器記錄的資料)的情況下,這種缺陷則會更大概率造成資料的失真。

(2)因不可篡改性導致難以修復安全漏洞

區塊鏈的資料不可篡改是一把雙刃劍。不可篡改性的優勢在於任何人都不能篡改已發生的智慧合約,規則制度實現了去中心化(前提是大多數節點是誠實的),但是也存在較大的弊端。

一方面,安全漏洞修復代價較高。如果呼叫資料的智慧合約一旦出現安全漏洞或錯誤,因合約本身的不可篡改性會導致漏洞無法被修復,除非社羣更新軟體版本並且以硬分叉的方式(如ETC和ETH的分叉)。

而且,很多專案因出現類似問題沒有及時修復而導致代幣價值歸零。

另一方面,如果資料來源在發現錯誤後更新,則智慧合約的不可篡改性導致記錄在鏈上的仍然是更新前的資料。儘管在實際情況下,一切都可以篡改,但如果造成的後果不嚴重(僅僅少部分資料失真),則專案方或社羣不至於以硬分叉的高代價來篡改資料。

(3)程式程式碼開源導致更容易被駭客攻擊

從理論上來說,程式程式碼開源有利於讓更多人對程式碼Bug起到修復的作用,進而對智慧合約本身進行完善。

但實際上,智慧合約開原始碼導致駭客或惡意節點更容易發起攻擊。

一方面,因為絕大多數人沒有足夠的時間或精力去檢查程式碼智慧合約程式碼本身的問題,而且存在較大的技術壁壘,所以群眾對智慧合約程式碼的監督作用有限。

另一方面,由於合約程式碼的不可篡改性,雖然使任何都不能任意更改交易規則,但是一旦程式碼出現漏洞再進行糾錯的阻力較大,目前處理大規模漏洞的最好的方法是硬分叉(如ETH社羣處理The DAO),輕則讓去中心化本身失去意義,重則導致專案破產。

而大多數專案方不具備足夠的人力物力和財力(如ETH社羣),使專案的收益遠遠小於風險。

(4)資料壁壘加劇導致預言機網路引流困難

預言機網路本質上是一種資料資源整合平臺,從而實現資料共享,需要透過引流擴大網路規模,但是資料壁壘讓引流難度極高,使預言機網路規模受限。

目前,大多數資料掌握在以Facebook、Google、騰訊等極少數網際網路巨頭或Swift等行業寡頭手中,他們不願意共享自己的資料,使得核心資料獲取的難度較高,導致預言機網路的規模受到制約。

但是一旦獲得資料資源的引入將會使預言機網路規模快速擴大。

比如Chainlink與Google、甲骨文、Swift等以資料為主導的網路巨頭達成戰略合作,Google的BigQuery資料倉儲等作為資料來源為Chainlink提供大量的資料流量支援,使Chainlink網路的活躍度大幅提升。

隨著現代產權制度的逐步完善,資料壁壘將成為未來資料互動的巨大挑戰,而資料資產化的大趨勢將成為必然,能夠獲得資料資源的預言機網路將獲得更多的資料流量。

目前,預言機專案處於初創期,資料壁壘將會導致當前預言機專案風險大於收益,掌握資料資源的組織傾向於自己控制資料資產的定價權,這會從資料真實性和預言機網路規模兩個維度形成掣肘。

一方面,資料來源的多樣性是分散資料來源出錯的唯一方法,但是實際上在絕大多數情況下,資料來源往往是單一的,因資料來源出錯導致最終反饋給使用者的資料失真的風險仍然無法得到有效分散。

另一方面,預言機網路的流量是決定其專案價值的決定性因素,如果掌握資料的巨擘(特別是Google等以資料為主導的公司)自行發展預言機專案將會帶來巨大的衝擊。因此,未來預言機專案的流量取決於掌控資料資源的一方是以什麼形式參與到預言機市場。

(5)高效性與冗餘容錯設計的衝突

高效性和冗餘容錯存在不可避免的衝突。如果預言機網路採用中心化的商業模式(如Oraclize),資料反饋速度就會比去中心化預言機網路更快,即便可以證明自己的誠實,並透過分散式伺服器規避單點故障的風險,也可以也難以分散因無法驗證資料來源致使資料失真的風險;

反之,如果預言機網路採用去中心化的商業模式(如Chainlink),則冗餘容錯將不可避免的導致資料反饋的低效,但是又可以透過共識機制和信譽評級等機制充分證明預言者(Oracle)的誠實,並且可以有效分散資料來源失真的風險。

(6)預言機對低時延的資料服務應當降低其交易時間

預言機應當儘可能降低服務時延。DeFi產品大部分以智慧合約的形式實現日常的交割,以The DAO為代表等產品需要透過預言機網路頻繁的獲取ETH等數字貨幣的實時價格資料,使其有效的執行。

毫無疑問,當前價格資訊實時獲取是是Oraclize和Chainlink等預言機網路中最頻繁的資料服務請求,然而,數字貨幣資產價格波動的速度很快而且波動的幅度較大,從而導致預言機反饋給客戶的價格與當前實際價格產生嚴重的偏離。

參考文獻

[1] Turing, A., On Computable Numbers, With an Application to the Entscheidungs problem, Proceedings of the London Mathematical Society, Series 2, Volume 42, 1936

[2] Nick Szabo, Smart Contracts: Building Blocks for Digital Markets. www.fon.hum.uva.nl., 2017

[3]《DOS Network技術白皮書》:http://iii67.cn/zi9Evi

[4] Provable Documentation: http://suo.im/6qLCse

[5]《Chainlink白皮書》: https://chain.link/cn/

免責聲明:

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

推荐阅读

;