Distributed Price Oracle Machine: Design Principles and Implementation Mechanisms Analysis

robot
Abstract generation in progress

Design and Implementation of Distributed Price Oracle Machine System

To address the single point of failure issue, some Oracle Machine services have adopted a distributed design. Taking the service that provides the Bitcoin to USD price as an example, it aggregates 31 independent price Oracle Machines to provide data to users.

The design of this aggregator allows multiple off-chain Oracle Machines to provide price data by invoking specific methods in response to user requests. These Oracle Machines are usually some externally owned accounts (EOA), and they can provide data not only for the Bitcoin/USD price but also possibly for other currency pairs such as Ethereum/USD.

Oracle Machine Detailed Series on Chainlink (Part 2)

On-chain contracts perform a series of validation steps when processing data provided by the Oracle Machine:

  1. First, read the current contract status and perform a preliminary check.
  2. Carry out the necessary preparatory work.
  3. Verify each signature data to ensure data integrity and reliable source.
  4. Check the sorting of the observed values and select the median as the final result.

Finally, the contract will perform further verification on the obtained results, such as comparing with other price sources to ensure that the deviation is within an acceptable range.

Oracle Machine Detailed Series - Chainlink (Part 2)

Some platforms also offer more advanced aggregation services, such as Feed Registry. This service aggregates multiple price Oracle Machines, allowing users to more conveniently access price data for different tokens without having to set up each price source individually.

Oracle Machine Detailed Series: Chainlink (Part 2)

In terms of the pricing mechanism, the Oracle Machine network usually adopts a multi-layer data aggregation:

  1. Data Source Aggregation: Collecting raw price data from major trading platforms.
  2. Node operator aggregation: Each node obtains and processes data from multiple data sources.
  3. Oracle Machine network aggregation: The data from multiple nodes is aggregated again to obtain the final result.

Oracle Machine Detailed Series: Chainlink (Part 2)

Price updates are usually triggered by two factors: deviation threshold and heartbeat threshold. Different price Oracle Machines may have different parameter settings.

Although this design offers high security and convenience, there are also some limitations. Due to the characteristics of the price update mechanism, data updates may be relatively slow, ranging from a few minutes to a few hours. Therefore, such Oracle Machine services are mainly suitable for application scenarios where real-time price requirements are not high.

Oracle Machine Detailed Series: Chainlink (Part 2)

LINK2.7%
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 6
  • Share
Comment
0/400
AirdropBlackHolevip
· 12h ago
Ran the data until I was sick.
View OriginalReply0
CantAffordPancakevip
· 19h ago
Who can understand something so complicated?
View OriginalReply0
OnlyOnMainnetvip
· 19h ago
The deployment of this Oracle Machine is quite reliable.
View OriginalReply0
CryptoHistoryClassvip
· 19h ago
interesting... same pattern we saw with MakerDAO's oracle disaster back in 2020. history never fails to rhyme
Reply0
AirdropDreamBreakervip
· 19h ago
This is all about wasting resources.
View OriginalReply0
NFTRegrettervip
· 19h ago
Is it the Oracle Machine again? Aren't you tired of losing enough?
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
English
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)