說說什麼是預言機
說到這個預言機,很多人的第一反應可能是預測市場,判斷幣價的漲跌。
其實預言機並不是預測未來的機器,預言機是一個用來服務區塊鍊網絡的中間接口,它是給項目方提供數據服務的。
那麼這個預言機到底是什麼呢?預言在互聯網領域預言機oracle machine又稱為預示機,是一種抽象電腦,用來研究決定性問題,中國人民銀行發布的區塊鏈報告裡,是這樣對預言機定義的:區塊鏈外信息寫入區塊鏈內的機制,一般被稱為預言機,預言機的功能就是將外界信息寫入到區塊鏈內部,完成區塊鏈與現實世界的數據互通。
舉例來說,假設現實世界中的“數據源”和區塊鏈中的“數據接口”,是兩個使用不同語言的國家,預言機就是中間的翻譯官。通過預言機智能合約就可以和鏈外數據進行無障礙交流。
在實際使用智能合約中,需要預言機對數據進行驗證。因為區塊鏈也是基於共識的系統,所運行的智能合約也要求一定要是確定性的程序。預言機對數據驗證這一步驟是為了契合共識機制,使最後反饋給智能合約的數據也是“確定性”的。
區塊鍊為什麼需要預言機?
區塊鍊為什麼需要預言機?
因為區塊鏈上的智能合約和去中心化應用(Dapp)對外界數據擁有交互需求。
區塊鍊是一個封閉的環境,鏈上是無法主動獲取鏈外真實世界的數據。主要是因為區塊鏈無法主動發起Network call(網絡調用)而鏈上智能合約是被動接收數據的。其次,智能合約其實並不“智能”,它只是在滿足相應條件下,才達到觸發狀態的程序。同時,智能合約最終的執行需要合約參與方的私鑰簽署,智能合約本身沒有辦法自動執行。
當智能合約的觸發條件取決於區塊鏈外信息時,這些信息需先寫入區塊鏈內記錄。此時需要通過預言機來提供這些區塊鏈外的信息。
先舉一個通俗易懂的例子,假設現在我被關進了一個小黑屋裡,我對外面的世界發生了什麼幾乎一無所知,不知道外面是否有人,即使呼叫也沒有人回應,只有外面的人在門口告訴我,我才可以得知外面的改變。
智能合約就像這個例子中的“我”一樣,它無論何時何地,都無法主動向外尋求信息,只能外部把消息或數據給到裡面。而預言機就是這個在門口收到我的請求後,從外面輸送消息和數據的人。
或許你又會提出疑問為什麼鏈上無法直接導入和接收數據?主要是因為區塊鏈的共識機制。
區塊鍊是基於共識的網絡,所運行的智能合約也要求一定要是確定性的程序, 每筆交易和區塊處理過後,每個節點必須要達到相同的狀態。但是數據本身俱有復雜性和多樣性,這也是為什麼預言機為了契合區塊鏈的共識機制,除了蒐集數據還有一步數據驗證的步驟才將最後的“確定性”信息反饋給智能合約。
預言機有什麼用?
智能合約的觸發和運行不能沒有數據源,預言機作為中間數據代理人為智能合約提供數據。這些預言機是智能合約與外部進行數據交互的唯一途徑,如果沒有預言機智能合約的實用性也會大打折扣。
預言機有哪些作用?
1、預言機提供了智能合約在合約條款得到滿足時運行的必要條件,這些條件可以是與智能合約有關的任何東西:溫度數據、支付完成、價格變化等;
2、在區塊鍊和互聯網之間建立一道可信的數據網絡,打破智能合約獲取數據的束縛,在保證可信的情況下,使其具有訪問互聯網數據的能力;
3、為保證所獲數據的真實可信,預言機需要提供多種加密證明方法,構建可信環境;
4、預言機具有減少大量圍繞傳統書面合約的強制執行的浪費性工作的潛能;
5、基於區塊鏈具有的潛力,可以通過強制讓所有事情都在一個完全透明的、匿名的情況下,來減少膨脹的官僚主義。
智能合約無法主動獲取現實世界的數據,即不能直接引入互聯網數據,也不能執法調用外部網絡API,而任何商業應用都不可避免地要與現實世界交互,特別是與互聯網數據交互。這就是預言機(oracle)誕生的理由。隨著區塊鍊網絡的不斷完善,現實應用場景不斷開拓與細化,未來會產生越來越細緻的智能合約類型,以及新的預言機結構。這些都會共同構建一個更加實用易用的區塊鏈底層結構,讓互聯網和區塊鏈之間深化融合,溝通更加便捷和簡單。


