#accumulator #arkworks #pairing-based-cryptography #schnorr-protocol #zero-knowledge-proofs #signatures #crypto #map #vb

vb_accumulator

Positive and universal bilinear map accumulator and proof of membership and non-membership protocol

11 releases (7 breaking)

Uses new Rust 2021

0.8.0 May 27, 2022
0.7.0 Nov 22, 2021
0.6.0 Nov 9, 2021
0.5.0 Nov 5, 2021
0.1.0 Sep 9, 2021

#767 in Cryptography

Download history 70/week @ 2022-06-05 6/week @ 2022-06-12 7/week @ 2022-06-19 16/week @ 2022-06-26 8/week @ 2022-07-03 36/week @ 2022-07-10 32/week @ 2022-07-17 40/week @ 2022-07-24 49/week @ 2022-07-31 23/week @ 2022-08-07 47/week @ 2022-08-14 35/week @ 2022-08-21 13/week @ 2022-08-28 28/week @ 2022-09-04 13/week @ 2022-09-11 43/week @ 2022-09-18

105 downloads per month
Used in proof_system

Apache-2.0

325KB
6.5K SLoC

vb_accumulator

Dynamic Positive and Universal accumulators according to the paper: Dynamic Universal Accumulator with Batch Update over Bilinear Groups Provides

  • a dynamic positive accumulator PositiveAccumulator, that supports membership proofs.
  • a dynamic universal accumulator UniversalAccumulator, that supports membership and non-membership proofs.
  • a zero knowledge proof of membership and non-membership in the accumulators with ProofProtocol.

Allows

  • single and batch updates (additions, removals or both) to the accumulators.
  • single and batch updates to the witness.

Both accumulators implement that trait Accumulator that contains the common functionality. Both MembershipWitness and NonMembershipWitness can be updated either using secret key or using public info published by accumulator manager called Omega. Most of the update logic is in the trait Witness which is implemented by both MembershipWitness and NonMembershipWitness. The implementation tries to use the same variable names as the paper and thus violate Rust's naming conventions at places.

License: Apache-2.0

Dependencies

~5MB
~100K SLoC