P

PowFri Chicken

Replace the traditional FRI grinding with BTC POW to achieve 80 bits of security in a Bitcoin UTXO that has a BitVM fri verifier in spending conditions.

P

PowFri Chicken

Replace the traditional FRI grinding with BTC POW to achieve 80 bits of security in a Bitcoin UTXO that has a BitVM fri verifier in spending conditions.


The problem PowFri Chicken solves

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:

  1. A verifier has a UTXO that has spending conditions being a FRI verifier (eg. 100BTC up for grabs)
  2. The Prover generates fri proof and commits it a btc transaction and waits until its mined.
  3. The prover sumits the fri proof along with proof it has been mined in the previous transaction.

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.

Challenges I ran into

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)

Best cryptography for society

As an Ethereum developer and builder, it is fascinating that we can have Turing complete logic in a bitcoin utxo with no...Read More

Nethermind Research

Prizes for Finalists, Hackers' Choice & Chewing Glass

With starks being the choice of many teams to prove VMs, and it being hash based, as well as bitcoin of course, it is ex...Read More

Technologies used

Discussion