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.
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.
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.
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.
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?
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!).
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.
What is the tps potential here? Anything that promotes more activity on Bitcoin is always worth exploring. Only concern is scalability compared to the likes of Solana and even Monad coming to ETH