This resource implements an improved SigmaProtocol——UGZK protocol():let
The resource implements the struct of Non-interactive Sigma Protocol in SigmaProtocol.h, which includes five main part:
-
SigmaProtocolCommonInput: consists of public parameters used in the protocol
-
SigmaProtocolResponseMsgShort & SigmaProtocolResponseMsgBatch: the two correspond to two different implementation ways of sigma protocol
-
SigmaProtocolProver: SigmaProtocolProverShort & SigmaProtocolProverBatch
-
SigmaProtocolVerifier: SigmaProtocolVerifierShort & SigmaProtocolVerifierBatch
-
function SigmaProtocolGetchallenge: used to compute the challenge message in SigmaProtocol
The resource implements four sigma protocols:
- Schnorr protocol: proving knowledge of the discrete logarithm
of a point in base - DlogEquality protocol: proving equality of the known discrete logarithm
of in base and - PedersenCommitmentOpen: proving knowledge of a valid opening of a Pedersen commitment
- Diffie-Hellman triple Protocol: proving knowledge of the exponents of a valid Diffie-Hellman triple