定義

由於區塊鏈世界本身無法調用外部API,是封閉世界,需透過預言機才能知道外部服務和API資料並且加以取用。

預言機本身也是一種智能合約,他的資料都是來自於外部世界的數據和整理過的數據並且寫到鏈上,提供給其他使用的智能合約外部資訊與內容。

智能合約在運行時只能運行已經確定的數值跟內容,無法動態從 API 取得資料處理,預言機則是與外部API取回資料後寫入鏈上,讓其他智能合約調用它取得所需的API資料提供使用。

詳細補充知識點:

区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。 区块链是确定性的环境,它不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(VM)不能让智能合约有 network call(网络调用),不然结果就是不确定的。 因为智能合约无法主动去获取链外的数据,只能被动接受数据。

使用情境

即時獲得當前交易對報價或依賴外部服務即時資訊、預測市場或其他即時內容獲得執行合約、DeFi 項目。

比如金融衍生品交易平台、借贷平台、快递追踪/IoT、稳定币、博彩游戏、保险、预测市场等,目前最主要的场景就是 DeFi。

中心化預言機與去中心化預言機

中心化

provable(oraclize)

去中心化

目前最流行的預言機,以太社群推薦。提供 LINK TOKEN 作為節點獎勵。成為節點條件是必須先提供一定的 LINK TOKEN 作為抵押獎勵來確保資訊正確性,如果惡意竄改則會沒收抵押。

參考