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