BitoBridge
A Bitcoin-focused omnichain bridge.
Last updated
A Bitcoin-focused omnichain bridge.
Last updated
BitoBridge is an omnichain bridge that focuses on integrating Bitcoin and its tokens across multiple blockchains. BitoBridge is designed to be a trust-minimized, decentralized, two-way pegged Bitcoin omnichain bridge achieved by leveraging Internet Computer (IC) technologies. It is intended to enhance Bitcoin and its tokens' utilities by incorporating them into diverse DeFi ecosystems. BitoBridge serves as a cornerstone in Bitomni’s suite of built-in BTCFi DApps. The governance of BitoBridge involves the Bitomni DAO, where BITO token holders democratically manage protocol changes and upgrades. This ensures transparency and community involvement, allowing users to actively influence the development and future direction of BitoBridge within the expanding BTCFi landscape. The overview of the BitoBridge structure is shown below:
This diagram provides an overview of the BitoBridge structure, illustrating the system's capacity to facilitate interoperability between blockchains, notably Bitcoin, Ethereum, etc, via the IC network.
At the heart of this structure is the BitoBridge Hub Canister, located centrally within the diagram. This canister acts as the principal coordinator for various activities across the IC and external blockchains. Connected to the Hub are several key components: the BitoBridge Minter Canister (M), responsible for dispatching minting tasks to the corresponding Ledger Contract on the target chain; the BitoBridge Bitcoin Canister (B), which manages interactions with the Bitcoin blockchain via the Chain-key Bitcoin (cKBTC) within the IC framework.
The structure also extends to the peripheral components specific to each supported blockchain—Ethereum, Solana, and more. Each blockchain interacts with the BitoBridge through dedicated contracts. These include the Ledger Contract (L), which manages token minting operations, and the Helper Contract (H), which supports token management functions like token burning.
BitoBridge is designed with core principles that underpin its functionality and reliability:
Trust-minimized: The bridge's operation relies minimally on trust between parties. Instead of depending on a central authority or intermediary to verify transactions, BitoBridge utilizes IC's Chain-key Bitcoin (ckBTC) and Chain Fusion technologies [1,2], which rely on advanced cryptographic proofs and automated consensus mechanisms. These technologies ensure that transactions are valid and secure without requiring users to trust any single entity. This minimization of trust is crucial for maintaining security and integrity in BTCFi operations.
Decentralized: It refers to operating across a decentralized network of nodes within IC instead of a centralized server or platform. This structure ensures that no single point of failure can compromise the bridge’s functionality or the security of the assets it handles. Each node in the network participates in validating transactions and maintaining the bridge’s canisters, spreading risk and control evenly across the network. This helps to prevent potential attacks or fraud that are more feasible on centralized systems.
Two-way pegged: BitoBridge allows for the reversible exchange of Bitcoin and its tokens between Bitcoin native blockchain and other blockchains where it is used. Users can convert their Bitcoin to bitoBTC on IC or a wrapped version, bitoBTC.x, to interact with DeFi or BTCFi applications on blockchains like Ethereum (bitoBTC.eth), and vice versa, convert their wrapped tokens back into native Bitcoin. This functionality is critical for enabling liquidity and flexibility in using Bitcoin and its tokens across different blockchain ecosystems.
Omnichain: It refers to BitoBridge's comprehensive ability to unite various blockchain networks into a cohesive and interoperable ecosystem.
BitomniBTC (bitoBTC) is an ICRC-2 token on IC backed 1:1 by Bitcoin (BTC) [3], so 1 bitoBTC can always be redeemed for 1 BTC and vice versa. It is similar to ckBTC and a critical component of the Bitomni ecosystem. It is designed as a twin of native BTC, enhancing its functionality in the IC ecosystem. bitoBTC enables BTC holders to participate in DeFi and BTCFi activities beyond the Bitcoin blockchain, maintaining their assets' inherent value and security while promoting interoperability and liquidity.
bitoBTC potentially facilitates various BTCFi services, including lending and borrowing, restaking, and cross-chain crypto on-chain fund management. It mirrors the value of native BTC and is secured by advanced cryptographic methods and robust smart contracts to guarantee transaction integrity.
ICRC.x tokens represent wrapped versions of ICRC-1 and ICRC-2 tokens on various blockchains, facilitating seamless asset interoperability across different ecosystems. For instance, BITO.eth represents the BITO token, an ICRC-2 token, on the Ethereum blockchain, while bitoBTC.solana denotes the bitoBTC token on the Solana blockchain. This wrapping mechanism is fundamental to extending the utility of native ICRC tokens beyond IC, enabling them to engage in the broader DeFi landscape.
These wrapped tokens maintain a 1:1 value with their native counterparts, ensuring that each ICRC.x token can always be exchanged back to its original ICRC token. This functionality is crucial for maintaining value consistency and trust across different blockchains. By leveraging advanced cryptographic solutions and secure smart contract implementations, ICRC.x tokens uphold transaction integrity, providing a robust and decentralized method for users to participate in cross-chain DeFi activities, enhance liquidity, and access a broader range of blockchain applications.
BitoBridge is a decentralized application (DApp) that lives on IC and comprises a series of canisters designed to deliver omnichain bridging capabilities for Bitcoin, Bitcoin's emerging tokens, and ICRC-1 and ICRC-2 tokens [4]. It interacts with the Bitcoin blockchain and other blockchains, such as Ethereum, Arbitrum, Aptos, etc. The BitoBridge functionality is built upon the Chain-key Bitcoin and Chain Fusion of IC, which makes it possible for canisters to receive, hold, and send Bitcoin and interact with other blockchains directly. Several canisters, the bitoBridge Hub, BitoBridge Bitcoin, BitoBridge Minter, and two smart contracts on each supported blockchain, the Ledger and Helper, together provide the bridging functionality.
An overview of the basic architecture of BitoBridge is depicted in the following figure.
The ICRC <> ERC20 and BTC <> bitoBTC processes are denoted by the ‘ICRC-x’ and ‘BTC-x.’ These processes involve three types of blockchains: Internet Computer, Bitcoin, and other platforms such as Ethereum and Solana.
One of the critical functionalities of BitoBridge is the ICRC <> ERC20 feature, which supports the transfer of ICRC1 and ICRC2 tokens to Ethereum and potentially other EVM-compatible blockchains, enabling seamless asset transfers and their subsequent return to the Internet Computer. The basic steps of the ICRC <> ERC20 feature are listed below as "Step ICRC-x":
ICRC-1: Beginning at the bottom of the diagram, the user either transfers ICRC1 tokens directly to the BitoBridge Hub canister’s sub-account or grants approval for the Hub canister to transfer ICRC2 tokens on their behalf.
ICRC-2: The user then interacts with the BitoBridge Hub canister’s bridge()
function, specifying the target_chain
, token ledger_id
, the token amount
they wish to bridge, etc.
ICRC-3: The Hub canister initiates the token transfer by invoking the ICRC Ledger's transfer()
function for ICRC-1 tokens and transfer_from()
function for ICRC-2 tokens.
ICRC-4: The ICRC Ledger confirms the transaction and returns the block_index
to the Hub canister.
ICRC-5: The Hub canister dispatches the minting task to the BitoBridge Minter canister using the dispatch()
function.
ICRC-6: The BitoBridge Minter canister sends a minting transaction to the target chain’s RPC node using IC’s HTTPS Outcalls [5].
ICRC-7: The Target Chain Minter Contract on the target blockchain mints the tokens directly to the user's address.
ICRC-8: The RPC node returns the transaction hash (tx_hash
) to the BitoBridge Minter canister.
Bridging between BTC on the Bitcoin blockchain and bitoBTC on EVM-compatible chains is facilitated through IC's Chain-key Bitcoin and our ICRC <> ERC20 module, enhancing the bridge’s interoperability. Likewise, bridging between BTC on the Bitcoin blockchain and bitoBTC on non-EVM-compatible chains necessitates the development of specialized ICRC <> Other Blockchain modules tailored for each specific blockchain environment.
The ckBTC Minter is essential in managing ckBTC tokens by minting new ones upon receiving Bitcoin and burning them during Bitcoin withdrawal requests. For security, it waits for six confirmations before minting ckBTC and burns tokens before transferring BTC back to users. The ckBTC ledger adheres to ICRC-2 and ICRC-1 standards, which ensures accurate account balance updates and effective handling of minting and burning operations. Additionally, the ckBTC Minter integrates with the KYT canister to perform ‘know-your-transaction’ (KYT) checks. This critical step confirms that only ‘clean’ bitcoins back the issued ckBTC tokens and prevent transactions associated with illicit activities to Bitcoin addresses. These KYT checks add an extra security layer for ckBTC users, safeguarding the integrity of transactions within the network [5].
The fundamental operations for the BTC <> bitoBTC feature, denoted as "Step BTC-x," proceed as follows:
BTC-1: The process starts with the user obtaining a Bitcoin address from the BitoBridge Bitcoin canister.
BTC-2 to BTC-4: The BitoBridge Bitcoin canister retrieves the Bitcoin address by calling the ckBTC Minter canister’s get_btc_address()
function, which returns the address for the user deposit.
BTC-5 to BTC-6: The user deposits BTC into the provided address, and the transaction ID (tx_id
) is submitted to the BitoBridge Bitcoin canister.
BTC-7: The BitoBridge Bitcoin canister updates the user's balance by signaling the ckBTC Minter canister to update the balance (update_balance()
).
BTC-8 to BTC-10: The ckBTC Minter retrieves UTXOs from the Bitcoin network and performs KYT checks on the transaction UTXOs and addresses via the KYT canister, receiving a compliance confirmation in return.
BTC-11: On passing the KYT checks, the ckBTC Minter mints an equivalent amount of ckBTC corresponding to the deposited BTC (minus fees).
BTC-12 to BTC-13: The BitoBridge Bitcoin canister authorizes the BitoBridge Hub canister to manage the newly minted ckBTC, initiating the bridging process with the bridge()
function to specify the target chain and token amount.
BTC-14 to BTC-15: The Hub canister executes the token transfer using the ckBTC Ledger's transfer_from()
function, which validates the transaction and returns a block_index
.
BTC-16 to BTC-19: Finally, the Hub canister dispatches the minting task to the BitoBridge Minter canister, which sends a minting transaction to the target chain’s RPC node. The corresponding smart contract on the target blockchain then mints bitoBTC tokens directly to the user's address, with the RPC node providing a transaction hash (tx_hash
) back to the BitoBridge Minter canister.
This process guarantees a seamless and secure bridging of BTC to EVM blockchains, with potential adaptations for other blockchain types.
For details on the design of BitoBridge, please refer to the BitoBridge Design Document.