智能合約是去中心化程式平台的重要組成部分,是協助區塊鏈執行程式指令的應用程式。借助智能合約,使用者能夠執行高度可信、快速、可靠和低成本操作的程式協議。但區塊鏈常見的問題是,該技術並未能提供可存取外部資料的完善方法,將鏈上和鏈下的資料連接起來,而這也是智能合約面臨的巨大挑戰之一。
如何把資料傳到區塊鏈
Chainlink 的項目提供去中心化的預言機服務,將外部資料轉換為智能合約可理解的語言。透過其預言機技術為多個數據輸入和輸出建立一個存取點,這些輸入和輸出的數據,包括區塊鏈以外的真實數據、相關應用程式和 API。
什麼是中心化預言機?其實並不難 – 這是智能合約外部資訊的單一提供者,雖然只有一個來源,但會造成很大的問題。如果那個預言機提供虛假或不正確的資料,該怎麼辦?所有依賴它的系統都會因此失靈。
一般來說,這稱為「預言機問題」,而且也是 Chainlink 試圖解決的問題。傳統的預言機服務是中心化的,具有「單點失效、全部故障」(single point of failure)的風險,也與去中心化的理念存在矛盾。
Chainlink 的預言機,則是一個開放的節點網絡,讓任何人都可以運行自己的網絡。
為了使智能合約能夠在區塊鏈以外的數據建立協定,Chainlink 需要採用鏈上格式的鏈下數據。區塊鏈智能合約的主要限制之一,是缺乏與外部資訊來源的連接,而 Chainlink 可以使用其 Oracles 預言機程式解決此問題。
Chainlink 運作詳細步驟
- 區塊鏈上的智能合約要求索取數據作為資料。
- Chainlink 會將此數據請求或查詢註冊為“event(事件)”,並創建相應的智能合約、即「服務水平協議 (Service Level Agreement (SLA) Contract) 」以獲取鏈下數據。
- Chainlink 的SLA協議 將產生三個細分合約: 聲譽合約(Reputation Contract)、訂單匹配合約(Order-Matching Contract)、以及匯總合約(Aggregating Contract)。
- 然後, Chainlink 的聲譽合約 ,將檢查預言機數據提供者的過往記錄,確保其數據的可靠性、和過去的表現記錄,以評估數據提供者節點、並摒除信譽不佳或不可靠的節點。
- Chainlink 的訂單配對合約 ,會將請求合約( Requesting Contract )交付給Chainlink 節點,並根據數據請求接受投標,選出合適數量及類型的數據提供者來滿足數據請求。
- Chainlink 匯總合約 將會驗證並整合來自被選定的預言機的所有數據。
- Chainlink 上的節點將接收請求合約的數據請求,並使用 Chainlink 的翻譯軟件 Chainlink Core,將數據請求從區塊鏈程式語言轉換為鏈外程式語言,以便鏈外的數據來源能夠接收及理解。
- 數據請求的翻譯版本將通過API從數據來源處收集數據。
- 收集數據後,資料將透過 Chainlink Core 翻譯回區塊鏈適用的程式語言,最終發送回 Chainlink 匯總合約