前言
區塊鏈的應用從以太坊出現後開始蓬勃發展,以太坊導入智能合約,使得許多應用在沒有中間機構的情況下依然能正常運作。
智能合約就是在區塊鏈上執行的程式,給程式輸入值,它就會按照寫好的規則給你輸出值,Ex: 一個NBA運彩的智能合約,你壓的錢和球隊就是智能合約的輸入值,等到比賽結束,智能合約會判定你壓的球隊是否有贏,若贏了,就按照賠率給你報酬作為輸出,若輸了,就回傳”下次再努力”的訊息作為輸出。
區塊鏈世界是封閉的,智能合約要怎麼知道區塊鏈外(簡稱鏈外)發生的資訊呢?以上面例子來說,智能合約該如何知道NBA比賽哪支球隊獲勝呢?這就是預言機出現的目的了!
預言機(Oracle)
預言機可以將現實世界中的資料傳遞給智能合約,使得智能合約知曉現實世界中發生的事情,讓區塊鏈上的應用能更好的融入現實世界中。
預言機又分中心化預言機和去中心化預言機。
中心化預言機
預言機由一台中心化伺服器組成,該中心化伺服器參考某外部資料來源,將取得資料傳遞至區塊鏈的智能合約。
幣須知道💡
中心化預言機有兩個安全性風險:
•資料來源單一:駭客成功駭入預言機參考的資料來源伺服器,使得預言機取得的資料不正確,可能會導致智能合約錯誤運作。
•僅一台預言機: 駭客成功駭入預言機伺服器,篡改預言機提供給智能合約的資料,可能導致智能合約錯誤運作。
去中心化預言機
預言機由眾多節點組成,每個節點彼此獨立,參考的資料來源亦不相同,透過多方驗證後,將取得資料傳遞至區塊鏈的智能合約。
去中心化預言機提供資料的可靠度及安全性遠比中心化預言機高
幣須知道💡
於多台節點共同提供資訊,即使駭客駭入某台預言機或資料來源伺服器,只要大多數的預言機和資料來源正常,都能使智能合約正確運作。
去中心化預言機原理
當有智能合約需要鏈外資訊時,該智能合約會在鏈上向Chainlink智能合約發出請求,而這個請求會被記錄在區塊鏈上。
Chainlink節點上的區塊鏈接口會到區塊鏈上抓取請求,並要求外部接口藉由呼叫外部API來取得鏈外資訊,再將資料進行回傳。))
幣須知道💡
Chainlink節點必須質押LINK代幣,當提供的鏈外資訊被採用,可以得到LINK代幣作為獎勵,若提供的資料是錯的,會被沒收質押代幣作為懲罰。
Chainlink的使用者需要付LINK代幣作為手續費,這些手續費將成為節點獎勵。
去中心化預言機範例
範例:假設有一個用戶透過DeFi平台來買運彩,整個運作流程如下:
預言機應用
預言機項目
如果這篇文章對你有幫助,歡迎追蹤~