One Step Closer to Bitcoin zkRollup Status: Announcing the Release of Ziren v1.2.0

GOAT Network is excited to introduce Ziren v1.2.0, the newest version of the zero-knowledge virtual machine (zkVM) built by GOAT’s tech lab partner, ZKM.

GOAT Network is nearing the release of a new native bridge that will be imbued with BitVM technology. Once our BitVM-enabled bridge goes live on mainnet, GOAT Network will earn the right to call itself a true Bitcoin ZKRollup.

It’s all part of our plan to give both large institutions and retail investors the ability to earn yield on their BTC, payable in real BTC, backed by the highest security standards of the Bitcoin Network.

The release of Ziren v1.2.0, being licensed to GOAT Network by our tech lab partner ZKM, will play an essential role in that plan.

What’s New

Built by the team at ZKM, Ziren v1.2.0 is a major update focused on interoperability and developer experience, introducing compressed-to-Groth16 proof conversion, a no-std STARK verifier, enhanced network prover capabilities, and a new CLI tool to initialize the Ziren project template.

Where v1.1 focused heavily on raw performance improvements, v1.2 prioritizes on interoperability and the developer experience, with improved developer tooling and compatibility.

  • Broader proof system support (Groth16 conversion, no-std STARK verifier, updated VKs).
  • Richer network prover capabilities (cycle introspection, ELF IDs, config options).
  • Developer usability improvements (CLI, Quickstart, extensive documentation).
  • Expanded application support (Bitcoin guest, Go program compatibility support, new precompiles e.g., Poseidon2).
  • Ongoing stability and security maintenance (deps, toolchain, docs, tests).

Golang guest program support is the first step for Ziren to implement Linux ABI, which can bridge the gap between normal high-level language program and zkVM program significantly.

To support Bitcoin and BitVM3, we provide general static compilation and linking in Ziren, and allow it to prove the BitVM2’s Bitcoin Headerchain. We implement Poseidon2 and AES-128 precompiles for the garbling in verifiable garbled circuit. This benchmark shows Poseidon2 is slightly faster than AES-128.

Proving & Verification Enhancements

  • Compressed to Groth16 Conversion: Functionality to convert compressed proofs into Groth16 format (#220), improving interoperability with widely adopted verification systems.
  • No-Std STARK Verifier: Introduced a lightweight verifier implementation that works in no-std environments (#262), expanding applicability for off-chain proof verification in resource-constrained systems.
  • New verify_proof() API: Extended STARK verifier with a direct proof verification function (#280), streamlining developer integration.
  • Verification Key Updates: Refreshed Groth16 and Plonk verification keys (#270, #289, #297) and enforced default VERIFY_VK flag (#295) for safer verification defaults.
  • Proof Aggregation: Documentation additions highlight aggregation capabilities (#302).

Network Prover Upgrades

  • Cycle Retrieval: Added support for retrieving cycle counts directly from the network prover (#227, #243), allowing performance evaluation and benchmarking.
  • Prove-with-Cycles API: Refactored proving interface into a generic form that returns cycle data (#242, #243).
  • Prover Configuration: Introduced a maximum prover number field for tuning distributed proving (#241).
  • ELF-Based Proving: Network prover now supports ELF identifiers as entry points (#240).
  • Adaptation to Proof Network: Extended compatibility with evolving proof network (#239).

Tooling & CLI Improvements

  • ZKM CLI: New command-line interface (zkm cli) was introduced (#226), allowing developers to implement proving (network and local) and verification directly on the command line.
  • Build & Environment Integration: Build system updated to fetch zkm-build CC from OS environment variables (#288), improving portability and reproducibility.

zkVM & Execution Features

  • Embedded Allocator: Added allocator support inside the zkVM (#247), enabling more flexible memory management for guest programs.
  • Bitcoin Guest Support: Added initial Bitcoin guest program and instruction support (madd/msub) (#286), for the Bitcoin example.
  • Go Program Support: Added support for Go language guest execution (#254), and implement partial Linux ABI. Cycles of go guest program (Geth keeper) and rust guest program (Reth) for block 23498500 are as follows:

For other benchmarks, the comparisons are below:

  • Poseidon2 Precompile: Integrated Poseidon2 hash precompile (#255), with updated documentation (#258), expanding cryptographic primitives available to contracts.
  • AES NI Precompile: https://github.com/ProjectZKM/Ziren/pull/314AES Precompile: Integrated AES128 encryption precompile(#314), the benchmark shows that AES NI is slightly slower than Poseidon2.
  • DV-SNARK proof system with BitVM2-GC enabled on GOAT Network.

Stability, Fixes & Maintenance

  • Dependency & Security Fixes: Patched vulnerable dependencies (#249), bumped Rust toolchain version (#278), and refreshed example deps (#291).
  • Core Executor & Machine Module Fixes: Corrected typos, improved comments, and fixed unimplemented test behaviors (#215, #217, #238, #256, #268, #273, #281, #300).
  • Proof System Adjustments: Fixed vk_map (#294), updated Groth16 public values test (#299), and fixed page count limits (#251).
  • Documentation expansion for both new and existing features:
    • Quickstart Guide (#228)
    • Prover Architecture (#260)
    • Verifier Section (#296)
    • Proof Aggregation (#302)
    • Independent Evaluations (#308)

*For more information on Ziren’s ongoing development, visit the Github of our tech lab partner ZKM at https://github.com/ProjectZKM/Ziren*

To learn more about GOAT Network’s underlying tech stack, visit docs.goat.network

Back to the Blog
One Step Closer to Bitcoin zkRollup Status: Announcing the Release of Ziren v1.2.0
Oct
21
By
GOAT
SHARE ON
Related Articles