Introduction
Bitboost: An EVM co-processor to enable programmable assets on Bitcoin
Last updated
Bitboost: An EVM co-processor to enable programmable assets on Bitcoin
Last updated
We have seen a trend of issuing assets on Bitcoin, for example, protocols like Ordinals, BRC-20, and Atomicals. These protocols store data on the Bitcoin blockchain and use an off-chain indexer to parse the data and generate states. This greatly enriches the assets and ecosystem on Bitcoin.
However, currently these protocols only support some basic functions of assets, such as deployment, minting, transfer, and exchanges with BTC through PSBT (Partially Signed Bitcoin Transactions). Users cannot define more behaviors of assets, which limits the application scenarios of these assets. Applications such as swaps, lending, stablecoins, etc. cannot be implemented on existing protocols.
Therefore, we propose an upgraded protocol to build a programmable execution environment on Bitcoin and call it a Bitcoin co-processor. It uses Bitcoin for sequencing and storage of transactions, while an indexer with EVM integrated is used for transaction execution. In this co-processor, there is a native token that is minted through PoW (Proof of Work). The native token can be exchanged with BTC trustlessly using PSBT, establishing an economic link between the co-processor and BTC. Users can use the native token as gas to create and call smart contracts in the co-processor.
An EVM-executable co-processor transaction consists of the following fields. Please note that when the Data
field is empty, it is a token transfer transaction; when the Data
field has content, it is a smart contract transaction.
We store it in a Bitcoin transaction in the following format.
All fields are inscribed into the witness of an input.
When the indexer detects a transaction on Bitcoin that matches this format, it triggers its execution in EVM.
To mint the native token in the co-processor, we define the mint transaction. It is similar to the coinbase transaction in Bitcoin.
The first input inscribes To
into its witness.
Miners can try different ways to modify the transaction hash until it meets a difficulty requirement, for example, changing the change address or adding an OP_RETURN output with random data inside. Once such a transaction appears on Bitcoin, the native token will be rewarded to the To
address. We will also introduce a difficulty adjustment mechanism to ensure that the native token is minted at a constant rate over time.
The lock transaction is used to lock a certain amount of native token into a UTXO, which can be later used for PSBT exchange with BTC. Its transaction structure is as follows.
All needed fields are inscribed into the witness of an input.
The first output is the target UTXO where the native token will be locked.
This transaction will deduct the Value
amount of the native token from the From
address's balance and lock it into the target UTXO.
The exchange transaction uses UTXO from the lock transaction to construct a PSBT, which sells the native token for BTC trustlessly. Its structure is as follows.
The first input is the UTXO with native token locked. Its signature only applies to the first input and the first output.
The buyer will add the second input, which contains the BTC to spend and all needed fields inscribed into its witness.
The first output is the BTC receiving address from the seller.
When such a transaction is detected, the native token will be unlocked from the UTXO and added to the To
's balance.
This protocol builds an EVM execution environment on Bitcoin. Users can do anything in the execution environment just like on Ethereum, such as transferring native tokens, issuing ERC-20 or ERC-721 tokens, creating smart contracts, etc. It uses Bitcoin as the sequencer and data availability layer. Its only connection to Bitcoin is a PSBT-based decentralized trading pair between the native token and BTC. The entire protocol is trustless and has the same security level as Bitcoin.