ouroboros-consensus
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Peras.Crypto.BLS

Description

BLS-based crypto scheme used in Peras voting committees

Synopsis

Documentation

data PerasBLSCrypto Source #

BLS-based crypto scheme used in Peras voting committees

TODO: we should investigate why this type needs these instances at all. See https://github.com/tweag/cardano-peras/issues/272

Instances

Instances details
Eq PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Generic PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep PerasBLSCrypto 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasBLSCrypto = D1 ('MetaData "PerasBLSCrypto" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'False) (V1TypeType)
Show PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

CryptoSupportsAggregateVoteSigning PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

CryptoSupportsBatchVRFVerification PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

CryptoSupportsVRF PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

CryptoSupportsVoteSigning PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

FromCBOR (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

FromCBOR (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

ToCBOR (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

ToCBOR (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq (VRFElectionInput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Generic (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep (VRFOutput PerasBLSCrypto) 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VRFOutput PerasBLSCrypto) = D1 ('MetaData "VRFOutput" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVRFOutput" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVRFOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'VRF))))
Generic (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep (VoteSignature PerasBLSCrypto) 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VoteSignature PerasBLSCrypto) = D1 ('MetaData "VoteSignature" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVoteSignature" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVoteSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'SIGN))))
Show (VRFElectionInput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Show (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Show (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

PerasCertCompatibleWithVotingCommittee (PerasCert blk) PerasBLSCrypto EveryoneVotes Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

PerasCertCompatibleWithVotingCommittee (PerasCert blk) PerasBLSCrypto WFALS Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Cert.V1

PerasVoteCompatibleWithVotingCommittee (PerasVote blk) PerasBLSCrypto EveryoneVotes Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

PerasVoteCompatibleWithVotingCommittee (PerasVote blk) PerasBLSCrypto WFALS Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Vote.V1

type Rep PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasBLSCrypto = D1 ('MetaData "PerasBLSCrypto" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'False) (V1TypeType)
type AggregateVoteSignature PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type AggregateVoteVerificationKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type ElectionId PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type PrivateKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type PublicKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

newtype VRFElectionInput PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

newtype VRFOutput PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type VRFSigningKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type VRFVerificationKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type VoteCandidate PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

newtype VoteSignature PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type VoteSigningKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type VoteVerificationKey PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VRFOutput PerasBLSCrypto) = D1 ('MetaData "VRFOutput" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVRFOutput" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVRFOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'VRF))))
type Rep (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VoteSignature PerasBLSCrypto) = D1 ('MetaData "VoteSignature" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVoteSignature" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVoteSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'SIGN))))

type family ElectionId crypto Source #

Election identifiers

type family VoteCandidate crypto Source #

Vote candidates, i.e., what's being voted for

newtype PerasPrivateKey Source #

Private key of a Peras committee member

Constructors

PerasPrivateKey (PrivateKey (AnyKeyRole)) 

Instances

Instances details
Generic PerasPrivateKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep PerasPrivateKey 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasPrivateKey = D1 ('MetaData "PerasPrivateKey" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasPrivateKey" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PrivateKey (AnyKeyRole)))))
NoThunks PerasPrivateKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasPrivateKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasPrivateKey = D1 ('MetaData "PerasPrivateKey" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasPrivateKey" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PrivateKey (AnyKeyRole)))))

data PerasPublicKey Source #

Public key of a Peras committee member

Constructors

PerasPublicKey (PublicKey (AnyKeyRole)) 

Instances

Instances details
FromCBOR PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

ToCBOR PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Generic PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep PerasPublicKey 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasPublicKey = D1 ('MetaData "PerasPublicKey" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasPublicKey" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PublicKey (AnyKeyRole)))))
Show PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasPublicKey Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasPublicKey = D1 ('MetaData "PerasPublicKey" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'False) (C1 ('MetaCons "PerasPublicKey" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PublicKey (AnyKeyRole)))))

data family VoteSignature crypto Source #

Cryptographic signature of a vote

Instances

Instances details
FromCBOR (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

ToCBOR (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Generic (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep (VoteSignature PerasBLSCrypto) 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VoteSignature PerasBLSCrypto) = D1 ('MetaData "VoteSignature" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVoteSignature" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVoteSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'SIGN))))
Show (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

newtype VoteSignature PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VoteSignature PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VoteSignature PerasBLSCrypto) = D1 ('MetaData "VoteSignature" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVoteSignature" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVoteSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'SIGN))))
data VoteSignature (VoidPerasCrypto blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Void

data family VRFOutput crypto Source #

Output of the verifiable random function

Instances

Instances details
FromCBOR (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

ToCBOR (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Generic (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep (VRFOutput PerasBLSCrypto) 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VRFOutput PerasBLSCrypto) = D1 ('MetaData "VRFOutput" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVRFOutput" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVRFOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'VRF))))
Show (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

newtype VRFOutput PerasBLSCrypto Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VRFOutput PerasBLSCrypto) Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep (VRFOutput PerasBLSCrypto) = D1 ('MetaData "VRFOutput" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoVRFOutput" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoVRFOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'VRF))))

type family AggregateVoteSignature crypto Source #

Aggregate vote signatures

For testing purposes

newtype PerasBLSCryptoAggregateVoteSignature Source #

Wrapper around the aggregate vote verification keys.

Instances

Instances details
FromCBOR PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

ToCBOR PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Eq PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Generic PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

Associated Types

type Rep PerasBLSCryptoAggregateVoteSignature 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasBLSCryptoAggregateVoteSignature = D1 ('MetaData "PerasBLSCryptoAggregateVoteSignature" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoAggregateVoteSignature" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoAggregateVoteSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'SIGN))))
Show PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

NoThunks PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasBLSCryptoAggregateVoteSignature Source # 
Instance details

Defined in Ouroboros.Consensus.Peras.Crypto.BLS

type Rep PerasBLSCryptoAggregateVoteSignature = D1 ('MetaData "PerasBLSCryptoAggregateVoteSignature" "Ouroboros.Consensus.Peras.Crypto.BLS" "ouroboros-consensus-4.0.0.0-inplace" 'True) (C1 ('MetaCons "PerasBLSCryptoAggregateVoteSignature" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPerasBLSCryptoAggregateVoteSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Signature 'SIGN))))