什麼是預言機

當你需要一些你不想自己獲取(或者你無法獲取!)的數據時,你需要與

預言機這樣的第三方進行交流。原因有很多。

一方面,在簽署比特幣多重簽名交易時,你可能無法相信某一實體。比方說,你希望一筆資金在某些特定條件下被轉移。與其自己手動執行(不委託任何第三方)或將其委託給第三方執行(你不會信任他,因為他可能表現很差),不如用比特幣的方式強制執行多重簽名,將交易審批流程分派到不同的簽署方(預言機?)。

利用 N/M 多重簽名交易(譯註:即在M個簽名方中只要有 N 個同意交易就能執行的多重簽名機制)的方法是確保每個預言機只擁有一個私鑰,這樣預言機可以在它認為正確的時間進行簽名,但交易只會在 M 個預言機中的 N 個都對簽署某個交易達成一致時才有效。這比信任單一的第三方要強大得多,因為選擇的預言機可能是相互競爭的,因此全部作假的可能性很低。

分佈式預言機網絡的想法已經存在了很多年,但是在一個跨預言機通信協議(Orisi 算是其中一個嗎?)上找到共識是很困難的。尋找願意加入該網絡的各方更加困難,因為需要先建立一個良好的激勵機制,而且我們還不知道應該如何設計與這個預言機網絡進行的交互。除此之外,一個主要限制可能是你想要獲取數據的數據源,其中一些可能在未經許可的情況下無法在外部使用(稍後我們將對此進行更深入的討論)。

考慮到(以太坊)智能合約時,這個想法有了很大改觀,交易的批准邏輯在網絡上由你自己的智能合約代碼實施。這意味著預言機並不會在某些條件得到驗證時就執行簽名,而會向你提供你要求的數據,你就可以直接驗證條件並觸發交易或者狀態更改。但是你仍然不能依靠分佈式網絡來獲取外部數據:鏈上的應用程序/服務活在自己的世界裡,因此需要預言機來引入外部數據。

數據日益增長的需求來自越來越多的行業尋求愈發複雜的現實世界用例。然而,大多數關於預言機的誤解是由於你並沒有清楚地認識到你需要什麼樣的數據。

例如 Augur 或 Gnosis 這樣的預測市場平臺就是為未來發生的關於人群不斷變化的情緒(或知識!)的良好和可靠的指標。預測市場通常也被稱為預言機,但相對於上面討論的預言機,預測市場的意義是不一樣的,覆蓋面更為廣泛。

還有一點值得討論,我們只想把預言機當做價格推送嗎?在這個情況下,預言機就只是一個數據源,大多數時候它不會與區塊鏈有任何關聯。金融機構通常將“彭博社”或“路透社”稱為預言機,但真正含義是金融機構只是將其用作數據源。作為真正的預言機會需要與區塊鏈交互,由此產生很多複雜問題,而這是一些數據源不願意負擔的(額外的複雜性和成本)。儘管如此,一旦選擇了合適的數據源和公式,預言機就可以訪問彭博社的數據。把“數據源”稱為“預言機”,是對術語的誤用。

為了方便描述,我們定義一下這3種類型:

  • 數據源

  • 查詢

  • 預言機 / 預言機網絡

數據源(data-source)即你要查找的信息的來源,根據你的實際查詢內容,數據源可以是任何東西,一些例子包括 “Augur”(查看未來事件/事實),“Bloomberg”( 尋找金融數據),“比特幣區塊鏈”(尋找地址餘額,某個交易的 OP_RETURN 內容或任何其他區塊鏈數據),“WolframAlpha”(尋找對給定 Wolfram Alpha 查詢的響應)或..“網絡”? 獲取 Web 數據源或 API 數據是獲取數據的最簡單也是最常用的方法。

查詢是你選擇的數據源可以理解的公式,以便將你想要的數據提供給你。

預言機/預言機網絡是負責將你連接到數據源。

以下兩點我認為值得提一下:

  1. 我為什麼要信任數據源?大多數情況下你不應該信任。在不同的數據源中找到其共識是一個很好的方法,並且可以提供額外的可靠性,同時仍然使用某種“中心化”(有用)的數據。

  2. 如果預言機/預言機網絡給我返回錯誤的結果怎麼辦?這是希望使用預言機網絡共識而不是單個預言機的主要論點。但是,不是還有其他辦法來阻止預言機偽造數據嗎?回頭我們稍微討論一下。

什麼是預言機

Oraclize 方案作為預言機的實現有點不同。

你可以把 Oraclize看作單個預言機和增強型預言機網絡之間的東西。Oraclize 可能會避免響應你的數據請求(由於法律原因或停機時間),但無法更改你選擇的數據源的數據。

這就是為什麼我們的服務被稱為“可證誠實的”。這個方案得以存在要感謝 TLSNotary/pagesigner。它是對 TLS 的一種修改,我們的預言機服務使用它來提供密碼學證明,表明我們提供給你的數據和給定服務器在特定時間給予我們的數據是一致的。除了提供此證明外,Oraclize 還將證明分發到網絡上,作為 IPFS 持久聯盟的一部分,即使我們的系統(出於任何原因)無法訪問,我們的證明多數時候也是可用的。

我們確實還會提供工具來獨立驗證我們的可信度。例如,以太坊網絡監視器從你的客戶端(這就是為什麼它佔用好多磁盤空間,騷瑞!)連接到以太坊公共節點和 IPFS 網關(或者如果你願意的話連接到你本地節點)尋找 Oraclize 交易,取回它們的 TLSNotary誠實證明並驗證。

你可以輕鬆地自行監控網絡,以確保Oraclize方案的行為誠實,並且我們鼓勵你這樣做!

什麼是預言機

這在實踐中意味著什麼?如果我們篡改了你的數據,任何人可以在任何時候自動地驗證這一點,我們會瞬間名譽掃地。如果遇到一次錯誤對你來說仍然太冒險,那麼你可以等待我們發佈正在為以太坊開發的開源鏈上驗證碼系統。這意味著你的智能合約代碼可以在從 Oraclize 接收數據時自行驗證 TLSNotary 證明,以便在證明結果無效時丟棄此數據!

在我們看來,Oraclize 方案是一種很好的折衷辦法,以一種適用於當今的分佈式區塊鏈和智能合約的方式解決“預言機問題”。擁有預言網絡將有助於解決“審查/停機”問題,但依靠單一預言所帶來的風險卻因為 Oraclize 方案正在實施的新方法而大大減少。

Oraclize team 聲明:本文中有關 Oraclize 的部分信息已經過時,具體而言:

  1. 除了基於 TLS Notary 技術的可信證明以外,今天我們已經支持其他類型的可信證明(如 Android 證明和 Ledger證明);

  2. 通過 Proof Shield,可信證明的鏈上驗證也已成為可能。

作者: Thomas Bertani

翻譯&校對: 小馬 Pony & Elisa


分享到:


相關文章: