mirror of
https://github.com/seigler/dips
synced 2025-07-27 01:36:14 +00:00
A few (mostly trivial) updates (#54)
* Drop quorumMinMemberAge from LLMQ init phase * Clarify that "hash" is "SHA256" in multiple cases * Switch few quotes to apostrophes
This commit is contained in:
parent
5660fcdd27
commit
41fc2c9413
6 changed files with 27 additions and 28 deletions
19
dip-0006.md
19
dip-0006.md
|
@ -140,11 +140,10 @@ Each phase lasts for multiple blocks (quorumDkgPhaseBlocks) to ensure that all m
|
|||
In this phase, the members of the new quorum are determined. This process is fully deterministic and results in exactly the same list seen by all members and observers.
|
||||
|
||||
1. Retrieve the deterministic masternode list which is valid at quorumHeight
|
||||
2. Remove all entries from the list that are not confirmed on-chain in at least quorumMinMemberAge blocks
|
||||
3. Calculate hash(proTxHash, quorumHash) for each entry in the list
|
||||
4. Sort the resulting list by the calculated hashes
|
||||
5. Take the first quorumSize entries from this list and use the corresponding masternodes as members list
|
||||
6. Check if our masternode is part of this list. If not, we stop participating in the DKG.
|
||||
2. Calculate `SHA256(proTxHash, quorumHash)` for each entry in the list
|
||||
3. Sort the resulting list by the calculated hashes
|
||||
4. Take the first quorumSize entries from this list and use the corresponding masternodes as members list
|
||||
5. Check if our masternode is part of this list. If not, we stop participating in the DKG.
|
||||
|
||||
After the members list is built, the LLMQ members start to initiate the connections to the deterministic set of quorum connections as described in the “Intra-Quorum Communication” section.
|
||||
|
||||
|
@ -199,7 +198,7 @@ Each receiver of a complaint message must first perform some validation of the m
|
|||
|
||||
1. The quorumHash must match the current DKG session
|
||||
2. The proTxHash must belong to a member of the LLMQ
|
||||
3. The byte size of the bad members and complaints bitvectors must match “(quorumSize + 7) / 8”
|
||||
3. The byte size of the bad members and complaints bitvectors must match `(quorumSize + 7) / 8`
|
||||
4. No out-of-range bits should be set in byte representation of the bad members and complaints bitvectors
|
||||
5. The signature of the message must be valid and signed with the operator key of the contributing masternode
|
||||
|
||||
|
@ -275,7 +274,7 @@ The quorum verification vector is calculated by aggregating all valid member’s
|
|||
|
||||
The member must then create a premature commitment message which contains the quorum public key, the hash of the quorum verification vector and a bitset of the valid members.
|
||||
|
||||
The message is not signed as usual, but instead a commitment hash is created and then signed twice, once with the members operator key and once with the calculated threshold secret key share. The commitment hash is “hash(quorumHash, validMembers, quorumPublicKey, quorumVvecHash)”.
|
||||
The message is not signed as usual, but instead a commitment hash is created and then signed twice, once with the members operator key and once with the calculated threshold secret key share. The commitment hash is `SHA256(quorumHash, validMembers, quorumPublicKey, quorumVvecHash)`.
|
||||
|
||||
The operator signature allows other members to verify that the message originated from this member. The threshold signature allows other members to verify that the commitment is valid and that the member successfully calculated his secret key share. Both signatures later also allow to aggregate multiple premature commitments into a final commitment.
|
||||
|
||||
|
@ -283,7 +282,7 @@ Each receiver of a premature commitment message must first perform some basic va
|
|||
|
||||
1. The quorumHash must match the current DKG session
|
||||
2. The proTxHash must belong to a member of the LLMQ
|
||||
3. The byte size of the validMembers bitvector must match “(quorumSize + 7) / 8”
|
||||
3. The byte size of the validMembers bitvector must match `(quorumSize + 7) / 8`
|
||||
4. No out-of-range bits should be set in the byte representation of of the validMembers bitvector
|
||||
5. The number of set bits in the validMembers bitvector must be at least >= quorumThreshold
|
||||
6. The sig must validate against the commitmentHash and the committing member’s operator key
|
||||
|
@ -311,7 +310,7 @@ The internal Dash message name is `qpcommit` and the format of the message is:
|
|||
| validMembersSize | compactSize uint | 1-9 | Bit size of the validMembers bitvector
|
||||
| validMembers | byte[] | (bitSize + 7) / 8 | Bitset of valid members in this commitment
|
||||
| quorumPublicKey | BLSPubKey | 48 | The quorum public key
|
||||
| quorumVvecHash | uint256 | 32 | The hash of the quorum verification vector
|
||||
| quorumVvecHash | uint256 | 32 | The SHA256 hash of the quorum verification vector
|
||||
| quorumSig | BLSSig | 96 | Threshold signature, signed with the threshold signature share of the committing member
|
||||
| sig | BLSSig | 96 | BLS signature, signed with the operator key of the contributing masternode
|
||||
|
||||
|
@ -359,7 +358,7 @@ The internal Dash message name is `qfcommit` and the format of the message is:
|
|||
| validMembersSize | compactSize uint | 1-9 | Bit size of the validMembers bitvector
|
||||
| validMembers | byte[] | (bitSize + 7) / 8 | Bitset of valid members in this commitment
|
||||
| quorumPublicKey | BLSPubKey | 48 | The quorum public key
|
||||
| quorumVvecHash | uint256 | 32 | The hash of the quorum verification vector
|
||||
| quorumVvecHash | uint256 | 32 | The SHA256 hash of the quorum verification vector
|
||||
| quorumSig | BLSSig | 96 | Recovered threshold signature
|
||||
| sig | BLSSig | 96 | Aggregated BLS signatures from all included commitments
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue