預言機就是去中心化世界的數據入口。說的具體一點:預言機是一種單向的數字代理 ,可以查找和驗證真實世界的數據,并以加密的方式將信息提交給 智能合約。沒有預言機,DeFi協議就無法獲得正常運行所需的所有數據。

區塊鏈是一個確定性的、封閉的系統環境,目前區塊鏈只能獲取到鏈內的數據,而不能獲取到鏈外真實世界的數據,區塊鏈與現實世界是割裂的。 一般智能合約的執行需要觸發條件,當智能合約的觸發條件是外部信息時(鏈外),就必須需要預言機來提供數據服務,通過預言機將現實世界的數據輸入到區塊鏈上,因為智能合約不支持對外請求。
具體原因是:區塊鏈是確定性的環境,它不允許不確定的事情或因素,智能合約不管何時何地運行都必須是一致的結果,所以虛擬機(VM)不能讓智能合約有 network call(網絡調用),不然結果就是不確定的。
也就是說智能合約不能進行 I/O(Input/Output,即輸入/輸出),所以它是無法主動獲取外部數據的,只能通過預言機將數據給到智能合約。