ADR-003: Babylon Integration
Status
Research
Context
This ADR introduces the idea of integrating Babylon chain's Bitcoin staking with Int3face's native Bitcoin bridging. It leverages the concept of a vault as an entry point for the bridge, which allows tokens to be staked using Babylon's contract.
On the Babylon side, there are the following main entities:
- Validators: Secure and operate the Babylon chain.
- Finality Providers: Validators on the Bitcoin side, functioning similarly to PoS validators but for Bitcoin.
- BTC Stakers: Users who intend to stake their BTC assets.
On the Int3face side, the main entities are:
- Validators: Secure and operate the Int3face chain.
- Observers: Facilitate bridge transfers between external chains and Int3face.
In Babylon, each finality provider has its own address in Bitcoin, which can be used for receiving delegations and eventually staking. In contrast, Int3face uses a single address representing the vault, which serves as the entry point for incoming and outgoing transfers.
Bitcoin delegation process:
Bitcoin transfer process:
The idea is to use the Int3face vault address as the staking vault. All users who use it for staking will receive an equivalent amount of funds in Cosmos-based tokens. Conversely, everyone intending to transfer will simultaneously receive bonus fees for staking. This can be considered a form of Bitcoin Liquid Staking.
Approach 1
Distribute vault funds across multiple finality providers. As soon as the Int3face vault receives an incoming transfer, it stakes the funds using several finality providers.
Difficulties:
- Does the vault need to unbond from several finality providers to collect all necessary funds?
- How to handle immediate unbonding if the vault doesn't have enough funds at the moment?
- What if the vault is rotated?
- Such token distribution is quite difficult and unsafe.
- All transfers require TSS communication.
Approach 2
Transfer the asset to Babylon using IBC and stake directly, bypassing Bitcoin. This option involves establishing the IBC connection, allowing special wrapped tokens to be transferred to Babylon and staked directly without interacting with Bitcoin.
Difficulties:
- How to properly burn/mint tokens?
- The IBC connection is quite complex.
- Additional work required on the Babylon side.
These questions apply to all solutions and must be addressed in detail before implementation:
- How to process unbonding?
- How to handle immediate unbonding?
- In which currency do users receive incentives?
- What will happen during vault rotation?
References
- BTC staking overview: https://babylonchain.io/blog/technical-preliminaries-of-bitcoin-staking
- BTC staking background: https://babylonchain.io/blog/babylon-s-bitcoin-staking-contract
- BTC staker guide: https://docs.babylonchain.io/docs/user-guides/btc-staking-testnet/become-btc-staker
- Finality provider guide: https://docs.babylonchain.io/docs/user-guides/btc-staking-testnet/finality-providers/overview