Messari Research Report: In-depth Analysis of Pyth, the Leading Oracle on Solana

Beginner3/28/2024, 5:46:14 PM
Pyth is an efficient oracle protocol that provides reliable price data through a pull model. Similar to a push model, it delivers data to off-chain engines, providing price updates when on-chain requests data. Pyth has been adopted by several prominent projects such as Synthetix and Helium, and has expanded to serve the most diverse blockchains. The maximum supply of its ecosystem token PYTH is 10 billion, allocated to the community, provider incentives, ecosystem growth, protocol development, and private sales. Pyth's goal is to make all world financial market data available for Web3.

Summary

  • Pyth ensures the value of assets worth $55 billion and supports price information for cryptocurrencies, stocks, forex pairs, ETFs, and commodities across more than 50 blockchains and 162 protocols.
  • In February 2024, Pyth oracle trading volume averaged 20% of the total Solana trading volume; concurrently, Pyth data providers on Solana paid $225,000 in fees in February 2024.
  • The Pyth Network utilizes a first-party data provider network to directly publish data to Solana and Pythnet (the application chain providing Pyth oracle updates for all other blockchains). Data providers include institutional traders, well-known market makers, and notable DeFi protocols such as Jane Street, CTC, and Raydium.
  • By the end of the second quarter, Pyth plans to fully transition its Solana push oracle to the new Solana pull oracle.
  • As the leading oracle on Solana, Pyth will support many applications expanded to Eclipse and launched on Eclipse, the first SVM-based layer 2 blockchain on Ethereum.

Background

Blockchain applications typically rely on data from the external world. However, the design of these systems limits their native interaction with external data without assistance. Therefore, blockchains rely on oracles to act as intermediaries, aggregating external data and making it available for on-chain applications.

Usually, oracle networks incentivize nodes to seek specific information, achieve consensus on the values of particular data points, and publish these values to the blockchain within set timeframes. However, this “push” model can be indirectly, costly, and challenging to scale. Pyth Network addresses these issues by nurturing a primary source (first-party) data provider network and coordinating a “push” model. This model reduces latency, scales rapidly, and lowers network costs by transferring update fees to data consumers (applications and developers).

Pyth is a language network aimed at providing accurate prices for cryptocurrencies, stocks, forex pairs, ETFs, and commodities. It offers three core products:

  • Price Feeds, real-time updates of smart contracts
  • Benchmarks, historical market data
  • Pyth Entropy, a secure random number generator

Pyth’s data robustness is greatly enhanced by its contributing provider network, which consists of nearly 100 data providers from global exchanges, trading firms, market makers, institutions, and DeFi. Some notable providers include Jane Street, Chicago Trading Company (CTC), Binance, Raydium, Osmosis, Galaxy, and 0x. Pyth focuses on providing financial market data for developers on an ever-expanding list of blockchain networks, currently numbering over 50 blockchains as of the time of writing.

Technology

Apart from bridging data between blockchains and the outside world, oracles also strive to overcome the oracle problem. The oracle problem refers to ensuring the security, authentication, and trustworthiness of external data while considering potential failures from external sources.

Resolving the oracle problem typically involves the following steps:

  • Validator or oracle node source data
  • Node cryptographically signs (verifies) source data
  • Aggregation of data and calculation of consensus on data points
  • Data transfer to blockchain network

The oracle problem is typically addressed through push or pull models. Most oracles use a third-party push model, where oracle nodes act as intermediaries fetching data from first-hand sources (such as exchanges) or second-hand sources (such as data aggregators like CoinGecko and Kaiko). For instance, Chainlink’s primary price feed oracle nodes fetch data from second-hand sources. Push oracles push price updates to individual blockchains at set intervals, with each on-chain update incurring gas fees. Adding price feeds or reducing on-chain update latency adds more costs to the oracle network, hindering its scalability. Additionally, obtaining data requires multiple trust assumptions: primary sources are correct and stable, secondary sources are correct and stable, and the oracle network is stable.

Pyth Network addresses the drawbacks of third-party push models through its pull model. With its first-hand data provider network, Pyth mitigates the downstream trust assumptions regarding third-party data reliability. In Pyth’s pull model, data is directly provided by entities within the network such as exchanges, market makers, and DeFi protocols (e.g., Jane Street, Binance, and Raydium). These entities are incentivized to act honestly, provide robust data, maintain good reputations, and avoid being banned by protocols.

Additional benefits stem from shifting costs to end consumers, where price feeds are updated based on demand rather than at set intervals. Thus, consumers initiate price updates, pulling updates into the chain in the same DeFi transactions (e.g., asset swaps, perpetual swaps settlements). By shifting costs to users, where updates are demand-based, Pyth redirects these costs efficiently, as evidenced by its frequent updates across 451 price feeds.

Core Interaction

Pyth operates two instances of its protocol: one on the Solana mainnet and the other on the Pythnet Appchain. The Pyth instance on Solana provides data exclusively for protocols on Solana, while the Pyth instance on Pythnet provides data for protocols on all other blockchains. In both instances, three core entities interact to facilitate oracle updates on the Pyth Network:

  • Data Providers/Publishers (such as Jane Street, CTC, Binance, 0x, Raydium, etc.)
  • Pyth Oracle Program (aggregation algorithm)
  • Data Consumers (applications/developers)

Data providers are validators on Pythnet. Previously, the Pyth Data Association was responsible for delegating sufficient stake to validators; however, with the initiation of governance, this responsibility is now managed by PYTH token holders. As of the time of writing, there have been no proposals to alter the dynamics of validator stake, and currently, all validators have equal weight. As primary suppliers of Pyth data, providers are compensated through a small fee collected across entire DeFi transactions initiated by consumers.

The Pyth Oracle Program is an aggregation algorithm that combines data submitted by providers and generates aggregated prices and confidence intervals for the corresponding price feeds during computation. It also maintains price feeds, stores individual inputs from providers, and performs additional computations, such as moving averages. Applications and developers act as consumers, requesting updates to price feeds to read information generated by the oracle program.

Python on Solana

Price feeds are represented by two Solana accounts: the product account and the price account. The product account stores metadata about the price feed, such as the stock symbol, asset type, corresponding price account, etc. The price account contains data authorized by data providers, including the name of each provider, the prices and confidence intervals submitted by each provider, exponential moving averages, etc. Both accounts are maintained by the oracle program, which also includes a third account primarily listing product accounts. This setup allows applications to categorize the complete list of price feeds provided by Pyth.

Providers submit price updates every 400 milliseconds (the time slot length on Solana). Each update triggers frequent aggregation updates for prices and confidence intervals, which are then used downstream by applications. Due to Solana’s low costs, Pyth (or any oracle) can operate an efficient push model where developers only need to pass relevant price feeds to their applications, deserialize the data, and read/integrate the published values.

It’s worth noting that by storing individual data values submitted by each provider, the oracle can hold providers accountable for poor performance or malicious behavior. As of the end of Q2, Pyth plans to fully migrate its Solana push oracle to a new Solana pull oracle. The Pyth team has indicated that the Pyth pull oracle is already running on a development network.

Python Application Chain

Pythnet’s application chain is an authoritative proof-of-stake fork of the Solana mainnet, serving as a computational layer to handle and aggregate data provided by Pyth’s data provider network. Price feeds on Pythnet are accessible to over 50 blockchains, not just Solana, as its price feeds are directly published to blockchains. Since Pythnet is a fork of Solana, the Pyth oracle framework on Solana and the Pyth oracle framework on Pythnet are somewhat similar, but there are some differences.

The push model on Solana (including accounts and oracle program) mentioned above is similar to Pythnet. However, Pythnet is not a target chain and does not charge providers for submitting prices. Therefore, while data providers push data to Pythnet for aggregation and serialize it into accounts through the oracle program, this data is subsequently broadcasted to other blockchains via the Wormhole cross-chain messaging protocol. Then, consumers incur costs on the target chain when initiating data transfers through regular DeFi transactions that rely on oracle data, thus pulling data updates.

Cross-Chain Messaging

After publishing and aggregating data on Pythnet, the data is not immediately routed through Wormhole. Instead, Pyth routes its data through a message buffer and hashes it into a Merkle tree. This ensures that users can choose which updates to include in a single transaction. It also allows users to keep costs low and enables data updates to include arbitrary computations. After each aggregation update, the aggregation program adds a message to the message buffer. For each time slot, Pythnet validators read the messages and create a Merkle tree, then send a message containing the Merkle root of all prices to the Wormhole contract on Pythnet.

Subsequently, the Wormhole administrator (Wormhole node) reads the Merkle root message, creates a Verifiable Action Approval (VAA), and broadcasts the price updates to the relevant blockchains. The VAA ensures the reliable and secure transmission of data. The VAA includes the Wormhole administrator’s signature. These signatures confirm that the administrator has witnessed and verified the VAA, including signatures from Wormhole Guardians. These signatures confirm that the Guardians have witnessed and verified the information contained in the message, namely the Merkle root of prices. Signed VAA is a verifiable and secure method to confirm the accuracy of data transmitted from Pythnet to the target blockchain and has been validated by trusted parties (Wormhole Guardians).

Hermes

Hermes is a Web API that abstracts the developer update initiation process. Without a service like Hermes, developers would have to manually compile an update payload with the required price feeds and use a Wormhole-verified Merkle root to fetch the corresponding data and Merkle proof from Pythnet. Hermes enables developers to easily query a web service to access oracle prices. It allows data consumers to retrieve the latest prices from REST or WebSocket APIs.

REST (subset of HTTP) API Features

  • Best suited for applications needing immediate access to the latest data, irregular data retrieval intervals, or requesting data based on specific conditions.
  • Easy to implement and use.
  • Each request is independent, making interactions between clients and servers more concise.
  • Scenarios: portfolio tracking, loan issuance or repayment, etc.

WebSocket API Features:

  • Best suited for applications requiring real-time continuous data streams.
  • Low maintenance costs: After initial setup, data can be sent back and forth without the overhead of repeating HTTP headers, making it very efficient for frequent data transmission.
  • Real-time updates enable data to be updated instantly due to persistent connections between clients and servers.
  • Scenarios: arbitrage trading, yield optimization tools, DEX trading, etc.

Hermes is permissionless, allowing any third party to build a simplified access point to the Pyth Network. Due to the operational complexity, the Pyth Data Association maintains a public version. However, other companies, such as Triton, P2P, Liquify, and EXTR, also offer their own hosted versions of Hermes. A growing list of node providers offering Hermes can be found here.

Tokenomics

  • The ecosystem token PYTH on PYTH has a maximum supply of 10 billion PYTH tokens. After the first unlock in May 2024, its allocation will reflect the following distribution:
  • Community and Launch (6%): This portion is allocated for initial launch activities, related events, and initiatives.
  • Provider Rewards (22%): Intended for the Pyth data provider network, this allocation is used for rewarding providers, funding programs, and incentivizing support for new assets that may initially lack liquidity.
  • Ecosystem Growth (52%): Allocated for contributors to the Pyth network, including but not limited to developers, researchers, educators, and early providers. The goal is to encourage initiatives beyond the founding team and core contributors and reward contributions.
  • Protocol Development (10%): Dedicated to core contributors (i.e., Douro Labs) for building tools, products, and infrastructure.
  • Private Sale (10%): Reserved for two rounds of fundraising. Pyth has not publicly disclosed the sale price per PYTH or its valuation. In December 2023, Pyth released an update regarding the early strategic round, which included notable investors such as Castle Island Ventures, Wintermute Ventures, Borderless Capital, CMT Digital, Bodhi Ventures, Distributed Global, Multicoin Capital, and Delphi Digital.

