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

[Polkadot Wiki Migration] Offenses and Slashes #43

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

Conversation

CrackTheCode016
Copy link
Collaborator

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

vale

infrastructure/validators/offenses-slashes.md|112 col 62| [Vale.Spelling] Did you really mean 'unapplied'?
infrastructure/validators/offenses-slashes.md|112 col 62| [Papermoon.CustomDictionary] Did you really mean 'unapplied'?
infrastructure/validators/offenses-slashes.md|116 col 1| [Papermoon.CustomDictionary] Did you really mean 'unapplied'?
infrastructure/validators/offenses-slashes.md|116 col 1| [Vale.Spelling] Did you really mean 'unapplied'?
infrastructure/validators/offenses-slashes.md|130 col 19| [Papermoon.NotContractions] Use 'aren't' instead of 'are not'.
infrastructure/validators/offenses-slashes.md|130 col 79| [Google.Semicolons] Use semicolons judiciously.
infrastructure/validators/offenses-slashes.md|134 col 54| [Papermoon.NotContractions] Use 'don't' instead of 'do not'.
infrastructure/validators/offenses-slashes.md|142 col 23| [Google.Latin] Use 'that is' instead of 'i.e.'.
infrastructure/validators/offenses-slashes.md|146 col 82| [Papermoon.NotContractions] Use 'aren't' instead of 'are not'.
infrastructure/validators/offenses-slashes.md|150 col 67| [Papermoon.CustomDictionary] Did you really mean 'reputational'?
infrastructure/validators/offenses-slashes.md|150 col 67| [Vale.Spelling] Did you really mean 'reputational'?
infrastructure/validators/offenses-slashes.md|153 col 53| [Vale.Avoid] Avoid using 'our'.
infrastructure/validators/offenses-slashes.md|153 col 53| [Google.We] Try to avoid using first-person plural like 'our'.
infrastructure/validators/offenses-slashes.md|158 col 10| [Papermoon.Acronyms] Spell out 'BABE', if it's unfamiliar to the audience.
infrastructure/validators/offenses-slashes.md|158 col 20| [Papermoon.Acronyms] Spell out 'BEEFY', if it's unfamiliar to the audience.
infrastructure/validators/offenses-slashes.md|165 col 6| [Vale.Avoid] Avoid using 'our'.
infrastructure/validators/offenses-slashes.md|165 col 6| [Google.We] Try to avoid using first-person plural like 'our'.
infrastructure/validators/offenses-slashes.md|165 col 23| [Papermoon.NotContractions] Use 'doesn't' instead of 'does not'.
infrastructure/validators/offenses-slashes.md|165 col 56| [Papermoon.Acronyms] Spell out 'BABE', if it's unfamiliar to the audience.
infrastructure/validators/offenses-slashes.md|168 col 12| [Google.Latin] Use 'that is' instead of 'i.e.'.
infrastructure/validators/offenses-slashes.md|176 col 13| [Papermoon.WordSwapList] Use 'preceding' instead of 'above'.
infrastructure/validators/offenses-slashes.md|179 col 25| [Papermoon.NotContractions] Use 'doesn't' instead of 'does not'.
infrastructure/validators/offenses-slashes.md|182 col 1| [Vale.Terms] Use 'validators' instead of 'Validators'.
infrastructure/validators/offenses-slashes.md|184 col 38| [Papermoon.NotContractions] Use 'don't' instead of 'do not'.
infrastructure/validators/offenses-slashes.md|203 col 376| [Papermoon.NotContractions] Use 'didn't' instead of 'did not'.
infrastructure/validators/offenses-slashes.md|205 col 467| [Papermoon.NotContractions] Use 'wasn't' instead of 'was not'.
infrastructure/validators/offenses-slashes.md|213 col 3| [Papermoon.NotContractions] Use 'doesn't' instead of 'does not'.
infrastructure/validators/offenses-slashes.md|214 col 3| [Vale.Spelling] Did you really mean 'Slashable'?
infrastructure/validators/offenses-slashes.md|214 col 3| [Papermoon.CustomDictionary] Did you really mean 'Slashable'?
infrastructure/validators/offenses-slashes.md|217 col 58| [Papermoon.CustomDictionary] Did you really mean 'overslashing'?
infrastructure/validators/offenses-slashes.md|217 col 58| [Vale.Spelling] Did you really mean 'overslashing'?
infrastructure/validators/offenses-slashes.md|235 col 97| [Google.We] Try to avoid using first-person plural like 'our'.
infrastructure/validators/offenses-slashes.md|235 col 97| [Vale.Avoid] Avoid using 'our'.
infrastructure/validators/offenses-slashes.md|236 col 81| [Google.Semicolons] Use semicolons judiciously.
infrastructure/validators/offenses-slashes.md|236 col 99| [Google.We] Try to avoid using first-person plural like 'us'.

