分布式預言機如何確保價格數據可靠性

robot
摘要生成中

分布式價格預言機的工作原理

爲了避免單點故障,某知名預言機項目採用了分布式設計來爲用戶提供服務。以提供BTC美元價格爲例,該服務聚合了31個獨立的價格預言機。

這種聚合器的具體實現可以通過查看其智能合約源碼。通過調用合約中的特定方法,可以獲取該聚合器包含的所有鏈下預言機信息。

每個鏈下預言機可以通過調用指定方法來提供價格數據,以響應聚合器中用戶的請求。這些預言機通常是一些外部擁有帳戶(EOA),不僅可以爲BTC/USD聚合器提供數據,還可能同時爲其他價格對(如ETH/USD)提供服務。

鏈上合約的處理流程大致如下:

  1. 首先讀取當前合約狀態,並進行一系列合規性檢查。

  2. 檢查通過後,進行必要的準備工作。

  3. 然後對每個籤名數據進行驗證,確保籤名者具有適當權限且籤名未重復使用。

  4. 最後,檢查觀察值的排序,選取中位數作爲結果,並確保其不超出預設閾值。所有驗證通過後,將結果記錄到合約存儲中。

此外,還會對結果進行進一步的校驗。例如,某些應用可能會將結果與其他來源(如去中心化交易所)的價格進行對比,以確保偏差在可接受範圍內。

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

Feed Registry的優勢

爲了進一步簡化使用流程,某些預言機項目還提供了Feed Registry功能。這可以看作是多個價格饋送的聚合器,用戶無需逐一設置每個代幣的價格來源,而是可以直接通過Feed Registry讀取所需的價格數據。

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

多層次的數據聚合機制

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

  1. 數據源聚合:從各大中心化和去中心化交易平台收集原始價格數據,並由專業數據服務商進行初步處理。

  2. 節點運營商聚合:每個獨立的節點運營商從多個數據服務商獲取價格,並計算中值以剔除異常值。

  3. 預言機網路聚合:整個網路層面的聚合,通常採用達到預設節點數量後取中值的方式。

值得注意的是,並非每次數據更新都會立即同步到鏈上。通常會設置偏差閾值和心跳閾值兩個觸發條件,只有滿足其中之一時才會更新鏈上數據。這種機制在保證數據可靠性的同時,也可能導致價格更新相對緩慢,因此主要適用於對價格實時性要求不高的應用場景。

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

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

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

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

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

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

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

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

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

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

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 6
  • 分享
留言
0/400
MetaDreamervip
· 1小時前
预言机这玩意靠谱么
回復0
ResearchChadButBrokevip
· 14小時前
预言机真香 搞起来
回復0
熊市避雷针vip
· 14小時前
这咋还不如交给老手操盘!
回復0
GateUser-a180694bvip
· 14小時前
技术流的事咱也听不懂
回復0
快照日长工vip
· 14小時前
聚合数据真香啊!
回復0
光速退群大师vip
· 14小時前
又是预言机啊 写的挺花里胡哨
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)