分布式价格预言机: 设计、实现与挑战

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)