staked tokens via [Nominated Proof-of-Stake](./learn-staking.md#nominated-proof-of-stake-npos).


Polkadot is a public permissionless network. As such, it has a mechanism to disincentivize offenses and incentivize good behavior. Below, you can

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Papermoon.CustomDictionary] Did you really mean 'permissionless'?

staked tokens via [Nominated Proof-of-Stake](./learn-staking.md#nominated-proof-of-stake-npos).


Polkadot is a public permissionless network. As such, it has a mechanism to disincentivize offenses and incentivize good behavior. Below, you can

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'permissionless'?

staked tokens via [Nominated Proof-of-Stake](./learn-staking.md#nominated-proof-of-stake-npos).


Polkadot is a public permissionless network. As such, it has a mechanism to disincentivize offenses and incentivize good behavior. Below, you can

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Papermoon.CustomDictionary] Did you really mean 'disincentivize'?

staked tokens via [Nominated Proof-of-Stake](./learn-staking.md#nominated-proof-of-stake-npos).


Polkadot is a public permissionless network. As such, it has a mechanism to disincentivize offenses and incentivize good behavior. Below, you can

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'disincentivize'?

Polkadot is a public permissionless network. As such, it has a mechanism to disincentivize offenses and incentivize good behavior. Below, you can
find a summary of punishments for specific offenses:

| Offense | [Slash (%)](#slashing) | [On-chain Disabling](#disabling) | Off-chain Disabling | [Reputational Changes](#reputation-changes) |

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Papermoon.CustomDictionary] Did you really mean 'Reputational'?

**Slashing** will happen if a validator misbehaves in the network. They and their nominators will
get slashed by losing a percentage of their staked DOT/KSM, from as little as 0.01% up to 100%.

Any slashed DOT/KSM will be added to the

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Papermoon.Acronyms] Spell out 'DOT', if it's unfamiliar to the audience.

**Slashing** will happen if a validator misbehaves in the network. They and their nominators will
get slashed by losing a percentage of their staked DOT/KSM, from as little as 0.01% up to 100%.

Any slashed DOT/KSM will be added to the

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Papermoon.Acronyms] Spell out 'KSM', if it's unfamiliar to the audience.

be useful in situations such as faulty slashes. In the case of legitimate slashing, tokens are moved
away from malicious validators to those building the ecosystem through the normal Treasury process.

Slashing only occurs for active validations for a given nominator, and slashes are not mitigated by

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Papermoon.NotContractions] Use 'aren't' instead of 'are not'.


Slashing only occurs for active validations for a given nominator, and slashes are not mitigated by
having other inactive or waiting nominations. They are also not mitigated by the validator operator
running separate nodes; each node is considered its own entity for slashing purposes.

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Google.Semicolons] Use semicolons judiciously.


:::

Once a validator gets slashed, it goes into the state as an "unapplied slash". You can check this

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Google.Quotes] Commas and periods go inside quotation marks.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

vale

infrastructure/validators/offenses-slashes.md|227 col 81| [Google.Semicolons] Use semicolons judiciously.
infrastructure/validators/offenses-slashes.md|227 col 99| [Google.We] Try to avoid using first-person plural like 'us'.

**Slashing** will happen if a validator misbehaves in the network. They and their nominators will
get slashed by losing a percentage of their staked DOT/KSM, from as little as 0.01% up to 100%.

Any slashed DOT/KSM will be added to the [Treasury](https://wiki.polkadot.network/docs/learn-polkadot-opengov-treasury){target=\_blank}. The rationale for this (rather than burning or distributing them as rewards) is that slashes may be reverted by simply paying out from the Treasury. This would

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Papermoon.Acronyms] Spell out 'DOT', if it's unfamiliar to the audience.

**Slashing** will happen if a validator misbehaves in the network. They and their nominators will
get slashed by losing a percentage of their staked DOT/KSM, from as little as 0.01% up to 100%.

Any slashed DOT/KSM will be added to the [Treasury](https://wiki.polkadot.network/docs/learn-polkadot-opengov-treasury){target=\_blank}. The rationale for this (rather than burning or distributing them as rewards) is that slashes may be reverted by simply paying out from the Treasury. This would

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Papermoon.Acronyms] Spell out 'KSM', if it's unfamiliar to the audience.

