解析分布式预言机:多重聚合如何保障链上价格数据准确性

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)