Governance

The PYTH token is an SPL token on Solana (equivalent to ERC-20 on Ethereum). Its core utility is governance. PYTH holders can guide protocol development by staking assets and voting to support Pyth Improvement Proposals (PIPs). As of now, the only proposals that have been or are being voted on include the Pythian Council elections and the approval of the Pyth DAO constitution. Governance covers typical topics that are amendable, including:

  • On-chain software updates
  • Reward structure for data providers
  • Rules for creating licensed providers
  • Size, denomination, and existence of fees for oracle updates
  • Adding new price feeds and determining who supports them

The Pyth DAO consists of the Pythian Council and the Price Feed Committee. Every six months, both committees hold elections to rotate committee members. Additionally, members with less than one-third participation time are excluded from re-elections. This system ensures active member participation and alignment with Pyth’s goals. Both committees are responsible for voting on and executing certain operational PIPs.

Pythian Committee

  • The Pythian 7-of-9 multisig wallet has eight members and operational wallet holders as signers.
  • Every election replaces four members.
  • They have the authority to vote on operational PIPs related to oracle program updates, verification mechanisms, adjustments to oracle update fees and denominations, as well as operations concerning PGAS (Gas tokens allocated/delegated to validators on Pythnet).

Price Feed Committee

  • The Price Feed 5-of-8 multisig wallet has seven members and operational wallet holders as signers.
  • Every election replaces three members.
  • They can be authorized to vote on operational PIPs concerning the management of the provided price feed collection, selection of publishers, and price feed requirements (i.e., minimum and maximum providers per source).

After discussions on Pyth’s Discord forum, PYTH holders can vote on proposals through the governance portal on Realms when they reach the “voting stage”. Currently, proposal creators need to hold 25 million PYTH to create a proposal.

Pyth DAO consists of two types of PIPs: Constitutional and Operational. Constitutional PIPs involve protocol updates, determining the structure, and guiding the management of Pyth DAO. They require over 67% support to be implemented. Operational PIPs involve elections and management of the treasury, Pythian Committee, and Price Feed Committee. Votes on these PIPs can be delegated to committee members and require over 50% support to be implemented.

Python Usage

Pyth is one of the most commonly used protocols on Solana. During February 2024, its oracle transactions accounted for an average of 20% of all Solana transactions. During the same time period, Python data providers paid $225,000 on Solana. Python’s oracles protect 95% of the blockchain’s value. As of January 2024, Pyth also protects more than 90% of the value on 9 other blockchains, and more than 50% of the value on 16 other blockchains.

Well-known Users

Due to its ability to scale sources on Pythnet, Pyth has become one of the most widely used oracle protocols across various blockchains. Instead of adding new data sources directly to the target chain, it simply adds new data sources to Pythnet, which can then be utilized by Pyth’s oracle contracts on each supported target chain. As a result, Pyth can construct oracle contracts for any chain it plans to expand to. With growing support for numerous blockchains, several notable projects have adopted Pyth’s oracle network. Here are some prominent examples.

Synthetix

Synthetix is a decentralized liquidity protocol that enables the creation of synthetic assets, known as Synths, which track the value of cryptocurrencies and real-world assets such as currencies, commodities, and stocks. Synthetix allows users to gain exposure to various assets without actually holding them, thus broadening investment opportunities and enhancing liquidity in the cryptocurrency market. A key component of Synthetix’s functionality is its integration with the Pyth network oracles. These oracles provide high-fidelity, real-time price feeds, which are crucial for maintaining the accuracy of Synths’ values.

Helium

Helium is a decentralized Internet of Things (IoT) network that incentivizes participants to deploy wireless devices to provide coverage for the network through a token-based economic incentive system. Helium leverages the Pyth network oracles to provide accurate on-chain market prices for its native token, HNT. These prices are crucial for a range of network activities, including converting burned HNT into Data Credits (DC) and accurately measuring fund allocation. While Helium is not DeFi, the use of Pyth oracles in Helium’s decentralized connectivity platform highlights the importance of accurate data in managing the economics of protocols, even outside of the realm of traditional DeFi.

Eclipse

Eclipse recently raised $50 million in a Series A funding round to launch the first second-layer blockchain using the Solana Virtual Machine (SVM) for execution and Celestia for data availability, while leveraging Ethereum as a settlement layer for security. The launch of Eclipse is expected to attract liquidity from Ethereum users and channel them into decentralized applications on the second layer of Solana. As a leading oracle on Solana, Pyth will support many applications expanding to and launching on Eclipse.

Competitive analysis

The oracle field is a fiercely competitive industry dominated by Chainlink. Although Chronicle Protocol created the first on-chain oracle for MakerDAO in 2017, it didn’t launch a public oracle network until the end of 2023. It currently provides sources on only two blockchains but plans to expand. Chainlink has captured market share over the years of DeFi development, launching various oracle-based products and serving a wide market. As of now, only three protocols are more secure than the Pyth Network: Chainlink, Chronicle, and WINkLink - these top four protocols account for 90-95% of all oracle market value. Nonetheless, Pyth leads in terms of the number of covered blockchains and security value. Chainlink is Pyth’s primary competitor in terms of diversity of covered blockchains and security value.

