Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

mixclient: Sort roots for slot assignment #3453

Merged
merged 1 commit into from
Nov 11, 2024
Merged

Conversation

jrick
Copy link
Member

@jrick jrick commented Nov 11, 2024

The purpose of the SR (slot reservation) mix is to determine unique anonymous slot positions for the DC-net (xor) mix. However, there was a missing check by non-root-solving peers that the published roots are in the proper order. This could result in a malicious actor publishing roots in a different order, disrupting mixes by causing non-root-solving peers to unknowingly perform the DC-net in the wrong slots, and causing the wrong peers to be blamed for disrupting the mix.

Prevent this by requiring roots to be sorted before slots are discovered. This also matches the root-sorting that occurred in the older client-server design.

This change is not compatible with previous mixclient versions, as the DC-net mix would occur with peers writing messages into different slots. The pairing version included in PR messages is updated to reflect this.

The purpose of the SR (slot reservation) mix is to determine unique anonymous
slot positions for the DC-net (xor) mix.  However, there was a missing check
by non-root-solving peers that the published roots are in the proper order.
This could result in a malicious actor publishing roots in a different order,
disrupting mixes by causing non-root-solving peers to unknowingly perform the
DC-net in the wrong slots, and causing the wrong peers to be blamed for
disrupting the mix.

Prevent this by requiring roots to be sorted before slots are discovered.
This also matches the root-sorting that occurred in the older client-server
design.

This change is not compatible with previous mixclient versions, as the DC-net
mix would occur with peers writing messages into different slots.  The pairing
version included in PR messages is updated to reflect this.
@davecgh davecgh merged commit 5634e0f into decred:master Nov 11, 2024
2 checks passed
@davecgh davecgh added this to the 2.0.5 milestone Nov 11, 2024
@davecgh davecgh added the mix pairing version change Discussion and pull requests regarding items that require changes to the mix pairing version. label Nov 11, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
mix pairing version change Discussion and pull requests regarding items that require changes to the mix pairing version.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants