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

EIP-2182: Reduce the Clique SIGNER_LIMIT #2182

Closed
wants to merge 2 commits into from
Closed

Conversation

soc1c
Copy link
Contributor

@soc1c soc1c commented Jul 9, 2019

Clique-based networks come to an halt if less than 51% of the signers stop proposing blocks. One of the reasons is the validators in non-value-bearing networks might loose interest and drop off the network without further notice. EIP-2182 addresses this and encourages Clique-based networks to upgrade the signer-limit formula.

resolves goerli#14

partially replaces #1955

@soc1c soc1c changed the title Reduce the Clique SIGNER_LIMIT EIP-2182: Reduce the Clique SIGNER_LIMIT Jul 9, 2019
@axic axic requested a review from karalabe July 9, 2019 19:48
@karalabe
Copy link
Member

The original reason for the SIGNER_LIMIT was to ensure that only the chain with majority approval can progress. A chain without majority approval is a side fork, and should not be allowed to progress beyond a few blocks, since it's a DoS attack on full nodes (full nodes need to store side chains too, if they ever become heavier than the main one). On ethash side chains cannot go on forever since each block has an inherent cost. On Clique, side chains can actually go on forever, since all the blocks are free to create computationally.

Imagine that you have a network of many signers, but only 2 are online. With this proposal, the 2 online ones can actually each push their own chain, completely disregarding the other one, and both will weigh the exact same. This would cause the network to flip-flop between the two chains until something collapses. This scenario assumes only malicious signers are left.

If there are some legit signers left, I think it should be fine to keep one chain heavier than the others, but I still think it's important to have a contingency plan against malicious side forks. Maybe we could somehow cover how that vector can be minimized.


Another issue is that by permitting SIGNER_LIMIT to go below the actual number of authorized signers, you reduce the chain's security to the number of legit miners online at any point in time. Since only "online" majority is needed to push a chain, if at any point the majority online is malicious, game over. I can imagine a similar issue might arise if malicious signers try to retrospectively game an "offline" timespan.

This may or may not be a problem depending on use case however. If the signers are generally well vetted and disappearing ones are generally weeded out before they pile up, I think it can be made to work.


All in all I don't think is is a bad EIP, maybe it needs to cover potential attacks and rational why those are not a problem, or what a network operator (group) might need to do to avoid them.

@github-actions
Copy link

github-actions bot commented Sep 8, 2020

There has been no activity on this pull request for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the stale label Sep 8, 2020
@github-actions
Copy link

This pull request was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.

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

Successfully merging this pull request may close these issues.

Reduce the Clique SIGNER_LIMIT
4 participants