Unveiling the Enhanced snarkjs with FunC Language Support for the TVM Challenge


Exciting news for developers and enthusiasts in zero-knowledge proofs and blockchain technology! The snarkjs tool, a cornerstone project from iden3, now boasts a groundbreaking update - the introduction of verifier generation in FunC language, tailored for the TVM Challenge. This integration not only enriches snarkjs but also marks a significant leap in cryptographic tooling.

What is snarkjs?

For the uninitiated, snarkjs is a comprehensive JavaScript and Web Assembly implementation of zkSNARK and PLONK schemes. It’s designed to simplify the process of generating zero-knowledge proofs, particularly for circom 2.0 circuits. With this tool, users can engage in secure multi-party ceremonies like the powers of tau and circuit-specific ceremonies, essential for maintaining integrity in cryptographic computations.

New Features in the TVM Challenge Update

The latest update shines in its support for BLS12-381 curve operations and Keccak256 hash, key components in advanced cryptographic functions. Notably, this update allows exporting verifiers in FunC, a feature pivotal for developers working with the TVM blockchain.

To get started, simply clone the fork, install dependencies using npm ci, and follow the standard snarkjs guide. The process culminates in exporting a verifier in FunC using node cli.js zkey export funcverifier circuit_final.zkey verifier.fc.

Deep Dive into snarkjs

Beyond the TVM Challenge, snarkjs offers an array of functionalities:

  • Universal Multi-party Ceremonies: Supports both bn128 and bls12-381 curves, catering to a wide range of cryptographic needs.
  • Compatibility: Interoperable with Semaphore’s Perpetual Powers of Tau and other implementations, ensuring wide-ranging utility.
  • Node.js and Browser Support: Flexible usage in different environments, whether you’re scripting in Node.js or deploying directly in a browser.
  • Performance: Leveraging Web Assembly and parallel computations, it stands out for its high performance.

Getting Started

Beginners can easily dive into snarkjs:

  1. Installation: Ensure Node.js (v16 or later) is installed. Then, install snarkjs with npm install -g snarkjs@latest.
  2. Basic Usage: Explore commands and their functions using snarkjs --help.
  3. Advanced Features: For those delving deeper, the tool offers extensive capabilities from setting up ceremonies to generating proofs and verifiers.

In Conclusion

This update to snarkjs not only caters to the specific needs of the TVM Challenge but also significantly enhances the toolkit available to developers in the realm of zero-knowledge proofs and blockchain technology. It’s a testament to the evolving landscape of cryptographic tools, making complex processes more accessible and efficient.

Join the Community

For any queries or to connect with like-minded individuals, join our telegram group. Stay updated and contribute to the exciting world of zero-knowledge proofs!

Acknowledgments and Licensing

snarkjs is part of the iden3 project, copyrighted 2018 by the 0KIMS association and published under the GPL-3 license.