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