那麼,ChainLink是如何來連線加密世界和現實世界的?
1.ChainLink預言機的工作流程
ChainLink預言機的工作流程大致有如下幾步:
使用者智慧合約(USER-SC)從鏈上發出請求
ChainLink智慧合約(CHAINLINK-SC)為預言機記錄一個事件
ChainLink Core接到事件,並路由任務,給到介面卡
ChainLink介面卡向外部API發出請求
ChainLink介面卡處理響應,並將其返回給Core
ChainLink Core將資料包告給ChainLink智慧合約(CHAINLINK-SC)
ChainLink智慧合約彙總響應,加權得出一個最終反饋,並將其傳送給使用者智慧合約
ChainLink目前以太坊為主構建,未來也會支援其他智慧合約平臺,例如跟物聯網公鏈IoTeX和分片公鏈Harmony等都有合作。
為了實現上述工作流程,ChainLink從架構上可以分為兩個部分:鏈上部分和鏈下部分。
*ChainLink的加密世界部分
ChainLink智慧合約響應使用者智慧合約的資料請求或查詢。它包括三個組成合約:聲譽合約、訂單匹配合約以及彙總合約。其中聲譽合約記錄的是預言機服務提供者的歷史表現;訂單匹配合約透過SLA(Service Level Agreement,服務水平協議)為預言機需求者提供選擇,例如價格水平、預言機數量、聲譽等,並根據需求確定預言機服務提供者;彙總合約彙總不同預言機的響應,並加權計算出最終結果。
總的來說,ChainLink鏈上的工作流有三步:一是,選擇預言機;二是,報告資料;三是,彙總得出結果。
使用者選擇預言機主要是透過指定SLA提案,可以選擇查詢引數、預言機數量、聲譽情況、價格水平等。根據這些,可以進行排序、過濾,最後作出選擇。確定SLA提案之後,它會被提交到訂單匹配智慧合約,滿足SLA要求的ChainLink節點選擇是否對提案出價。如果預言機服務提供者出價,則會被提交至合約,同時附上質押金,如有不當行為,會被沒收。一旦SLA接收到足夠多的符合要求的出價,出價視窗關閉,並從這個出價池選擇最終的預言機服務者。沒被選上的則其押金會被退還。
一旦執行SLA任務的預言機被選定,接下來就是鏈下的預言機執行協議,並向鏈上報告資料。當預言機合約收到預言機提交的結果後,這些結果會被反饋到彙總合約。彙總合約計算加權結果,得出最終的反饋答案。加權答案會返回給使用者智慧合約,從而觸發特定功能。同時,每個預言機響應的有效性都會反饋給聲譽合約。
當然,這個彙總加權處理方式可以有多種。有的需要在進行彙總前將異常值去掉,比如可以拋棄離散值,比如在計算時,去掉最大和最小的值,並輸出剩餘值的中位數等。
*ChainLink的現實世界部分
ChainLink的現實世界部分,也就是其鏈下部分,主要由預言機節點網路組成,這些節點連線到公鏈(如以太坊網路)。這些節點獨立收集來自現實世界資料來源的資料,以響應鏈上請求的需求。
ChainLink Core 節點軟體負責與區塊鏈互動,CHainLink節點的工作是完成各種任務。每個任務有一組小的子任務。每個子任務執行特定任務,然後將其結果傳遞到下一個子任務,由此得到最終結果。ChainLink節點軟體內建了一些子任務,包括HTTP請求、JSON解析、轉換為各種區塊鏈格式等。
除內建子任務型別,透過建立介面卡也可以自定義子任務。介面卡是具有最小REST API的外部服務。透過以面向服務的方式對介面卡建模,只需在程式前新增小的中間API,可實現任何程式語言的程式。很多介面卡都是開源的,服務可以審計,且由不同的社羣成員執行。各種不同的介面卡由不同的開發者開發,確保介面卡之間的相容也關鍵。ChainLink與基於JSON模式的模式系統一起使用,以指定每個介面卡需要什麼輸入以及如何來格式化它們。
2.分散化是ChainLink實現安全連線的基礎
實現預言機本身並不算很難,難的是提供持續安全的預言機服務。上面藍狐筆記也提到過,中心化預言機面臨的難題包括單點失敗、資料保密、資料不被篡改等。為了實現安全的預言機,去中心化的方式,也就是分散化的方式是實現安全的基礎探索。
針對預言機可能出現的安全漏洞,ChainLink提出了去中心化為主的安全方法,其本質也就是分散化,其中包括資料來源的去中心化、預言機節點的去中心化。當然只有去中心化還不夠,ChainLink還考慮了使用可信硬體、對資料來源資料進行簽名等方法來確保安全。
首先是資料來源的去中心化。如果只有一個資料來源,一旦該資料來源被駭客篡改、或停機等,那麼預言機就不安全。分散化是一種解決方案。可以透過多個來源的資料,獲得多個反饋,以分散風險。
其次是預言機節點的去中心化。不同的預言機節點可以從一個或多個資料來源獲取資料,同時也可防止部分惡意節點輸入錯誤資料。即便其中部分預言機存在錯誤,只要透過ChainLink彙總合約的加權計算,也有機會得出更可靠的響應。
不過,這裡存在搭便車問題。有的節點可能會為了節省收集資料成本,抄襲其他節點的響應資料,不僅對其他節點不公平,同時也實質上降低了預言機節點資料來源的分散化,從而不利於安全。ChainLink會採用加密提交方式,由預言機節點傳送加密的響應到CHAINLINK-SC智慧合約,在達到一定數量,併發起第二輪時才會揭示反饋值。
ChainLink開始時採用的是合約內彙總的方式,長期來說會採用鏈外匯總的方式。合約內彙總的問題是成本問題,它會涉及鏈上預言機訊息傳輸和處理的成本。如果節點多,這裡可能會有很高的成本。更省錢的方法是在鏈外執行反饋的彙總,然後向CHAINLINK-SC傳送一條訊息。ChainLink還提出使用門限簽名的方法(藍狐筆記:threshold signature),例如使用Schnorr簽名。鏈外匯總的系統利用了基於門限簽名的分散式協議,可以防止f<n/3預言機的搭便車抄襲情況。
3.ChainLink實現預言機安全的其他措施
僅有去中心化(分散化)的方式,還無法實現全面的安全。ChainLink還考慮其他的措施,例如包括可信硬體、來源資料的數字簽名、以及其安全服務。
可信硬體和數字簽名方面是ChainLink實現預言機安全長期要做的事情。下面主要介紹在早期預言機服務中,ChainLink為提高安全的措施,也就是其主要安全服務,其中包括:驗證系統、聲譽系統、認證服務、合約升級服務。
首選看驗證系統。ChainLink驗證系統監控鏈上預言機的行為,並提供指標,幫助使用者做選擇。指標包括可用性和正確性。可用性主要記錄預言機沒有即時響應查詢的失敗次數。正確性就是指正確的響應。如果偏離值大,可以比較其他節點的響應得出。在鏈上處理彙總資料時,預言機的活動是可見的,不過在鏈下執行彙總時,就無法直接觀察其可用性和正確性。對於鏈下反饋的正確性方面,ChainLink要求預言機對其響應進行數字簽名,而其他節點可以報告有明顯錯誤的行為(舉報偏離值過大的節點),報告節點會獲得獎勵。可用性比較難監控,ChainLink要求預言機對從其他預言機收到的反饋結果進行數字簽名的證明,也就是讓別人來證明自己的成功率。驗證合約會接受這些證明。
其次是聲譽系統。聲譽系統主要記錄歷史表現。主要包括:分配的請求總數(完成響應和未完成響應的);已完成的請求總數,可以計算出完成的成功率;被接受的請求總數,透過計算被合約接受的請求總數,然後跟其他節點做比較,並與總完成的請求總數對比,由此得出準確率;平均響應時間:它基於完成的請求來計算;質押金額:被鎖定的罰金數額,可以計算節點的犯錯成本。為了獲得好聲譽,節點會正確行事。
最後是認證服務。認證服務主要是為高質量的預言機提供者做信用背書。不過這會被人們誤認為是許可節點參與的意思。這種服務在早期為了獲得安全存在的一定的必要性。當然長期看,能否找到更合適的方法也值得考慮。認證服務會監控驗證系統的資料統計,尤其對高價值交易的響應進行審計,還有鏈下審計,包括事後審計等。同時,這麼做也是考慮了女巫和映象攻擊的可能性。女巫攻擊會透過控制預言機池,提供錯誤資料,影響最終答案。為減少操作成本,女巫攻擊者還會採用映象,這些惡意預言機會在鏈下共享資料,假裝有獨立資料來源,這樣結果是減少了資料來源的分散化,降低了安全。長期看,這可以透過使用可信硬體來解決。短期則需要一些認證措施。
ChainLink的價值從何而來
LINK代幣是其預言機資料交易市場的支付媒介,同時也是工作權利代幣。ChainLink網路使用LINK代幣向節點執行者支付費用,以獲得節點提供的鏈下資料流中檢索資料的服務、將資料格式化為區塊鏈可讀格式、鏈外計算、以及保證正常執行。使用者智慧合約為了使用ChainLink預言機節點,它們也需要向其所選的ChainLink節點支付運營費用。
由此可見,LINK的價值來源於ChainLink預言機服務市場的規模。
去中心化預言機市場的潛力
去中心化預言機領域有多大?智慧合約承載價值的規模越大,去中心化預言機的需求也就越大。假如Maker、Compound、dydx等DeFi專案的規模達到幾十億上百億美元時,預言機安全的重要性可想而知,它需要更多的節點參與,更多的資料來源參與,更安全的技術基礎(如資料加密和可信硬體等)設施參與,更多預言機安全方案的探索。
對於有數十億上百億規模的價值來說,其中幾千萬美元甚至幾億美元用來保證其安全也是值得的。支付給預言機的服務成本,其本質是安全成本。隨著合成資產等衍生品市場的發展,這個市場有可能比現貨市場的規模更大,所以,對安全的預言機服務的需求也會越來越大。
結語
預言機是連通加密世界和現實世界的“中介軟體”。它關係到加密領域的可持續發展,尤其是對DeFi領域來說,其重要性顯而易見。
而對預言機來說,最核心的是安全問題。只有解決了安全問題,它才有立身之本。在解決安全問題的方法中,去中心化是達成安全的重要方式。ChainLink提出了一系列的解決方案,包括資料來源的去中心化、預言機的去中心化、可信硬體、對資料的簽名,以及安全服務措施(驗證、聲譽、認證、合約升級)等。它為人們在去中心化預言機領域的探索開啟了一條道路。
同時,也有人認為ChainLink的去中心化程度還不夠,在安全上還有提升空間。那麼,不妨更多的預言機網路進來探索,以提供更多選擇。接下來藍狐筆記如有機會將關注預言機領域的其他選手。也許未來不只有ChainLink,還會有其他預言機網路也會隨著智慧合約應用的興起而發展壯大。這個領域不會只有一家選手,隨著市場增長,只要能夠實現更安全的預言機,機會還有,格局未定。