Thanks to the encryption at the core of the protocol, benefit from fast and confidential cross-chain transactions while saving money on fees. No need to trust validators. Transfer sensitive data through an encrypted cross-chain channel without the risk of compromise.
Asterizm is the ideal solution for cross-chain communications in the following formats: private to private and private to public chains. Remain compliant with the latest regulatory requirements while keeping your cross-chain operations fast, cost-efficient, secure and easily scalable.
An on-chain module that checks the validity and integrity of the transactions.
An off-chain module consisting of two independent entities that encrypt, decrypt and transmit the data.
The client implements a smart contract using an abstract class from Asterizm and deploys it to the required networks. The _initAsterizmTransferEvent() method is used to initiate a cross-chain transaction on the contract. The data and parameters of the cross-chain transaction are transmitted to it. The transaction can contain arbitrary information and one or multiple actions (instructions) to be performed on the destination networks.
The client smart contract sends the received data and hash based on the payload generated at that moment xID, source chain id, destination chain id, client smart contract address in the source and destination chains. Note: At this step, the key parameters are formed, which will further ensure the security of the cross-chain transaction, namely to confirm its validity and integrity in the destination chain.
The Client off-chain module encrypts the cross-chain transaction contents and sends it back to the client’s smart contract in the source initializer network, calling the cross-chain transfer initialization method initAsterizmTransfer().
Before sending the encrypted data received from the client off-chain module to the Initializer smart contract, the Client smart contract checks the received data using hash matching, thus preventing spam and spoofed transactions. Note: This step verifies that this exact transaction was initiated on the client's smart contract, which eliminates the possibility of spam from the client's off-chain module.
The Initializer smart contract checks the transaction nonce to preserve the cross-chain transaction execution sequence and transmits the encrypted data with the unique parameters to the Transmitter smart contract. Note: When a data packet is received on the Initializer smart contract, the client is identified based on the destination chain id, the Client smart contract address in the destination chain, and the client smart contract address in the source chain. After the client (sender) of the cross-chain transaction is determined, the nonce value is incremented for it.
Asterizm Relayer servers pull the encrypted data with the parameters from the Translator contract and send it to the Translator smart contract in the destination network for further processing.
The Translator smart contract on the destination network accepts the encrypted data with the parameters from the Relayers and passes it to the Initializer smart contract for validation.
After receiving the encrypted data and the parameters, the Initializer smart contract checks the nonce to comply with the transaction sequence, stores the transaction xID to validate the transaction at step 10, and transmits the data to the client’s smart contract.
The client’s smart contract in the destination network receives the encrypted data with the parameters, creates an event, and transmits the data to the client’s off-chain module for verification and decryption. Note: This is where the first step of cross-chain transaction validation is performed by matching the hash from the decrypted data, original data and xID generated in the source network at the transaction initialization, and by checking the source network and address. The client’s server verifies that the data is complete and consistent, thus eliminating the risk of compromise at the Relayer server level.
After receiving the confirmation of the validity and integrity of the cross-chain transaction, the client’s smart contract executes the instructions or data sent in the cross-chain transaction, calling methods of other contracts or performing calculations on the client’s contract. The logic of this step depends solely on the client’s business logic implemented in the cross-chain transaction.
Cross-chain distribution of the token accumulated in the protocol to several networks with a single transaction at claim.
Distribute the emission across different networks depending on the demand for tokens in each network.
Top up your gas token balance in multiple chains with a single transaction.