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:
Robin Linus, founder of BitVM, shared that the Snark Verifier script on Bitcoin is very important in BitVM2 (https://bitvm.org/bitvm2).
He has also recently praised the efforts in development by the Zulu Network team: https://x.com/robin_linus/status/1796206213077545079
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)
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@robin_linus,@weikengchen, and others.
We also extend our thanks to Andrija Novakov from @__geometry__for their latest paper, "On Proving Pairings," https://eprint.iacr.org/2024/640.pdf which significantly reduces the overall script size.
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.
The snark verifier in the script on Bitcoin is a huge milestone for future Bitcoin developments, as BitVM creator@robin_linus shared at ZK Proof 6 in Berlin.
Let's move Bitcoin forward!