Module engine

Source
Expand description

§Adaptation of ark_ec::PairingEngine to BLS-like signatures.

We provide an EngineBLS trait that adapts pairing::Engine to BLS-like signatures by permitting the group roles to be transposed, which involves removing the field of definition, while retaining the correct associations.

We support same-message aggregation strategies using wrappers that satisfy EngineBLS as well, primarily because these strategies must ocntroll access to the public key type.

In future, we should support Pixel by adding wrapper that replace SignatureGroup with a product of both groups. I think this requires abstracting CruveAffine and CruveProjective without their base fields and wNAF windows, but still with their affine, projective, and compressed forms, and batch normalization.

Structs§

TinyBLS
Infrequently used BLS variant with tiny 48 byte signatures and 96 byte public keys,
UsualBLS
Usual aggregate BLS signature scheme on ZCash’s BLS12-381 curve. Usual BLS variant with tiny 48 byte public keys and 96 byte signatures.

Traits§

CurveExtraConfig
Trait to add extra config for a curve which is not in ArkWorks library
EngineBLS
A weakening of pairing::Engine to permit transposing the groups.

Type Aliases§

BLS377
TinyBLS377
TinyBLS381
ZBLS
Usual aggregate BLS signature scheme on ZCash’s BLS12-381 curve.