什麼是區塊鏈預言機 BlockChain Oracle

2020-12-19 區塊探索
Photo by Julian Klumpers on Unsplash

預言機 Oracle 是區塊鏈中非常重要的一個功能,但我發現很少有人討論,也可能很多人對此並不了解。而網上關於預言機的文章很少,很多也沒有講明白,甚至有些還是錯誤的。所以我整理了一篇詳細的文章,分享給大家,相信看完一定會對 Oracle 有一個深層次的了解。

1、預言機(Oracle)是什麼?

11 月 6 日,在中國人民銀行發布的《區塊鏈能做什麼?不能做什麼?》的報告中,是這樣對預言機定義的。

區塊鏈外信息寫入區塊鏈內的機制,一般被稱為預言機 (oracle mechanism) 。

預言機的功能就是將外界信息寫入到區塊鏈內,完成區塊鏈與現實世界的數據互通。它允許確定的智能合約對不確定的外部世界作出反應,是智能合約與外部進行數據交互的唯一途徑,也是區塊鏈與現實世界進行數據交互的接口。

聽上去很難理解,我們舉例來說。

大家會很形象的把公鏈比作作業系統(Windows、IOS、安卓),DAPP 類比的話就是 APP,那麼預言機可以形象的比做 API 接口。API 是一組定義、程序及協議的集合,通過 API 接口實現計算機軟體之間的相互通信。

這樣類比雖然不準確,但意思就是預言機是區塊鏈和現實世界之間的紐帶,可以實現數據互通的工具。

2、Oracle 為什麼被中譯為預言機?

跟別人提起預言機,很多人的第一反應都是預測市場,預言機這個名字確實容易想到預測。

Oracle 最初是來源於古希臘宗教,意為「神諭、先知、預言」。而在網際網路領域,預言機(英語:oracle machine),又稱諭示機,是一種抽象電腦,用來研究決定型問題。可以被視為一個多了個黑盒子(預言者)的圖靈機,這個黑盒子的功能是可以在單一運算之內解答特定問題。

也許你會好奇這跟甲骨文公司有什麼關係嗎?其實沒有關係。

Oracle 在中國叫甲骨文公司的原因可能是另一個故事。在中國商朝晚期,王室把在動物骨骼或龜甲上做佔卜記事的文字叫甲骨文,甲骨文被英譯為 Oracle bone script,後來 Oracle 公司到中國中譯為了甲骨文公司。(很有道理的猜測 哈哈哈)

3、區塊鏈為什麼需要預言機?

區塊鏈是一個確定性的、封閉的系統環境,目前區塊鏈只能獲取到鏈內的數據,而不能獲取到鏈外真實世界的數據,區塊鏈與現實世界是割裂的。

一般智能合約的執行需要觸發條件,當智能合約的觸發條件是外部信息時(鏈外),就必須需要預言機來提供數據服務,通過預言機將現實世界的數據輸入到區塊鏈上,因為智能合約不支持對外請求。

具體原因是這樣的。區塊鏈是確定性的環境,它不允許不確定的事情或因素,智能合約不管何時何地運行都必須是一致的結果,所以虛擬機(VM)不能讓智能合約有 network call(網絡調用),不然結果就是不確定的。

也就是說智能合約不能進行 I/O(Input/Output,即輸入/輸出),所以它是無法主動獲取外部數據的,只能通過預言機將數據給到智能合約。

我們通過一個例子來說明一下。假設現在我被關進了一個小黑屋裡(不要多想,只是例子),我對外面的世界發生了什麼一無所知,不知道外面是否有人,即使呼叫也沒有人回應,而我知道外界信息的方式,只有外面的人在門口把他看到的聽到的都告訴我,我才可以得知。

例子雖然不太恰當,但智能合約就像這個例子中的我一樣,它無論何時何地,都無法主動向外尋求信息,只能外部把消息或數據給到裡面。而預言機就是這個在外面輸送消息和數據的人。

好像這麼看來,智能合約並不是很智能呀,是的,智能合約其實是完成的不智能的事情,即寫好了條件和結果,當給它條件的時候,就可以觸發,但也不會馬上執行,還需要合約相關的人進行私鑰籤署才可以執行。

所以,網上很多文章其實都有水分,比如智能合約某個時間或者觸發某個條件就可以自動執行之類的,只能說這樣的句子在邏輯上可能是有問題的。關於預言機的很多文章也有水分,描述的並不準確。

好了,上面就是區塊鏈為什麼需要預言機,因為智能合約無法主動去獲取鏈外的數據,只能被動接受數據。

