Oracle 是什麼? Oracle 的中文意思是先知,預言者。電影黑客帝國里扮演先知角色的老太太就叫做 Oracle。
Oracle 的定義之一是,在某方面具有絕對權威或可提供指引的人或物。
舉個例子,在一個小鎮上,有個男人每天早上 9 點出來遛狗,風雨無阻。漸漸地,鎮上的居民根據這個男人有沒有在遛狗,來判斷時間。如果看到他在街道上遛狗,那肯定就是早上 9 點了。
對於鎮上居民來說,這個男人就是 Oracle(預言者)。
那他是不是一個可靠的預言者呢?不一定。如果他生病了,狗撒手沒了,或者天降暴雨,這些都有可能打亂他早上 9 點遛狗的安排,也就是說,他並不是可靠的預言者。
預言者的來源
預言者,或者說先知這個概念來源於古希臘神話。在希臘神話中,先知是幫助人與神溝通的橋樑,通過占卜獲得上天諸神的旨意,並告知地上的民眾。
占卜的方法有很多,但其本質都是試圖預知未來。
區塊鏈上的先知——預言機
區塊鏈技術是我們跟踪鏈上行為的利器,但如果我們要將鏈下數據帶到鏈上時,該怎麼辦呢?比如,我們如何讓區塊鏈知道某個代幣的價格,天空的顏色,或者美國總統大選特朗普能否連任。
像這樣的情況,區塊鏈就需要一個可靠的信息來源——預言機。
你可能有點疑惑,為什麼區塊鏈需要知道代幣價格這類信息呢?
代幣價格這類信息並不是鏈上天然存在的,而這些信息對於鏈上智能合約的運行至關重要。比如,處理借貸的智能合約需要根據獲取到的最新代幣價格來決定借款人的可貸額度。
也有人會問,為什麼不使用可靠的外部信息源來解決所有這些問題呢?
恭喜你,問到點子上了!你認為怎樣的信息來源是可靠的?很多人會回答:鏈外的中心化信息源。而「中心化」正是問題所在,「中心化」就意味著單點風險,而經驗告訴我們,保持中心化信息源的長期可靠和準確是非常困難的。
如何解決預言機問題?
現在有幾個團隊正在尋求合適的解決方案。
Augur 便是這個領域的頭部玩家之一,它在預測市場做預言機。 Augur 讓用戶通過投票來確定一個事件的真實結果,如果有人認為結果與事實不符,就會進入爭議階段,進一步確認真相。通過這種民主的方式,借助群體智慧發現真相。
另一個解決方案是 Chainlink,致力於創建分佈式預言機網絡。這個網絡允許智能合約訪問鏈外資源,比如其他區塊鏈上的信息或者網站 API 這樣的標準數據源。舉個例子,如果有一條記錄股票市場數據的區塊鏈,那麼其他的區塊鏈就可以通過 Chainlink 提供的預言機服務獲取股票市場的數據。
預言機的安全性和可靠性?
雖然預言機可以提供數據,但如何確保數據的可靠和準確仍是挑戰。
Synthetix 的預言機有一次報價錯誤,報出的韓元價格為正常價格的 1000 倍。該平台上一個交易機器人檢測到這個錯誤後從中套利,獲得了 1000 倍的收益,在一小時內獲利超過 10 億美元。
無獨有偶,bZx 協議也發生過預言機報價異常的事件。 bZx 協議允許用戶通過 Fulcrum 進行保證金交易。這個交易過程並不復雜,但 Fulcrum 需要預言機提供的數據去進行定價,於是它選中了去中心化交易平台 Kyber。作為一個交易平台,Kyber 本應為 Fulcrum 提供精準的實時價格,但比起中心化交易平台,Kyber 的交易體量還是偏小了,流動性不足。
而這一點,被一個用戶利用了,並從中牟利。
這個用戶先是貸款借出大量以太幣,把其中的一部分存入 Fulcrum 平台,然後用剩下的錢吃掉了 Kyber 的所有穩定幣掛單。 Kyber 上的穩定幣受此影響,價格從 1 美元漲到 2 美元。由於 Fulcrum 平台使用 Kyber 提供的預言機報價,導致 Fulcrum 誤認為穩定幣的價格是 2 美元一枚。緊接著這個用戶提走了之前存入 Fulcrum,但價格已經翻了一倍的以太幣,在還清借來的以太幣後仍獲利 60 萬美元左右。
這件事情發生後,bZx 團隊放棄了 Kyber 提供的預言機服務,轉而選擇 ChainLink 作為預言機。
預言機的未來
雖然預言者在歷史故事中屢見不鮮,但區塊鏈上的預言者——預言機,出現在人們視野中的時間還很短,我們對它還不夠了解。現有的預言機機制仍有許多亟待改善之處,在市場吸取了每一個真金白銀的教訓之後,相信未來的預言機將會更為堅實可靠。
很難說,未來的預言機,會是什麼樣子的,要是有一個先知告訴我們就好了。