templates.compression_mechanism module¶
Compression mechanism which transforms a SigmaProtocol into a CompressedSigmaProtocol. The compressed sigma protocol contains fewer elements in the input vector and is therefore more performant in evaluation.
- templates.compression_mechanism.compression(sigma_protocol)[source]¶
Compress a sigma protocol by using the folding technique described in the dissertation mentioned in the README.md
- Parameters:
sigma_protocol (
BaseSigmaProtocol
[TypeVar
(InputElementT
),TypeVar
(HomomorphismOutputT
, bound=SupportsMultiplicationAndAddition
),TypeVar
(ChallengeT
, covariant=True),TypeVar
(ResponseT
, bound=HomomorphismInput
[Any
]),TypeVar
(HomomorphismT
, bound=Homomorphism
[Any
,Any
,Any
])]) – the sigma protocol which will be compressed- Return type:
CompressedSigmaProtocol
[TypeVar
(InputElementT
),TypeVar
(HomomorphismOutputT
, bound=SupportsMultiplicationAndAddition
),TypeVar
(ChallengeT
, covariant=True)]- Returns:
A compressed sigma protocol
- Raises:
TypeError – When the homomorphism of the sigma protocol is not compressible
TypeError – When the homomorphism input of the sigma protocol is not compressible
ValueError – When the homomorphism is already as small as possible
- templates.compression_mechanism.full_compression(sigma_protocol)[source]¶
Compress a sigma protocol until it can not be compressed any further.
- Parameters:
sigma_protocol (
BaseSigmaProtocol
[TypeVar
(InputElementT
),TypeVar
(HomomorphismOutputT
, bound=SupportsMultiplicationAndAddition
),TypeVar
(ChallengeT
, covariant=True),TypeVar
(ResponseT
, bound=HomomorphismInput
[Any
]),TypeVar
(HomomorphismT
, bound=Homomorphism
[Any
,Any
,Any
])]) – the sigma protocol which will be compressed- Return type:
CompressedSigmaProtocol
[TypeVar
(InputElementT
),TypeVar
(HomomorphismOutputT
, bound=SupportsMultiplicationAndAddition
),TypeVar
(ChallengeT
, covariant=True)]- Returns:
A compressed sigma protocol if the protocol could be compressed otherwise the sigma protocol itself
- Raises:
TypeError – When the homomorphism of the sigma protocol is not compressible
TypeError – When the homomorphism input of the sigma protocol is not compressible
ValueError – When the homomorphism is already as small as possible