分布式预言机如何聚合多源数据实现可靠价格喂价

robot
摘要生成中

分布式价格预言机的设计与实现

为了避免单点故障和提高可靠性,一些预言机系统采用了分布式设计。以某知名预言机为例,它的BTC/USD价格服务就聚合了31个独立的价格源。

预言机详解系列之 Chainlink(下)

这种聚合器的合约设计允许多个链下预言机提供价格数据。每个预言机都是独立的外部账户,可以通过特定方法向聚合器提交数据。这些预言机不仅为BTC/USD提供数据,还可能同时服务于其他价格对。

预言机详解系列之 Chainlink(下)

聚合器合约在处理提交的数据时,会进行一系列验证:

  1. 首先检查合约当前状态和各项参数是否符合要求。

  2. 然后对每个签名进行验证,确保数据来自授权的签名者,并检查是否有重复签名。

  3. 对观察值进行排序,选取中位数作为最终结果,同时确保该结果不超出预设阈值。

  4. 最后将结果记录到合约状态中,并可能进行额外的交叉验证。

预言机详解系列之 Chainlink(下)

为了进一步简化接入流程,一些系统还提供了"Feed Registry"功能。这相当于一个价格源的聚合器,用户无需单独设置每个代币的价格源,可以直接通过Registry读取多种代币的价格数据。

预言机详解系列之 Chainlink(下)

在喂价机制方面,一般会有多层数据聚合:

  1. 数据源层面:整合各大交易平台的原始数据。
  2. 节点运营商层面:每个节点从多个数据聚合服务获取数据并取中值。
  3. 网络层面:多个节点的数据再次聚合,通常采用中值。

预言机详解系列之 Chainlink(下)

最终的价格更新通常需满足偏差阈值或心跳阈值才会触发。这种机制保证了数据的可靠性,但也导致价格更新相对缓慢,更适合对实时性要求不高的应用场景。

预言机详解系列之 Chainlink(下)

预言机详解系列之 Chainlink(下)

预言机详解系列之 Chainlink(下)

预言机详解系列之 Chainlink(下)

预言机详解系列之 Chainlink(下)

预言机详解系列之 Chainlink(下)

预言机详解系列之 Chainlink(下)

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
EthMaximalistvip
· 07-18 16:17
中位数可还行?有点取巧了
回复0
ser_ngmivip
· 07-17 19:47
强强滴!靠谱!
回复0
老韭の自白vip
· 07-15 22:40
这种技术太花了吧 老韭头晕
回复0
GmGnSleepervip
· 07-15 22:29
这么水的东西至于吗
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)