互聯網誕生之後,人們有現實世界,也有了互聯網世界;如今,人們又有了一個新的世界:加密貨幣(虛擬貨幣)世界。這是區塊鏈帶給人們的禮物。從作者角度觀察:加密世界和現實世界的融合會是未來二十年最重要的發展線之一,可以與人工智能和物聯網並駕齊驅。本文由專欄作者藍狐筆記編撰。
在過去二十多年,創新者們不斷融合著現實和網路世界,兩者相互融入,難以分開。在比特幣誕生後十多年後,加密世界也加快了跟現實世界交互的腳步。
從作者的角度,加密世界和現實世界的融合會是未來二十年最重要的發展線之一,可以與人工智能和物聯網並駕齊驅。
延伸閱讀:文組也該知道的區塊鏈技術知識 <9> :淺談預言機 Oracle,區塊鏈與現實世界的橋樑
加密世界 vs 現實世界
純粹的加密世界跟現實世界有不同的運行邏輯。
加密世界運行在鏈上,通過共識機制、密碼學以及分佈式節點等來保證其不可篡改性,實現不依賴於第三方的信任。智能合約運行在鏈上,同樣,沒人可以修改其代碼,也無法干擾其運行,這包括智能合約的創建者。
在智能合約中,其執行邏輯是,如果發生了x,那麼就會執行y,這裡的結果是確定性的。智能合約可以自我驗證自我執行,它代表了加密世界的可信賴。
而在現實世界中,很難有全局的確定性共識,充滿各種不確定的可能,例如應用是可以被修改、被終止的。在這種情況下,加密世界和現實世界的融合存在挑戰。
互聯網世界可以將現實世界的部分搬到網上,例如將報紙雜誌搬到網上,成為新媒體;將各種線下的零售店搬到網上就變成了網店。而加密世界跟現實世界的融合更複雜。
那麼,兩個世界如何溝通?有沒有可能溝通?這就是預言機存在的意義。之前介紹過了DeFi領域中的交易協議Uniswap(《一文讀懂Uniswap》)和Kyber(《Kyber的淡出與起勢》),今天作者介紹DeFi中的預言機領域。
延伸閱讀:去中心化金融入門|五分鐘看懂借貸機制,什麼是「DeFi 銀行」Compound?
預言機連通加密世界和現實世界
加密世界和現實世界的溝通需要預言機。在筆者看來,預言機是連接兩個不同世界的「中間媒介」。
如果加密世界僅僅滿足於貨幣類應用,那麼,僅僅通過加密世界內部也可以完成,例如比特幣的交易。但,如果想要更豐富的服務,想要滿足更多的需求,想要將智能合約的潛力發揮到最大,那麼,很有必要為智能合約引入來自現實世界的數據。
有人會問,為什麼區塊鏈不直接獲取這些數據?無法直接獲取。上面也提到過,因為這兩個世界的運行邏輯不同。區塊鏈上的數據都是通過共識機制達成的全局共識,而現實世界的數據並非都是共識的結果。兩個世界的連通需要可靠的預言機。通過預言機提供可信的數據,轉換成為區塊鏈可讀可用的數據。
加密世界需要哪些現實世界的數據?從目前發展看,迄今為止,需求最大的是DeFi領域,DeFi中MakerDAO、Compound、Synthetix、dYdX等都需要預言機提供的價格數據流服務。
隨著智能合約的發展,會有更多的場景需要鏈外的數據。例如合成資產智能合約,可能需要來自於納斯達克、紐交所的價格數據流;房產智能合約,可能需要來房地產市場的數據流;保險智能合約,例如航班延誤險需要航班活動的數據流;貿易金融智能合約,可能需要獲取GPS相關數據等。此外,隨著人工智能和物聯網的發展,智能合約對現實世界數據的需求只會越來越大。
除了將現實世界數據引入加密世界,加密世界的數據也可以進入現實世界。例如從鏈上向鏈下輸出數據,以支付消息的形式被路由到支付網路等。
延伸閱讀:貨幣並非集體幻想,什麼支撐了「比特幣的價值」〈一〉為什麼美元有價值?
中心化預言機並不契合區塊鏈
為了滿足區塊鏈智能合約對鏈外數據的需求,有的智能合約採用了或採用過中心化的預言機。中心化的預言機存在什麼問題?
它中心化的控制方式,容易出現單點失敗的故障,一旦出現停機,會帶來損失。此外,不管是主觀操作,還是客觀被駭客攻擊,都存在被篡改的可能。即使通過公證、品牌、質押資金等也無法徹底解決潛在安全問題。
在現實中已經發生過此類問題。
Synthetix 預言幾重大錯誤案例:10億美元
Synthetix曾在2019年6月遭遇過重大的預言機問題。其Synthetix Oracle,負責給Synthetix智能合約提供外部數據。它在6月25日引入了錯誤價格數據,該數據報告的KRW(韓元)價格是實際價格的1000多倍。這一錯誤數據被一個交易機器人利用,該交易機器人所有者藉此兌換了3700萬的sETH,價值超過10億美元。
最後Synthetix跟該交易機器人的所有者協商解決,在支付一定的漏洞賞金之後,將sETH恢復。也就是說,在這個過程中,Synthetix的中心化預言機錯誤提供了KRW價格,從而導致悲催後果。
如果中心化預言機容易出問題,那麼,為了保證價格等數據不會出錯,採用人工輸入的方法是不是可行?
人工輸入的預言機,在預測市場可以看到。對於人工輸入方,需要抵押資產,可以防止一定程度的作弊,且通過眾包方式,有一定程度分散化。不過,人工輸入的方法,成本較高、效率較低、無法即時反饋,不具有可擴展性。
延伸閱讀:最完整的 DeFi 入門全導覽:為什麼 DeFi 是加密史上第二個突破?
安全是預言機的關鍵
對預言機來說,中心化或去中心化不是目的,其目的是要實現安全的可靠的數據送達服務。
專欄作者註:「去中心化」這個詞並不是很好的表達,「分散化」或「分佈式」是更恰當的描述,因為從目前實踐來看,沒有真正的去中心化,只是節點更多更分散而已
智能合約的代碼邏輯執行中,一旦發生了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億美元價值的資產,且還在持續發展中,如果預言機出問題,幾乎是不可承受之重。
延伸閱讀:落地應用痛點|為什麼預言機(Oracle)是區塊鏈落地應用的「剛性需求」?
既然中心化預言機有潛在安全問題,那麼,如何獲得更安全的預言機服務?
關於這一點,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,還會有其他預言機網路也會隨著智能合約應用的興起而發展壯大。這個領域不會只有一家選手,隨著市場增長,只要能夠實現更安全的預言機,機會還有,格局未定。
相關報導
《想像 2030》德意志銀行報告書:未來對加密貨幣的需求可能會飆升
落地應用痛點|為什麼預言機(Oracle)是區塊鏈落地應用的「剛性需求」?
人物故事|電子現金之父 David Chuam 談「重新創造 Ecash、Praxxis 抗量子加密貨幣」
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。