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 :: forall p m. (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 list of values 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