be useful in situations such as faulty slashes. In the case of legitimate slashing, tokens are moved
away from malicious validators to those building the ecosystem through the normal Treasury process.

Slashing only occurs for active validations for a given nominator, and slashes are not mitigated by

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[Papermoon.NotContractions] Use 'aren't' instead of 'are not' to improve clarity for the reader

validator). Staking allocations are controlled by the [Phragmén algorithm](https://wiki.polkadot.network/docs/learn-phragmen#understanding-phragm%C3%A9n){target=\_blank}.


Once a validator gets slashed, it goes into the state as an "unapplied slash". You can check this

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Papermoon.CustomDictionary] Did you really mean 'unapplied'?

validator). Staking allocations are controlled by the [Phragmén algorithm](https://wiki.polkadot.network/docs/learn-phragmen#understanding-phragm%C3%A9n){target=\_blank}.


Once a validator gets slashed, it goes into the state as an "unapplied slash". You can check this

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'unapplied'?

- A nominator can nominate multiple validators and be slashed via any of them.
- Until slashed, the stake is reused from era to era. Nominating with N coins for E eras in a row
does not mean you have N\*E coins to be slashed - you've only ever had N.
- Slashable offenses can be found after the fact and out of order.

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Papermoon.CustomDictionary] Did you really mean 'Slashable'?

- A nominator can nominate multiple validators and be slashed via any of them.
- Until slashed, the stake is reused from era to era. Nominating with N coins for E eras in a row
does not mean you have N\*E coins to be slashed - you've only ever had N.
- Slashable offenses can be found after the fact and out of order.

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'Slashable'?

- Slashable offenses can be found after the fact and out of order.

To balance this, the system applies only the maximum slash a participant can receive in a given time
period rather than the sum. This ensures protection from overslashing.

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Papermoon.CustomDictionary] Did you really mean 'overslashing'?

- Slashable offenses can be found after the fact and out of order.

To balance this, the system applies only the maximum slash a participant can receive in a given time
period rather than the sum. This ensures protection from overslashing.

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'overslashing'?

### Reputation Changes

Some minor offenses often connected to spamming are only punished by Networking Reputation Changes.
When validators connect to each other, they use a reputation metric for each of their peers. If our

Choose a reason for hiding this comment

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

⚠️ [vale] reported by reviewdog 🐶
[Google.We] Try to avoid using first-person plural like 'our'.

@eshaben eshaben requested a review from a team October 4, 2024 02:26
@@ -0,0 +1,232 @@
---
title: Offenses and Slashes
description: Offenses and Slashes in the Polkadot Ecosystem.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Description too short


## Offenses

!!!info Learn more about the parachain protocol
Copy link
Collaborator

Choose a reason for hiding this comment

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

Seems that this admonition is not rendering as expected