Chain link

Critics label Chainlink as a “black box” due to the lack of transparency in how oracle nodes acquire data. The sources of data are not identified on-chain or on Chainlink oracle node websites. In contrast, every data point on the Pyth network can be traced back to individual providers’ public keys by copying transaction hashes from Pyth’s price information webpage to any Solana block explorer. While data on Chainlink can also be traced back to Chainlink oracle nodes, Pyth’s data providers are first-party sources. Unlike Chainlink’s data, Pyth’s disclosed data is sourced internally from their operations as exchanges, trading firms, market makers, etc. However, the public keys of providers are not publicly linked to their identities, adding a layer of trust in how Pyth manages its provider network, initially consisting of permissioned providers.

While Pyth focuses on traditional finance and crypto price information, Chainlink has several products. These include an interoperability protocol (CCIP), reserve proof information feeds and developer tools (VRF, API functionalities, and automation services), as well as its market data feeds. Therefore, Pyth’s primary product challenges Chainlink’s leading market data feed product, although Pyth also provides a random number generator through Pyth entropy. Below is a comparison of Pyth and Chainlink in terms of market data feeds.

Data Sources

Pyth

  • Pyth directly aggregates data from primary sources and updates price information on the Pythnet application chain and Solana every 400 milliseconds.
  • Outside of Solana, other chains must initiate price updates to publish them to their respective chains, meaning the data freshness ranges between 400 milliseconds and the next on-demand update.
  • For data providers (who also engage in trading), there exists a conflict of interest in publishing honest data points that may be unfavorable to specific trades. Assuming most providers are honest, striving to maintain a high reputation, and do not coordinate updates, Pyth’s aggregation algorithm should mitigate this risk by applying lower weights to outlier data points.
  • Directly obtaining data from primary sources enables the quick addition of price information for newly created trading pairs.

Chain link

  • Chainlink aggregates data from secondary sources (data aggregators) and publishes price information updates on-chain based on the frequency of the blockchain.
  • The freshness of data points depends on the updates from the secondary sources and the aggregation of the oracle network.
  • While primary sources may support specific trading pairs, the availability of price information depends on the secondary aggregators also achieving coverage for that data point. This may introduce friction in adding new information streams, although it is not an issue for major trading pairs.

Pull vs Push Model

Pyth

  • On Solana, Pyth utilizes a push model, publishing updates every 400 milliseconds.
  • On Pythnet, a pull model is employed. Users initiate updates on the target chain, and the updates published on Pythnet are routed through Wormhole and then broadcast to the requesting chain. In this model, users incur fees.
  • Since all market price data streams (outside of Solana) reside on Pythnet, Pyth offers the capability to enhance scalability, reducing the cost and time required for direct integration of data streams on supported/new chains. However, Pyth’s scalability introduces layers of delay and additional trust/reliance on Wormhole.

Chain link

  • Chainlink’s primary market data streams utilize a push model, often publishing updates at block times on the target chain. This may impose cost burdens on oracle nodes and can occasionally lead to transaction failures during high-volatility environments, although such occurrences are rare.
  • Adding price data streams to new and existing chains incurs higher costs as new streams must be implemented for each supported network.
  • Chainlink’s approach doesn’t rely on additional relayers and doesn’t introduce additional trust between Chainlink’s oracle network and the target blockchain.
  • Chainlink also provides a pull model in its data stream products.
  • Similar to the push model, data is processed, but it’s transmitted to Chainlink’s off-chain data engine, which provides price updates when requested on-chain.
  • Currently, Data Streams are only available on Arbitrum, maintaining eight price data streams.

Usage

  • Pyth safeguards $5.5 billion in funds across 162 protocols on over 50 blockchains.
  • Chainlink safeguards $38.7 billion across 371 protocols on 19 blockchains.

Both systems have advantages and disadvantages in terms of market data information flow. Pyth’s model is better suited for scaling the quantity of price information streams while maintaining a high update frequency. However, Pyth’s ability to maintain high-fidelity data relies on an assumption that the cost of reputation and collusion outweighs any potential benefits to providers from malicious behavior. Its network stability depends on the normal operation of Wormhole. In contrast, Chainlink’s model requires less trust in the original data sources and the oracle network’s relationship with supported blockchains since it obtains data from secondary aggregation sources and directly publishes to the target chain. However, expanding data information flow and covering a wider range of blockchains comes at a higher cost. Nevertheless, as the cryptocurrency market continues to grow, new protocols need to consider many options and trade-offs/risks when implementing different oracle price information streams.

Summary

Pyth Network is a pioneering protocol reshaping the oracle landscape. It nurtures a first-party data provider network and implements a pull-based oracle, shifting costs to oracle users. Through this design, Pyth reduces costs for oracle networks, increases price update frequency, and directly safeguards market data based on primary data sources. Since its launch, Pyth has expanded to serve the most blockchains and holds the fourth-largest share of total value (as of March 2024, $5.5 billion). With the expansion of its provider network, Pyth aims to fulfill its mission of making all world financial market data available for Web3.

Statement:

  1. This article is reproduced from [deep tide TechFlow], the copyright belongs to the original author [Messari], if you have any objection to the reprint, please contact Gate Learn Team, the team will handle it as soon as possible according to relevant procedures.

  2. Disclaimer: The views and opinions expressed in this article represent only the author’s personal views and do not constitute any investment advice.

  3. Other language versions of the article are translated by the Gate Learn team and are not mentioned in Gate.io, the translated article may not be reproduced, distributed or plagiarized.

