1) The user wants to swap tokens from Blockchain 1 to Blockchain 2. A user makes a transaction on Blockchain 1 — this sends tokens to our Cross-Chain Routing smart contract on Blockchain 1.
2) There are separate validators which catch this event in Blockchain 1. For detailed Validator architecture, see below.
3) Each validator signs the transaction by its own signature, and forwards a message to the relayer.
Validators work completely independently of each other
Validators know nothing about each other
no IP addresses
no blockchain addresses
4) When the relayer collects two of three signatures from the Validators, it initiates a transaction on Blockchain 2 by calling the function of the Cross-Сhain Routing smart contract in Blockchain 2 — sending tokens to the user.
5) The swap contract verifies that ⅔ of the signatures have been collected, and sends tokens to the user.