智能合約是去中心化程式平台的重要組成部分,是協助區塊鏈執行程式指令的應用程式。借助智能合約,使用者能夠執行高度可信、快速、可靠和低成本操作的程式協議。但區塊鏈常見的問題是,該技術並未能提供可存取外部資料的完善方法,將鏈上和鏈下的資料連接起來,而這也是智能合約面臨的巨大挑戰之一。

如何把資料傳到區塊鏈

Chainlink 的項目提供去中心化的預言機服務,將外部資料轉換為智能合約可理解的語言。透過其預言機技術為多個數據輸入和輸出建立一個存取點,這些輸入和輸出的數據,包括區塊鏈以外的真實數據、相關應用程式和 API。

什麼是中心化預言機?其實並不難 – 這是智能合約外部資訊的單一提供者,雖然只有一個來源,但會造成很大的問題。如果那個預言機提供虛假或不正確的資料,該怎麼辦?所有依賴它的系統都會因此失靈。

一般來說,這稱為「預言機問題」,而且也是 Chainlink 試圖解決的問題。傳統的預言機服務是中心化的,具有「單點失效、全部故障」(single point of failure)的風險,也與去中心化的理念存在矛盾。

Chainlink 的預言機,則是一個開放的節點網絡,讓任何人都可以運行自己的網絡。

為了使智能合約能夠在區塊鏈以外的數據建立協定,Chainlink 需要採用鏈上格式的鏈下數據。區塊鏈智能合約的主要限制之一,是缺乏與外部資訊來源的連接,而 Chainlink 可以使用其 Oracles 預言機程式解決此問題。

Chainlink 運作詳細步驟

  1. 區塊鏈上的智能合約要求索取數據作為資料。
  2. Chainlink 會將此數據請求或查詢註冊為“event(事件)”,並創建相應的智能合約、即「服務水平協議 (Service Level Agreement (SLA) Contract) 」以獲取鏈下數據。
  3. Chainlink 的SLA協議 將產生三個細分合約: 聲譽合約(Reputation Contract)、訂單匹配合約(Order-Matching Contract)、以及匯總合約(Aggregating Contract)。
  4. 然後, Chainlink 的聲譽合約 ,將檢查預言機數據提供者的過往記錄,確保其數據的可靠性、和過去的表現記錄,以評估數據提供者節點、並摒除信譽不佳或不可靠的節點。
  5. Chainlink 的訂單配對合約 ,會將請求合約( Requesting Contract )交付給Chainlink 節點,並根據數據請求接受投標,選出合適數量及類型的數據提供者來滿足數據請求。
  6. Chainlink 匯總合約 將會驗證並整合來自被選定的預言機的所有數據。
  7. Chainlink 上的節點將接收請求合約的數據請求,並使用 Chainlink 的翻譯軟件 Chainlink Core,將數據請求從區塊鏈程式語言轉換為鏈外程式語言,以便鏈外的數據來源能夠接收及理解。
  8. 數據請求的翻譯版本將通過API從數據來源處收集數據。
  9. 收集數據後,資料將透過 Chainlink Core 翻譯回區塊鏈適用的程式語言,最終發送回 Chainlink 匯總合約