BItVM is a technique for writing turing complete logic in bitcoin. It leverages the taptree (taproot upgrade) to program computation from scratch using up as many leafs of the taptree as needed to program a vm from scratch. The original Bitvm whitepaper discusses how one can program a computer with 0s and 1s using bitcoin script (which can do boolean) and encoding the whole vm using nand gates on the taptree.
Many projects emerged such as tic tac toe, 8bit computer, riscV VM, and naturally.....snark and stark verifiers; which would allow us to verify zk rollups on bitcoin.
An existing circle stark WIP implementation exists in Bitvm. Starks in practise, ask the prover to do some pow (grinding) to add some security to the proof and make it harder to brute force a fake proof. An idea emerged from discussions with plonky3 team and starkware whether its possible to replace the grinding with a BTC POW. The way it would work is the following:
Caveat: the current circe stark implementation uses the OP_CAT opcode which is still being discussed in the Bitcoin community and is not yet part of the protocol.
Bitvm compiles down to bitcoin script. Operating on script is can be mindboggling!
Original plan:
Merkle tree library to prove btc inclusion
generate merkle p2tr (pay to taproot)( trasnaction and simulate on bitcoin on signet
integrate with the bitvm circle stark implementation
generate the complete fri p2tr trasnaction
I did not manage to complete the flow end to end. However I started by modifying the circle stark merkle tree operating on M31 field to work with the tx hash which is 32 bytes. This allows us to perform the step of proving inclusion of the commitment tx hash in the bitcoin block which is where current progress is.
Tracks Applied (2)
Nethermind Research
Technologies used
Discussion