Skip to content

joe-p/snarkjs-algorand

Repository files navigation

snarkjs-algorand

This repo contains Algorand TypeScript implementations of BLS12-381 ZKP verifiers for both PLONK and Groth16 proof systems. The contracts are based on the snarkjs verifier implementations.

This repo also contains an SDK for interacting with these verifiers on the Algorand blockchain. The SDK is a work in progress and not yet stable. You can view usage examples in the tests:

Eventually there will be proper documentation, but for now use at your own risk!

Security

The code in this repo has not been audited. It is not recommended to use this code in production systems without a proper security review.

Why Not AlgoPlonk?

The main reason is because AlgoPlonk uses gnark for circuit compilation and proof generation. The problem with gnark is that it does not support WASM, thus one cannot simply generate a proof client-side in the browser. Additionally, because snarkjs is written in TypeScript, we can leverage algokit-utils for a much better developer experience.

About

An on-chain (Algorand) verifier for SnarkJS BLS12-381 PLONK and Groth16 zero-knowledge proofs

Resources

Stars

Watchers

Forks

Packages

No packages published