🐬Apollo
Request-Based Data Delivery Across EVM networks
Last updated
Request-Based Data Delivery Across EVM networks
Last updated
Technical Overview:
Apollo is an intricate module developed to bridge the gap between EVM (Ethereum Virtual Machine) contracts and the data-rich environment of the Orally platform, particularly its Sybil component. Beyond mere data provisioning, Apollo is also configured to provide a level of randomness through a cryptographic measure, utilizing the unpredictable BLS signatures inherent to the Internet Computer (ICP) execution layer.
Deep Dive:
EVM Contract Communication:
An EVM-based contract, when requiring data or randomness, communicates its requirement to the Apollo EVM contract.
This request, in essence, is a call to Apollo's EVM contract specifying the data required or the randomness generation needed.
Apollo’s ICP Contract Interaction:
Apollo's ICP contract actively monitors its counterpart on the EVM for any new events or data requests.
Upon detecting a request, the ICP contract undertakes a series of operations to address this requirement.
Data Procurement Through Sybil:
If the request pertains to data, Apollo's ICP contract communicates with the Sybil module to fetch the necessary data.
Sybil, as already known, aggregates and verifies the data from multiple sources to ensure its reliability and accuracy.
Randomness Generation:
If the request pertains to randomness, Apollo's ICP contract leverages the BLS (Boneh-Lynn-Shacham) signatures inherent in the ICP execution layer.
This randomness generation is unpredictable, secure, and reliable, making it suitable for various applications.
Transaction Preparation & Signature:
Post data fetching or randomness generation, Apollo's ICP contract prepares a transaction containing the necessary data.
This transaction is designed to call a predefined callback function named fulfillData([types])
on the requester's contract. The types
parameter varies depending on the nature and structure of the data.
Before dispatching, the transaction is signed to ensure its authenticity and integrity.
Transaction Dispatch to Requester:
The signed transaction, containing the requested data or randomness, is sent to the originating contract on its native blockchain.
Upon receipt, the requester's contract processes the fulfillData([types])
function, assimilating the data into its operations or logic as needed.
Payment Mechanism:
Subscription-Based:
Rather than a one-off payment, Apollo adopts a subscription model where the requesting contract (identified by its address) is charged.
Subscriptions allow for repeated and seamless data requests without the need for individual transaction payments.
Use Cases:
Dynamic Data Requirements in DeFi:
Decentralized finance (DeFi) platforms often need real-time or periodic data updates to make lending, staking, or swapping decisions. Apollo can provide this data on-demand.
Gaming & Lotteries:
Many gaming dApps or decentralized lotteries require randomness to decide outcomes. Apollo's randomness generation is apt for such applications.
Decentralized Identity Verification:
For dApps requiring identity or user-related data verifications, Apollo's connection to Sybil can facilitate real-time verification data.
Additional Attributes:
Multi-Chain Support:
Although Apollo inherently communicates with EVM contracts, its architecture and underlying principles enable potential expansion to support other blockchain infrastructures.
Security:
The dual involvement of EVM and ICP contracts ensures robustness. The BLS signature mechanism further enhances security, especially in randomness generation.
Summary:
Apollo stands as a testament to the power of bridging diverse blockchain technologies – EVM and ICP in this case. By offering on-demand data delivery and randomness generation, it embodies the spirit of decentralization and enhances the capabilities of smart contracts across blockchains. Its secure, reliable, and subscription-based approach makes it a vital asset in the modern decentralized application ecosystem.