Messari Research Report: In-depth Analysis of Pyth, the Leading Oracle on Solana

Beginner3/28/2024, 5:46:14 PM
Pyth is an efficient oracle protocol that provides reliable price data through a pull model. Similar to a push model, it delivers data to off-chain engines, providing price updates when on-chain requests data. Pyth has been adopted by several prominent projects such as Synthetix and Helium, and has expanded to serve the most diverse blockchains. The maximum supply of its ecosystem token PYTH is 10 billion, allocated to the community, provider incentives, ecosystem growth, protocol development, and private sales. Pyth's goal is to make all world financial market data available for Web3.

Summary

  • Pyth ensures the value of assets worth $55 billion and supports price information for cryptocurrencies, stocks, forex pairs, ETFs, and commodities across more than 50 blockchains and 162 protocols.
  • In February 2024, Pyth oracle trading volume averaged 20% of the total Solana trading volume; concurrently, Pyth data providers on Solana paid $225,000 in fees in February 2024.
  • The Pyth Network utilizes a first-party data provider network to directly publish data to Solana and Pythnet (the application chain providing Pyth oracle updates for all other blockchains). Data providers include institutional traders, well-known market makers, and notable DeFi protocols such as Jane Street, CTC, and Raydium.
  • By the end of the second quarter, Pyth plans to fully transition its Solana push oracle to the new Solana pull oracle.
  • As the leading oracle on Solana, Pyth will support many applications expanded to Eclipse and launched on Eclipse, the first SVM-based layer 2 blockchain on Ethereum.

Background

Blockchain applications typically rely on data from the external world. However, the design of these systems limits their native interaction with external data without assistance. Therefore, blockchains rely on oracles to act as intermediaries, aggregating external data and making it available for on-chain applications.

Usually, oracle networks incentivize nodes to seek specific information, achieve consensus on the values of particular data points, and publish these values to the blockchain within set timeframes. However, this “push” model can be indirectly, costly, and challenging to scale. Pyth Network addresses these issues by nurturing a primary source (first-party) data provider network and coordinating a “push” model. This model reduces latency, scales rapidly, and lowers network costs by transferring update fees to data consumers (applications and developers).

Pyth is a language network aimed at providing accurate prices for cryptocurrencies, stocks, forex pairs, ETFs, and commodities. It offers three core products:

  • Price Feeds, real-time updates of smart contracts
  • Benchmarks, historical market data
  • Pyth Entropy, a secure random number generator

Pyth’s data robustness is greatly enhanced by its contributing provider network, which consists of nearly 100 data providers from global exchanges, trading firms, market makers, institutions, and DeFi. Some notable providers include Jane Street, Chicago Trading Company (CTC), Binance, Raydium, Osmosis, Galaxy, and 0x. Pyth focuses on providing financial market data for developers on an ever-expanding list of blockchain networks, currently numbering over 50 blockchains as of the time of writing.

Technology

Apart from bridging data between blockchains and the outside world, oracles also strive to overcome the oracle problem. The oracle problem refers to ensuring the security, authentication, and trustworthiness of external data while considering potential failures from external sources.

Resolving the oracle problem typically involves the following steps:

  • Validator or oracle node source data
  • Node cryptographically signs (verifies) source data
  • Aggregation of data and calculation of consensus on data points
  • Data transfer to blockchain network

The oracle problem is typically addressed through push or pull models. Most oracles use a third-party push model, where oracle nodes act as intermediaries fetching data from first-hand sources (such as exchanges) or second-hand sources (such as data aggregators like CoinGecko and Kaiko). For instance, Chainlink’s primary price feed oracle nodes fetch data from second-hand sources. Push oracles push price updates to individual blockchains at set intervals, with each on-chain update incurring gas fees. Adding price feeds or reducing on-chain update latency adds more costs to the oracle network, hindering its scalability. Additionally, obtaining data requires multiple trust assumptions: primary sources are correct and stable, secondary sources are correct and stable, and the oracle network is stable.

Pyth Network addresses the drawbacks of third-party push models through its pull model. With its first-hand data provider network, Pyth mitigates the downstream trust assumptions regarding third-party data reliability. In Pyth’s pull model, data is directly provided by entities within the network such as exchanges, market makers, and DeFi protocols (e.g., Jane Street, Binance, and Raydium). These entities are incentivized to act honestly, provide robust data, maintain good reputations, and avoid being banned by protocols.

Additional benefits stem from shifting costs to end consumers, where price feeds are updated based on demand rather than at set intervals. Thus, consumers initiate price updates, pulling updates into the chain in the same DeFi transactions (e.g., asset swaps, perpetual swaps settlements). By shifting costs to users, where updates are demand-based, Pyth redirects these costs efficiently, as evidenced by its frequent updates across 451 price feeds.

Core Interaction

Pyth operates two instances of its protocol: one on the Solana mainnet and the other on the Pythnet Appchain. The Pyth instance on Solana provides data exclusively for protocols on Solana, while the Pyth instance on Pythnet provides data for protocols on all other blockchains. In both instances, three core entities interact to facilitate oracle updates on the Pyth Network:

  • Data Providers/Publishers (such as Jane Street, CTC, Binance, 0x, Raydium, etc.)
  • Pyth Oracle Program (aggregation algorithm)
  • Data Consumers (applications/developers)

Data providers are validators on Pythnet. Previously, the Pyth Data Association was responsible for delegating sufficient stake to validators; however, with the initiation of governance, this responsibility is now managed by PYTH token holders. As of the time of writing, there have been no proposals to alter the dynamics of validator stake, and currently, all validators have equal weight. As primary suppliers of Pyth data, providers are compensated through a small fee collected across entire DeFi transactions initiated by consumers.

