Skip to content

Add BLS proof of possession sub-command#1356

Open
palas wants to merge 5 commits intobls-key-gen-and-hashfrom
bls-pop-gen
Open

Add BLS proof of possession sub-command#1356
palas wants to merge 5 commits intobls-key-gen-and-hashfrom
bls-pop-gen

Conversation

@palas
Copy link
Copy Markdown
Contributor

@palas palas commented Mar 27, 2026

Changelog

- description: |
    Added support for generating proofs of possession for BLS keys.
# uncomment types applicable to the change:
  type:
    - feature        # introduces a new feature

Context

This PR builds on top of: #1355
And the functionality provided by: IntersectMBO/cardano-api#1161
To allow users to generate BLS proofs of possession that are necessary to avoid rogue key attacks. See IntersectMBO/cardano-api#1161 for more details.

How to trust this PR

It is a very simple command that builds on the new functionality exported by cardano-api.

Checklist

  • Commit sequence broadly makes sense and commits have useful messages
  • New tests are added if needed and existing tests are updated. See Running tests for more details
  • Self-reviewed the diff

@palas palas self-assigned this Mar 27, 2026
@palas palas added the next-update For issues that require an update of a dependency label Mar 27, 2026
@palas palas force-pushed the bls-key-gen-and-hash branch from 3cdc0d9 to fdaba50 Compare March 27, 2026 18:57
@palas palas force-pushed the bls-key-gen-and-hash branch from fdaba50 to 89febe0 Compare March 27, 2026 19:08
@palas palas force-pushed the bls-pop-gen branch 2 times, most recently from a5e730d to 9cd9e0b Compare March 27, 2026 19:23
@palas palas force-pushed the bls-key-gen-and-hash branch from 89febe0 to 7e3356b Compare March 27, 2026 19:23
Copy link
Copy Markdown
Contributor

@Jimbo4350 Jimbo4350 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a conway feature.

Opt.info pIssuePopBLS $
Opt.progDesc $
mconcat
[ "Issue a BLS proof of possession"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a little more? What protocol does this relate to? (Leios) etc.

Copy link
Copy Markdown
Contributor Author

@palas palas Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed here: f2c286d (or rebased here: d8acdeb)

@@ -0,0 +1,10 @@
Usage: cardano-cli conway node issue-pop-BLS --bls-signing-key-file FILEPATH
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a conway feature

Copy link
Copy Markdown
Contributor Author

@palas palas Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't sure how to go about it. How about this solution, I enable only the sub-command module for dijkstra for now (except for issue-op-cert which may change), and put the commands there. See commits: 0de7004 and f749270

I would move 0de7004 to #1355 before merging it

@palas palas force-pushed the bls-key-gen-and-hash branch from 7e3356b to bb7f2dc Compare March 30, 2026 22:54
@palas
Copy link
Copy Markdown
Contributor Author

palas commented Mar 31, 2026

Backup before moving commands to dijkstra: https://github.com/IntersectMBO/cardano-cli/tree/backup/bls-key-gen-and-hash

mconcat
[ "Issue a node operational certificate"
]
| not isEraThatUsesBls
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  pKeyGenBLS :: forall era. Exp.IsEra era => Maybe (Parser NodeCmds)                                                                                                                                                                 
  pKeyGenBLS = case Exp.useEra @era of                                                                                                                                                                                               
    Exp.DijkstraEra -> Just $ ...                                                                                                                                                                                                    
    _ -> Nothing       

This is the pattern I'm looking for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

next-update For issues that require an update of a dependency

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tools for key generation and registration

2 participants