Initiating a cross-chain transaction requires sending a proposal to a Circuit within the source blockchain. This Circuit then generates an "operation proposal event" that is signed and aggregated by Transmitter Agents and conveyed to the Controller Smart Contract on the Entangle Blockchain.
Upon successful verification, Conductor Agents forward the proposal to the corresponding Circuit on the destination blockchain, where a final verification is conducted before the targeted smart contract is called, completing the cross-chain message transfer.
In addition to handling operation proposal events from Circuits, Transmitters have the ability to gather information from events generated by any smart contract, various internet sources, or directly from a backend system when required.
The diagram below presents a high-level illustration of cross-chain messaging facilitated by the Proton Messaging Layer:
1) A user triggers a cross-chain smart contract call on Chain A.
2. The smart contract forwards an operation proposal to Chain A's Circuit (Gateway), which in turn emits a corresponding "event proposal".
3) Transmitters retrieve this event proposal.
4) Transmitters sign and forward the proposal to the Controller Smart Contract on Entangle Blockchain for verification.
5) The Controller confirms that:
a. Transmitters are authorized to relay data for this operation
b. Consensus of Transmitters validated through ECDSA Cryptography
6) a. Upon successful verification, the Controller emits an event containing the operation data and the Transmitters' signatures.
b. If the verification fails, the transaction is halted and aborted.
7) The Conductor collects the operation data and array of signatures, and relays it to the Circuit on Chain B.
8) The Circuit on Chain B authenticates the data using ECDSA cryptography. If the authentication succeeds, it calls the targeted smart contract on Chain B to complete the cross-chain operation.
On the following pages, you can learn how to send and receive cross-chain messages: