All Projects → matter-labs-archive → Groth16BatchVerifier

matter-labs-archive / Groth16BatchVerifier

Licence: other
Batch verification proposal for the zkSNARK verification with the same(!) circuit

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Groth16BatchVerifier

Verdi
A framework for formally verifying distributed systems implementations in Coq
Stars: ✭ 496 (+2817.65%)
Mutual labels:  proof
Bootstrap Dark
The Definitive Guide to Dark Mode and Bootstrap 4 - A proof of concept
Stars: ✭ 54 (+217.65%)
Mutual labels:  proof
LPL-solutions
Solutions for the book "Language Proof and Logic".
Stars: ✭ 51 (+200%)
Mutual labels:  proof
Idris Insertion Sort
Provably correct implementation of insertion sort in Idris.
Stars: ✭ 24 (+41.18%)
Mutual labels:  proof
Keymaerax Release
KeYmaera X: An aXiomatic Tactical Theorem Prover for Hybrid Systems (release)
Stars: ✭ 49 (+188.24%)
Mutual labels:  proof
Iron
Coq formalizations of functional languages.
Stars: ✭ 114 (+570.59%)
Mutual labels:  proof
Agda Stdlib
The Agda standard library
Stars: ✭ 370 (+2076.47%)
Mutual labels:  proof
imm
Intermediate Memory Model (IMM) and compilation correctness proofs for it
Stars: ✭ 15 (-11.76%)
Mutual labels:  proof
Generic Syntax
A Scope-and-Type Safe Universe of Syntaxes with Binding, Their Semantics and Proofs
Stars: ✭ 55 (+223.53%)
Mutual labels:  proof
crypto-primitives
Interfaces and implementations of cryptographic primitives, along with R1CS constraints for them
Stars: ✭ 76 (+347.06%)
Mutual labels:  snark
Dblib Linear
Formalisation of the linear lambda calculus in Coq
Stars: ✭ 10 (-41.18%)
Mutual labels:  proof
Hashapi Lib Node
Tierion Hash API client library for Node.js
Stars: ✭ 20 (+17.65%)
Mutual labels:  proof
Verdi Raft
An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
Stars: ✭ 143 (+741.18%)
Mutual labels:  proof
Cryptominisat
An advanced SAT solver
Stars: ✭ 502 (+2852.94%)
Mutual labels:  proof
haal
Hääl - Anonymous Electronic Voting System on Public Blockchains
Stars: ✭ 96 (+464.71%)
Mutual labels:  proof
Chronicle
Public append-only ledger microservice built with Slim Framework
Stars: ✭ 429 (+2423.53%)
Mutual labels:  proof
Disel
Distributed Separation Logic: a framework for compositional verification of distributed protocols and their implementations in Coq
Stars: ✭ 85 (+400%)
Mutual labels:  proof
gapt
GAPT: General Architecture for Proof Theory
Stars: ✭ 83 (+388.24%)
Mutual labels:  proof
proofable-image
Build trust into your image by creating a blockchain certificate for it
Stars: ✭ 17 (+0%)
Mutual labels:  proof
coq-to-ocaml-to-js
Proof of concept to generate safe and fast JavaScript
Stars: ✭ 25 (+47.06%)
Mutual labels:  proof

Batched Groth16 SNARK verification for the same circuit

Short explainer of how SNARK for transaction aggregation can be verified more efficiently on-chain. It allows the trade-off "100 mil constraints + one SNARK verification <=> few proofs of 10 mil constraints + batched verification".

Full construction description is here.

Implementation results

These tests are for three public inputs and uses r[0] = 1 optimization.

  • Verification of 1 proof using batching verifier requires gas: 737684
  • Verification of 2 proofs using batching verifier requires gas: 924385
  • Verification of 3 proofs using batching verifier requires gas: 1111151
  • Verification of 4 proofs using batching verifier requires gas: 1297855
  • Verification of 5 proofs using batching verifier requires gas: 1484433

License

Implementation code available under the Apache License 2.0 license. See the LICENSE for details.

Author

Alex Vlasov, @shamatar, [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].