Warp: A Bridge for Tendermint Chains
Long term we imagine a world where multiple blockchains co-exist. With various protocols specialised for specific use-cases. As a result we’re extremely passionate about beginning that effort of developing a framework around how we’ll facilitate cross-chain transactions on Solana. Therefore we’re presenting Warp, an MVP bridge implementation between Solana and tendermint chains.
Initially the bridge will be quite simple, but evolve over time to be compatible with other cross-chain infrastructure such as IBC.
Warp MVP v0
The initial implementation of this MVP is to build a mechanism to move tokens between a tendermint chain and Solana for the same owner. The Warp request will contain a proof that the owner of the tokens on the tendermint chain has control of a valid private key on Solana and vice versa. This extra layer of security reduces the likelihood that tokens are mishandled.
The tendermint chain runs a relayer that receives transactions on the their chain, and transfers tokens from a Solana token account and vice versa. For the duration that the tokens exist on Solana, the relayer takes custody of the tokens on the tendermint chain. Tendermint currently doesn’t have a smart contracts engine, so for v0, the relayer handles verification of the request externally from the chain.
Example #1: Sending tokens from the Tendermint Chain to Solana
- Relayer receives a transaction for N tokens
- Transaction contains a note, Solana pubkey + signature
- Relayer transfers N tokens on solana to the pubkey
If Solana signature verification fails, the relayer will transfer the tokens back to the owner on the tendermint chain.
Example #2: Sending tokens from Solana to Tendermint Chain
Relayer initializes the token program on solana with u64::MAX as its supply. The max supply is under custody of the relayer account. The amount of outstanding tokens on Solana is (u64::MAX - current relayer account balance). This amount should always equal the balance of tokens in the relayer account on the tendermint chain.
- Relayer receives a transaction for N tokens on Solana
- Transaction contains a note, tendermint chain address + signature
- Relayer transfers N tokens on tendermint chain to the address
Warp MVP v1
The goal of this MVP is to ensure that the proof of account ownership is verified or the transaction fails. Solana and the tendermint chain will use a smart contract to verify the signatures in the “note”. Transaction to move funds will fail if the signature check fails. V1 for Solana can ship prior to the tendermint chain since cosmwasm implementations for those chains are still several months away. is at least 12 weeks out.
Warp MVP v2
The goal of this MVP is to reduce the trust assumptions for the relayer. Instead of adding M/N signature verification, or a more sophisticated key management for the relayer, both chains should support cosmos IBC to move assets between each other. Conceptually, IBC is a light client implementation as a smart contract. With an IBC implementation, the relayer becomes a trustless message passing relayer between validators on both chains. The IBC smart contract verifies the consensus proof that the other chain accepted the transaction.