4、預言機怎麼解決這個問題?

來源:ChainLink白皮書

這是理想中預言機的工作流程,即用戶的智能合約把請求給鏈上 Oracle 合約,通過鏈下的 API 接口獲得外部數據,更確切的說是外部把數據給鏈上的 Oracle 合約,然後 Oracle 合約再把數據給用戶的智能合約。

或許很難理解,因為在網際網路中,調用數據是非常容易的,只需要在程序中寫調用的代碼就可以了。但是區塊鏈與外部世界的數據交互,確實不能進行這樣的操作。

5、預言機的應用場景有哪些?

預言機作為區塊鏈與現實世界進行數據交互的橋梁,應用場景非常多,可以說一切需要與鏈下進行數據交互的DApp都需要預言機。比如金融衍生品交易平臺、借貸平臺、快遞追蹤/IoT、穩定幣、博彩遊戲、保險、預測市場等等。

我們還是舉例來說。

先說最近幣圈比較火熱的博彩遊戲為什麼需要預言機。博彩遊戲的核心是不可預測、可驗證的隨機數,從而決定賭注的最終結果,但是在鏈上是無法生成隨機數的或者說在鏈上的隨機數是可以被預測和破解的,這時候就需要預言機從外部給智能合約安全的、不可預測的隨機數。

現在的大多數博彩遊戲都是在鏈上生成隨機數,很容易被預測和破解,導致資產被盜,大家有興趣的可以去看一下 DApp 被盜的相關研究報告,很多因為隨機數問題被盜的。比如 BetDice、Dice2.Win。

如果大家很感興趣,可以看一下我男神 DOS Network 創始人 jonny 關於《智能合約中的隨機數》的分享。PPT連結:https://zhuanlan.zhihu.com/p/50219222

其實,早在 Fomo3D 這個遊戲出來之後,以太坊的 Team Leader 就在推特上說過鏈上是無法生成隨機數的。Dear devs... you can`t generate random numbers on chain!

Peter`s twitter

我們再來看一個關於快遞追蹤的例子。

假設當我通過某個 DApp 購物平臺購買某件物品快遞過來的時候,真實世界中的快遞寄送或到達信息,就可以通過 Oracle 把數據傳遞到鏈上,然後觸發鏈上的智能合約,我用自己的私鑰確認收到了快遞,並完成付款。

大家發現了嗎?這裡的智能合約不能自動執行,而是需要我用自己的私鑰進行確認,智能合約保證的是沒有第三方機構做擔保和資金周轉(比如支付寶),這就是智能合約的價值。

其他的案例就不細說了,比如穩定幣需要鏈下的利率,保險需要鏈下的病例或車況等。

6、目前預言機項目和解決方案有哪些?

目前在預言機領域探索的項目還不是很多,每一個項目的預言機解決方案都略有差異,我找了幾家不同解決方案的預言機項目。

Oraclize:為以太坊提供中心化預言機服務

來源:oraclize官網

Oraclize 依託亞馬遜 AWS 服務和 TLSNotary 技術,是一個可證明的誠實的預言機服務,不過它是中心化的,目前只能在以太坊網絡使用,而且 gas 費較高。但是不妨礙它是目前比較受歡迎的預言機服務,可能也是因為沒有其他更好的選擇吧。

ChainLink:以太坊上第一個去中心化預言機解決方案

來源:ChainLink白皮書

ChainLink 的解決方案是通過在鏈上的智能合約和鏈下的數據節點,通過獎懲機制和聚合模型的方式,進行數據的請求和饋送。不過也有一些不足,比如鏈式聚合成本較高,拓展性差,基於聲譽系統容易集中化。

歐鏈 OracleChain:EOS 上的第一個去中心化預言機解決方案

來源:歐鏈白皮書

歐鏈很早就提出了預言機的想法和方案,採用自主的 PoRD 機制(Proof-of-Reputation&Deposit),本質上是一種抵押代幣獎懲機制的聲譽系統,獎勵數據節點懲罰作惡節點,可以實現 Augur、Gnosis 等預測市場應用的功能,還能支撐對鏈外數據有更高頻率訪問需求的智能合約業務。預測市場的結果本身有時也可以作為 oracle 的輸入數據源。歐鏈更像是預測市場,而且單純的聲譽系統容易集中化。

DOS Network:支持多條主流公鏈的去中心化預言機服務網絡

來源:DOS Network GitHub

