dash/doc/release-notes-5021.md
Odysseas Gabrielides c6bc33738b
docs: Release notes for BLS upgrade (#5137)
## Issue being fixed or feature implemented

## What was done?

## How Has This Been Tested?

## Breaking Changes

## Checklist:
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [x] I have made corresponding changes to the documentation

**For repository code-owners and collaborators only**
- [x] I have assigned this pull request to a milestone

---------

Co-authored-by: thephez <thephez@users.noreply.github.com>
2023-02-06 09:02:53 -06:00

3.5 KiB

Added RPCs

  • Once the v19 hard fork is activated, protx register, protx register_fund, and protx register_prepare RPCs will decode BLS operator public keys using the new basic BLS scheme. In order to support BLS public keys encoded in the legacy BLS scheme, protx register_legacy, protx register_fund_legacy, and protx register_prepare_legacy were added.

Other changes

qfcommit

Once the v19 hard fork is activated, quorumPublicKey will be serialised using the basic BLS scheme. To support syncing of older blocks containing the transactions using the legacy BLS scheme, the version field indicates which scheme to use for serialisation of quorumPublicKey.

Version Version Description Includes quorumIndex field
1 Non-rotated qfcommit serialised using legacy BLS scheme No
2 Rotated qfcommit serialised using legacy BLS scheme Yes
3 Non-rotated qfcommit serialised using basic BLS scheme No
4 Rotated qfcommit serialised using basic BLS scheme Yes

MNLISTDIFF P2P message

Starting with protocol version 70225, the following field is added to the MNLISTDIFF message between cbTx and deletedQuorumsCount.

Field Type Size Description
version uint16_t 2 Version of the MNLISTDIFF reply

The version field indicates which BLS scheme is used to serialise the pubKeyOperator field for all SML entries of mnList.

Version Version Description
1 Serialisation of pubKeyOperator using legacy BLS scheme
2 Serialisation of pubKeyOperator using basic BLS scheme

ProTx txs family

proregtx and proupregtx will support a new version value:

Version Version Description
1 Serialisation of pubKeyOperator using legacy BLS scheme
2 Serialisation of pubKeyOperator using basic BLS scheme

proupservtx and prouprevtx will support a new version value:

Version Version Description
1 Serialisation of sig using legacy BLS scheme
2 Serialisation of sig using basic BLS scheme

MNHFTx

MNHFTx will support a new version value:

Version Version Description
1 Serialisation of sig using legacy BLS scheme
2 Serialisation of sig using basic BLS scheme

BLS enforced scheme

Once the v19 hard fork is activated, all remaining messages containing BLS public keys or signatures will serialise them using the new basic BLS scheme. The motivation behind this change is the need to be aligned with IETF standards.

List of affected messages: dsq, dstx, mnauth, govobj, govobjvote, qrinfo, qsigshare, qsigrec, isdlock, clsig, and all DKG messages (qfcommit, qcontrib, qcomplaint, qjustify, qpcommit).