預言機打通了區(qū)塊鏈與互聯(lián)網(wǎng)現(xiàn)實世界之間的隔閡
在金融衍生品、保險和貿(mào)易行業(yè),智能合約需要外部鏈下數(shù)據(jù)才能觸發(fā)合約執(zhí)行??墒牵^大多數(shù)的數(shù)據(jù)都沒有上鏈,區(qū)塊鏈與真實世界無法連通。
區(qū)塊鏈是一個閉環(huán)的生態(tài),如果智能合約無法獲取鏈下數(shù)據(jù)或無法與傳統(tǒng)系統(tǒng)交互,那么它在智能性和功能性上都不足以在現(xiàn)實世界中被廣泛應用。
區(qū)塊鏈如何拿到互聯(lián)網(wǎng)的數(shù)據(jù),存入到區(qū)塊鏈,這是一個難點,也是未來的一個方向。
預言機(oracle machine),又稱諭示機,是一種抽象電腦,用來研究決定型問題。可以被視為一個多了個黑盒子(預言者)的圖靈機,這個黑盒子的功能是可以在單一運算之內(nèi)解答特定問題。這樣看來,區(qū)塊鏈領域的預言機也是像一個黑盒子,用來解決區(qū)塊鏈與現(xiàn)實世界中間的特定數(shù)據(jù)問題。
7月5日,鋅鏈接在深圳舉辦了“鋅火燎原?產(chǎn)業(yè)區(qū)塊鏈生態(tài)沙龍”第五期,主題為“區(qū)塊鏈技術的未來走向”。
鋅鏈接創(chuàng)始人龔海瀚邀請德方智鏈技術總監(jiān)袁運亮、PlatON首席投資官唐虹剛、優(yōu)權天成創(chuàng)始人兼CEO車克達、微眾區(qū)塊鏈高級架構師莫楠、皓風區(qū)塊鏈創(chuàng)始人、中國注冊會計師馬洪,一起探討區(qū)塊鏈技術的發(fā)展趨勢。
德方智鏈技術總監(jiān)袁運亮現(xiàn)場進行了主題為“擴展智能合約邊界-預言機連接鏈內(nèi)鏈外”的分享。
以下是袁運亮的分享原文,有刪減:
1. 預言機:智能合約與外部數(shù)據(jù)交互的有效途徑
互聯(lián)網(wǎng)現(xiàn)在是主戰(zhàn)場,不管是哪一行都在互聯(lián)網(wǎng)化。區(qū)塊鏈要邁入這個主戰(zhàn)場,必須要融合到互聯(lián)網(wǎng)里去。
區(qū)塊鏈首先要融入互聯(lián)網(wǎng),讓更多人使用,才有可能成為互聯(lián)網(wǎng)的顛覆者,而預言機剛好打通了區(qū)塊鏈跟互聯(lián)網(wǎng)之間的隔閡。
11月6日,在中國人民銀行發(fā)布的《區(qū)塊鏈能做什么?不能做什么?》的報告中,對預言機的定義是,區(qū)塊鏈外信息寫入?yún)^(qū)塊鏈內(nèi)的機制,一般被稱為預言機 (oracle mechanism) 。
預言機的功能就是將外界信息寫入到區(qū)塊鏈內(nèi),完成區(qū)塊鏈與現(xiàn)實世界的數(shù)據(jù)互通。
它允許確定的智能合約對不確定的外部世界作出反應,是智能合約與外部進行數(shù)據(jù)交互的唯一途徑,也是區(qū)塊鏈與現(xiàn)實世界進行數(shù)據(jù)交互的接口。預言機具有不可篡改、服務穩(wěn)定、可審計等特點。
智能合約運行出來的結(jié)果是確定性的,因為區(qū)塊鏈是要達成共識才可以將數(shù)據(jù)寫入?yún)^(qū)塊鏈。如果智能合約的結(jié)果是不確定的,各個節(jié)點或者各個主體是無法達成共識的,也就沒有辦法寫入到區(qū)塊鏈里。
2. 區(qū)塊鏈為什么需要預言機?
區(qū)塊鏈為什么需要預言機?
第一,像以太坊、EOS這樣的區(qū)塊鏈網(wǎng)絡沒有直接的途徑來獲取鏈外的信息,所以沒辦法獲取和驗證觸發(fā)智能合約的條件。那么我們設想的智能合約自動執(zhí)行法律文件、履行商務合同、進行防偽溯源和征信驗證等所有應用領域的功能可能都無法實現(xiàn)。
第二,區(qū)塊鏈是一個確定性的、封閉的系統(tǒng)環(huán)境,目前區(qū)塊鏈只能獲取到鏈內(nèi)的數(shù)據(jù),而不能獲取到鏈外真實世界的數(shù)據(jù),區(qū)塊鏈與現(xiàn)實世界是割裂的。如果區(qū)塊鏈要邁入主戰(zhàn)場,要將區(qū)塊鏈跟現(xiàn)實世界關聯(lián)起來。
第三,區(qū)塊鏈是基于共識的系統(tǒng),所運行的智能合約要求一定要是確定性的程序。預言機對數(shù)據(jù)驗證契合共識機制,使最后反饋給智能合約的數(shù)據(jù)也是“確定性”的。
預言機能保證所有智能合約的節(jié)點獲取的數(shù)據(jù)是一樣的,最后反饋給智能合約的數(shù)據(jù)也是確定的,只有這樣,多方才能達成共識。如果達不成共識,數(shù)據(jù)是沒有辦法寫到區(qū)塊鏈的。所以區(qū)塊鏈是基于共識機制,獲取的外部數(shù)據(jù)一定要是確定性的數(shù)據(jù)。
第四,通過預言機訪問互聯(lián)網(wǎng),保護區(qū)塊鏈應用的安全性和健壯性。
3. 預言機的四種解決方案
預言機的解決方案大致分兩種類型,一個是單一模型的,就是中心化的;一個是多重模型,就是一個預言機的網(wǎng)絡,是去中心化或者多中心化的。
預言機有四種主流的解決方案:
第一個是Oraclize。它是一個單一模型,是中心化的預言機,相當于一個中立的第三方代理機構,大家都相信它。
如果人們股票、天氣、等數(shù)據(jù),都通過同一個預言機去獲取。德方智鏈是基于Fabric加Oraclize的一個聯(lián)盟鏈。因為我們是做供應鏈金融的,包括應收帳款、ABS、票據(jù)還有資產(chǎn)交易的平臺。
第二個是歐鏈 OracleChain,是一個多區(qū)塊鏈的去中心化Oracle技術平臺,采用自主的PoRD機制,將現(xiàn)實世界數(shù)據(jù)引入?yún)^(qū)塊鏈,并將此作為基礎設施為其他區(qū)塊鏈應用提供服務。
OracleChain將在區(qū)塊鏈內(nèi)提供現(xiàn)實世界數(shù)據(jù)的Oracle服務,同時還可以提供跨鏈數(shù)據(jù)的Oracle服務。
基于OracleChain除了能實現(xiàn)Augur、Gnosis等預測市場(Prediction Market)應用的功能之外,還能支撐對鏈外數(shù)據(jù)有更高頻率訪問需求的智能合約業(yè)務,比如智能投顧等場景。
第三個是Chainlink 。通過在鏈上的智能合約和鏈下的數(shù)據(jù)節(jié)點,通過獎懲機制和聚合模型的方式,進行數(shù)據(jù)的請求和饋送。
第四是DOS Network,是一個支持多鏈的功能完全的(支持數(shù)據(jù)預言機和計算預言機)去中心化預言機服務網(wǎng)絡。
旨在去中心化應用能夠以安全有效的方式通過去中心化的鏈下網(wǎng)絡獲取外部數(shù)據(jù)并執(zhí)行復雜的計算,這將大大促進區(qū)塊鏈上的應用發(fā)展。可以適配所有主流公鏈,比如以太坊、EOS、Tron、ThunderCore、Ultrain 等。
4. 智能合約跟預言機的結(jié)合
用戶的智能合約是不能直接去請求外部的API接口的,公鏈很多是封閉的,沒有辦法訪問外部的API。
很多聯(lián)盟鏈是可以直接訪問外部的API的,但如果直接訪問外部API,比如聯(lián)盟鏈有十個節(jié)點,每個節(jié)點的智能合約都去單獨訪問外部的API,外部的數(shù)據(jù)一旦變了,取回來的結(jié)果是不一致的。一旦不一致,在驗證的時候就會通不過,達不成共識,交易就會失敗。
德方智鏈整個事務處理流程就是從應用端發(fā)起一個請求,到SDK API服務,API服務再去調(diào)用用戶的智能合約,再通過用戶的智能合約去調(diào)預言機的智能合約,預言機的智能合約通過預言機的API,去調(diào)用預言機的執(zhí)行引擎,執(zhí)行引擎再去做代理的工作,通過我們的網(wǎng)關再去調(diào)第三方的權威數(shù)據(jù)。
返回來的數(shù)據(jù)回到整個區(qū)塊鏈,然后通過一些共識和排序?qū)?shù)據(jù)結(jié)果寫到節(jié)點上形成一個賬本。
直接去訪問跟預言機訪問有什么區(qū)別呢?這就涉及到可信證明技術,證明他獲取來的結(jié)果不管是哪個節(jié)點訪問,返回的結(jié)果都是一致的,而且是可以審計的。你寫入到區(qū)塊鏈的,跟預言機獲取到的是一致的,中間沒有被篡改。
通過預言機的引擎去調(diào)用API接口,返回的數(shù)據(jù)通過可信證明技術驗證,到達各自用戶的智能合約里,所以它能確保調(diào)用外部的API獲取到的數(shù)據(jù)是一樣的,這樣就可以在整個區(qū)塊鏈里達成一個共識。