ChainLink、預言機與兩個世界的連線

買賣虛擬貨幣
網際網路誕生之後,人們有現實世界,也有了網際網路世界。如今,人們又有了一個新的世界:加密世界。這是區塊鏈帶給人們的禮物。在過去二十多年,創新者們不斷融合著現實和網際網路世界,兩者相互融入,難以分開。在比特幣誕生後十多年後,加密世界也加快了跟現實世界互動的腳步。從藍狐筆記的角度,加密世界和現實世界的融合會是未來二十年最重要的發展線之一,可以與人工智慧和物聯網並駕齊驅。加密世界vs 現實世界純粹的加密世界跟現實世界有不同的執行邏輯。加密世界執行在鏈上,透過共識機制、密碼學以及分散式節點等來保證其不可篡改性,實現不依賴於第三方的信任。智慧合約執行在鏈上,同樣,沒人可以修改其程式碼,也無法干擾其執行,這包括智慧合約的建立者。在智慧合約中,其執行邏輯是,如果發生了x,那麼就會執行y,這裡的結果是確定性的。智慧合約可以自我驗證自我執行,它代表了加密世界的可信賴。而在現實世界中,很難有全域性的確定性共識,充滿各種不確定的可能,例如應用是可以被修改、被終止的。在這種情況下,加密世界和現實世界的融合存在挑戰。網際網路世界可以將現實世界的部分搬到網上,例如將報紙雜誌搬到網上,成為新媒體;將各種線下的零售店搬到網上就變成了網店。而加密世界跟現實世界的融合更復雜。
那麼,兩個世界如何溝通?有沒有可能溝通?這就是預言機存在的意義。藍狐筆記之前介紹了DeFi領域中的交易協議Uniswap(《一文讀懂Uniswap》)和Kyber(《Kyber的淡出與起勢》)。今天藍狐筆記介紹DeFi中的預言機領域。預言機連通加密世界和現實世界加密世界和現實世界的溝通需要預言機。在藍狐筆記看來,預言機是連線兩個不同世界的“中介軟體”。如果加密世界僅僅滿足於貨幣類應用,那麼,僅僅透過加密世界內部也可以完成,例如比特幣的交易。但,如果想要更豐富的服務,想要滿足更多的需求,想要將智慧合約的潛力發揮到最大,那麼,很有必要為智慧合約引入來自現實世界的資料。有人會問,為什麼區塊鏈不直接獲取這些資料?無法直接獲取。上面也提到過,因為這兩個世界的執行邏輯不同。區塊鏈上的資料都是透過共識機制達成的全域性共識,而現實世界的資料並非都是共識的結果。兩個世界的連通需要可靠的預言機。透過預言機提供可信的資料,轉換成為區塊鏈可讀可用的資料。加密世界需要哪些現實世界的資料?從目前發展看,迄今為止,需求最大的是DeFi領域,DeFi中MakerDAO、Compound、Synthetix、dYdX等都需要預言機提供的價格資料流服務。
隨著智慧合約的發展,會有更多的場景需要鏈外的資料。例如合成資產智慧合約,可能需要來自於納斯達克、紐交所的價格資料流;房產智慧合約,可能需要來房地產市場的資料流;保險智慧合約,例如航班延誤險需要航班活動的資料流;貿易金融智慧合約,可能需要獲取GPS相關資料等。此外,隨著人工智慧和物聯網的發展,智慧合約對現實世界資料的需求只會越來越大。除了將現實世界資料引入加密世界,加密世界的資料也可以進入現實世界。例如從鏈上向鏈下輸出資料,以支付訊息的形式被路由到支付網路等。中心化預言機並不契合區塊鏈為了滿足區塊鏈智慧合約對鏈外資料的需求,有的智慧合約採用了或採用過中心化的預言機。中心化的預言機存在什麼問題?它中心化的控制方式,容易出現單點失敗的故障,一旦出現停機,會帶來損失。此外,不管是主觀操作,還是客觀被駭客攻擊,都存在被篡改的可能。即使透過公證、品牌、質押資金等也無法徹底解決潛在安全問題。在現實中已經發生過此類問題。Synthetix曾在2019年6月遭遇過重大的預言機問題。其Synthetix Oracle,負責給Synthetix智慧合約提供外部資料。它在6月25日引入了錯誤價格資料,該資料包告的KRW(韓元)價格是實際價格的1000多倍。這一錯誤資料被一個交易機器人利用,該交易機器人所有者藉此兌換了3700萬的sETH,價值超過10億美元。最後Synthetix跟該交易機器人的所有者協商解決,在支付一定的漏洞賞金之後,將sETH恢復。也就是說,在這個過程中,Synthetix的中心化預言機錯誤提供了KRW價格,從而導致悲催後果。如果中心化預言機容易出問題,那麼,為了保證價格等資料不會出錯,採用人工輸入的方法是不是可行?人工輸入的預言機,在預測市場可以看到。對於人工輸入方,需要抵押資產,可以防止一定程度的作弊,且透過眾包方式,有一定程度分散化。不過,人工輸入的方法,成本較高、效率較低、無法即時反饋,不具有可擴充套件性。
安全是預言機的關鍵對預言機來說,中心化或去中心化不是目的,其目的是要實現安全的可靠的資料送達服務。(從藍狐筆記的角度,“去中心化”這個詞並不是很好的表達,“分散化”或“分散式”是更恰當的描述,因為從目前實踐來看,沒有真正的去中心化,只是節點更多更分散而已)智慧合約的程式碼邏輯執行中,一旦發生了X,就會觸發Y。這種方式保證了可信賴、透明;但是,如果輸入的資料是錯誤的,那麼,也會帶來損失。就像上面提到的Synthetix案例一樣,由於其輸入的韓元價格資料是正常價格的1000多倍,導致產生嚴重後果。Synthetix是合成資產交易平臺,使用者透過抵押SNX代幣生成合成資產。合成資產可以是BTC、ETH這些加密貨幣,也可以是特斯拉股票、大宗商品等。不管是加密貨幣還是股票、黃金,Synthetix的合成資產交易都需要精確的資產價格資料流。一旦價格資料出現問題,後果不堪設想。同樣,MakerDAO協議中使用者使用ETH進行抵押,可以生成穩定幣Dai,其抵押率在150%以上,假如輸入的ETH資料是惡意的,它導致大多數使用者資產被清算,且還有14%的罰金。如發生這種極端情況,MakerDAO系統將無法執行下去。同樣,Compound、dYdX等DeFi專案也是如此,都需要預言機提供正確的價格資料流,以保證其系統安全。可以說,預言機是DeFi領域大多數專案的共同問題(Uniswap除外,它無須預言機提供價格資料服務)。如果沒有安全的預言機,DeFi大廈就沒有穩固的地基,也無法擴充套件壯大。目前DeFi已經鎖定超過6.8億美元價值的資產,且還在持續發展中,如果預言機出問題,幾乎是不可承受之重。既然中心化預言機有潛在安全問題,那麼,如何獲得更安全的預言機服務?關於這一點,ChainLink早在2017年就提出來了,不得不說,這在當時是具有遠見卓識的,畢竟2017年DeFi還沒有發展起來,預言機的需求也不明顯。
ChainLink預言機如何連線兩個世界上述可以得出兩點:一是,預言機是加密世界和現實世界實現溝通的不可或缺的“中介軟體”。這決定了其重要地位,會有越來越大的市場規模。二是,預言機安全非常重要,它是很多智慧合約,尤其是DeFi大廈的基礎構建塊,安全是其安身立命之本。

那麼,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,還會有其他預言機網路也會隨著智慧合約應用的興起而發展壯大。這個領域不會只有一家選手,隨著市場增長,只要能夠實現更安全的預言機,機會還有,格局未定。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;