[][src]Module accumulator::group

Implementations for different mathematical groups, each of which satisfies our UnknownOrderGroup trait. They can be used with the accumulator and vector commitment structures, or standalone if you have a custom application.

The preferred elliptic group implementation is the Ristretto group, which is a cyclic subset of the Ed25519 group.

Structs

ClassElem

A class group element, which wraps three GMP integers from the rug crate. You should never need to construct a class group element yourself.

RistrettoElem

A Ristretto group element, directly wrapping a Ristretto point.

Rsa2048Elem

An RSA 2048 group element, directly wrapping a GMP integer from the rug crate.

Enums

ClassGroup

Class group implementation, with future optimizations available via the --features flag. Discriminant generated via OpenSSL.

Ristretto

Ristretto group implementation (based on the curve25519-dalek crate).

Rsa2048

RSA-2048 group implementation. Modulus taken from here. Note: If you want to use Rsa2048 outside the context of this crate, be advised that it treats x and -x as the same element for sound proofs-of-exponentiation. See BBF (page 9).

Traits

ElemFrom

Like From<T>, but implemented on the Group instead of the element type.

Group

A mathematical group.

UnknownOrderGroup

A group containing elements of unknown order.

Functions

multi_exp

Computes the product of alpha_i ^ (p(x) / x_i), where i is an index into the alphas and x arrays, and p(x) is the product of all x_i. See BBF (page 11).