分布式價格預言機: 設計、實現與挑戰

robot
摘要生成中

分布式價格預言機系統的設計與實現

爲了解決單點故障問題,一些區塊鏈項目採用了分布式價格預言機的設計。以提供比特幣美元價格的服務爲例,某系統聚合了31個獨立的價格預言機來爲用戶提供服務。

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

這種聚合器的合約源碼通常可以在區塊鏈瀏覽器上查看。通過調用合約中的特定方法,可以查看該聚合器包含的所有鏈下預言機。每個鏈下預言機都可以通過調用特定方法來提供價格數據,以響應聚合器中用戶的請求。這些鏈下預言機通常是一些外部擁有帳戶(EOA),它們不僅可以爲一種加密貨幣價格聚合器提供數據,還可能爲多種加密貨幣價格聚合器服務。

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

鏈上合約在處理預言機提供的數據時,會經過一系列嚴格的驗證步驟:

  1. 首先讀取當前合約狀態,並進行一系列的檢查。
  2. 通過檢查後,進行必要的準備工作。
  3. 使用加密算法對每一個籤名數據進行驗籤,確保數據的真實性和完整性。同時檢查籤名者的角色是否合法,並防止籤名重復使用。
  4. 最後,檢查觀察值的排序,選取中位數作爲最終結果,並確保該結果不超過預設的閾值。

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

一些系統還會引入額外的驗證機制,比如將結果與其他價格源進行比較,確保偏差在可接受範圍內。

爲了進一步簡化使用流程,減少治理成本,一些項目引入了"Feed Registry"的概念。這可以理解爲多個價格預言機的聚合器,用戶可以直接通過它讀取各種加密貨幣的價格數據,無需單獨設置每個價格預言機。

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

在實際運作中,價格數據通常經過多層聚合:數據源聚合、節點運營商聚合和預言機網路聚合。原始數據主要來自各大交易平台,然後由專業的數據聚合服務商進行初步處理。節點運營商會從多個獨立的數據聚合服務商獲取數據並進行二次聚合。最後,整個預言機網路會對所有節點的數據進行最終聚合,通常採用中位數方法。

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

值得注意的是,並非每次數據更新都會立即反映到區塊鏈上。只有當價格變化超過特定閾值或達到預設的時間間隔時,才會觸發鏈上更新。這種機制雖然保證了數據的可靠性,但也導致價格更新速度相對較慢,可能從幾分鍾到24小時不等。因此,這類預言機系統主要適用於對價格更新速度要求不高的應用場景。

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

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
NFT悔改者vip
· 07-16 08:55
更新慢还不出问题?
回復0
幻想破灭预言家vip
· 07-14 01:51
哪来那么多预言机 有我就够了
回復0
数据酸菜鱼vip
· 07-14 01:48
验证没那么容易搞哦 就看谁先掉链子
回復0
链游韭菜收割机vip
· 07-14 01:46
还不如双签更新快,呵呵
回復0
币本位思维vip
· 07-14 01:33
数据准确度是重点
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)