當(dāng)你需要一些你不想自己獲?。ɑ蛘吣銦o(wú)法獲?。。┑臄?shù)據(jù)時(shí),你需要與預(yù)言機(jī)這樣的第三方進(jìn)行交流。原因有很多。
一方面,在簽署比特幣多重簽名交易時(shí),你可能無(wú)法相信某一實(shí)體。比方說(shuō),你希望一筆資金在某些特定條件下被轉(zhuǎn)移。與其自己手動(dòng)執(zhí)行(不委托任何第三方)或?qū)⑵湮薪o第三方執(zhí)行(你不會(huì)信任他,因?yàn)樗赡鼙憩F(xiàn)很差),不如用比特幣的方式強(qiáng)制執(zhí)行多重簽名,將交易審批流程分派到不同的簽署方(預(yù)言機(jī)?)。
利用?N/M?多重簽名交易(譯注:即在M個(gè)簽名方中只要有 N 個(gè)同意交易就能執(zhí)行的多重簽名機(jī)制)的方法是確保每個(gè)預(yù)言機(jī)只擁有一個(gè)私鑰,這樣預(yù)言機(jī)可以在它認(rèn)為正確的時(shí)間進(jìn)行簽名,但交易只會(huì)在 M 個(gè)預(yù)言機(jī)中的 N 個(gè)都對(duì)簽署某個(gè)交易達(dá)成一致時(shí)才有效。這比信任單一的第三方要強(qiáng)大得多,因?yàn)檫x擇的預(yù)言機(jī)可能是相互競(jìng)爭(zhēng)的,因此全部作假的可能性很低。
分布式預(yù)言機(jī)網(wǎng)絡(luò)的想法已經(jīng)存在了很多年,但是在一個(gè)跨預(yù)言機(jī)通信協(xié)議(Orisi 算是其中一個(gè)嗎?)上找到共識(shí)是很困難的。尋找愿意加入該網(wǎng)絡(luò)的各方更加困難,因?yàn)樾枰冉⒁粋€(gè)良好的激勵(lì)機(jī)制,而且我們還不知道應(yīng)該如何設(shè)計(jì)與這個(gè)預(yù)言機(jī)網(wǎng)絡(luò)進(jìn)行的交互。除此之外,一個(gè)主要限制可能是你想要獲取數(shù)據(jù)的數(shù)據(jù)源,其中一些可能在未經(jīng)許可的情況下無(wú)法在外部使用(稍后我們將對(duì)此進(jìn)行更深入的討論)。
考慮到(以太坊)智能合約時(shí),這個(gè)想法有了很大改觀,交易的批準(zhǔn)邏輯在網(wǎng)絡(luò)上由你自己的智能合約代碼實(shí)施。這意味著預(yù)言機(jī)并不會(huì)在某些條件得到驗(yàn)證時(shí)就執(zhí)行簽名,而會(huì)向你提供你要求的數(shù)據(jù),你就可以直接驗(yàn)證條件并觸發(fā)交易或者狀態(tài)更改。但是你仍然不能依靠分布式網(wǎng)絡(luò)來(lái)獲取外部數(shù)據(jù):鏈上的應(yīng)用程序/服務(wù)活在自己的世界里,因此需要預(yù)言機(jī)來(lái)引入外部數(shù)據(jù)。
對(duì)數(shù)據(jù)日益增長(zhǎng)的需求來(lái)自越來(lái)越多的行業(yè)尋求愈發(fā)復(fù)雜的現(xiàn)實(shí)世界用例。然而,大多數(shù)關(guān)于預(yù)言機(jī)的誤解是由于你并沒(méi)有清楚地認(rèn)識(shí)到你需要什么樣的數(shù)據(jù)。
例如 Augur 或 Gnosis 這樣的預(yù)測(cè)市場(chǎng)平臺(tái)就是為未來(lái)發(fā)生的關(guān)于人群不斷變化的情緒(或知識(shí)?。┑牧己煤涂煽康闹笜?biāo)。預(yù)測(cè)市場(chǎng)通常也被稱為預(yù)言機(jī),但相對(duì)于上面討論的預(yù)言機(jī),預(yù)測(cè)市場(chǎng)的意義是不一樣的,覆蓋面更為廣泛。
還有一點(diǎn)值得討論,我們只想把預(yù)言機(jī)當(dāng)做價(jià)格推送嗎?在這個(gè)情況下,預(yù)言機(jī)就只是一個(gè)數(shù)據(jù)源,大多數(shù)時(shí)候它不會(huì)與區(qū)塊鏈有任何關(guān)聯(lián)。金融機(jī)構(gòu)通常將“彭博社”或“路透社”稱為預(yù)言機(jī),但真正含義是金融機(jī)構(gòu)只是將其用作數(shù)據(jù)源。作為真正的預(yù)言機(jī)會(huì)需要與區(qū)塊鏈交互,由此產(chǎn)生很多復(fù)雜問(wèn)題,而這是一些數(shù)據(jù)源不愿意負(fù)擔(dān)的(額外的復(fù)雜性和成本)。盡管如此,一旦選擇了合適的數(shù)據(jù)源和公式,預(yù)言機(jī)就可以訪問(wèn)彭博社的數(shù)據(jù)。把“數(shù)據(jù)源”稱為“預(yù)言機(jī)”,是對(duì)術(shù)語(yǔ)的誤用。
為了方便描述,我們定義一下這3種類型:
數(shù)據(jù)源
查詢
預(yù)言機(jī) / 預(yù)言機(jī)網(wǎng)絡(luò)
數(shù)據(jù)源(data-source)即你要查找的信息的來(lái)源,根據(jù)你的實(shí)際查詢內(nèi)容,數(shù)據(jù)源可以是任何東西,一些例子包括 “Augur”(查看未來(lái)事件/事實(shí)),“Bloomberg”( 尋找金融數(shù)據(jù)),“比特幣區(qū)塊鏈”(尋找地址余額,某個(gè)交易的 OP_RETURN 內(nèi)容或任何其他區(qū)塊鏈數(shù)據(jù)),“WolframAlpha”(尋找對(duì)給定 Wolfram Alpha 查詢的響應(yīng))或..“網(wǎng)絡(luò)”? 獲取 Web 數(shù)據(jù)源或 API 數(shù)據(jù)是獲取數(shù)據(jù)的最簡(jiǎn)單也是最常用的方法。
查詢是你選擇的數(shù)據(jù)源可以理解的公式,以便將你想要的數(shù)據(jù)提供給你。
預(yù)言機(jī)/預(yù)言機(jī)網(wǎng)絡(luò)是負(fù)責(zé)將你連接到數(shù)據(jù)源。
以下兩點(diǎn)我認(rèn)為值得提一下:
我為什么要信任數(shù)據(jù)源?大多數(shù)情況下你不應(yīng)該信任。在不同的數(shù)據(jù)源中找到其共識(shí)是一個(gè)很好的方法,并且可以提供額外的可靠性,同時(shí)仍然使用某種“中心化”(有用)的數(shù)據(jù)。
如果預(yù)言機(jī)/預(yù)言機(jī)網(wǎng)絡(luò)給我返回錯(cuò)誤的結(jié)果怎么辦?這是希望使用預(yù)言機(jī)網(wǎng)絡(luò)共識(shí)而不是單個(gè)預(yù)言機(jī)的主要論點(diǎn)。但是,不是還有其他辦法來(lái)阻止預(yù)言機(jī)偽造數(shù)據(jù)嗎?回頭我們稍微討論一下。

