### 分布式價格預言機機制爲了避免單點故障和提高可靠性,某知名預言機平台採用了分布式價格預言機的設計。以BTC美元價格服務爲例,該平台聚合了31個獨立的價格預言機來爲用戶提供更穩定的服務。這種聚合器的合約設計可以在以太坊區塊瀏覽器上查看。通過調用合約中的特定方法,我們可以獲取該聚合器包含的所有鏈下預言機信息。這些鏈下預言機通常是一些外部擁有帳戶(EOA),它們不僅爲BTC/USD聚合器提供數據,也可能同時爲其他幣對如ETH/USD提供價格信息。鏈上合約在處理預言機數據時會經過一系列嚴格的驗證步驟:1. 首先讀取當前合約狀態並進行初步檢查。2. 通過檢查後,合約會進行必要的準備工作。3. 接着使用密碼學方法對每個籤名數據進行驗證,確保數據完整性和來源可靠性。同時還會檢查籤名者的角色權限和避免重復籤名。4. 最後,合約會對觀察值進行排序和篩選,選取中位數作爲最終價格,並確保該價格不超出預設閾值。此外,某些應用場景下還會引入額外的驗證機制。例如,某借貸平台使用的價格預言機會將獲得的價格與其他來源(如去中心化交易所)的價格進行比對,確保價格偏差在可接受範圍內。### 全局預言機註冊表爲了簡化多個代幣價格的管理和降低治理成本,預言機平台引入了全局預言機註冊表(Feed Registry)的概念。這是一個聚合了多個價格源的系統,允許用戶直接通過註冊表讀取各種代幣的價格數據,無需爲每個代幣單獨設置價格源。### 多層級數據聚合機制該預言機平台的價格數據經過三個層級的聚合處理:1. 數據源聚合:從各大中心化和去中心化交易平台收集原始價格數據,並由專業數據服務商進行初步整合。2. 節點運營商聚合:每個預言機節點從多個獨立數據服務商獲取價格,並通過中值計算等方法剔除異常值。3. 預言機網路聚合:整個網路層面再次聚合多個節點的數據,通常採用設定閾值後取中值的方式。最終,只有當價格變化達到特定閾值或經過一定時間間隔時,新的價格才會更新到鏈上。這種機制雖然保證了數據的可靠性,但也導致價格更新相對緩慢,可能需要幾分鍾到幾小時不等。因此,這類預言機服務主要適用於對價格實時性要求不高的應用場景。
分布式價格預言機如何保障數據可靠性
分布式價格預言機機制
爲了避免單點故障和提高可靠性,某知名預言機平台採用了分布式價格預言機的設計。以BTC美元價格服務爲例,該平台聚合了31個獨立的價格預言機來爲用戶提供更穩定的服務。
這種聚合器的合約設計可以在以太坊區塊瀏覽器上查看。通過調用合約中的特定方法,我們可以獲取該聚合器包含的所有鏈下預言機信息。這些鏈下預言機通常是一些外部擁有帳戶(EOA),它們不僅爲BTC/USD聚合器提供數據,也可能同時爲其他幣對如ETH/USD提供價格信息。
鏈上合約在處理預言機數據時會經過一系列嚴格的驗證步驟:
首先讀取當前合約狀態並進行初步檢查。
通過檢查後,合約會進行必要的準備工作。
接着使用密碼學方法對每個籤名數據進行驗證,確保數據完整性和來源可靠性。同時還會檢查籤名者的角色權限和避免重復籤名。
最後,合約會對觀察值進行排序和篩選,選取中位數作爲最終價格,並確保該價格不超出預設閾值。
此外,某些應用場景下還會引入額外的驗證機制。例如,某借貸平台使用的價格預言機會將獲得的價格與其他來源(如去中心化交易所)的價格進行比對,確保價格偏差在可接受範圍內。
全局預言機註冊表
爲了簡化多個代幣價格的管理和降低治理成本,預言機平台引入了全局預言機註冊表(Feed Registry)的概念。這是一個聚合了多個價格源的系統,允許用戶直接通過註冊表讀取各種代幣的價格數據,無需爲每個代幣單獨設置價格源。
多層級數據聚合機制
該預言機平台的價格數據經過三個層級的聚合處理:
數據源聚合:從各大中心化和去中心化交易平台收集原始價格數據,並由專業數據服務商進行初步整合。
節點運營商聚合:每個預言機節點從多個獨立數據服務商獲取價格,並通過中值計算等方法剔除異常值。
預言機網路聚合:整個網路層面再次聚合多個節點的數據,通常採用設定閾值後取中值的方式。
最終,只有當價格變化達到特定閾值或經過一定時間間隔時,新的價格才會更新到鏈上。這種機制雖然保證了數據的可靠性,但也導致價格更新相對緩慢,可能需要幾分鍾到幾小時不等。因此,這類預言機服務主要適用於對價格實時性要求不高的應用場景。