The Pyth Oracle Program is an aggregation algorithm that combines data submitted by providers and generates aggregated prices and confidence intervals for the corresponding price feeds during computation. It also maintains price feeds, stores individual inputs from providers, and performs additional computations, such as moving averages. Applications and developers act as consumers, requesting updates to price feeds to read information generated by the oracle program.

Python on Solana

Price feeds are represented by two Solana accounts: the product account and the price account. The product account stores metadata about the price feed, such as the stock symbol, asset type, corresponding price account, etc. The price account contains data authorized by data providers, including the name of each provider, the prices and confidence intervals submitted by each provider, exponential moving averages, etc. Both accounts are maintained by the oracle program, which also includes a third account primarily listing product accounts. This setup allows applications to categorize the complete list of price feeds provided by Pyth.

Providers submit price updates every 400 milliseconds (the time slot length on Solana). Each update triggers frequent aggregation updates for prices and confidence intervals, which are then used downstream by applications. Due to Solana’s low costs, Pyth (or any oracle) can operate an efficient push model where developers only need to pass relevant price feeds to their applications, deserialize the data, and read/integrate the published values.

It’s worth noting that by storing individual data values submitted by each provider, the oracle can hold providers accountable for poor performance or malicious behavior. As of the end of Q2, Pyth plans to fully migrate its Solana push oracle to a new Solana pull oracle. The Pyth team has indicated that the Pyth pull oracle is already running on a development network.

Python Application Chain

Pythnet’s application chain is an authoritative proof-of-stake fork of the Solana mainnet, serving as a computational layer to handle and aggregate data provided by Pyth’s data provider network. Price feeds on Pythnet are accessible to over 50 blockchains, not just Solana, as its price feeds are directly published to blockchains. Since Pythnet is a fork of Solana, the Pyth oracle framework on Solana and the Pyth oracle framework on Pythnet are somewhat similar, but there are some differences.

The push model on Solana (including accounts and oracle program) mentioned above is similar to Pythnet. However, Pythnet is not a target chain and does not charge providers for submitting prices. Therefore, while data providers push data to Pythnet for aggregation and serialize it into accounts through the oracle program, this data is subsequently broadcasted to other blockchains via the Wormhole cross-chain messaging protocol. Then, consumers incur costs on the target chain when initiating data transfers through regular DeFi transactions that rely on oracle data, thus pulling data updates.

Cross-Chain Messaging

After publishing and aggregating data on Pythnet, the data is not immediately routed through Wormhole. Instead, Pyth routes its data through a message buffer and hashes it into a Merkle tree. This ensures that users can choose which updates to include in a single transaction. It also allows users to keep costs low and enables data updates to include arbitrary computations. After each aggregation update, the aggregation program adds a message to the message buffer. For each time slot, Pythnet validators read the messages and create a Merkle tree, then send a message containing the Merkle root of all prices to the Wormhole contract on Pythnet.

Subsequently, the Wormhole administrator (Wormhole node) reads the Merkle root message, creates a Verifiable Action Approval (VAA), and broadcasts the price updates to the relevant blockchains. The VAA ensures the reliable and secure transmission of data. The VAA includes the Wormhole administrator’s signature. These signatures confirm that the administrator has witnessed and verified the VAA, including signatures from Wormhole Guardians. These signatures confirm that the Guardians have witnessed and verified the information contained in the message, namely the Merkle root of prices. Signed VAA is a verifiable and secure method to confirm the accuracy of data transmitted from Pythnet to the target blockchain and has been validated by trusted parties (Wormhole Guardians).

Hermes

Hermes is a Web API that abstracts the developer update initiation process. Without a service like Hermes, developers would have to manually compile an update payload with the required price feeds and use a Wormhole-verified Merkle root to fetch the corresponding data and Merkle proof from Pythnet. Hermes enables developers to easily query a web service to access oracle prices. It allows data consumers to retrieve the latest prices from REST or WebSocket APIs.

REST (subset of HTTP) API Features

  • Best suited for applications needing immediate access to the latest data, irregular data retrieval intervals, or requesting data based on specific conditions.
  • Easy to implement and use.
  • Each request is independent, making interactions between clients and servers more concise.
  • Scenarios: portfolio tracking, loan issuance or repayment, etc.

WebSocket API Features:

  • Best suited for applications requiring real-time continuous data streams.
  • Low maintenance costs: After initial setup, data can be sent back and forth without the overhead of repeating HTTP headers, making it very efficient for frequent data transmission.
  • Real-time updates enable data to be updated instantly due to persistent connections between clients and servers.
  • Scenarios: arbitrage trading, yield optimization tools, DEX trading, etc.

Hermes is permissionless, allowing any third party to build a simplified access point to the Pyth Network. Due to the operational complexity, the Pyth Data Association maintains a public version. However, other companies, such as Triton, P2P, Liquify, and EXTR, also offer their own hosted versions of Hermes. A growing list of node providers offering Hermes can be found here.

Tokenomics

  • The ecosystem token PYTH on PYTH has a maximum supply of 10 billion PYTH tokens. After the first unlock in May 2024, its allocation will reflect the following distribution:
  • Community and Launch (6%): This portion is allocated for initial launch activities, related events, and initiatives.
  • Provider Rewards (22%): Intended for the Pyth data provider network, this allocation is used for rewarding providers, funding programs, and incentivizing support for new assets that may initially lack liquidity.
  • Ecosystem Growth (52%): Allocated for contributors to the Pyth network, including but not limited to developers, researchers, educators, and early providers. The goal is to encourage initiatives beyond the founding team and core contributors and reward contributions.
  • Protocol Development (10%): Dedicated to core contributors (i.e., Douro Labs) for building tools, products, and infrastructure.
  • Private Sale (10%): Reserved for two rounds of fundraising. Pyth has not publicly disclosed the sale price per PYTH or its valuation. In December 2023, Pyth released an update regarding the early strategic round, which included notable investors such as Castle Island Ventures, Wintermute Ventures, Borderless Capital, CMT Digital, Bodhi Ventures, Distributed Global, Multicoin Capital, and Delphi Digital.

