Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

SIP-025: Iterating towards WSTS #183

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

SIP-025: Iterating towards WSTS #183

wants to merge 2 commits into from

Conversation

jcnelson
Copy link
Contributor

@jcnelson jcnelson commented Jun 5, 2024

This PR proposes SIP-025, which is a simpler and more robust but less space-efficient signature scheme for Nakamoto block headers. It is a rider SIP, meaning that it will only activate if SIP-021 activates and some additional criteria are met.

Copy link

@crypt0jan crypt0jan left a comment

Choose a reason for hiding this comment

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

I have read the PR and first of all I have to say: very well written! Finally a team that takes care of clearly explaining (and presenting) the challenge, proposed solution and the necessary adaptations needed to speed up these major changes.

Secondly, is it possible for the protocol to know the Liveness and Safety of other nodes, create a list of top performers, pick one random or round robbin as coordinator, and put it in standby for an X amount of next blocks? The Byzantine problem will always exist, but the chances of using a faulty signer will decrease by identifying well-performing signers imo. Please correct me if wrong. Trying to think outside the box.

It would be a slight adaptation to BFT Paxos, but it might be worth considering as it is a custom implementation which not only shows the skill level of the team by increasing the effectiveness of BFT Paxos, it also decreases the use of a faulty signers and it also shows how important well-running signers are in the ecosystem. You could even show the status of well-performing signers on the explorer as a social gimmick, further increasing active involvement.

Copy link

@BowTiedSirJonathan BowTiedSirJonathan left a comment

Choose a reason for hiding this comment

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

We understand the necessity of this change, having integrated the WSTS implementation for signing in the decentralized mining pools. In our case, a faulty coordinator means no participation in the mining process on that pool, allowing users to switch to another pool. However, in the PoX mechanism, a faulty coordinator significantly impacts block finality, as no signatures are produced during that cycle. Addressing this issue is crucial. The two-iteration proposal is practical: the first iteration allows for quicker implementation with minimal impact aside from block size. The second iteration, while the ideal solution, may take too long for Nakamoto 3.0 at this stage. Therefore, implementing it after the first iteration makes sense.

Additionally, although it may be outside the scope of this SIP, it seems necessary to penalize faulty coordinators more than faulty signers, as they disrupt the flow significantly. Penalties could include suspending their participation for a certain number of cycles or allowing them to stack but burning their rewards instead of transferring them. The severity of penalties should escalate with repeated faults. Regarding @crypt0jan point about the ranking system, there is concern that someone with a consistently higher ranking may not want to be the coordinator in most cycles.

@AcrossfireX
Copy link

This SIP is clear on its reasons and also the context of the plan to implement full WSTS in the future.

Acrossfire (SIP Editor) - putting forward SIP Editor approval

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants