Building an EVM for Bitcoin

Our team has been working on a fun experiment of combining an EVM with Bitcoin in the last couple of months. Since the Taproot Upgrade, we can write more data onto Bitcoin. Ordinals was the first one that let people write files onto Bitcoin. We took a different approach. Instead of jpegs and text files, we let developers deploy smart contracts and dapps onto Bitcoin.

So now we can write “bigger” smart contracts thanks to the large on-chain storage on Bitcoin. Did anyone explore this direction? Would love to exchange notes.

5 Likes

This is really interesting. What stage are you in? I think building the UI will be a challenge for sure. When I tried to invest in Ordinals, setting up sparrow and having to read the docs to do it and the risks just made it seem like a nightmare if it were to be introduced to the masses, it just would not take as is. I am curious about your take on how you’re approaching this issue.

2 Likes

The protocol is live. There are already some sample dapps on Bitcoin (written in Solidity). These dapps are super easy to use. You can even use MetaMask to interact with these dapps.

This has already been accomplished over a year ago & been stress tested.

Enjoy!

1 Like

Bitcoin nft marketplace https://crosschainasset.com

1 Like

Bitcoin decentralized swap https://BTCswap.org you can swap using Bitcoin with extremely low fees.

1 Like

Oh okay awesome. Super interesting, I am excited to see where it goes!

1 Like

Can I understand that you run an “off-chain” EVM and write the states of the transaction results to the Bitcoin blockchain ledger?

Hello. Each Trustless Computer node batches & writes EVM transactions to Bitcoin. The other Trustless Computer nodes read the EVM transactions from Bitcoin and update the “state” locally. So it inherits Bitcoin consensus & security.

Hello. Will study it more. Looks interesting. Thank you for sharing!

How do you deal with clients diverging if there aren’t regular state updates that are agreed to via some consensus mechanism that the network can synchcronize on?

1 Like

The consensus mechanism is actually the Bitcoin consensus mechanism. Trustless Computer inherits Bitcoin security. Trustless Computer nodes agree on the ordering of the EVM transactions written to each Bitcoin block.

Agreeing on transaction order alone is great in a hypothetical world where all software does exactly what it was supposed to do rather than what it was programmed to do. The reason Ethereum includes the latest state root in the block header is to allow clients to synchronize on what the current state is so if any individual client has a bug or corrupted data it can immediately notice that it disagrees with the network and people can troubleshoot the problem.

Today I learned that Bitcoin doesn’t do this! This feels crazy to me, but perhaps it is acceptable in the Bitcoin world because there is functionally only one client so the chance of desync is low (but not zero!).

So its basically merged mining. The blocks of the other chain are posted on Bitcoin and Bitcoin serves as a ledger that orders transactions.

Which mechanism do you use to transfer actual bitcoins into this chain ?) Also, how do you incentivize mining - do you have a separate token ?))

I’m very interested in the response to this question :pray:

I think the latest state root in the block header is mainly for state proofs, as client synchronization can easily be done via P2P messages between clients.