Governance

The PYTH token is an SPL token on Solana (equivalent to ERC-20 on Ethereum). Its core utility is governance. PYTH holders can guide protocol development by staking assets and voting to support Pyth Improvement Proposals (PIPs). As of now, the only proposals that have been or are being voted on include the Pythian Council elections and the approval of the Pyth DAO constitution. Governance covers typical topics that are amendable, including:

  • On-chain software updates
  • Reward structure for data providers
  • Rules for creating licensed providers
  • Size, denomination, and existence of fees for oracle updates
  • Adding new price feeds and determining who supports them

The Pyth DAO consists of the Pythian Council and the Price Feed Committee. Every six months, both committees hold elections to rotate committee members. Additionally, members with less than one-third participation time are excluded from re-elections. This system ensures active member participation and alignment with Pyth’s goals. Both committees are responsible for voting on and executing certain operational PIPs.

Pythian Committee

  • The Pythian 7-of-9 multisig wallet has eight members and operational wallet holders as signers.
  • Every election replaces four members.
  • They have the authority to vote on operational PIPs related to oracle program updates, verification mechanisms, adjustments to oracle update fees and denominations, as well as operations concerning PGAS (Gas tokens allocated/delegated to validators on Pythnet).

Price Feed Committee

  • The Price Feed 5-of-8 multisig wallet has seven members and operational wallet holders as signers.
  • Every election replaces three members.
  • They can be authorized to vote on operational PIPs concerning the management of the provided price feed collection, selection of publishers, and price feed requirements (i.e., minimum and maximum providers per source).

After discussions on Pyth’s Discord forum, PYTH holders can vote on proposals through the governance portal on Realms when they reach the “voting stage”. Currently, proposal creators need to hold 25 million PYTH to create a proposal.

Pyth DAO consists of two types of PIPs: Constitutional and Operational. Constitutional PIPs involve protocol updates, determining the structure, and guiding the management of Pyth DAO. They require over 67% support to be implemented. Operational PIPs involve elections and management of the treasury, Pythian Committee, and Price Feed Committee. Votes on these PIPs can be delegated to committee members and require over 50% support to be implemented.

Python Usage

Pyth is one of the most commonly used protocols on Solana. During February 2024, its oracle transactions accounted for an average of 20% of all Solana transactions. During the same time period, Python data providers paid $225,000 on Solana. Python’s oracles protect 95% of the blockchain’s value. As of January 2024, Pyth also protects more than 90% of the value on 9 other blockchains, and more than 50% of the value on 16 other blockchains.

Well-known Users

Due to its ability to scale sources on Pythnet, Pyth has become one of the most widely used oracle protocols across various blockchains. Instead of adding new data sources directly to the target chain, it simply adds new data sources to Pythnet, which can then be utilized by Pyth’s oracle contracts on each supported target chain. As a result, Pyth can construct oracle contracts for any chain it plans to expand to. With growing support for numerous blockchains, several notable projects have adopted Pyth’s oracle network. Here are some prominent examples.

Synthetix

Synthetix is a decentralized liquidity protocol that enables the creation of synthetic assets, known as Synths, which track the value of cryptocurrencies and real-world assets such as currencies, commodities, and stocks. Synthetix allows users to gain exposure to various assets without actually holding them, thus broadening investment opportunities and enhancing liquidity in the cryptocurrency market. A key component of Synthetix’s functionality is its integration with the Pyth network oracles. These oracles provide high-fidelity, real-time price feeds, which are crucial for maintaining the accuracy of Synths’ values.

Helium

Helium is a decentralized Internet of Things (IoT) network that incentivizes participants to deploy wireless devices to provide coverage for the network through a token-based economic incentive system. Helium leverages the Pyth network oracles to provide accurate on-chain market prices for its native token, HNT. These prices are crucial for a range of network activities, including converting burned HNT into Data Credits (DC) and accurately measuring fund allocation. While Helium is not DeFi, the use of Pyth oracles in Helium’s decentralized connectivity platform highlights the importance of accurate data in managing the economics of protocols, even outside of the realm of traditional DeFi.

Eclipse

Eclipse recently raised $50 million in a Series A funding round to launch the first second-layer blockchain using the Solana Virtual Machine (SVM) for execution and Celestia for data availability, while leveraging Ethereum as a settlement layer for security. The launch of Eclipse is expected to attract liquidity from Ethereum users and channel them into decentralized applications on the second layer of Solana. As a leading oracle on Solana, Pyth will support many applications expanding to and launching on Eclipse.

Competitive analysis

The oracle field is a fiercely competitive industry dominated by Chainlink. Although Chronicle Protocol created the first on-chain oracle for MakerDAO in 2017, it didn’t launch a public oracle network until the end of 2023. It currently provides sources on only two blockchains but plans to expand. Chainlink has captured market share over the years of DeFi development, launching various oracle-based products and serving a wide market. As of now, only three protocols are more secure than the Pyth Network: Chainlink, Chronicle, and WINkLink - these top four protocols account for 90-95% of all oracle market value. Nonetheless, Pyth leads in terms of the number of covered blockchains and security value. Chainlink is Pyth’s primary competitor in terms of diversity of covered blockchains and security value.

