Skip to content

Node approval voting behaviour when disabled (no-show vs explicit vote) #2725

Closed
@Overkillus

Description

When an (honest) node gets disabled it has limited validator privileges. Even if it spots a truly malicious candidate there is not that much it can do since raising a dispute will not escalate into participation from others (unless confirmed / other non-disabled participated already). Should that node issue an explicit vote in the dispute or should it no-show to slightly escalate the issue? Then if this node sees the dispute for this candidate started it will actually participate.

* Above only concerns finding an invalid candidate. In the happy path of a valid candidate node should always definitely issue an explicit vote for validity.

No-showing might be safer and a better approach if the node truly believes something is wrong as it escalates the issue further than casting an invalid vote when disabled.

Using that approach is equivalent safety-wise to a DoS attack on honest approval votes to potentially silence them. We are fine because of the escalation bringing in even more honest validators on average.

The cost we're paying is that disabled validators will have some escalation tools. So they can still affect liveness if they really want to but this will require much greater numbers. Without disabling a single guy could trigger a dispute (absolute escalation) but with that strategy a single actor if he gets disabled can at most... create 1 no-show (miniscule escalation).

TODOs:

  • Confirm design
  • Adjust node behaviour when disabled

Metadata

Assignees

Labels

I1-securityThe node fails to follow expected, security-sensitive, behaviour.I10-unconfirmedIssue might be valid, but it's not yet known.T8-polkadotThis PR/Issue is related to/affects the Polkadot network.

Type

No type

Projects

  • Status

    Completed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions