跳到正文

區塊鏈預言機

區塊鏈預言機向合約提供經驗證的聲明,涉及確定性鏈上狀態無法自行推導的資料;安全使用取決於來源、報告、傳輸、驗證及使用方的完整路徑。

更新於

僅供教育參考,不構成投資建議;投資可能產生損失。

直接答案

區塊鏈預言機是一種系統,向合約提供經驗證的聲明,所涉及的資料無法由區塊鏈的確定性狀態轉換自行推導。價格饋送可以報告市場參考價;拉取式預言機可以驗證使用者轉送的簽署更新;樂觀式預言機可以先接受附保證金的斷言,除非有人提出爭議。可驗證隨機數和跨鏈訊息也屬外部輸入系統,但其聲明及安全模型不能與價格饋送互換。

將數值寫入鏈上,只能證明某項交易、簽章、法定人數、證明或爭議結果符合指定規則,無法以密碼學證明外部市場、天氣事件或人為判斷在客觀上為真。完整信任路徑包括被觀測現象、資料來源和交易場所、發布者、聚合、報告驗證、傳輸、鏈上代理或驗證器、使用方檢核,以及最終移轉價值的業務動作。

每一層的去中心化程度都必須分別評估。多個簽署者可能共用同一個 API、交易所、雲端服務商、營運方或管理員。具時效且附簽章的中位數仍可能使用錯誤交易對或小數位數、反映缺乏流動性的市場,或不適合使用方的交易規模。使用方仍須負責身分、單位、狀態、時間戳、L2 可用性、曝險限額、備援機制及復原。

運作機制

  1. 鎖定鏈及區塊、使用方合約與動作、正確的饋送或代理地址和饋送 ID、實作版本、基準/報價交易對、小數位數或指數、市場時段及風險價值。
  2. 追蹤完整信任路徑:從現象及交易場所,經發布者、來源聚合、簽署者或法定人數聚合、傳輸、鏈上驗證、代理控制,直至使用方邏輯;分別檢驗來源、營運方、基礎設施及管理員的獨立性。
  3. 解碼已部署介面和報告。檢核饋送身分、簽章或證明及其域、序列或輪次、簽署答案、狀態或信賴區間、來源時間戳、鏈上更新時間、防重放行為、回復行為和升級狀態。
  4. 只做一次單位標準化,並明確檢查範圍、正負號及時間戳。區分來源觀測或發布時間、報告建立時間、納入來源鏈時間、中繼最終確定時間、目標鏈更新時間及使用方區塊時間。
  5. 套用符合動作的 maxAge、偏離、信賴區間及跨來源規則。在支援的 L2 部署上,另行檢查排序器狀態及復原寬限期;對複合值,以最早的必要相依項目限制時效。
  6. 將參考值與可成交市場深度比較,估算操縱或收買成本相對於使用方借款、鑄造、清算、交易或結算曝險的大小。AMM 現貨和 TWAP 建構必須依特定池及版本處理。
  7. 依動作定義正常、降級、暫停及復原狀態;盡量保留安全的償還債務或追加擔保品路徑,監控來源與設定,演練報告缺失、過期、錯誤及遭操縱的情境,並於復原後核對每一項受影響餘額和動作。

推送和拉取描述的是交付模式,不是一套通用的付費或信任模型。發布者可以建立簽署報告,再由任意使用者轉送並支付更新費。心跳和偏離設定可以觸發發布,但不是交付保證或使用方的時效上限。備援值或最後有效值是一種受控降級模式,其方向、單位、時效、獨立性及允許動作都必須重新驗證。

