區塊鏈技術與智能合約的出現,給了人類的互動與信任的摩擦帶來了前所未有的創新。然而到目前為止,區塊鏈的技術依然還無法來到落地應用的階段,除了公鏈本身的性能問題外,還有一項關鍵的因素,智能合約「無法辨別數據來源是否可靠」,雖然區塊鏈可以解決數據竄改的問題,但並沒有辦法保證一開始上鏈的數據為「可信任的數據」。而一個可靠的預言機(oracle)所扮演的角色,就是解決數據的信任問題,成為虛擬世界與現實世界的橋樑。
#什麼是預言機(oracle)?
「區塊鏈外資訊寫入區塊鏈內的機制,一般被稱為預言機」。區塊鏈預言機為第三方服務,可理解為區塊鏈上的應用程式介面(API),在區塊鏈中,智能合約通常僅能訪問其內部數據,而預言機的作用是通過獲取、驗證和提交外部數據,使智能合約能夠依賴準確的現實世界數據進行執行。預言機(Oracle)在區塊鏈發展中扮演著連接現實世界和區塊鏈的關鍵角色,被認為是鏈上和鏈下數據的橋樑和窗口。
鏈上用戶可以通過預言機查詢現實世界的資訊,如代幣價格、匯率、天氣預報等。不論是金融產品、保險、物流、預測市場或資產抵押等服務,若想要打造去中心化系統,可信任的 Oracle 是相當重要的一環。
#預言機如何運作?
預言機(Oracle)一般會作為區塊鏈的一個獨立模組或第三方服務與執行引擎進行資訊的傳遞。預言機只負責取得可信任的數據,不直接參與其他相關執行,其工作流程如下:
1.用戶通過呼叫合約的形式(也可以通過特殊的 API 介面服務等其他方式發起預言機服務請求)發起預言機的服務請求,通過調用某個內建合約介面,告知區塊鏈執行引擎,用戶想要執行一筆預言機服務的交易。
2.執行引擎執行過程中檢測到對預言機的服務請求,通過內部通信模組將它轉發給預言機模組,這個請求中會封裝請求外部數據源的一些資訊,如一個 Web 數據請求,會包含常見的 URL、HTTP Headers 等資訊。
3.預言機在收到服務請求後,向外部數據源發起數據獲取請求,拿到數據後利用交易生成器產生一筆新的內部回呼交易,並對其進行簽名(這一過程會使用 TEE 等硬體技術保障安全及不可篡改)。
4. 預言機將這筆回呼交易發向執行引擎,執行對獲取到的數據組織、管理、存儲等一系列操作,至此一個完整的含預言機服務的區塊鏈交易執行流程結束。
假設 Apple 和 Coco 下注誰是美國總統選舉的贏家。Apple 認為共和黨候選人將獲勝,而 Coco 認為民主黨將成為贏家。他們同意投注條款,並將其資金鎖定在智能合約中,該合約將根據選舉結果將所有資金放行給獲勝者。
由於智能合約無法與外部資料互動,因此它必須依靠預言機向其提供必要資訊 – 在這個範例中就是總統選舉的結果。選舉結束後,預言機會諮詢受信任的API以了解哪位候選人獲勝,並將此資訊轉發到智能合約。然後合約會將依結果資金發送給 Apple 或 Coco。
如果沒有預言機轉發資料,就無法確保參與者不會操縱結果判定並解決此賭注。 我們都知道區塊鏈創新的地方在於,上鏈後的資訊不可逆,不會被竄改,可以保障資料的「安全性」,然而,如果數據本身不是區塊鏈的原生數據,數據的「正確性」就可能會產生風險。舉個例子,某家航空公司將機長、空服人員的飛行時數及其他飛行數據上鏈,做為航空公司的可信任資料庫,然而航空公司讓員工超時工作,為了規避政府法規,在數據上鏈前就先行竄改了空服人員的飛行時數,也就是說上鏈的資料本身就是錯的,在這樣的情況下,政府依然無法完全信任區塊鏈上的數據,信任問題依然得不到解決。
#預言機的類型
區塊鏈預言機可以根據許多不同特性進行分類:
來源– 資料源自軟體還是硬體?
資訊方向– 入站還是出站?
信任– 中心化還是去中心化?
單一預言機可以分為多個類別。例如,從公司網站取得資訊的預言機為中心化入站軟體預言機。
軟體與硬體預言機
軟體預言機
軟體預言機最常見的區塊鏈預言機類型之一,透過與線上資訊來源互動並將其傳輸到區塊鏈。此資訊可能來自線上資料庫、伺服器、網站 – 基本上就是來自 Web 的任何資料來源。軟體預言機連接到網際網路這件事不僅使它們能夠向智能合約提供資訊,還可以即時傳輸該資訊。通常由軟體預言機提供的資訊可能包括匯率、數位資產價格或即時航班資訊。
硬體預言機
有些智能合約需要與現實世界接合,硬體預言機旨在從實體世界獲取資訊,並將其提供給智能合約,等同於將真實世界事件「轉譯」為智能合約可解讀的數值。這些資訊可以從電子傳應器、條碼掃描器和其他資訊讀取裝置轉發。其中一個例子是感應器,檢查運輸貨物的卡車是否已經抵達進料台。如果已抵達,它會將資訊轉發到智能合約,然後該合約可以根據資訊執行決策。
輸入與輸出預言機
輸入預言機
輸入預言機為最廣泛的類型,它從現實世界(鏈外)獲取數據,並將其傳遞到區塊鏈網路上供智能合約使用。輸入預言機的一個例子是告訴智能合約感應器測量到的溫度。
輸出預言機
輸出預言機與輸入預言機相反,它允許智能合約向鏈外系統發送命令,觸發它們執行某些行動。例子包括通知銀行網路支付、通知供應商存儲數據,或者在鏈上租賃付款完成後,通知物聯網系統解鎖等。
中心化與去中心化預言機
中心化預言機
中心化預言機由單一實體控制,它是智能合約唯一的資訊提供者。只使用一個資訊來源可能會有風險 – 合約的有效性完全取決於控制預言機的實體。此外,來自不良行為者的任何惡意干擾都會對智能合約產生直接影響。中心化預言機的主要問題是單點故障問題的存在,使得合約對漏洞和攻擊的抵抗力較低。
去中心化預言機
去中心化預言機與公共區塊鏈具有部分相同目標 – 避免交易對手風險。它們不依賴單一事實來源,提升供給智能合約資訊的可靠性。智能合約會查詢多個預言機以確定資料的有效性和準確性,這就是為何去中心化預言機又稱為共識預言機的原因。去中心化預言機在預測市場中也很實用,它們可以在預測市場中透過社會共識驗證某些結果的有效性。儘管去中心化預言機旨在實現去信任化,但請務必注意,就像去信任化區塊鏈網路一樣,去中心化預言機並不能完全去信任化,而是在許多參與者之間分配信任。
合約專屬預言機
合約專屬預言機旨在用於單一智能合約。這代表如果要部署數個智能合約,則必須開發適當比例的合約專屬預言機數量。這種預言機被認為非常耗時而且維護成本昂貴。想要從各種來源取得資料的公司可能會發現這種方法非常不切實際。另一方面,由於合約專屬預言機可以針對特定用例從頭設計,開發人員具有高度彈性來自訂預言機以滿足特定要求。
人力預言機
有時候,具有特定領域專業知識的個人也可以充當預言機。他們可以針對各種來源的資訊進行研究並驗證其真實性,並將該資訊轉譯為智能合約。由於人工預言機可以使用密碼學驗證其身分,因此欺騙者偽造其身分並提供損壞資料的可能性相對較低。
#預言機可能的幾個優勢
預言機(Oracle)的優勢:
1. 去中心化:對於去中心化預言機而言,設計是採用分散化機制,有效解決了數據來源錯誤的問題,讓鏈下的數據驗證變得更為可靠,智能合約能夠從預言機獲取驗證過的現實世界數據,從而提升整個系統的可信度。這種設計使得預言機充當了區塊鏈和實際世界之間的信任橋樑,增強了系統的安全性。
2. 相容性高:大部分預言機設計都擁有高度的相容性,能夠與多個主流區塊鏈如以太坊、比特幣和超級帳本(Hyperledger)等進行協同。這種卓越的相容性為各種智能合約提供了穩定、不受限制的輸入和輸出數據,促進了不同區塊鏈之間的互操作性,增強了整個區塊鏈生態的一體性。
3. 技術升級可行性:預言機系統中的每個模組都具備可升級性,這使得系統在技術發展的過程中能夠靈活地引入更高效、更安全的解決方案。這種可行性使其能夠不斷適應和引領區塊鏈領域的變革,確保系統的穩健性和創新性。
4. 通用性強:預言機廣泛適用於金融、保險、供應鏈、物聯網等多個領域,展現出強大的通用性。其在不同行業和應用場景中的關鍵作用,使得預言機成為連接區塊鏈與實際業務的紐帶。這種通用性為各類應用提供了更多可能性,拓展了預言機的廣泛應用領域。
#預言機的弱點
由於預言機問題不是主要區塊鏈共識的一部分,很不幸地,它們也不會是公共區塊鏈可以提供的安全機制的一部分。第三方預言機之間的信任衝突與智能合約的去信任化執行仍然是一個未解決的問題。除此之外,中間人攻擊也可能是一種威脅,惡意行為者可以存取預言機和合約之間的資料流並修改或偽造資料。
1. 安全問題:預言機一旦被駭客攻擊,輸出的數據可能會受到控制,導致智能合約基於錯誤的數據執行協議,給相關方帶來損失。由於區塊鏈本身難以驗證預言機提供的鏈下數據的真實性,這成為安全性的一大難題。
2.依賴性過高:智能合約對預言機的依賴性較高,一旦預言機出現問題,整個智能合約執行可能受到影響。儘管可以通過在應用層面加強安全性,但這種依賴性仍然是 DeFi 系統的一個潛在風險。
3. 喂價攻擊:喂價攻擊是預言機面臨的常見攻擊之一。駭客通過進行閃電貸、操縱流動性資金池中的資產價格等手段,試圖影響預言機的數據,從而實施攻擊。儘管 DeFi 協議可以採取多源喂價等方式來緩解攻擊,但這種威脅仍然存在。
4. 貨幣波動性問題:鑑於加密貨幣的波動性,如果長期遵守預言機內的規則,並不能真正保證獲得更高的回報。 如果平台或代幣價格崩盤,預言機亦不會自動停止。
5. 漏洞及故障:現在的預言機未有一貫的標準,由於技術仍有初步階段,開發人員編寫過程中可能會出現故障。如果公司為了節約成本,智能合約沒有經過專業公司的審核,它們可能會對平台性能有巨大影響。另一方面,如預言機表現良好,數據源可能被解讀成不可靠,導致性能降低。
#預言機的應用領域
預言機在多個領域發揮著關鍵作用,將現實世界的數據引入區塊鏈,為智能合約提供準確、可靠的外部資訊。以下是預言機的一些主要應用領域:
1. 去中心化金融(DeFi):預言機在金融領域的應用不僅限於獲取市場價格、利率和匯率等資訊,還延伸到交易執行、風險管理、合約履行和資產管理等多個方面。通過提供可靠和安全的市場數據,像 Chainlink 這樣的去中心化預言機網路為諸如 Aave、Synthetix、Compound 等金融智能合約的順利運行提供了基礎支持。
2. 保險與自動化:預言機在保險領域的應用涵蓋了從天氣、交通到健康等多個資訊維度。通過使保險智能合約能夠獲取即時數據,例如天氣狀況,交通情況和健康指標,預言機為保險業務提供了觸發賠付、理賠審核和保費計算等方面的自動和透明服務。Etherisc 等去中心化保險平臺在此方面的成功案例表明了預言機在提升保險服務效率和可信度方面的重要作用。
3.預測市場(遊戲及動態 NFT):預言機的運用不僅限於獲取亂數、比賽結果和彩票開獎等資訊,還包括了遊戲執行、獎金分配和公平驗證等方面。例如,去中心化的預測市場平臺 Augur 通過預言機技術讓用戶能夠創建和參與基於未來事件的市場,如政治選舉、體育比賽和天氣預報等。
4. 物聯網(IoT)與供應鏈管理:在物流領域,預言機的應用不僅有助於獲取貨物的位置、狀態和溫度等即時資訊,還涉及到貨物追蹤、品質控制和支付結算等方面。ShipChain 等基於區塊鏈的物流管理平臺通過整合物聯網設備和預言機技術,實現了對貨物全程的可視化和優化。這不僅提高了物流效率,還加強了對貨物運輸過程的監控和管理。
圖片來源:
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSrqxwHNFEizNf9mA8XRXV-XoUKnEUlB3A5FA&s
圖片來源:https://miro.medium.com/v2/resize:fit:1400/1*4rT-kKkCBRlmnT1ybsI62Q.png
#預言機的前景與總結
1. 提升智能合約靈活性:隨著預言機技術的不斷發展,智能合約將能夠更靈活地根據鏈外數據和事件進行條件判斷和邏輯執行。這將使得智能合約在各行業中能夠應對更為複雜的業務場景,例如,在保險領域,智能合約可以通過預言機獲取的天氣數據自動觸發賠付流程,為用戶提供更加個性化的保險服務。
2. 深化區塊鏈與傳統系統的融合:隨著預言機的應用,智能合約將更加緊密地與傳統系統進行集成和互操作,推動數位化轉型取得更廣泛和深入的進展。例如,供應鏈智能合約可以通過預言機提供的即時物流數據更新貨物狀態,實現與傳統 ERP 系統的高效對接,提升整個供應鏈的透明度和效率。
3. 拓展區塊鏈生態系統:預言機將成為連接不同區塊鏈的橋樑,促進智能合約與其他區塊鏈之間的跨鏈通信和協作。這將在區塊鏈生態系統中創造更多樣和豐富的合作機會。例如,去中心化交易所的智能合約可以利用預言機提供的其他區塊鏈上的資產價格進行交易撮合,促使跨鏈資產交換更為便捷和高效。
總結:
在現在的生活中,智能合約只是一段接收數據並執行行動的程式碼,它無法判斷數據的真假,但是錯誤的數據來源就導致智能合約判斷錯誤,也因為區塊鏈的機制,錯誤的資訊所促成的交易是沒有辦法取消的,這也是之前區塊鏈難以在真實世界應用的原因。
而預言機作為為連接區塊鏈和現實世界的橋樑,預言機的角色將會至關重要。隨著區塊鏈行業的不斷發展,更多的資產和應用場景將實現上鏈,從而進一步拓展預言機的應用領域,涵蓋金融、保險、供應鏈、物聯網等多個領域。尤其在跨鏈互通成為區塊鏈行業的重要趨勢之際,預言機有望實現在不同區塊鏈網路之間的跨鏈數據傳輸和驗證,打破孤立性,提升整個區塊鏈生態系統的流動性和效率。期待隨著技術的不斷演進,預言機將為區塊鏈行業的全面發展注入更多活力。
首圖來源:https://support.token.im/hc/article_attachments/900003847426/900383.jpg