Skip to main content

Architecture

This topic provides information about the architecture that's designed to facilitate the seamless transfer of FT4 assets across multiple chains within the Chromia blockchain platform. It is the foundation for enabling cross-chain asset movements and handling of internally and externally minted assets, orchestrating the entire transfer process from asset registration to finalization.

Definitions

To fully understand the architecture, here are some key definitions and concepts:

  • Internal assets: Assets that are minted directly on the local chain.
  • External assets: Assets used within the local chain but minted on a different chain.
  • Origin chain: The specific chain from which an asset can be received, may or may not be the same as the issuing chain.
  • Issuing chain: The chain where an asset is initially minted.

Registration of assets

Asset registration is a mandatory step on both the sending and receiving chains before initiating a cross-chain asset transfer. For external assets, specifying the origin chain during registration is essential.

For instance, consider an asset "X" minted on chain A and needed on chain B. Chain B must register asset X and designate chain A as its origin chain.

Chain hierarchy and asset origin

An external asset can have only one origin chain, which involves decision-making. For instance, if chain C wants to use asset X, it must decide whether chain A or B should be its origin chain.

or

Choosing between the two determines how asset X is transferred from C to B. If A is chosen as the origin chain, the asset flows through A; otherwise, it moves directly to B.

note

The terms 'parent' and 'child' chains are used for illustrative purposes and don't imply an actual hierarchy. This model may vary for different assets.

Asset tree structure

Connecting chains based on the asset's origin chain results in a tree-like structure that outlines the flow of an asset across the network. This structure features a root (the issuing chain) and leaves (receiving chains), making monitoring asset flow and detecting irregularities easier. Anomalies, such as unauthorized minting, become apparent when a child chain sends more assets to its parent than it receives.

Validating origin chains

Currently, there is no automatic method for verifying whether the chosen origin chain has registered the same asset. This underscores the importance of accurate asset registration. For instance, if Chain D has not registered asset X, attempting to send it to Chain B (known to have it) will not succeed.

warning

Selecting trustworthy origin chains is crucial as malicious or misconfigured chains could lead to the users token being lost or stolen.

Operations in cross-chain transfers

Cross-chain transfers involve three key operations:

  1. init_transfer: Initiated on the source chain.
  2. apply_transfer: Executed on all intermediate chains as well as the target chain.
  3. complete_transfer: Finalizes the transfer back on the source chain.

The direction of asset flow determines whether assets are locked, minted, unlocked, or burned during the process.

Anchoring and ICCF

After the initial transfer, the next chain in line must verify the previous transaction's inclusion in a block. This verification process relies on the ICCF (Interchain Confirmation Facility) mechanism, which uses anchoring chains for proof verification. For a deeper understanding of ICCF, refer to the Interchain Confirmation Facility topic.