Zulu Network
  • INTRODUCTION
    • Welcome to Zulu Network
    • ZK-Powered Architecture
    • Why is Zulu Needed?
  • Core Concepts
    • DePIN & AI on Bitcoin
    • EVM Layer (L2)
    • DePIN Layer (L3)
    • Zulu DePIN + AI Staking
    • BitVM - Zulu
      • BitVM-ZKP-Verifier
      • Bridging From Bitcoin
        • Peg IN/OUT Process
        • Atomic Swaps
      • Verify on the Bitcoin Network
      • Zulu Trust-Minimized Bridge
    • Open Liquidity Aggregator
  • Tech Approach
    • Layer 2 Solutions
    • Building on Bitcoin
    • ZKEVM: EVM on Bitcoin
    • Data Availability
    • Modularity
  • Zulu EVM Layer
    • Network Info
    • Bridge
    • Deploy Your Dapp
      • Quick Start
      • API Reference
  • Zulu DePIN Layer
    • Getting Started
    • Developing dApps
  • Tools and Resources
    • Important Links
    • $ZULU Utility
    • Roadmap
    • Developer Incentives
  • Support and Community
    • Join the Community
    • FAQs
Powered by GitBook
On this page
  • Importance of Snark Verifier Script
  • Technical Implementation
  1. Core Concepts
  2. BitVM - Zulu

BitVM-ZKP-Verifier

The first ZKP Verify Code Implementation using Bitcoin Script, by Zulu.

PreviousBitVM - ZuluNextBridging From Bitcoin

Last updated 11 months ago

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

    • ​​

    • ​​

Importance of Snark Verifier Script

Robin Linus, founder of BitVM, shared that the Snark Verifier script on Bitcoin is very important in BitVM2 ().

Technical Implementation

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.

https://x.com/robin_linus/status/1796206213077545079
@robin_linus
@weikengchen
@__geometry__
https://eprint.iacr.org/2024/640.pdf
@robin_linus
https://github.com/BitVM/BitVM/pull/70
https://github.com/BitVM/BitVM/pull/71
https://github.com/zulu-network/bitvm-groth16-verifier
https://bitvm.org/bitvm2