計算範例

  • 借貸門檻。 某部位有 10 ETH 擔保品,預言機價格為 3,000 USD/ETH,債務為 18,000 USD,清算門檻為 75%。擔保品價值為 30,000 USD,LTV 為 60%,且 healthFactor = 10 * 3,000 * 0.75 / 18,000 = 1.25。觸發價格為 18,000 / (10 * 0.75) = 2,400 USD/ETH。價格為 2,300 USD/ETH 時,健康因子為 0.9583333333,債務/擔保品比率為 78.2608695652%:符合清算條件,但在計入清算獎勵、費用及成交影響前,名目擔保品價值 23,000 USD 仍高於債務。
  • 單位失效。 原始答案 250,000,000,000 帶有 8 decimals,代表 2,500 USD。若錯誤除以 10^18,結果會是 0.00000025 USD,將價格低估 10^10 倍。有效簽章和近期時間戳無法修正使用方的單位錯誤。
  • 聚合選擇。 觀測值 [99, 100, 100, 101, 160] 的中位數為 100,算術平均值為 112,相對中位數相差 12%。在這組教學資料中,中位數可抵禦一個高值離群點;但若五個報告者都依賴同一個遭入侵的 API 並報告 130,中位數同樣是 130
  • 依動作判斷時效。consumerClock = 1,800,000,000 時,報告的 sourceTimestamp = 1,799,998,200,因此 age = 1,800 seconds。新增借款採用 maxAge = 900 seconds,報告超限 900 seconds,應予拒絕;償還路徑採用 maxAge = 3,600 seconds,則可接受,尚餘 1,800 seconds。同一報告可能不適合增加曝險,卻適合降低曝險。

風險

  • 鏈、部署、實作或網路環境錯誤。
  • 代理、聚合器、饋送 ID、資產或合約版本錯誤。
  • 基準/報價方向顛倒或計價單位不一致。
  • 小數位數、指數、定點數、正負號、捨入或單位不符。
  • 接受零值、負值、超出定義域、溢位或截斷的答案。
  • 接受缺失、為零、來自未來、沿用舊值或身分錯誤的時間戳。
  • 使用方的時效上限對資產及動作而言過於寬鬆。
  • 使用方的時效上限過嚴,造成阻斷服務或阻礙降低風險。
  • 將心跳或偏離設定視為服務等級保證。
  • 忽略休市、公司行動、脫鉤、交易場所中斷或沿用資料的語意。
  • 多個發布者共用同一 API、交易所、雲端服務、營運方、金鑰路徑或方法。
  • 簽署者門檻、法定人數、金鑰保管、報告驗證、域或防重放控制失效。
  • 聚合、權重、離群值、信賴區間或來源篩選規則不合適。
  • 來源流動性薄弱、存在洗量、分散、過期或在受保護規模下可操縱。
  • 現貨或短期間 TWAP 操縱、多區塊控制、排序、審查或 MEV 改變輸入。
  • 發布者、中繼、燃料費、壅塞、重組或鏈中斷阻止及時交付。
  • 遺漏 L2 排序器狀態、復原寬限期、跨鏈中繼時鐘或最終確定相依項目。
  • 代理、管理員、簽署者集合、設定、遷移、暫停或饋送停止維護的變化未被發現。
  • 備援來源過期、具相關性、縮放不同、循環相依,或透過不安全的失敗放行或一律失敗關閉路徑啟用。
  • 使用方曝險高於操縱或收買成本,同時監控、限額、暫停、復原、清算及壞帳核對失效。

常見迷思

  • 「預言機會預測未來。」 多數預言機驗證的是某個明確時間和對象的觀測值、報告、證明或已解決斷言。
  • 「有簽章或已上鏈的資料必然客觀真實。」 驗證和共識證明規則獲得遵守,而非外部事實在經濟上正確。
  • 「節點越多,去中心化程度自然越高。」 來源、營運方、基礎設施、金鑰和治理仍可能高度相關。
  • 「最新且具時效的數值就是公允可成交價。」 時效不能證明方向、單位、信賴區間、流動性或可成交深度。
  • 「信譽良好的供應商消除了使用方整合風險。」 應用仍須負責部署身分、解碼、時效、L2 閘門、曝險、失敗模式及復原。

相關主題

資料來源

導覽

搜尋知識庫...