You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/ImpactAnalysis.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -421,28 +421,28 @@ The security of the votes cast and the certificates that Leios uses to accept EB
421
421
422
422
This section derives **requirements** for adding BLS signatures to `cardano-base` and sketches **changes** to satisfy them. The scope is limited to cryptographic primitives and their integration into existing classes; vote construction/logic is out of scope. This work should align with [this](https://www.ietf.org/archive/id/draft-irtf-cfrg-bls-signature-05.html) IETF draft.
423
423
424
-
> Note that with the implementation of [CIP-0381](https://cips.cardano.org/cip/CIP-0381)`cardano-base` already contains basic utility functions needed to create these bindings; the work below is thus expanding on that.
424
+
> Note that with the implementation of [CIP-0381](https://cips.cardano.org/cip/CIP-0381)`cardano-base` already contains basic utility functions needed to create these bindings; the work below is thus expanding on that. The impact of the below requirements thus only extends to [this](https://github.com/IntersectMBO/cardano-base/blob/82e09945726a7650540e0656f01331d09018ac97/cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs) module and probably [this](https://github.com/IntersectMBO/cardano-base/blob/82e09945726a7650540e0656f01331d09018ac97/cardano-crypto-class/src/Cardano/Crypto/DSIGN/Class.hs) outward facing class.
425
425
426
426
## Requirements
427
427
428
428
### Functional
429
429
430
+
-*REQ-BlsTypes*.
431
+
Introduce opaque types for `SecretKey`, `PublicKey`, `Signature`, and `AggSignature` (if needed by consensus).
430
432
-*REQ-BlsKeyGenSecure*.
431
433
Provide secure key generation with strong randomness requirements, resistance to side-channel leakage.
432
434
-*REQ-BlsVariantAbstraction*.
433
435
Support both BLS variants—small public key and small signature—behind a single abstraction. Public APIs are variant-agnostic.
436
+
-*REQ-BlsPoP*.
437
+
Proof-of-Possession creation and verification to mitigate rogue-key attacks.
434
438
-*REQ-BlsSkToPk*.
435
439
Deterministic sk → pk derivation for the chosen variant.
436
440
-*REQ-BlsSignVerify*.
437
441
Signature generation and verification APIs, variant-agnostic and domain-separated (DST supplied by caller). Besides the DST, the interface should also implement a per message augmentation (as the hash to curve function also has in the IETF draft)
438
-
-*REQ-BlsPoP*.
439
-
Proof-of-Possession creation and verification to mitigate rogue-key attacks.
440
442
-*REQ-BlsAggregateSignatures*.
441
443
Aggregate a list of public keys and signatures into one
442
444
-*REQ-BlsBatchVerify*.
443
445
Batch verification API for efficient verification of many `(pk, msg, sig)` messages.
444
-
-*REQ-BlsTypes*.
445
-
Introduce opaque types for `SecretKey`, `PublicKey`, `Signature`, and `AggSignature` (if needed by consensus).
446
446
-*REQ-BlsDSIGNIntegration*.
447
447
Provide a `DSIGN` instance so consensus can use BLS via the existing `DSIGN` class, including aggregation-capable helpers where appropriate.
448
448
-*REQ-BlsSerialisation*.
@@ -458,6 +458,8 @@ Benchmark single-verify, aggregate-verify, and batch-verify; report the impact o
458
458
Compare performance against the Rust implementation; document gaps and ensure functional parity on vectors.
459
459
-*REQ-BlsDeterminismPortability*.
460
460
Deterministic results across platforms/architectures; outputs independent of CPU feature detection.
461
+
-*REQ-BlsDocumentation*.
462
+
Document the outward facing API in cardano-base and provide example usages. Additionally add a section do's and don'ts with regards to security of this scheme outside the context of Leios (so in general what to look out for).
0 commit comments