Skip to content

Commit b44d8f4

Browse files
committed
add feedback from @curiecrypt
1 parent 9fafe16 commit b44d8f4

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

docs/ImpactAnalysis.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -421,28 +421,28 @@ The security of the votes cast and the certificates that Leios uses to accept EB
421421

422422
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.
423423

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.
425425
426426
## Requirements
427427

428428
### Functional
429429

430+
- *REQ-BlsTypes*.
431+
Introduce opaque types for `SecretKey`, `PublicKey`, `Signature`, and `AggSignature` (if needed by consensus).
430432
- *REQ-BlsKeyGenSecure*.
431433
Provide secure key generation with strong randomness requirements, resistance to side-channel leakage.
432434
- *REQ-BlsVariantAbstraction*.
433435
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.
434438
- *REQ-BlsSkToPk*.
435439
Deterministic sk → pk derivation for the chosen variant.
436440
- *REQ-BlsSignVerify*.
437441
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.
440442
- *REQ-BlsAggregateSignatures*.
441443
Aggregate a list of public keys and signatures into one
442444
- *REQ-BlsBatchVerify*.
443445
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).
446446
- *REQ-BlsDSIGNIntegration*.
447447
Provide a `DSIGN` instance so consensus can use BLS via the existing `DSIGN` class, including aggregation-capable helpers where appropriate.
448448
- *REQ-BlsSerialisation*.
@@ -458,6 +458,8 @@ Benchmark single-verify, aggregate-verify, and batch-verify; report the impact o
458458
Compare performance against the Rust implementation; document gaps and ensure functional parity on vectors.
459459
- *REQ-BlsDeterminismPortability*.
460460
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).
461463

462464
### Remarks
463465

0 commit comments

Comments
 (0)