Linking Bitcoin Value to Ethereum Smart Contracts with BTC Relay

Blockchain technology has revolutionized the movement of value. Being able to transfer millions of dollars digitally with no intermediary and a transaction fee of just a few cents was unheard of before Bitcoin.


While this innovation has gained a global spotlight, there was always a lingering problem: transacting value between Bitcoin and Ethereum still required a third party intermediary, the very thing these decentralized technologies sought to replace. BTC Relay replaces that third party with a trust-minimized smart contract. This deepens the interconnection of two major elements of the blockchain space, bringing us closer to a unified global value transfer network.

The way BTC Relay works is simple. An external party, known as a Relayer, sends a transaction to the BTC Relay smart contract with a data payload containing the header of a recent (hopefully not-yet-submitted) Bitcoin block. BTC Relay checks the validity of this header against its existing chain of block headers. If the new header fits it is added to the chain of Bitcoin headers that BTC Relay maintains. In this way, a kind of Simplified Payment Verification node is built within the BTC Relay contract.

Simplified Payment Verification in a nutshell:


To prove that either transaction 7 or 8 has been recorded in the Bitcoin blockchain, all that is required is the Block Number and the elements highlighted in orange. The turquoise branch nodes 6 and 4 are computed in the verification process. Armed with this “Merkle proof”, and the header chain held by BTC Relay, bitcoin transactions can be verified. Any user or smart contract on the Ethereum system can then ask BTC Relay to validate if a specific transaction actually occurred on the Bitcoin network.

With this infrastructure in place we can build a new breed of outward facing services. A vending machine contract could accept proofs that funds had been transferred to a specified Bitcoin address, and vend asset tokens on the Ethereum blockchain in return. This way Ethereum crowdsales could accept bitcoin. A tool like this would also make it possible to pay for contract execution with tokens from outside the Ethereum network.

Block header chains of other kinds may be built using the same tools. Consortia can use this technique for cross-chain value transfer. In this case, the public Ethereum network might act as a neutral transport layer, bridging two discrete worlds, possibly enabling two banks in different jurisdictions to settle a trade, or maybe execute business logic tied to supply chain logistics receipts.

BTC Relay gives us a glimpse into a future where blockchain interoperation is the norm and amazing new things are possible.




BTC Relay is an Ethereum contract that stores Bitcoin block headers. BTC Relay uses these block headers to build a mini-version of the Bitcoin blockchain: a method used by Bitcoin SPV light wallets.

BTC Relay is open source, trust-free, and decentralized.



Ever Wonder How Merkle Trees Work? An Overview: