BitVM-ZKP-Verifier
The first ZKP Verify Code Implementation using Bitcoin Script, by Zulu.
Last updated
The first ZKP Verify Code Implementation using Bitcoin Script, by Zulu.
Last updated
The Zulu Network team has Open-Sourced the first ZKP Verify Code Implementation using Bitcoin Script! It involves mainstream algorithms such as Groth16/FFlonk, and we have submitted the code to the BitVM repository.
Here are the links to our code:
fflonk script
Groth16's script
Robin Linus, founder of BitVM, shared that the Snark Verifier script on Bitcoin is very important in BitVM2 ().
What is the size of the verifier for Groth16/Fflonk?
1. Fflonk Verifier:
Curve: BN254
Public input number: 2
Script size: 7456022084 bytes
Max stack items number: 905
2. Groth16 Verifier:
Curve: BN254
Public input number: 1
Script size: 7034158970 bytes
Max stack items number: 1112 (Can be optimized)
This achievement lays the foundation for constructing a decentralized bridge based on BitVM2. Zulu's next goal is to launch a trust-minimized Bitcoin bridge utilizing cross-chain technology and BitVM2.
Let's move Bitcoin forward!
He has also recently praised the efforts in development by the Zulu Network team:
Based on the current script size, we only need to split the entire ZKP script into fewer than 2,000 sub-scripts, which is remarkable. We are deeply grateful to all the contributors to the BitVM repository, including,, and others.
We also extend our thanks to Andrija Novakov from for their latest paper, "On Proving Pairings," which significantly reduces the overall script size.
The snark verifier in the script on Bitcoin is a huge milestone for future Bitcoin developments, as BitVM creator shared at ZK Proof 6 in Berlin.