Oraclize 方案作為預(yù)言機(jī)的實(shí)現(xiàn)有點(diǎn)不同。
你可以把 Oraclize看作單個(gè)預(yù)言機(jī)和增強(qiáng)型預(yù)言機(jī)網(wǎng)絡(luò)之間的東西。Oraclize?可能會(huì)避免響應(yīng)你的數(shù)據(jù)請(qǐng)求(由于法律原因或停機(jī)時(shí)間),但無(wú)法更改你選擇的數(shù)據(jù)源的數(shù)據(jù)。
這就是為什么我們的服務(wù)被稱為“可證誠(chéng)實(shí)的”。這個(gè)方案得以存在要感謝?TLSNotary/pagesigner。它是對(duì) TLS 的一種修改,我們的預(yù)言機(jī)服務(wù)使用它來(lái)提供密碼學(xué)證明,表明我們提供給你的數(shù)據(jù)和給定服務(wù)器在特定時(shí)間給予我們的數(shù)據(jù)是一致的。除了提供此證明外,Oraclize 還將證明分發(fā)到網(wǎng)絡(luò)上,作為 IPFS 持久聯(lián)盟的一部分,即使我們的系統(tǒng)(出于任何原因)無(wú)法訪問(wèn),我們的證明多數(shù)時(shí)候也是可用的。
我們確實(shí)還會(huì)提供工具來(lái)獨(dú)立驗(yàn)證我們的可信度。例如,以太坊網(wǎng)絡(luò)監(jiān)視器從你的客戶端(這就是為什么它占用好多磁盤空間,騷瑞!)連接到以太坊公共節(jié)點(diǎn)和 IPFS 網(wǎng)關(guān)(或者如果你愿意的話連接到你本地節(jié)點(diǎn))尋找 Oraclize 交易,取回它們的 TLSNotary誠(chéng)實(shí)證明并驗(yàn)證。
你可以輕松地自行監(jiān)控網(wǎng)絡(luò),以確保Oraclize方案的行為誠(chéng)實(shí),并且我們鼓勵(lì)你這樣做!

這在實(shí)踐中意味著什么?如果我們篡改了你的數(shù)據(jù),任何人可以在任何時(shí)候自動(dòng)地驗(yàn)證這一點(diǎn),我們會(huì)瞬間名譽(yù)掃地。如果遇到一次錯(cuò)誤對(duì)你來(lái)說(shuō)仍然太冒險(xiǎn),那么你可以等待我們發(fā)布正在為以太坊開(kāi)發(fā)的開(kāi)源鏈上驗(yàn)證碼系統(tǒng)。這意味著你的智能合約代碼可以在從 Oraclize 接收數(shù)據(jù)時(shí)自行驗(yàn)證 TLSNotary 證明,以便在證明結(jié)果無(wú)效時(shí)丟棄此數(shù)據(jù)!
在我們看來(lái),Oraclize 方案是一種很好的折衷辦法,以一種適用于當(dāng)今的分布式區(qū)塊鏈和智能合約的方式解決“預(yù)言機(jī)問(wèn)題”。擁有預(yù)言網(wǎng)絡(luò)將有助于解決“審查/停機(jī)”問(wèn)題,但依靠單一預(yù)言所帶來(lái)的風(fēng)險(xiǎn)卻因?yàn)?Oraclize 方案正在實(shí)施的新方法而大大減少。
Oraclize team 聲明:本文中有關(guān) Oraclize 的部分信息已經(jīng)過(guò)時(shí),具體而言:
除了基于 TLS Notary 技術(shù)的可信證明以外,今天我們已經(jīng)支持其他類型的可信證明(如 Android 證明和?Ledger證明);
通過(guò)?Proof Shield,可信證明的鏈上驗(yàn)證也已成為可能。
原文鏈接:?https://blog.oraclize.it/understanding-oracles-99055c9c9f7b
作者:?Thomas Bertani
翻譯&校對(duì):?小馬 Pony & Elisa