去中心化的預言機:全面概覽(一)

買賣虛擬貨幣

在將智慧合約帶入到這個世界上之後,這個世界也需要被帶入到智慧合約中。

預言機將會把智慧合約帶入到新的發展階段 — Original Photo by Donald Giannatti

分散式賬本和智慧合約將透過進一步消除人類生活中的嫌隙而帶來前所未有的創新,但在這些智慧合約可以無需信任地接受鏈外輸入之前,創新將會受到限制。去中心化預言機是智慧合約與外界互動的門戶,同時避免對單一事實來源的依賴,這將帶來另一波激動人心的創新。

本文將對一下內容做詳細介紹:

為什麼預言機服務是去中心化技術棧中的核心服務,
對無信任服務的需求,
預言機會遇到的各種挑戰和攻擊方式,
8個致力於這方面研究的工程介紹。

I. 為什麼我們需要預言機

公共區塊鏈專案(例如Ethereum, Dfinity)上的智慧合約在對抗環境中執行,其中僅透過傳播確定性事務(即可由所有節點驗證的事務)來保證安全性。智慧合約被設計為接收輸入→執行業務邏輯→更新區塊鏈相應的狀態,這個過程是不可逆的;區塊鏈世界中沒有Ctrl+Z。

允許智慧合約接受來自區塊鏈外部的輸入是一把雙刃劍;透過允許與外部世界進行互動,會極大地增加應用案例數量,同時也會引入信任問題。公鏈上的礦工無法確定性地驗證所有外部輸入,因此將執行與智慧合約的預定義標準相匹配的任何內容。

讓我們來看一個簡單的例子:假設有這樣一個智慧合約,Alice和Bob打賭,猜倫敦時間2019.1.3下午兩點的比特幣價格。Alice和Bob都向智慧合約抵押了1ETH;如果屆時比特幣價格高於4,200美元,Alice將會得到2ETH,否則,Bob將會得到2ETH。智慧合約對於比特幣的價格沒有概念,所以我們必須找到一個方法來向合約報告正確的價格,特別是一旦這個賭約的結果確定了,就無法更改了。為了達到這個目的,我們需要預言機。

預言機是一個宣告真實世界狀態的實體。比如,一個預言機可以報告2019.1.3日Coinbase上BTC/USD價格,或者2019年歐洲冠軍聯賽的獲勝者。這些資訊將透過一個或多個預言機哪裡來獲取或聚合,這些預言機從一個或多個可信的資料來源獲取具體資料。

在深入探討無信任的預言機的各種技術挑戰之前,我們想提出我們預見的5個基於預言機的智慧合約關鍵應用案例。

金融產品

智慧合約非常適合許多金融產品:利率掉期交易,期權現金結算,去中心化槓桿交易。所有這些都需要無信任的資料來源,以確保正確的鏈上執行結果。

現在已經可以利用的金融產品預言機的專案示例:CDx,dYdX,MakerDAO,Vega Protocol,0x protocol。

保險智慧合約

憑藉無信任和可靠的事實來源,一些保險產品可以透過智慧合約以程式設計方式購買和結算。保險公司最大的損失是騙保,所以,預言機在此時也是非常關鍵的。智慧保險的幾個例子包括:

· 透過Etherisc和Fizzy在航班延誤時自動支付。
· 鼓勵本地的預言機在本地驗證宣告,並在與Nexus Mutual一起釋出索賠之前向區塊鏈報告。
· 人工智慧與地理資料相結合,用於FlyingCarpet的創新和程式化保險。

運輸

GPS並不總是適合需要可靠位置來自動完成付款的dApp,因為它可以透過偽造造成中心化的單點故障。以FOAM為例,它可以降低中心化的位置服務信任標準,並依靠去中心化的網路來保證聲稱的位置,此處需要地理預言機來充當該角色。

抵押借款和穩定幣

需要獲得關於抵押品價值的可靠資料,以決定何時清算資產,或在它離開預期價值太遠何時重新確定穩定幣的價值。例如,Maker DAO公司的DAI是一種基於以太幣的穩定幣(很快會基於多資產),他擁有多個預言機來報告以太幣價格,以便能知道合適貸款抵押不足,需要因此進行清算以保護系統。這些預言機由Maker代幣持有者選擇和得到補償。

這也可以應用到與Ethlend或Dharma等無信任的p2p借貸平臺。

預測市場:

利用人們的已有知識,去中心化預測市場(Augur, Gnosis)會將人類的協作推向前所未有的高度。這些市場需要依靠一個或多個預言機來進行鏈下事件結算。

II. 確保預言機誠實可信

