Module v3

Module v3 

Source
Expand description

Functions for proving and verifying the v3 iriscode circuit.

Structsยง

V3CircuitAndAuxData
A circuit computing the V3 iriscode from an iris image and a mask. The computation when the input is an iris image is essentially the same as the when the input is a mask, the only difference being the values of some parameters which are passed as inputs to the circuit, called auxiliary MLEs. This struct holds a Circuit which has already been initialized with input parameters which are common between the cases of an iris image and a mask, and separatelly contains entries for the auxiliary MLEs encoding the parameters specific to the iris image computation and the mask computation.
V3Proof
V3Prover
A serializable struct containing the 4 Hyrax proofs needed for the V3 iris/mask circuit. To allow for incremental proving, this struct can be initialized empty and then proofs can be added as the become available. Serialization is possible at any stage, even if a proof is missing. Once all proofs are generated, the struct can be finalized into a V3Proof which can be then passed to the verifier.

Enumsยง

IriscodeError
V3ProofError

Functionsยง

prove_with_image_precommit
Prove a single instance of the iriscode circuit using the Hyrax proof system and the provided image precommit. This is a helper function for proving the v3 masked iriscode is correct.
verify_v3_iriscode_proof_and_hash ๐Ÿ”’
Verify that the iris/mask code in the supplied proof is correct, and return the unpadded iris/mask code, along with the commitment to the image. Checks, in particular:

Type Aliasesยง

Base ๐Ÿ”’
Scalar ๐Ÿ”’