嗨,早!
這篇文章討論鏈上、鏈下的資料「轉接頭」—— 預言機(oracle)。
別被它的名字嚇到,字面上乍看很技術(網路上多數介紹文章也確實如此),但其實功能很簡單也很實用。先從輕鬆的開始。
比特幣大跌心痛險
最近富邦人壽推出很有趣的「比特幣大跌心痛險」,只要價格跌破就理賠:
於保險期間(2020/9/11 當天)若比特幣(Bitcoin)價格曾下跌至 $12,000 美元/顆,表示已達理賠條件,投保本商品的用戶即符合理賠資格,獲得理賠 300 點 FinCash。
好消息是,這幾天比特幣價格已經提前下跌到 10,000 美元左右。壞消息是,現在已經過了「心痛險」的投保時間。買不到了。
心痛險的保費、理賠金都是用富邦推出的 FinCash 交易。取得 FinCash 不必花錢,只要加入、上傳照片就能獲得 FinCash 開始體驗保險(主要目的)。若你常常獲得理賠,累積足夠的 FinCash 還能到點數商城兌換 LINE Points 的抽獎資格。這是很標準的代幣經濟,只是與加密貨幣無關。
我不是在替富邦打廣告。如果你細看理賠標準的話,會發現有趣的規則:
本商品以 Coinmarketcap 的價格作為理賠依據,且不以其他監測數據作為參考。至於最終是否理賠,富邦人壽仍保有最終之決定、解釋權利。
假如 9 月 11 日當天,比特幣價格恰好在 12,000 美元附近徘徊。有些交易所最低報價是 11,999 美元(理賠),但有些交易所最低卻是 12,001 美元(不理賠)。這時到底賠不賠?富邦說了算。
只要事先指定明確的資訊來源,再搭配最終的定奪機制就能避免爭議。假如這份保險是以智慧合約(程式碼)寫成,並放在區塊鏈上執行,就不會像富邦「保有決定、解釋權利」。程式碼可沒有解釋的空間。
這使得資訊來源的正確性變得至關重要。畢竟,誰也無法保證 Coinmarketcap 的網站安全無虞。一旦遭到駭客入侵,並對外傳送錯誤資訊,富邦還可以跳出來「解釋」,但智慧合約只懂傻傻地「執行」。
該如何讓不大聰明的智慧合約不容易被「騙」?靠的是預言機(oracle)。
API 與預言機
智慧合約就是一般的程式碼,它本身並不會知道外界世界發生了什麼事,得靠 API 輸入資料才能與外界資訊同步。這和前陣子相當知名的「口罩地圖」類似:
二月二日週日中午 ... 有人製作了一個「超商口罩現況回報」,點開地圖,紅色代表「售完」,黃色是「量少」, 綠色則是「充足」;全台一萬多家超商口罩存貨狀況,一目了然。 ... 當 Howard 釋出超商口罩地圖時,許多工程師私訊他,說也正在寫類似服務,只是仍卡在搜集超商定位資料的階段。
Howard 不想在圖資上耽擱,心一橫,索性直接使用 Google 地圖與地點搜尋的「Place API」服務。然而這兩項都是收費服務 —— Google 地圖使用 1,000 次要 5 美元,Place API 則是 1,000 次 30 美元。加上 Google 不允許開發者儲存圖資資料,網友每查詢一次,就要收一次錢。
API 是兩套程式之間的橋樑。
「口罩地圖」站在巨人的肩膀上 —— Google 地圖的 API —— 否則還得重新打造一款台灣地圖,再標示超商位置。智慧合約也是如此,得仰賴各種 API 輸入資料才能做出反應,例如農業保險就得有氣象資料、國際物流則得有 GPS 資料,或是金融交易得知道市場價格。
這馬上衍生出兩大問題:
取得的資料可靠嗎?
誰來付 API 使用費?
富邦的心痛險不須煩惱上述問題。它不涉及大量金錢,而且使用的是靜態資料(當天最低價),不必動用 API 幫忙。
只是隨著智慧合約的金融應用場景增加,串接資訊的需求也越來越龐大。如果涉及真金白銀的支付,且需要監測每隔幾分鐘就會變動一次的動態資料,那麼可靠的資訊來源與 API 就非常重要。
這就是預言機的主要功能 —— 扮演鏈上、鏈下的資料「轉接頭」—— 而目前市場上最知名的預言機,就是建立在以太坊上的 ChainLink。
ChainLink 的代幣經濟
ChainLink 主要解決兩大問題:
提升輸入與輸出資訊的可靠度
創造代幣經濟支付 API 使用費
看起來很技術,但功能很單純。
舉例來說,假如有人以智慧合約仿造富邦的「比特幣大跌心痛險」,讓人們以 100 顆 ETH 投保,並可獲得 300 顆 ETH 理賠。這份智慧合約就可以直接串連 ChainLink 提供的 BTC/USD 即時報價。
咦,難道 ChainLink 的報價會比 Coinmarketcap 還正確嗎?
不是。而是 ChainLink 的報價是同時參照了多家交易所,並由多個隨機但可信賴的報價者抵押加密貨幣掛保證,最終達成共識。相較於直接串接 Coinmarketcap 資料,ChainLink 的報價機制比較「去中心化」且更穩定。用下方這張圖會更好理解。
左方是基本資訊,包含交易對、當前報價、誤差範圍、下次報價倒數以及報價者人數。而右方的圓圈上,每個黑點都是一位 ChainLink 的報價者。他們負責透過 API 從外部取得資料,將數據交給 ChainLink 的智慧合約處理,並產出最新報價(中間圓圈)。
如果放大看,就會發現每位報價者呈報的價格皆不相同。而 ChainLink 智慧合約的工作就是篩選出聲譽良好的報價者,剔除極端值,再從剩下的價格中算出「合理值」供其他智慧合約拿去使用。
現在包含 SWIFT、Google 和幣安智慧鏈都與 ChainLink 合作,共同提供或使用更可靠的數據。
實際上 ChainLink 的報價者並非只有 21 位,而是每一輪都從一大批人裡面隨機挑選出 21 位。每位報價者都要預先繳交押金。如果提供的數據被採用,就可以獲得額外的 LINK 幣獎勵。反之,若提供的數據被拒絕,不僅無法獲得獎勵,押金還會被沒收。
當然,想要串接 ChainLink 的最新價格和使用 Google 地圖 API 一樣都是要付錢。只不過,付的是由 ChainLink 發行的 LINK 幣。這就形成了一套代幣經濟。報價者誠實地提供外界資訊給 ChainLink 的智慧合約並賺取 LINK 幣,而使用者支付 LINK 幣獲得 ChainLink 智慧合約提供的可靠報價。
只要有越多智慧合約都仰賴 ChainLink 獲得外界資訊,LINK 幣的價格理應(忽略二級市場交易)就會跟著水漲船高。其中,最需要價格資訊的就是 DeFi 應用。所以前幾週 DeFi 熱度上升的時候,LINK 幣的價格也跟著屢創歷史新高。
極限與挑戰者
同樣的預言機模式不僅可以用在價格,也可以用來判斷航班是否延誤(GPS)、颱風是否侵襲(氣象)或是表決是否通過(選舉)。
你或許會想,這些不是都有權威機構會公開資訊嗎?一旦區塊鏈上出現了相關的衍生交易市場,若只靠單一機構提供訊息,恐怕不足以保證交易安全。機構有可能被駭、當機,或是人為輸入錯誤。此時預言機就為智慧合約的輸入數據,提供額外的保障。
當然預言機的極限也很明顯,只能處理數位化過後的資料。例如想知道空氣品質的狀況,也需要有足夠的監測站或聯網裝置提供數據才行。
此外,ChainLink 雖然已是業內領頭羊,但仍不乏新進的挑戰者。近幾週快速竄起的挑戰者,是以 Cosmos 打造的 BAND 區塊鏈。這都得「怪」以太坊。
ChainLink 是建立在以太坊上的應用。偏偏以太坊道路狹窄(已在拓寬),使得湧入 DeFi 的用戶被迫得支付數千元的手續費才能參與。這不僅嚇跑用戶,就連 DeFi 應用要向 ChainLink 取得數據也要價不菲。BAND 趁勢崛起。他們主打不塞車、低手續費且功能相同,向 ChainLink 的用戶們招手。
無論開發者最終選擇使用誰家服務,這都不關使用者的事。就像口罩地圖如果覺得 Google 地圖 API 太貴,也可以改串接 Bing 地圖。只不過,圖資缺漏可能沒有太大影響。但預言機提供的資料多寡與品質,勢必直接影響到鏈上產品的安全性。
預言機這座串接鏈上、鏈下數據的橋樑,該如何搭得穩固又價格親民,會是未來的競爭重點。
若你想查閱區塊勢過往的出刊內容,可以參考文章列表。直接使用列表內的搜尋輸入關鍵字(例如公開、DeFi、數位新台幣),或是按編號、日期都能找到你要的內容。此外,也請大家推薦區塊勢給身邊的親朋好友。