區塊鏈被設計為與外部世界和可信第三方分離。但是,大部分的事件仍然發生在區塊鏈外部,所以我們需要(在區塊鏈和外部世界之間)建立一個橋樑,但又不能在抗審查方面有所妥協。事實上,dApp的可信程度取決於它最薄弱的環節,所以單一的資訊來源是不夠可靠的。使用多個事實來源會更安全,但同時也會帶來更高的成本。目前沒有一個通用的解決方案,我們可以期望應用程式採用基於自身風險判斷的方法來確定需要少從多少個來源處為應用程式獲取資訊。

比如,如果智慧手機應用可以容忍較粗的精度的話,倫敦的氣溫可以透過一個單一的預言機(比如API)來轉發得到,但是如果溫度報告是用來結算一筆1千萬美元的保險合同的話,我們使用多個(很多!)預言機:衛星資料、本地感測器資料等等。

因此,預言機可能會提供一系列解決方案,根據所涉及的在成本和去中心化之間權衡取決於所涉及的價值。

瑞士乳酪模型

第三方機構很難保證永遠值得信任。為了在中心化的世界中解決這個問題,我們使用多層級的保護:合同、責任公司、保險、法律……只要其中一個層級按照預想的起作用,正確性就可以得到保障。然而,如果所有層級都出現了問題,攻擊就會成功(瑞士乳酪模型)。

一個過分依賴中心化預言機的例子是LIBOR醜聞。倫敦銀行同業拆借利率(London Interbank Offered Rate, LIBOR)是一種銀行間利率,通常用於計算專業和個人抵押貸款利率,以及其他金融產品,這些利潤總共支撐了300萬億美元的貸款。據說,從2005年或2003年開始,交換交易商多年來相互勾結,操縱這一利率。倫敦銀行同業拆借利率也被用作衡量銀行健康狀況的指標,而導致2007–2008年金融危機期間的利率被操縱,使得一些金融機構看起來比實際情況更健壯……

這裡的結論再次證明,單個(未經審計的)事實來源是一個薄弱環節,會損害依賴它的整個系統。

雖然萬無一失的系統,但我們可以將多層保護概念同樣地應用於去中心化預言機,作為最少信任機制。

A.多資料來源

降低錯誤資料包告的可能性的最簡單的方法是讓預言機聚合多個資料來源。在這種情況下,只有兩種方式會收到錯誤資料:大多數資料來源出現故障,或者是預言機自身出現故障(單點故障)。

B.多預言機

透過增加預言機的數量,它們在概率上不太可能全部都是惡意的,因此只要大多數人是誠實的,系統就是安全的。但是,所有預言機都存在有意或無意地傳遞錯誤資訊的風險(如果來源本身就已經被破壞了)。

C.利益攸關【譯註】

去中心化網路可以加入某些激勵機制,以確保其參與者的行為符合網路的利益,並因此而得到補償。這就是為什麼礦工獲得大量獎勵的原因,也是為什麼股權證明(PoS)需要削減條件以對抗女巫(Sybil)攻擊和無抵押(nothing-at-stake)攻擊的原因。

讓去中心化的匿名身份扮演預言機的角色是非常危險的,特別是當他們的不良行為會帶來財產損失但卻無法合法索回的時候。透過在專案中使用代幣,去中心化的預言機網路可以強制節點以網路的原生貨幣存入資金/存款,以便有機會為網路執行工作。如果他們表現良好,他們會為自己的工作獲得回報。如果他們行為不端,他們就會失去一定比例的股份。這確保了預言機有正確的激勵來傳播準確的資料。

【譯註】原文為 Skin-in-the-Game

D.可信執行環境(Trusted execution environment)TEEs

英特爾最近推出的Software Guard eXtensions(SGX)或ARM的TrustZone就是TEE的典範。這種機制的原理是類似的,我們將以英特爾的解決方案為例。

簡單來說,SGX允許應用程式在稱為安全區的環境中執行,該環境為使用者級程式碼提供硬體保護。首先,安全區保護應用程式(資料,程式碼和控制流)的完整性,以防止其他程序的破壞。其次,安全區保護應用程式的機密性,這意味著其資料,程式碼和執行狀態在理論上對作業系統的其它部分是不透明的。然而,它可以在安全區外讀取和寫入儲存器。SGX旨在保護應用程式,即使是程式執行在懷有惡意作業系統或是節點管理員的情況下。

在安全區執行預言機並分發證明可以提供一個強有力的保證,保證預言機正在執行特定應用程式,因為SGX系統是否正在執行可以被遠端證明。

值得一提的是,在英特爾SGX中連續發現了兩個漏洞(2018年3月和2018年7月),還有更多漏洞被發現。雖然第一個漏洞已經修復,但這凸顯了單獨使用TEE會出現單點故障的情形,並且當智慧合約從一個或多個預言機產生輸入並自主執行時,針對單點故障的多個保護層是至關重要的。

這些防護屏障在單獨使用時是不起作用的,但它們在組合時顯然會更有效。在下一節中,我們將介紹去中心化預言機的主要攻擊方式,接下來將是利用這些實際專案的示例。

免責聲明:

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

推荐阅读

;