Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Protocol.Praos.VRF
Description
This module implements VRF range extension as described in https://iohk.io/en/research/library/papers/on-uc-secure-range-extension-and-batch-verification-for-ecvrf/
Synopsis
- data InputVRF
- data VRFUsage
- mkInputVRF :: SlotNo -> Nonce -> InputVRF
- vrfLeaderValue :: forall c proxy. Crypto c => proxy c -> CertifiedVRF ( VRF c) InputVRF -> BoundedNatural
- vrfNonceValue :: forall c proxy. Crypto c => proxy c -> CertifiedVRF ( VRF c) InputVRF -> Nonce
Documentation
Input to the verifiable random function. Consists of the hash of the slot and the epoch nonce.
Instances
Eq InputVRF Source # | |
Ord InputVRF Source # | |
Defined in Ouroboros.Consensus.Protocol.Praos.VRF |
|
Show InputVRF Source # | |
Generic InputVRF Source # | |
ToCBOR InputVRF Source # | |
SignableRepresentation InputVRF Source # | |
Defined in Ouroboros.Consensus.Protocol.Praos.VRF Methods getSignableRepresentation :: InputVRF -> ByteString Source # |
|
NoThunks InputVRF Source # | |
type Rep InputVRF Source # | |
Defined in Ouroboros.Consensus.Protocol.Praos.VRF
type
Rep
InputVRF
=
D1
('
MetaData
"InputVRF" "Ouroboros.Consensus.Protocol.Praos.VRF" "ouroboros-consensus-protocol-0.1.0.1-zKRBoYOfUlKsvZd6xB0lb" '
True
) (
C1
('
MetaCons
"InputVRF" '
PrefixI
'
True
) (
S1
('
MetaSel
('
Just
"unInputVRF") '
NoSourceUnpackedness
'
NoSourceStrictness
'
DecidedLazy
) (
Rec0
(
Hash
Blake2b_256
InputVRF
))))
|
Indicate the usage of the VRF result.
Construct a unified VRF value
vrfLeaderValue :: forall c proxy. Crypto c => proxy c -> CertifiedVRF ( VRF c) InputVRF -> BoundedNatural Source #
Range-extend a VRF output to be used for leader checks from the relevant hash. See section 2.1 of the linked paper for details.
vrfNonceValue :: forall c proxy. Crypto c => proxy c -> CertifiedVRF ( VRF c) InputVRF -> Nonce Source #
Range-extend a VRF output to be used for the evolving nonce. See section 2.1 of the linked paper for details.