解析分布式預言機:多重聚合如何保障鏈上價格數據準確性

robot
摘要生成中

分布式價格預言機的工作機制

爲了避免單點故障和提高可靠性,現代價格預言機系統採用分布式設計。以某知名預言機服務爲例,其BTC/USD價格數據聚合了31個獨立預言機節點的輸入。

這種聚合器的智能合約可在以太坊區塊鏈瀏覽器上公開查看。通過調用合約中的transmitters方法,用戶可以獲取該聚合器包含的所有鏈下預言機節點列表。

每個鏈下預言機節點都可以通過調用transmit方法向聚合器提供價格數據,以響應用戶的請求。這些節點通常是外部擁有的帳戶(EOA),可能同時爲多個不同的價格對(如BTC/USD、ETH/USD等)提供數據。

鏈上聚合器合約在接收到預言機節點的數據時,會執行一系列驗證步驟:

  1. 首先讀取當前合約狀態並進行基本檢查。

  2. 然後進行必要的準備工作。

  3. 使用ecrecover()對每個籤名數據進行驗證,確保hash值與_report一致。同時檢查籤名者的角色是否爲Signer,並防止重復籤名。

  4. 最後,驗證觀察值是否按順序排列,選取中位數作爲最終結果,並確保結果在預設閾值範圍內。

所有檢查通過後,合約會在s_transmissions中記錄本次預言機的answer。此外,還會對answer進行額外的驗證,例如與其他價格源(如某DEX的價格)進行對比,確保偏差在可接受範圍內。

預言機詳解系列之 Chainlink(下)

Feed Registry簡化接入流程

爲了進一步簡化接入流程,降低治理成本,某些預言機服務提供了Feed Registry。這可以理解爲PriceFeeds的聚合器,已經整合了多個不同資產的價格源。使用Feed Registry,開發者無需爲每個資產單獨設置priceFeed,可以直接通過統一接口讀取各種資產的價格數據。

預言機詳解系列之 Chainlink(下)

多層級數據聚合機制

高質量的價格預言機服務通常採用多層級的數據聚合機制,主要包括三個層面:數據源聚合、節點運營商聚合和預言機網路聚合。

  1. 數據源聚合:原始價格數據來自多家中心化和去中心化交易平台。專業的數據聚合服務商會收集這些原始數據,並根據交易量、流動性等因素進行加權計算,形成初步聚合結果。

  2. 節點運營商聚合:每個預言機節點運營商會從多個獨立的數據聚合服務商獲取價格數據,取其中值並剔除異常值,形成該節點的報價。

  3. 預言機網路聚合:整個網路層面會對所有節點的數據再次聚合,常用方法是在收到預設數量的節點響應後取中值。

最終價格更新到鏈上時還需滿足偏差閾值或心跳閾值等條件。這種多層級聚合機制大大提高了數據的準確性和可靠性。

然而,由於存在偏差閾值機制,某些預言機的價格更新可能相對緩慢,從幾分鍾到數小時不等。這使其更適合對價格更新不太敏感的應用場景,而可能不適用於所有類型的去中心化應用。開發者在選擇預言機服務時需要權衡其優勢和局限性,根據具體應用需求作出選擇。

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

預言機詳解系列之 Chainlink(下)

LINK-6.14%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
空投爷爷vip
· 15小時前
谁是真正的价格制定者?
回復0
GateUser-a606bf0cvip
· 15小時前
靠谱预言机数据才是核心
回復0
元宇宙流浪汉vip
· 15小時前
早就玩上预言机啦 你们才看
回復0
Fork_Tonguevip
· 15小時前
不是吧 数据还得做聚合?
回復0
SerNgmivip
· 15小時前
现在就讲那么复杂咩
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)