Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data RangeProof f = RangeProof {}
- data RangeProofError f
- generateProof :: (KnownNat p, MonadRandom m) => Integer -> (PrimeField p, PrimeField p) -> ExceptT (RangeProofError (PrimeField p)) m (RangeProof (PrimeField p))
- generateProofUnsafe :: (KnownNat p, MonadRandom m) => Integer -> (PrimeField p, PrimeField p) -> m (RangeProof (PrimeField p))
- verifyProof :: KnownNat p => Integer -> Point -> RangeProof (PrimeField p) -> Bool
Documentation
data RangeProof f Source #
RangeProof | |
|
Instances
data RangeProofError f Source #
UpperBoundTooLarge Integer | The upper bound of the range is too large |
ValueNotInRange f | Value is not within the range required |
ValuesNotInRange [f] | Values are not within the range required |
NNotPowerOf2 Integer | Dimension n is required to be a power of 2 |
Instances
:: (KnownNat p, MonadRandom m) | |
=> Integer | Upper bound of the range we want to prove |
-> (PrimeField p, PrimeField p) | Values we want to prove in range and their blinding factors |
-> ExceptT (RangeProofError (PrimeField p)) m (RangeProof (PrimeField p)) |
Prove that a value lies in a specific range
:: (KnownNat p, MonadRandom m) | |
=> Integer | Upper bound of the range we want to prove |
-> (PrimeField p, PrimeField p) | Values we want to prove in range and their blinding factors |
-> m (RangeProof (PrimeField p)) |
Generate range proof from valid inputs
:: KnownNat p | |
=> Integer | Range upper bound |
-> Point | Commitments of in-range values |
-> RangeProof (PrimeField p) | Proof that a secret committed value lies in a certain interval |
-> Bool |
Verify that a commitment was computed from a value in a given range