DOS Network 是一個 Layer-2 的預言機解決方案,它通過在鏈上部署一個輕量級智能合約,鏈下是一個 p2p 網絡,記帳節點的選取採用 VRF+zkSNARK 技術,數據驗證採用閾值籤名等方式保證去中心化和數據安全,並達到快速反應。可以適配所有主流公鏈,比如以太坊、EOS、波場、Zilliqa。目前已在以太坊測試網發布 alpha 版本:https://dosnetwork.github.io/docs/

看完文章是不是對區塊鏈預言機有了更深的了解呢,區塊鏈作為一種新興的技術,還需要不斷的探索和嘗試。而預言機在其中扮演著非常重要的角色,讓我們共同期待預言機技術的不斷成熟,進而促進更多區塊鏈與現實世界進行數據交互的 DApp 落地。

相關焦點

  • 區塊鏈中的預言機是什麼?
    大家好,歡迎收看區塊鏈大表姐的欄目。我是Camille。預言機(Oracle)是區塊鏈中非常重要的一個功能,隨著預言機龍頭ChainLink衝進市值榜前10,很多DeFi項目對預言機都有需求,因此今天我來給大家講一下,什麼是區塊鏈中的預言機。
  • 區塊鏈預言機是幹什麼的
    區塊鏈預言機是幹什麼的 NEO智能經濟 發表於 2019-10-23 10:40:14 區塊鏈的去中心化帳本和智能合約為當今社會解決了P2P交互的信任問題,無需任何中心化機構進行信任背書
  • 去中心化預言機項目Chainlink的工作原理解析
    如果用最短的一句話解釋什麼是Chainlink,可以說Chainlink一個去中心化的預言機項目,所以為了理解Chainlink的工作原理,我們首先要明白什麼是預言機。 預言機 預言機的英文為Oracle,和著名的資料庫服務提供商Oracle(甲骨文)重名,但是兩者除了名字相同以為並沒有任何關係。
  • 萬字說透區塊鏈預言機架構原理:以 Oraclize 與 Chainlink 為例
    小編:記得關注哦來源:HashKey Capital Research原文標題:萬字說透區塊鏈預言機架構原理:以 Oraclize 與 Chainlink 為例原文標題:《區塊鏈的熱門風口預言機設計——解析 Oraclize
  • 區塊鏈概述|區塊鏈的定義和特點
    區塊鏈的定義不同組織或機構給出的區塊鏈定義如下:(1)維基百科給出的定義為:A blockchain, originally block chain, is a continuously growing list of records, called blocks, which are linked and secured using cryptography
  • ChainUP全球巡演「Future Blockchain Forum」落地首爾,中韓區塊鏈...
    ChainUP全球巡演「Future Blockchain Forum」落地首爾,中韓區塊鏈大咖齊聚現場 12 月 16 日,由ChainUP主辦,節點資本、BikiCoin
  • 央行發布工作論文:區塊鏈能做什麼 不能做什麼?
    其次,根據對區塊鏈內Token的使用情況,梳理了目前區塊鏈的主要應用方向,再討論Token的特徵、Token對區塊鏈平臺型項目的影響、區塊鏈的治理功能以及區塊鏈系統的性能和安全性等問題,最後總結並討論區塊鏈能做什麼、不能做什麼。Abstract: This article studies blockchain's economic functions.
  • 央行發布工作論文:區塊鏈能做什麼、不能做什麼?
    其次,根據對區塊鏈內Token的使用情況,梳理了目前區塊鏈的主要應用方向,再討論Token的特徵、Token對區塊鏈平臺型項目的影響、區塊鏈的治理功能以及區塊鏈系統的性能和安全性等問題,最後總結並討論區塊鏈能做什麼、不能做什麼。   Abstract: This article studies blockchain's economic functions.
  • 《區塊鏈常用術語解釋》匯總,中英對照表
    chain apps區塊鏈應用block generation rate出塊速度block hash區塊散列值block header hash區塊頭散列值block headers區塊頭blockheight區塊高度blockmeta區塊元block templates區塊模板blockchains區塊鏈bloom filtersand布魯姆過濾器(bloom過濾器)BOINC open grid
  • VDEX的預言機(Oracles)是什麼?連結鏈上鏈下
    而DeFi能夠實現這個功能的的重要的一個環節就是預言機「預言機(Oracles)」是加密貨幣中的一個名詞,它並不新鮮,但隨著去中心化金融(DeFi)領域開始快速發展,它的意義越來越大。對於新手來說,預言機可能會讓你想到神秘時代的預言家或信使,但在加密領域,預言機作為現實世界數據和區塊鏈之間的信使,承擔著更基本的角色。
  • 什麼是 Aeternity(AE)
    值得注意的是, 它包括一個分布式的神諭oracle計算機, 它從外部源中引入數據, 以便在智能合約中使用,不明白什麼是神諭的可以參考熊貓以前的文章。它還利用預測市場在平臺內進行各種投票和核查目的。問題: 縮放智能合約以太坊會允許在區塊鏈 blockchain 頂部開發智能合約。這是區塊鏈blockchain 技術的一個突破。它把技術超越了價值轉移 (比特幣) 的領域, 帶入了分布式應用的世界。
  • STD——蘊含多重激勵機制完全去中心化的創新型區塊鏈架構
    STD是一個蘊含多重激勵機制完全去中心化的創新型區塊鏈架構,其致力於打造新一代的以技術驅動型為基礎,以應用落地為切入點的去中心化全球價值流通網絡生態平臺。STD-Chain是從通用型區塊鏈到專業型區塊鏈技術的升級,目前針對區塊鏈生態系統各環節連結、流通打造一套完整的,行之有效的鏈上價值流通網絡數改系統。
  • 區塊鏈將如何改變金錢與貿易
    什麼是區塊鏈?如果你不知道,你應該; 如果這樣做,您仍然可能需要澄清其實際工作方式。然後是關鍵的部分,該區塊鏈連接到前一個區塊鏈,以及更前面的區塊鏈形成一連串的區塊鏈。每個一個區塊都是時間標記,有點像是數字蠟印。
  • 超越Chainlink的下一代預言機ORC,你的天空有多廣闊?
    (機器人就是一個圖靈機)以太坊的智能合約是「圖靈完備(Turing Complete)」的,某種意義上可以看做一個圖靈機,所以以太坊的設計者借鑑這個概念,把向「圖靈完備的智能合約」這個圖靈機輸入信息的實體稱為預言機oracle。具體在區塊鏈應用領域上,預言機被認為是可以為智能合約提供外部數據源的系統。
  • 大火的「預言機」現在什麼樣了?
    在區塊鏈的世界中,永遠不缺少一夜暴富的故事,只是缺乏擅於發現市場投資風向的眼光。 目前,去中心化金融DeFi已經成為全球數字資產世界的超級熱點。全球越來越多的投資用戶參與到DeFi的項目之中,可以說,目前市場已經到了無DeFi不投資的極端時刻。
  • 區塊鏈與智慧城市群相互賦能發展策略研究
    (本文系國家自然科學基金面上項目「不確定性視角下我國早期階段風險投資行為研究」的階段性研究成果,項目批准號:71573174)注釋[1]普華永道:《2018年全球區塊鏈調研》,2018年7月,https://www.pwccn.com/global-blockchain-survey-2018
  • 解讀|NEST 預言機報價原理及QP Token經濟模型
    3)NEST 上的每一單報價都會經過全市場驗證者的驗證,成功度過驗證周期存活下來的報價數據,才會參與 NEST 預言機鏈上區塊價格生成。所以,NEST 是最符合區塊鏈共識機制的預言機方案,其每一個生效的區塊價格數據都是經過全市場共識過的。是先驗證,再生效!這也是 NEST 預言機與其他預言機的本質區別。
  • 區塊鏈入門教程及我的區塊鏈觀
    區塊鏈(blockchain)就是一個特殊的分布式資料庫。所以說區塊鏈技術,就是一種特殊的資料庫技術。以前的分布式資料庫都是有系統管理員的,而區塊鏈網絡中每個人都處於平等的地位,每個節點都不能左右整個網絡,也就是通常所說的去中心化。區塊鏈,顧名思義就是一系列區塊(block)組成的鏈條。
  • 火幣區塊鏈科普系列:區塊鏈是什麼?
    區塊鏈技術可以理解成資訊時代的「紙」。紙在人類文明發展進程中紙的發明具有重大意義,是信息和價值的承載體,紙可以寫字承載信息,可以印成錢承載價值。而區塊鏈則是資訊時代的「紙」,從更高維度的立場實現信息傳遞和價值傳遞。像騰訊支持的區塊鏈發票,則是把區塊鏈這張紙做成了發票,而美國為代表的STO發幣模式,則是把區塊鏈這張紙做成了證券。
  • NGK去中心化預言機如何助力DeFi發展?
    區塊鏈2.0與1.0最大的區別是增加了智能合約。智能合約其實是不能直接發出指令,只能被動被觸發,這就需要預言機(oracle)作為中間數據代理人為智能合約提供數據。預言機是連結現實世界和區塊鏈數據的一個重要紐帶,同時也是DeFi生態健康可持續發展一個不可或缺的因素之一。