Chain link

Critics label Chainlink as a “black box” due to the lack of transparency in how oracle nodes acquire data. The sources of data are not identified on-chain or on Chainlink oracle node websites. In contrast, every data point on the Pyth network can be traced back to individual providers’ public keys by copying transaction hashes from Pyth’s price information webpage to any Solana block explorer. While data on Chainlink can also be traced back to Chainlink oracle nodes, Pyth’s data providers are first-party sources. Unlike Chainlink’s data, Pyth’s disclosed data is sourced internally from their operations as exchanges, trading firms, market makers, etc. However, the public keys of providers are not publicly linked to their identities, adding a layer of trust in how Pyth manages its provider network, initially consisting of permissioned providers.

While Pyth focuses on traditional finance and crypto price information, Chainlink has several products. These include an interoperability protocol (CCIP), reserve proof information feeds and developer tools (VRF, API functionalities, and automation services), as well as its market data feeds. Therefore, Pyth’s primary product challenges Chainlink’s leading market data feed product, although Pyth also provides a random number generator through Pyth entropy. Below is a comparison of Pyth and Chainlink in terms of market data feeds.

Data Sources

Pyth

  • Pyth directly aggregates data from primary sources and updates price information on the Pythnet application chain and Solana every 400 milliseconds.
  • Outside of Solana, other chains must initiate price updates to publish them to their respective chains, meaning the data freshness ranges between 400 milliseconds and the next on-demand update.
  • For data providers (who also engage in trading), there exists a conflict of interest in publishing honest data points that may be unfavorable to specific trades. Assuming most providers are honest, striving to maintain a high reputation, and do not coordinate updates, Pyth’s aggregation algorithm should mitigate this risk by applying lower weights to outlier data points.
  • Directly obtaining data from primary sources enables the quick addition of price information for newly created trading pairs.

Chain link

  • Chainlink aggregates data from secondary sources (data aggregators) and publishes price information updates on-chain based on the frequency of the blockchain.
  • The freshness of data points depends on the updates from the secondary sources and the aggregation of the oracle network.
  • While primary sources may support specific trading pairs, the availability of price information depends on the secondary aggregators also achieving coverage for that data point. This may introduce friction in adding new information streams, although it is not an issue for major trading pairs.

Pull vs Push Model

Pyth

  • On Solana, Pyth utilizes a push model, publishing updates every 400 milliseconds.
  • On Pythnet, a pull model is employed. Users initiate updates on the target chain, and the updates published on Pythnet are routed through Wormhole and then broadcast to the requesting chain. In this model, users incur fees.
  • Since all market price data streams (outside of Solana) reside on Pythnet, Pyth offers the capability to enhance scalability, reducing the cost and time required for direct integration of data streams on supported/new chains. However, Pyth’s scalability introduces layers of delay and additional trust/reliance on Wormhole.

Chain link

  • Chainlink’s primary market data streams utilize a push model, often publishing updates at block times on the target chain. This may impose cost burdens on oracle nodes and can occasionally lead to transaction failures during high-volatility environments, although such occurrences are rare.
  • Adding price data streams to new and existing chains incurs higher costs as new streams must be implemented for each supported network.
  • Chainlink’s approach doesn’t rely on additional relayers and doesn’t introduce additional trust between Chainlink’s oracle network and the target blockchain.
  • Chainlink also provides a pull model in its data stream products.
  • Similar to the push model, data is processed, but it’s transmitted to Chainlink’s off-chain data engine, which provides price updates when requested on-chain.
  • Currently, Data Streams are only available on Arbitrum, maintaining eight price data streams.

Usage

  • Pyth safeguards $5.5 billion in funds across 162 protocols on over 50 blockchains.
  • Chainlink safeguards $38.7 billion across 371 protocols on 19 blockchains.

Both systems have advantages and disadvantages in terms of market data information flow. Pyth’s model is better suited for scaling the quantity of price information streams while maintaining a high update frequency. However, Pyth’s ability to maintain high-fidelity data relies on an assumption that the cost of reputation and collusion outweighs any potential benefits to providers from malicious behavior. Its network stability depends on the normal operation of Wormhole. In contrast, Chainlink’s model requires less trust in the original data sources and the oracle network’s relationship with supported blockchains since it obtains data from secondary aggregation sources and directly publishes to the target chain. However, expanding data information flow and covering a wider range of blockchains comes at a higher cost. Nevertheless, as the cryptocurrency market continues to grow, new protocols need to consider many options and trade-offs/risks when implementing different oracle price information streams.

Summary

Pyth Network is a pioneering protocol reshaping the oracle landscape. It nurtures a first-party data provider network and implements a pull-based oracle, shifting costs to oracle users. Through this design, Pyth reduces costs for oracle networks, increases price update frequency, and directly safeguards market data based on primary data sources. Since its launch, Pyth has expanded to serve the most blockchains and holds the fourth-largest share of total value (as of March 2024, $5.5 billion). With the expansion of its provider network, Pyth aims to fulfill its mission of making all world financial market data available for Web3.

Statement:

  1. This article is reproduced from [deep tide TechFlow], the copyright belongs to the original author [Messari], if you have any objection to the reprint, please contact Gate Learn Team, the team will handle it as soon as possible according to relevant procedures.

  2. Disclaimer: The views and opinions expressed in this article represent only the author’s personal views and do not constitute any investment advice.

  3. Other language versions of the article are translated by the Gate Learn team and are not mentioned in Gate.io, the translated article may not be reproduced, distributed or plagiarized.

Start Now
Sign up and get a
$100
Voucher!