智能合約功能強大,但它們也是盲目的。它們無法看到價格、讀取天氣數據,或驗證付款是否已到達銀行帳戶。預言機是將區塊鏈與外部世界連接起來的基礎設施,而超過 2000 億美元的 DeFi 資金安全取決於它們的正常運作。
摘要
- 區塊鏈預言機是將外部數據傳遞給智能合約的服務。沒有它們,智能合約只能讀取已存儲在區塊鏈上的信息,這排除了價格、天氣、體育賽果以及幾乎所有其他使合約有用的現實世界數據點。
- 預言機問題是區塊鏈設計中的一個基本挑戰。區塊鏈通過確定性計算實現去信任化,但連接到外部數據源重新引入了信任點。依賴單一預言機的智能合約,其安全性僅等同於該預言機,無論區塊鏈本身多麼去中心化。
- Chainlink 主導預言機市場,在去中心化金融協議中保護的總價值約佔 75%。其去中心化預言機網絡從多個獨立節點運營商聚合數據,以減少單點故障。渣打銀行於 2026 年 8 月啟動對 Chainlink 的覆蓋,目標價為 2030 年達到 200 美元,理由是代幣化和 DeFi 增長。
- 預言機操縱是 DeFi 歷史上一些最大漏洞攻擊的原因。閃電貸攻擊經常針對依賴單一鏈上價格源而非去中心化預言機網絡的協議,使攻擊者能夠在單筆交易中操縱價格並掏空借貸池。
- 預言機領域正在擴展到價格饋送之外。跨鏈互操作協議、用於遊戲和 NFT 的可驗證隨機性、穩定幣的儲備證明以及現實世界資產代幣化都依賴於預言機基礎設施。Chainlink CCIP 已被 Aave 和 BitGo 用於 73 億美元的 WBTC 轉移,這表明預言機正在成為區塊鏈之間的連接組織。
大多數關於區塊鏈預言機的解釋從定義開始,然後就此打住。他們告訴你預言機是區塊鏈與外部世界之間的橋樑,這雖然正確但不夠充分。這就像說電網是發電機和電燈開關之間的橋樑。技術上正確,但對於理解電網為何故障、故障時誰來承擔,以及為何電網的設計比開關的設計更重要,實際上毫無用處。
更有用的起點是預言機存在所要解決的限制。智能合約是確定性的。網絡上的每個節點都必須執行相同的代碼並得出相同的結果。如果智能合約直接查詢股票價格 API,不同節點會在不同時間收到不同的響應,共識就會破裂。區塊鏈會分叉,不是因為治理爭議,而是因為價格饋送中的四捨五入誤差。
預言機的存在是因為區塊鏈選擇了確定性而非連接性,而這個選擇是不可協商的。每個預言機解決方案都是試圖在不破壞使區塊鏈值得信賴的屬性的情況下,將外部數據帶上鏈。
預言機實際如何運作
標準預言機架構有三層:數據來源、聚合和鏈上交付。
在來源層,預言機節點連接到外部數據提供者。對於價格饋送,這可能意味著同時從 Coinbase、Kraken、Binance 和其他幾個交易所提取 ETH/USD 價格。對於天氣預言機,這可能意味著連接到多個氣象 API。原則相同:不信任任何單一來源。
在聚合層,預言機網絡將這些數據點組合成單一值。最常見的方法是加權中位數,它丟棄異常值並產生任何單一數據提供者都無法操縱的結果。如果七個節點報告價格在 2,000 美元到 2,005 美元之間,而一個節點報告 50,000 美元,中位數會忽略異常值。
在交付層,聚合值被寫入鏈上的智能合約。這是外部數據成為區塊鏈數據的點,不可變且可供任何引用它的合約使用。鏈上合約存儲最新值,任何 DeFi 協議都可以讀取它。
這種三層模型在理論上聽起來很乾淨。在實踐中,每一層都引入了攻擊面、延遲和成本。理解預言機在哪裡失敗需要分別檢查每一層。
預言機問題解析
預言機問題並非漏洞,而是區塊鏈設計中無法完全解決、只能管理的根本性矛盾。
區塊鏈的安全性源於去中心化,沒有任何單一實體控制帳本。但如果該區塊鏈上的每個智能合約都從由單一公司控制的單一預言機讀取價格數據,那麼整個系統的安全性就等同於那家公司的安全性。區塊鏈是去中心化的,但它所依賴的數據卻不是。
這就是為什麼預言機問題有時被描述為區塊鏈安全的最後一哩路。你可以建立一個經過完美審計的智能合約,部署在一個完全去中心化的網路上,但如果提供數據的預言機被攻破,你仍然可能失去一切。
解決方案分為兩類。中心化預言機犧牲去中心化以換取速度和簡單性。單一實體運行預言機,用戶信任該實體提供準確數據。這適用於低風險應用,但不適合持有數十億美元的 DeFi 協議。
去中心化預言機網路透過在多個獨立節點之間分配數據收集和聚合來解決信任問題。Chainlink 開創了這種模式,要求可配置的節點法定人數在數據發布到鏈上之前達成一致。經濟激勵結構要求節點營運商質押抵押品,如果提供不準確數據,抵押品可能會被罰沒,從而將他們的財務利益與誠實報告保持一致。
這兩種方法都無法完全消除預言機問題。去中心化預言機網路降低了被操縱的可能性,但增加了成本和延遲。這種取捨是設計決策,而非設計缺陷。
為什麼 DeFi 離不開預言機
這種依賴是算術性的,而非哲學性的。以 Aave 這樣的借貸協議為例。用戶存入 1 個 ETH 作為抵押品,並借入 1,500 美元的穩定幣。協議需要持續知道 ETH 的價格,以確定抵押品是否覆蓋貸款。
如果 ETH 從 2,000 美元跌至 1,400 美元,貸款將抵押不足,必須被清算。如果沒有預言機提供當前價格,協議就無法觸發清算。穩定幣借款人將累積壞帳,協議將資不抵債。
這不是假設性情境。每個借貸協議、每個永續合約交易所、每個期權平台,以及每個區塊鏈上的每種合成資產,都依賴預言機提供的價格來決定償付能力。在所有鏈上,依賴預言機價格饋送的 DeFi 協議中鎖定的總價值超過 2,000 億美元。
同樣的依賴也延伸到價格饋送之外。預測市場需要預言機來報告事件結果。保險協議需要天氣數據。現實世界資產平台需要底層資產存在且估值正確的證明。在每種情況下,預言機都是單一組件,其故障將使整個應用程式失去意義。
預言機操縱:攻擊如何發生
預言機攻擊遵循可預測的模式。攻擊者識別出一個 DeFi 協議,其價格來源於單一的鏈上來源,通常是去中心化交易所的流動性池,而非去中心化預言機網路。
攻擊在單筆交易中分三步進行。首先,攻擊者進行閃電貸,在單筆交易期間無抵押借入數百萬美元。其次,攻擊者利用借來的資金操縱目標協議讀取價格的 DEX 上的價格,執行一筆巨額交換,使報告價格移動 50% 或更多。第三,攻擊者以被操縱的價格與目標協議互動,利用人為膨脹的抵押品借款,或以人為價格清算頭寸。
整個過程是原子性的。如果任何一步失敗,交易就會還原,攻擊者除了 gas 費外不會損失任何東西。如果成功,攻擊者償還閃電貸並保留利潤。
這不是一個理論上的攻擊向量。自2020年以來,閃電貸預言機操縱已從DeFi協議中竊取了數億美元。每個案例的共同點是協議依賴於可操縱的鏈上價格來源,而不是外部預言機網絡。使用Chainlink或同等去中心化預言機網絡的協議不易受到這種特定攻擊的影響,因為價格饋送無法在單筆交易中被操縱。
這個教訓是反直覺的。最去中心化的價格來源——鏈上DEX流動性池——通常對於預言機目的而言是最不安全的。對於DeFi而言,最安全的價格來源是聚合中心化交易所價格的鏈下預言機網絡,正是因為這些價格更難被原子性地操縱。
這些攻擊的規模隨著DeFi本身的發展而增長。2022年10月,Solana上的Mango Markets因預言機操縱漏洞損失了1.14億美元。攻擊者使用相對較少的資本,在Mango用作價格來源的流動性較低的DEX池中移動了MNGO代幣的價格,然後利用膨脹的抵押品價值在平台上的所有可用資產中借款。整個操作花費不到20分鐘。
Euler Finance在2023年3月因類似的向量損失了1.97億美元。BonqDAO、Harvest Finance以及數十個較小的協議都遭受了同樣的模式。在幾乎每個案例中,事後分析都指出了相同的根本原因:協議使用了鏈上價格來源,該來源可能被單筆大額交易移動,而不是使用聚合多個獨立外部來源價格的預言機網絡。
價格饋送之外的預言機類型
行業對價格饋送的關注掩蓋了預言機在實踐中應用的廣度。
可驗證的隨機性。鏈上遊戲、NFT鑄造和彩票合約需要可證明公平的隨機數。區塊鏈本質上是確定性的,這意味著它們無法原生生成隨機性。預言機網絡通過使用可驗證隨機函數在鏈下生成隨機數,然後將結果連同密碼學證明一起發布,以證明該數字未被篡改,從而解決了這個問題。
跨鏈消息傳遞。當用戶將資產從以太坊橋接到Arbitrum時,預言機網絡會驗證源鏈上的存款交易在目標鏈上釋放資產之前已完成。Chainlink跨鏈互操作協議(CCIP)已成為像Aave這樣的協議處理跨鏈操作的默認基礎設施,處理了數十億美元的轉賬。
儲備證明。穩定幣和包裝代幣需要證明其儲備與流通供應量相匹配。監控託管人錢包並在鏈上發布儲備餘額的預言機提供了這種保證。如果沒有儲備證明預言機,用戶就必須信任發行方自我報告的審計。
計算預言機。某些操作在鏈上執行過於昂貴。預言機網絡可以在鏈下執行複雜計算,並僅在鏈上傳遞結果,同時附上計算正確執行的證明。這種模式對於需要處理大型數據集或在區塊鏈上結算結果的應用越來越重要。
預言機類型的激增反映了區塊鏈與現實世界互動方式的更廣泛轉變。早期的區塊鏈應用是自包含的。比特幣在其自己的賬本上轉移價值。以太坊使用存儲在其自身狀態中的數據執行邏輯。兩者都不需要外部信息。只有當構建者開始創建引用現實世界條件的應用時,才出現了對預言機的需求:資產價格、事件結果、身份聲明、物理測量。每一類新的現實世界引用都會產生一類新的預言機需求,而每一類新的預言機需求又為預言機問題的表現創造了新的表面。
Chainlink主導地位的問題
Chainlink在預言機市場中的地位引發了一個行業不願深入審視的問題。如果去中心化金融的全部意義在於消除單點依賴,那麼大約75%的DeFi總鎖倉價值依賴於一個預言機提供商,這意味著什麼?
辯護理由是Chainlink本身是去中心化的。其價格饋送由數十個獨立的節點運營商生成,沒有單一運營商可以操縱饋送。該網絡已處理了數萬億美元的交易價值,而其核心價格饋送基礎設施沒有發生重大漏洞。
令人擔憂的是,Chainlink 內部的去中心化並未解決預言機層集中在單一協議的問題。如果在 Chainlink EntryPoint 合約中發現漏洞,或者監管行動針對 Chainlink Labs,影響將幾乎同時波及所有主要 DeFi 協議。
競爭對手確實存在。由 Jump Crypto 支持的 Pyth Network 專注於來自機構做市商的高頻價格饋送。API3 採取第一方預言機方法,讓數據提供者運行自己的預言機節點,而不是依賴第三方中介。Chronicle 最初為 MakerDAO 構建,為最大的去中心化穩定幣提供預言機基礎設施。
市場並未像多鏈部署那樣收斂於多預言機標準。大多數協議使用單一預言機提供商。這種集中化是系統性風險,還是網絡效應和安全記錄的自然結果,這是一個開放性辯論,對 DeFi 的韌性具有重大影響。
本文不涵蓋的內容
本文不詳細涵蓋預言機網絡的代幣經濟學。LINK、PYTH 和 API3 代幣各自具有不同的質押、獎勵和治理機制,這些機制影響預言機的安全性和激勵一致性。這些機制值得單獨分析。
本文不涉及新興的 AI 預言機類別,即使用機器學習模型生成預測而非轉發觀察數據的系統。AI 預言機引入了根本不同的信任模型,且處於過早階段,無法進行明確評估。
本文不審查任何預言機網絡鏈上組件的具體智能合約架構。預言機的安全性部分取決於其鏈下基礎設施,部分取決於其鏈上合約的正確性,而審計這些合約需要超出本文範圍的技術深度。
信任預言機前的實用檢查
驗證數據源數量。聚合來自 21 個獨立來源的價格饋送比聚合三個來源的更為穩健。大多數預言機儀表板會發布此信息。如果您使用的協議未披露其預言機數據源數量,這是一個信號。
檢查更新頻率。某些預言機饋送在每個區塊更新。其他僅在價格偏離閾值(通常為 0.5% 至 1%)時更新。使用每小時更新饋送的借貸協議在更新之間暴露於快速價格波動。對於清算時機至關重要的任何協議,偏離閾值和心跳間隔都很重要。
確認預言機是外部的,而非鏈上的。如果 DeFi 協議從其自身流動性池或單一 DEX 獲取價格,則無論底層區塊鏈多麼去中心化,都容易受到閃電貸操縱。聚合鏈下數據的外部預言機網絡更能抵抗此攻擊向量。
尋找後備機制。設計良好的協議會實施預言機後備。如果主要預言機饋送停止更新,協議應具有次要饋送或斷路器,以暫停操作而不是基於過時數據運行。沒有後備機制的協議距離基於錯誤價格的級聯清算僅一步之遙。
閱讀預言機事件歷史。 每個主要的預言機網路都經歷過停機、延遲更新或邊緣案例失敗。一個從未經歷過事件的網路,要麼太新而未被測試,要麼太小而未被攻擊。重要的是事件如何被處理,以及隨後進行了哪些架構變更。
什麼是區塊鏈預言機?
區塊鏈預言機是一種將智慧合約連接到區塊鏈外部數據和系統的服務。智慧合約無法自行訪問外部資訊,因為區塊鏈被設計為確定性的,這意味著每個節點必須從相同的輸入產生相同的結果。預言機通過從外部世界獲取數據、聚合數據以降低操縱風險,並將其傳遞到鏈上,讓智慧合約可以讀取並根據其執行操作來解決這個問題。
為什麼智慧合約需要預言機?
智慧合約只能基於存儲在區塊鏈上的數據執行邏輯。沒有預言機,借貸協議將無法知道抵押品的當前價格,預測市場無法驗證事件結果,保險合約也無法確認航班是否延誤。預言機提供外部數據,使智慧合約對現實世界應用有用,而不僅僅是鏈上操作。
什麼是預言機問題?
預言機問題是區塊鏈去中心化與外部數據需求之間的基本矛盾。依賴中心化預言機的去中心化區塊鏈,實際上將其安全性降低到該預言機的安全性。這個問題無法完全解決,只能通過去中心化預言機網路來緩解,這些網路將數據收集分佈在多個獨立運營商之間,使操縱更加困難和昂貴。
預言機攻擊在 DeFi 中如何運作?
大多數預言機攻擊利用使用鏈上價格來源(例如單一的 DEX 流動性池)的協議,而不是外部預言機網路。攻擊者進行閃電貸,使用借來的資金在單筆交易中操縱鏈上價格來源,然後以被操縱的價格與易受攻擊的協議互動。使用具有鏈下數據聚合的去中心化預言機網路的協議,對這種特定攻擊具有抵抗力,因為價格饋送無法在單筆交易中被操縱。
什麼是 Chainlink,為什麼它佔主導地位?
Chainlink 是一個去中心化預言機網路,它從多個獨立節點運營商聚合數據,並將其傳遞給超過 30 個區塊鏈上的智慧合約。它主導了預言機市場,保護了約 75% 的 DeFi 總價值,累計處理了超過 27 萬億美元的交易價值。其主導地位源於先發優勢、強大的安全記錄以及使新協議更容易整合的網路效應。
中心化預言機和去中心化預言機之間有什麼區別?
中心化預言機依賴單一實體來獲取和傳遞數據。它更快、更便宜,但引入了單點故障。去中心化預言機將數據收集和聚合分佈在多個獨立運營商之間,需要達成共識才能發布數據點。去中心化預言機更能抵抗操縱和審查,但運行速度較慢且成本更高。
預言機可以提供哪些類型的數據?
預言機幾乎可以提供任何類型的外部數據。最常見的用途是 DeFi 協議的價格饋送,但預言機也提供保險合約的天氣數據、預測市場的體育結果、遊戲的可驗證隨機數、穩定幣的儲備證明、橋樑的跨鏈狀態驗證,以及需要鏈下處理的應用程序的計算結果。
預言機是安全風險嗎?
預言機既是必要的基礎設施,也是潛在的攻擊面。被入侵的預言機可以向智慧合約提供錯誤數據,導致錯誤的清算、錯誤定價的交易或借貸池被掏空。風險是通過去中心化預言機網路、加密驗證、經濟質押激勵和協議級別的後備機制來管理,而不是消除。在評估 DeFi 協議安全性時,預言機架構與智慧合約審計同樣重要。這是教育性分析,不是投資建議。












