We have designed the Analog network as a “Blockchain of Blockchains” with the notion that no single decentralized platform can solve everything. In this regard, the Analog network allows sovereign Blockchains—each with its own consensus protocol, use case, design, and tokens—to seamlessly interoperate while benefiting from the network’s scalability and security.
The core of Analog’s interoperability feature—implemented within the Timegraph API— is a communication protocol that guarantees valid trustless delivery. The protocol provides a mechanism by which separate and sovereign Blockchains can voluntarily interact while sharing only minimum requisite common interface in a private, secure, and trustless manner.
Interoperability Components
Given the generality of Blockchain networks with Turing-complete smart contract languages, we can bridge the Analog network and any other smart contract capable platform. The Analog network leverages onchain clients that act as bridges, allowing for the cross-chain transfer of values.
Each chain that connects to the Analog network has one Analog client implemented as a Tesseract with an onchain smart contract to the Timegraph API. The primary function of the Tesseract is to allow valid delivery by using the Analog’s PoT as a back-end. Each Tesseract comprises of three modules: communication, validation, and libraries, as shown in figure 1 below:
Figure 1: Interoperability stack
The communicator and validators modules serve in a manner similar to the TCP/IP protocol suite, with messages sent down the stack on the sender’s side—from Communicator to validator to the Timegraph API—then up the stack on the receiver’s side.
Besides the core modules, the client also incorporates libraries that serve as auxiliary smart contracts, defining how communications for a specific Blockchain gets handled. Each Blockchain in the Analog ecosystem has an associated library, and each client stores that copy. This modular design enables the Analog network to quickly onboard new chains and extends its interoperability mechanism on-demand.
To enable seamless communication between respective chains, libraries must be present on both ends. This makes the Analog network a fully-connected network that can orchestrate time data transactions between any pair of nodes.
The Timegraph API allows the network to read block headers from one chain and transmit it to another chain. The Timegraph API can also serve as an off-chain service, allowing time data from off-chain networks to trigger continuum smart contacts in the Analog network. This feature is essential since it enables many Blockchains to access external inputs and outputs without interacting with other Blockchains.
Cross-Chain Workflow
Below are steps involved when a user DApp on chain A sends a message to another user DApp on chain B via the Analog network:
- A DApp A on chain A executes its transaction where each transaction has a unique identifier (ID). It then transmits the request to the Analog Communicator consisting of transaction ID, a global ID that points to a smart contract on chain B, and payload (time data that DApp A wishes to transmit to DApp B).
- The Communicator on chain A generates an Analog packet containing the global ID and payload and sends the packet to the validator.
- The validator on chain A transmits the transaction ID and the global ID to the Analog’s Timegraph API. This step notifies the Analog network that the block header for the current block (specified by transaction ID) needs to be sent to chain B (specified by the global ID).
- The Timegraph API reads the block header from chain A and the proof associated with time data in chain A.
- The Timegraph API confirms that the block corresponding to the current block in chain A has been fully committed on chain A and transmits the header information to chain B. This process will vary depending on each chain but will typically involve waiting for a random amount of time for blocks to receive the confirmations.
- The Analog network processes the transaction using its PoT consensus protocol.
- The Analog network transmits the block hash specified by the block ID to the validator on chain B. The validator then forwards the same packet to the Communicator on chain B.
- The Communicator transmits the received packet consisting of the transaction ID, global ID, and payload to DApp B.