Every day that passes is closer to the relaunch for BandChain Phase 2 (Laozi), the first decentralized data economy for institutional-grade data providers and blockchain applications. We are proud to share the second article in our BandChain Phase 2 Whitepaper Digest series with our community which dives into how IBC will be implemented into Band Protocol and the network effects introduced into the system.
Band Protocol is building a decentralized oracle network that caters for traditional enterprises to enter the blockchain application industry and Web 3 developers to access trusted, reliable information that is external to on-chain networks. With Phase 2, we unlock a new decentralized data market economy, unrestricted access for institutions to earn revenue from the provisioning of data, support IBC implementation, and Cosmos starport.
Our first article began with a deep dive into Band Protocol decentralized data market economy (Part 1: Scaling the supply side), we now focus on Part 2 — scaling the demand side of the BandChain decentralized oracle network.
With BandChain built based on the Cosmos-SDK, we also allow interaction with our data oracle through Cosmos’ Inter-Blockchain-Communication protocol, IBC, which connects other compatible blockchain chains to request data from BandChain. This includes major blockchain networks such as Terra, Binance Chain, Injective Protocol, Secret Network and many others who will be able to seamlessly integrate and access Band Protocol oracles.
Oracle requests to BandChain can be made through IBC with a communication channel that is created between a destination chain and BandChain. This will require the setup of a pool account on BandChain that is used to pay data source fees and in most cases, owned by an entity or collective from another chain.
A counterparty chain may have a single request key for one pool account for all users, or a counterparty chain may secretly generate a unique request key for each of its users to ensure the same pool account will be deducted from usage by the same user.
Integrating Band Protocol oracles for Cosmos-SDK based networks will require a communication tunnel to be initialized with the oracle module on BandChain. Once the connection has been established, a pair of channel identifiers are generated — one for the counterparty chain and one for BandChain.
The channel identified is responsible for routing outgoing oracle request packers to the targeted oracle module on BandChain. The same identifier will be used to relay back the oracle response.
With BandChain’s short blocktime of ~3seconds, a data request takes approximately 5 seconds from submitting the initial request until the request receives the final result. The IBC oracle request flow can be summarised in eight steps:
- Requesters create a request from the destination chain which is relayed to BandChain.
- BandChain oracle modules fetches the corresponding oracle script and starts the preparation phase for returning information from all related data sources.
- BandChain performs various checks such as the total fee for the request not exceeding the fee limit to ensure validity.
- Acknowledgement is sent back to the destination chain which contains the request identifier created by BandChain or an error arising from the checks.
- Assuming no errors, the request is then broadcasted and selected validators for the particular request will proceed to retrieve data from each of the data source.
- With successful validator retrieval, the values are submitted back to BandChain.
- If the number of validators successfully submitting the report is greater or equal to the minimum validator count specified, BandChain computes and stores a final value based on the aggregation logic specified in the oracle script.
- The final result is also directly relayed back to the requesting chain and module in the form of a data packet.
With a pool account set up, the payment flow for IBC requests is similar to that of a direct request. The additional layer is derived from the flow starting on a destination chain where the request is then relayed via a specific port and channel. Once BandChain receives the request, the payment flow is identical to the flow of a direct request with the exception that the account used for paying the fees is the pool account.
Cosmos’ Starport offers a development tool for Cosmos-SDK blockchains — providing a simple framework to scaffold a project with the ability to request oracle data from BandChain. In a few commands, developers can initialize a new chain that requires oracle capability to request data from BandChain immediately on our Phase 2 Testnet.
BandChain Phase 2 brings new capabilities never seen before in the industry for both ends of the user spectrums, developers, and institutional-grade data providers. With the on-chain payment protocol and data economy bridging the gap between the world of traditional enterprises to the blockchain landscape — we are unlocking all the data on the open internet to be accessible by any decentralized application.
With the IBC implementation, Band Protocol will be able to expand integrations with blockchain platforms built on the world’s most used framework, the Cosmos-SDK, at a rapid pace. This in turn brings a significantly higher level of interoperability and blockchain compatibility to Band Protocol to accrue more oracle requests and query fees generated on the platform.