[parachain protocol](https://wiki.polkadot.network/docs/learn-parachains-protocol#parachain-protocol){target=\_blank}.

On Polkadot, there are six main validator
offenses as shown below.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
offenses as shown below.
offenses as shown below:

Comment on lines +38 to +62
- **Backing Invalid:** A para-validator is backing an invalid block.
- **ForInvalid Vote:** A validator (secondary checker) votes in favor of an invalid block.
- **AgainstValid Vote:** A validator (secondary checker) is voting against a valid block (and
wasting network resources).
- **Equivocation:** A validator produces two or more of the same block or vote.
- GRANDPA and BEEFY Equivocation: A validator signs two or more votes in the same round on
different chains.
- BABE Equivocation: A validator produces two or more blocks on the Relay Chain in the same time
slot.
- **Double Seconded Equivocation:** Within a backing group of 5 para-validators, at most 5 backed
parablocks are possible. Each parablock requires exactly one seconded and at least two more valid
votes from the five potential backers. This makes an upper bound on the number of parablocks the
system has to deal with while still allowing some choice for relay chain block authors. Backers
must decide which parablock to second, and they cannot second another. If another seconding vote
is found, they will be punished (somewhat lightly as of now, but there is little to gain from
this). All of this is made slightly more complicated with
[asynchronous backing](https://wiki.polkadot.network/docs/learn-async-backing){target=\_blank} as it is no longer one candidate per relay chain
block as backers can back blocks "into the future" optimistically. See
[this page](https://paritytech.github.io/polkadot-sdk/book/node/backing/statement-distribution.html#seconding-limit){target=\_blank}
for more information.
- **Seconded + Valid Equivocation:** This happens when a malicious node first seconds something
(takes absolute responsibility for it), and then only pretends to be someone who just said it is
correct after someone else takes responsibility. That is a straight-up lie (equivocation). A node
could use that tactic to escape responsibility, but once the system notices the two conflicting
votes, the offense is reported.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- **Backing Invalid:** A para-validator is backing an invalid block.
- **ForInvalid Vote:** A validator (secondary checker) votes in favor of an invalid block.
- **AgainstValid Vote:** A validator (secondary checker) is voting against a valid block (and
wasting network resources).
- **Equivocation:** A validator produces two or more of the same block or vote.
- GRANDPA and BEEFY Equivocation: A validator signs two or more votes in the same round on
different chains.
- BABE Equivocation: A validator produces two or more blocks on the Relay Chain in the same time
slot.
- **Double Seconded Equivocation:** Within a backing group of 5 para-validators, at most 5 backed
parablocks are possible. Each parablock requires exactly one seconded and at least two more valid
votes from the five potential backers. This makes an upper bound on the number of parablocks the
system has to deal with while still allowing some choice for relay chain block authors. Backers
must decide which parablock to second, and they cannot second another. If another seconding vote
is found, they will be punished (somewhat lightly as of now, but there is little to gain from
this). All of this is made slightly more complicated with
[asynchronous backing](https://wiki.polkadot.network/docs/learn-async-backing){target=\_blank} as it is no longer one candidate per relay chain
block as backers can back blocks "into the future" optimistically. See
[this page](https://paritytech.github.io/polkadot-sdk/book/node/backing/statement-distribution.html#seconding-limit){target=\_blank}
for more information.
- **Seconded + Valid Equivocation:** This happens when a malicious node first seconds something
(takes absolute responsibility for it), and then only pretends to be someone who just said it is
correct after someone else takes responsibility. That is a straight-up lie (equivocation). A node
could use that tactic to escape responsibility, but once the system notices the two conflicting
votes, the offense is reported.
- Backing Invalid - a para-validator is backing an invalid block
- ForInvalid Vote - a validator (secondary checker) votes in favor of an invalid block
- AgainstValid Vote - a validator (secondary checker) is voting against a valid block (and
wasting network resources)
- Equivocation - a validator produces two or more of the same block or vote
- GRANDPA and BEEFY Equivocation - a validator signs two or more votes in the same round on different chains
- BABE Equivocation - a validator produces two or more blocks on the Relay Chain in the same time slot
- Double Seconded Equivocation - within a backing group of 5 para-validators, at most 5 backed
parablocks are possible. Each parablock requires exactly one seconded and at least two more valid
votes from the five potential backers. This makes an upper bound on the number of parablocks the
system has to deal with while still allowing some choice for relay chain block authors. Backers
must decide which parablock to second, and they cannot second another. If another seconding vote
is found, they will be punished (somewhat lightly as of now, but there is little to gain from
this). All of this is made slightly more complicated with
[asynchronous backing](https://wiki.polkadot.network/docs/learn-async-backing){target=\_blank} as it is no longer one candidate per relay chain
block as backers can back blocks "into the future" optimistically. See
[this page](https://paritytech.github.io/polkadot-sdk/book/node/backing/statement-distribution.html#seconding-limit){target=\_blank}
for more information
- Seconded + Valid Equivocation - this happens when a malicious node first seconds something
(takes absolute responsibility for it), and then only pretends to be someone who just said it is
correct after someone else takes responsibility. That is a straight-up lie (equivocation). A node
could use that tactic to escape responsibility, but once the system notices the two conflicting
votes, the offense is reported

having other inactive or waiting nominations. They are also not mitigated by the validator operator
running separate nodes; each node is considered its own entity for slashing purposes.

!!!info "Multiple Active Nominations"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Not rendering properly


#### Slash for Equivocation

The following levels of offense are
Copy link
Collaborator

Choose a reason for hiding this comment

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

defined is not self explanatory. Put the link in a better word or rephrase the sentence

Comment on lines +124 to +129
- Level 1: Isolated equivocation slashes a minimal amount of the stake.
- Level 2: Misconducts unlikely to be accidental but do not harm the network's security to any large
extent. Examples include concurrent equivocation or isolated cases of unjustified voting in
[GRANDPA](https://wiki.polkadot.network/docs/learn-consensus#finality-gadget-grandpa){target=\_blank}. Slashes a moderately small amount of the stake.
- Level 3: misconduct that poses severe security or monetary risk to the system or mass collusion.
Slashes all or most of the stake behind the validator.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- Level 1: Isolated equivocation slashes a minimal amount of the stake.
- Level 2: Misconducts unlikely to be accidental but do not harm the network's security to any large
extent. Examples include concurrent equivocation or isolated cases of unjustified voting in
[GRANDPA](https://wiki.polkadot.network/docs/learn-consensus#finality-gadget-grandpa){target=\_blank}. Slashes a moderately small amount of the stake.
- Level 3: misconduct that poses severe security or monetary risk to the system or mass collusion.
Slashes all or most of the stake behind the validator.
- Level 1 - isolated equivocation slashes a minimal amount of the stake
- Level 2 - misconducts unlikely to be accidental but do not harm the network's security to any large
extent. Examples include concurrent equivocation or isolated cases of unjustified voting in
[GRANDPA](https://wiki.polkadot.network/docs/learn-consensus#finality-gadget-grandpa){target=\_blank}. Slashes a moderately small amount of the stake
- Level 3 - misconduct that poses severe security or monetary risk to the system or mass collusion.
Slashes all or most of the stake behind the validator

Comment on lines +133 to +141
1. Cloning a server, i.e., copying all contents when migrating to new hardware. This action should
be avoided. If an image is desired, it should be taken before keys are generated.
2. High Availability (HA) Systems – Equivocation can occur if there are any concurrent operations,
either when a failed server restarts or if a false positive event results in both servers being
online simultaneously. HA systems are to be treated with extreme caution and are not advised.
3. The keystore folder is copied when attempting to copy a database from one instance to another.
It is important to note that equivocation slashes occur with a single incident. This can happen
if duplicated keystores are used for only a few seconds. A slash can result in losing nominators
and funds, removal from the Thousand Validator Programme, and reputational damage.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
1. Cloning a server, i.e., copying all contents when migrating to new hardware. This action should
be avoided. If an image is desired, it should be taken before keys are generated.
2. High Availability (HA) Systems – Equivocation can occur if there are any concurrent operations,
either when a failed server restarts or if a false positive event results in both servers being
online simultaneously. HA systems are to be treated with extreme caution and are not advised.
3. The keystore folder is copied when attempting to copy a database from one instance to another.
It is important to note that equivocation slashes occur with a single incident. This can happen
if duplicated keystores are used for only a few seconds. A slash can result in losing nominators
and funds, removal from the Thousand Validator Programme, and reputational damage.
1. Cloning a server, i.e., copying all contents when migrating to new hardware. This action should
be avoided. If an image is desired, it should be taken before keys are generated
2. High Availability (HA) Systems – equivocation can occur if there are any concurrent operations,
either when a failed server restarts or if a false positive event results in both servers being
online simultaneously. HA systems are to be treated with extreme caution and are not advised
3. The keystore folder is copied when attempting to copy a database from one instance to another.
It is important to note that equivocation slashes occur with a single incident. This can happen
if duplicated keystores are used for only a few seconds. A slash can result in losing nominators
and funds, removal from the Thousand Validator Programme, and reputational damage

Comment on lines +202 to +205
- A nominator can nominate multiple validators and be slashed via any of them.
- Until slashed, the stake is reused from era to era. Nominating with N coins for E eras in a row
does not mean you have N\*E coins to be slashed - you've only ever had N.
- Slashable offenses can be found after the fact and out of order.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- A nominator can nominate multiple validators and be slashed via any of them.
- Until slashed, the stake is reused from era to era. Nominating with N coins for E eras in a row
does not mean you have N\*E coins to be slashed - you've only ever had N.
- Slashable offenses can be found after the fact and out of order.
- A nominator can nominate multiple validators and be slashed via any of them
- Until slashed, the stake is reused from era to era. Nominating with N coins for E eras in a row
does not mean you have N\*E coins to be slashed - you've only ever had N
- Slashable offenses can be found after the fact and out of order

Comment on lines +215 to +218
- On-chain disabling lasts for a whole era and stops validators from block authoring, backing, and
initiating a dispute.
- Off-chain disabling lasts for a session, is caused by losing a dispute, and stops validators from
initiating a dispute.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
- On-chain disabling lasts for a whole era and stops validators from block authoring, backing, and
initiating a dispute.
- Off-chain disabling lasts for a session, is caused by losing a dispute, and stops validators from
initiating a dispute.
- On-chain disabling lasts for a whole era and stops validators from block authoring, backing, and
initiating a dispute
- Off-chain disabling lasts for a session, is caused by losing a dispute, and stops validators from
initiating a dispute

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

Successfully merging this pull request may close these issues.

2 participants