區(qū)塊鏈的去中心化賬本和智能合約為當(dāng)今社會解決了P2P交互的信任問題,無需任何中心化機構(gòu)進行信任背書,這是人類社會信任體系的重大革新。但是當(dāng)前的智能合約無法主動向外部獲取鏈外信息,使得它只能在一個封閉、孤立的環(huán)境中執(zhí)行任務(wù),無法做到和外部世界的互通互連。
預(yù)言機(Oracle)的出現(xiàn)旨在為區(qū)塊鏈解決上述問題,作為智能合約與外部世界通信的網(wǎng)關(guān),為區(qū)塊鏈打開了一扇通往外部世界的窗戶。
什么是預(yù)言機?
在計算機領(lǐng)域,預(yù)言機是一種抽象電腦,又稱諭示機。預(yù)言機具備圖靈機的一切功能,并額外擁有一種能力:可以不通過計算直接得到某些問題的答案,這個過程叫做Oracle(神諭)。也就是說,預(yù)言機可以解決圖靈機通過計算也無法解決的問題,比如從外界獲取問題的答案。
舉個例子,有一個天氣預(yù)報預(yù)警的DApp,用戶可以通過鏈上智能合約進行天氣預(yù)報的查詢。天氣預(yù)報的數(shù)據(jù)不是在鏈上自行生成的,而是需要智能合約向氣象服務(wù)網(wǎng)站的接口發(fā)起請求獲取數(shù)據(jù)。這時預(yù)言機就起作用了,智能合約可以向預(yù)言機發(fā)起請求,由預(yù)言機執(zhí)行氣象服務(wù)網(wǎng)站接口的調(diào)用,返回一致性的響應(yīng)數(shù)據(jù)給智能合約,供智能合約處理。
看似很簡單的執(zhí)行流程,實際上其中隱含著許多問題,比如:
區(qū)塊鏈的去中心化賬本和智能合約為當(dāng)今社會解決了P2P交互的信任問題,無需任何中心化機構(gòu)進行信任背書,這是人類社會信任體系的重大革新。但是當(dāng)前的智能合約無法主動向外部獲取鏈外信息,使得它只能在一個封閉、孤立的環(huán)境中執(zhí)行任務(wù),無法做到和外部世界的互通互連。
如何保證數(shù)據(jù)源的數(shù)據(jù)不會做惡?如果一個數(shù)據(jù)源給預(yù)言機節(jié)點A的答案是“是”,而給預(yù)言機節(jié)點B的答案是“否”,該怎么辦?這里就需要引入多數(shù)據(jù)源請求來保證數(shù)據(jù)源的數(shù)據(jù)真實性。而事實上我們是不能保證用戶請求的數(shù)據(jù)一定存在多個真實可信的數(shù)據(jù)源的,那么我們的預(yù)言機系統(tǒng)就必須要容忍數(shù)據(jù)源作惡這種問題的存在,比如不能對返回錯誤答案的預(yù)言機節(jié)點進行懲罰。
諸如此類的問題還有很多,為了預(yù)防這些問題的出現(xiàn),去中心化預(yù)言機需要進行縝密、全面的設(shè)計。
A. 多預(yù)言機節(jié)點
為了防止單節(jié)點預(yù)言機的信任問題,需要多個節(jié)點共同執(zhí)行預(yù)言機數(shù)據(jù)的請求處理。多節(jié)點會帶來的數(shù)據(jù)不一致問題,這時數(shù)據(jù)的聚合一定是需要的。常用的聚合算法有BFT共識算法或者門限簽名算法等。
B. “提交-揭露”機制
預(yù)言機節(jié)點之間的數(shù)據(jù)廣播會帶來Free-loading(吃空餉)問題,即一個預(yù)言機不是通過訪問數(shù)據(jù)源來獲取數(shù)據(jù),而是復(fù)制其它預(yù)言機的答案。當(dāng)吃空餉的節(jié)點占據(jù)大多數(shù)時,如果這些節(jié)點復(fù)制了一個錯誤的答案,這將變成一次大多數(shù)攻擊,危害系統(tǒng)安全。我們可以通過“提交-揭露”機制解決此問題,預(yù)言機節(jié)點分兩階段提交數(shù)據(jù)答案,第一階段提交的答案是加密的,在收到足夠多的預(yù)言機答案之后,才解密全部答案。
C. 多數(shù)據(jù)源或可信單數(shù)據(jù)源
數(shù)據(jù)源的誠信問題是很難解決的,因為這不是預(yù)言機的問題,而是一個外部問題。用戶在使用預(yù)言機時應(yīng)確認(rèn)所訪問的數(shù)據(jù)源是安全可靠的,而當(dāng)用戶訪問到一個不安全的數(shù)據(jù)源時,不安全的數(shù)據(jù)很可能導(dǎo)致預(yù)言機返回一個錯誤的結(jié)果。當(dāng)然,通過使用多數(shù)據(jù)源訪問數(shù)據(jù)可以在一定程度上防止少數(shù)數(shù)據(jù)源的作惡,但是這種做法不具通用性,因為并不是每一條數(shù)據(jù)都具備多個外部數(shù)據(jù)源供應(yīng)。
D. 利益分配
去中心化預(yù)言機需要設(shè)計一套激勵機制,以給與預(yù)言機節(jié)點行為對應(yīng)的獎勵和懲罰。預(yù)言機節(jié)點在加入去中心化網(wǎng)絡(luò)時需要支付一定的保證金,以防止節(jié)點的作惡。理論上獲取到與共識結(jié)果相同答案的預(yù)言機都應(yīng)該獲得相同的獎勵,因為他們都是達(dá)成共識結(jié)論的貢獻(xiàn)者。在懲罰規(guī)則方面,我們不能因為某個預(yù)言機節(jié)點的答案與共識結(jié)果不同,或者不能即時返回請求結(jié)果就懲罰他,因為我們不能辨別是預(yù)言機節(jié)點在作惡還是數(shù)據(jù)源在作惡。而對于Free-loading的問題,一旦在“揭露-提交”階段發(fā)現(xiàn)節(jié)點在吃空餉,則需要按一定比例扣除其質(zhì)押的保證金。
當(dāng)前市場的預(yù)言機項目
1. ChainLink
Chainlink 的目標(biāo)是構(gòu)建一個完全去中心化的預(yù)言機網(wǎng)絡(luò),網(wǎng)絡(luò)節(jié)點兼容以太坊、比特幣和 Hyperledger,并支持模塊化:系統(tǒng)的每個部分都支持升級。其主要的想法是為預(yù)言機打造一個可信的市場。有良好行為的預(yù)言機節(jié)點會受到激勵,其表現(xiàn)和聲譽會公之于眾,反之有惡意行為的節(jié)點會受到懲罰。Chainlink 一開始是在鏈上對預(yù)言機的數(shù)據(jù)進行聚合,后續(xù)設(shè)計為鏈下進行數(shù)據(jù)聚合。
2. DOS Network
DOS Network是一種可擴展的 layer2 協(xié)議,它為主流區(qū)塊鏈提供分散的數(shù)據(jù)饋送 oracle 和分散的可驗證計算 oracle。它將鏈上智能合約與鏈下互聯(lián)網(wǎng)數(shù)據(jù)連接起來,為區(qū)塊鏈提供無限可驗證的計算能力,使更多的商業(yè)應(yīng)用能夠與真實世界的用例相結(jié)合。
3. Provable
Provable是一款中心化的預(yù)言機應(yīng)用服務(wù),為Ethereum、Rootstock、R3 Corda、Hyperledger Fabric、EOS等區(qū)塊鏈提供預(yù)言機服務(wù)。
Provable開發(fā)的解決方案是使用中心化預(yù)言機,并證明從原始數(shù)據(jù)源獲取的數(shù)據(jù)是真實的和未被篡改的。證明通過返回的數(shù)據(jù)與稱為真實性證明的文檔一起實現(xiàn)。真實性證明可以基于不同的技術(shù),例如可審計的虛擬機和可信執(zhí)行環(huán)境。
預(yù)言機應(yīng)用場景
1. 去中心化衍生品
衍生品是兩方或多方之間的金融合約,其價值基于相關(guān)資產(chǎn)。衍生品允許人們對標(biāo)的資產(chǎn)提出不同的視角(長期或短期),從實質(zhì)上促進金融穩(wěn)定。公共智能合約平臺可以創(chuàng)建和交易金融衍生品,包括基于區(qū)塊鏈的資產(chǎn)。預(yù)言機可以通過提供價格饋送,結(jié)算價值和合約到期來確定參與方的收益或損失,從而在去中心化衍生品中發(fā)揮重要作用。
2. 穩(wěn)定幣
獲取有關(guān)穩(wěn)定幣和它們所固定的資產(chǎn)之間的匯率的外部數(shù)據(jù)是預(yù)言機的一個重要場景之一。
3. 去中心化預(yù)測市場
像Augur和Gnosis這樣的去中心化預(yù)測市場利用人群的智慧來預(yù)測現(xiàn)實世界的結(jié)果,如總統(tǒng)選舉和體育博彩結(jié)果。如果投票結(jié)果受到用戶的質(zhì)疑,預(yù)言機可用于快速和安全的解決方案。
4. 智能合約保險
在免信任且可靠的信任源加持下,保險產(chǎn)品可以通過智能合約的形式實現(xiàn)。當(dāng)前的商業(yè)案例比如Etherisc的去中心化的保險應(yīng)用(如航班延誤保險和作物保險)平臺,F(xiàn)lyingCarpet 的人工智能和地理數(shù)據(jù)的新型可編程保險等。
5. 去中心化貸款平臺
像SALT Lending和ETHLend這樣的去中心化點對點借貸平臺允許匿名用戶在區(qū)塊鏈上抵押加密資產(chǎn),以換取法定或加密貸款??梢詰?yīng)用預(yù)言機在創(chuàng)建貸款時引入市場利率,并監(jiān)控加密抵押品與貸款金額的比率,如果貸款周期到了,則觸發(fā)清算事件。
來源: NEO智能經(jīng)濟
評論