Sanctioning of misconducts
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

Comment only
 
 
ABCDEFGHIJKLMNOPQRSTUVWXY
1
Slashing protocols
2
Protocols related to unavailability can be found on Sheet 2
Prefix P- stands for parachain, and prefix R- stands for relay chain
3
4
General principles:
5
6
1. Any validator found to be misbehaving will be banned from the next epoch, i.e. they will be uneligible candidates in the next NPoS validator election.
They may be banned from more than one epoch, depending on the misconduct.
2. By a "fisherman" we mean any plaintiff that needs to bond some stake or pay a high transaction fee, to trigger some checking protocol.
Hence, they run the risk of losing money. We do this in order to avoid spamming. Fishermen will be motivated by the reward they get if someone gets slashed.
Some parties have special privileges and do not require a bond to start a protocol; we do not call them fishermen and they are not necessarily rewarded.
3. In order to slash anybody, there should either be a short and objective proof of misbehavior, or a voting process, leading to an agreement by a majority of validators.
In any case, we will have a short document. Of course voting is expensive, so we use the former procedure whenever possible.
4. We keep an off-chain ledger of santioned misconducts. Even if a misconduct can have different-looking proofs,
we asume there is a quick way to check if a new complaint corresponds to a misconduct that was already sanctioned.
7
8
9
ProtocolMisconductWho can detect itProcedureLevel of RiskSlashingReward (if any)
Requires chain reversion?
10
11
ALL
Unresponsiveness:
An actor taking
too long to respond
Any other R-validator who is waiting for a response
Isolated case: very low
Concurrent cases: very high
Isolated case: 0.00001% slashing,
growing exponentially for concurrent cases
As new concurrent cases are detected,
we rectroactively update previous slashings and rewards.
10% of slashings.
12
13
GRANDPA
Equivocation:
a R-validator signing 2 or more votes
in the same round, for the same vote type
Any other R-validator who's online can detect this.
Each one keeps a dictionary structure to classify
received votes by round, voter and vote type
Fisherman places on-chain tx
with a small bond and a proof.
The proof consists of 2 signed votes
Isolated case: very low.
Concurrent cases: high.
If 1/4 or more concurrent: critical
Isolated case, slash 4% of stake.
If there are k concurrent cases,
slash 4k% from each culprit.
10% of slashings
14
15
Unjustified vote:
a R-validator voting for a chain
that doesn't contain a block
that could have been finalized
Other R-validators should constantly check
Initial on-chain check
and then challenge (possibly repeating)
Very high
Slash between 10% and 100%,
depending on the number of culprits.
10% of slashing
16
17
Safety fault: Finalization of 2 competing forks.
Requires a combination of equivocations
or unjustified votes by at least
f+1 misbehaving parties.
Other R-validators should constantly check
Initial on-chain check
and then challenge (possibly repeating)
Very high
Slash between 10% and 100%,
depending on the number of culprits.
10% of slashing
18
19
20
ParachainValidating invalid blocksOther P-validators
If a validator makes a claim,
other validators check (instant vote).
If there is a fisherman claim,
a small random number of validators check,
and then it escalates.
Al's notes: https://hackmd.io/AECgWIPNTZ-7VVCLt3LU9Q
The highestSlash 100%
10% of slashing
We need to make sure that
reward goes to the right (fisherman),
and is not e.g. stolen by the block producer.
Fisherman maybe can commit-reveal.
21
22
23
Block
Production
Equivocation:
A block producer produces two or
more R-blocks in the same time slot
R-validators can easily detect equivocation
and issue a short proof
Fisherman puts short proof
(2 signed headers)
and a small bond as a tx on-chain
Very low, unless there is long sequence
of colluding block producers
who grow two branches of a fork,
but this is highly unlikely to occur
1%10% of slashing to fisherman
24
25
Invalid blockR-validatorsVote to resolveVery low1% to R-block producer10% of slashing to fisherman
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Loading...