區塊鏈是一個確定性的、封閉的系統環境,目前區塊鏈只能獲取到鏈內的數據,而不能獲取到鏈外真實世界的數據,區塊鏈與現實世界是割裂的。
一般智能合約的執行需要觸發條件,當智能合約的觸發條件是外部信息時(鏈外),就必須需要預言機來提供數據服務,通過預言機將現實世界的數據輸入到區塊鏈上,因為智能合約不支持對外請求。
具體原因是這樣的。區塊鏈是確定性的環境,它不允許不確定的事情或因素,智能合約不管何時何地運行都必須是一致的結果,所以虛擬機(VM)不能讓智能合約有 network call(網絡調用),不然結果就是不確定的。
也就是說智能合約不能進行 I/O(Input/Output,即輸入/輸出),所以它是無法主動獲取外部數據的,只能通過預言機將數據給到智能合約。
我們通過一個例子來說明一下。
假設現在我被關進了一個小黑屋里(不要多想,只是例子
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。