智能合約通過EVM在以太坊中運行。在滿足觸發(fā)條件時,智能合約可以自動執(zhí)行相應的操作。
但有的觸發(fā)條件是發(fā)生在區(qū)塊鏈系統(tǒng)外的,而智能合約則是運行在區(qū)塊鏈提供的封閉環(huán)境EVM中,鏈內(nèi)信息與鏈外數(shù)據(jù)如何進行共享和交換呢?
今天要介紹的預言機(Oracle)就是一座可以連接鏈內(nèi)和鏈外世界的橋梁,它可以提供外部信息,同時將數(shù)據(jù)推送給區(qū)塊鏈。
預言機(Oracle)在以太坊上部署了一個Oracles的智能合約,在制定智能合約時引用該智能合約即可使用數(shù)據(jù)訪問服務,然后根據(jù)API文檔中描述的方法進行相關的調(diào)用。
依賴于TSL證明技術,預言機具備了從外部世界安全獲取信息的能力。預言機提供一個權威準確、不可篡改、穩(wěn)定、并且可以接受審計的數(shù)據(jù)查詢窗口,同時采用經(jīng)濟激勵機制來保障運行。
預言機能讓確定的智能合約對不確定的外部世界做出反應。比如,小明通過某區(qū)塊鏈系統(tǒng)與小華簽訂房屋租賃智能合約,合約規(guī)定家具損壞按照官網(wǎng)價格進行賠償。
然而家具的價格是存在波動的,在制定智能合約時無法確定準確的價格。需要賠償時,預言機先從官方獲取該家具的價格,然后向特定的地址進行轉(zhuǎn)賬,并將價格信息包含在轉(zhuǎn)賬交易里。
隨著交易全網(wǎng)同步,使用者只需要在本地數(shù)據(jù)中查看特定地址的交易記錄就可以知道需要賠償?shù)慕痤~。
在這個過程中,不需要每個獨立節(jié)點分別去獲取同一個數(shù)據(jù),也不會存在因為時間差而導致的前后價格不一致的情況,也就是說利用預言機可以高效形成區(qū)塊鏈系統(tǒng)的共識。
對于一些重大的資產(chǎn),為了提高安全保障,可以多設置幾個預言機形成預言機網(wǎng)絡,當網(wǎng)絡中的多數(shù)預言機獲取到一致的外部數(shù)據(jù)時,才能執(zhí)行該智能合約。
預言機為智能合約的觸發(fā)和運行提供了可信的外部信息平臺,大大提高了智能合約的實用性。隨著區(qū)塊鏈技術的不斷發(fā)展和完善,互聯(lián)網(wǎng)與區(qū)塊鏈之間的交互會越來越深入和實時,可以讓數(shù)據(jù)的溝通更加便捷與簡單,從而構(gòu)建一個更加通用的區(qū)塊鏈網(wǎng)絡。