You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -219,7 +220,9 @@ class CustodyKeyReveal(Container):
219
220
220
221
#### `EarlyDerivedSecretReveal`
221
222
222
-
Represents an early (punishable) reveal of one of the derived secrets, where derived secrets are RANDAO reveals and custody reveals (both are part of the same domain).
223
+
Represents an early (punishable) reveal of one of the derived secrets, where
224
+
derived secrets are RANDAO reveals and custody reveals (both are part of the
Returns the Legendre symbol `(a/q)` normalizes as a bit (i.e. `((a/q) + 1) // 2`). In a production implementation, a well-optimized library (e.g. GMP) should be used for this.
257
+
Returns the Legendre symbol `(a/q)` normalizes as a bit (i.e.
258
+
`((a/q) + 1) // 2`). In a production implementation, a well-optimized library
Copy file name to clipboardExpand all lines: specs/_deprecated/custody_game/validator.md
+47-15Lines changed: 47 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,47 +19,77 @@
19
19
20
20
## Introduction
21
21
22
-
This is an accompanying document to [Custody Game -- The Beacon Chain](./beacon-chain.md), which describes the expected actions of a "validator"
23
-
participating in the shard data Custody Game.
22
+
This is an accompanying document to
23
+
[Custody Game -- The Beacon Chain](./beacon-chain.md), which describes the
24
+
expected actions of a "validator" participating in the shard data Custody Game.
24
25
25
26
## Prerequisites
26
27
27
-
This document is an extension of the [Sharding -- Validator](../sharding/validator.md). All behaviors and definitions defined in the Sharding doc carry over unless explicitly noted or overridden.
28
+
This document is an extension of the
29
+
[Sharding -- Validator](../sharding/validator.md). All behaviors and definitions
30
+
defined in the Sharding doc carry over unless explicitly noted or overridden.
28
31
29
-
All terminology, constants, functions, and protocol mechanics defined in the [Custody Game -- The Beacon Chain](./beacon-chain.md)
30
-
docs are requisite for this document and used throughout. Please see the Custody Game docs before continuing and use them as a reference throughout.
32
+
All terminology, constants, functions, and protocol mechanics defined in the
33
+
[Custody Game -- The Beacon Chain](./beacon-chain.md) docs are requisite for
34
+
this document and used throughout. Please see the Custody Game docs before
35
+
continuing and use them as a reference throughout.
31
36
32
37
## Becoming a validator
33
38
34
-
Becoming a validator in Custody Game is unchanged from Phase 0. See the [Phase 0 validator guide](../../phase0/validator.md#becoming-a-validator) for details.
39
+
Becoming a validator in Custody Game is unchanged from Phase 0. See the
40
+
[Phase 0 validator guide](../../phase0/validator.md#becoming-a-validator) for
41
+
details.
35
42
36
43
## Beacon chain validator assignments
37
44
38
-
Beacon chain validator assignments to beacon committees and beacon block proposal are unchanged from Phase 0. See the [Phase 0 validator guide](../../phase0/validator.md#validator-assignments) for details.
45
+
Beacon chain validator assignments to beacon committees and beacon block
46
+
proposal are unchanged from Phase 0. See the
47
+
[Phase 0 validator guide](../../phase0/validator.md#validator-assignments) for
48
+
details.
39
49
40
50
##### Custody slashings
41
51
42
-
Up to `MAX_CUSTODY_SLASHINGS`, [`CustodySlashing`](./beacon-chain.md#custodyslashing) objects can be included in the `block`. The custody slashings must satisfy the verification conditions found in [custody slashings processing](beacon-chain.md#custody-slashings). The validator receives a small "whistleblower" reward for each custody slashing included (THIS IS NOT CURRENTLY THE CASE BUT PROBABLY SHOULD BE).
52
+
Up to `MAX_CUSTODY_SLASHINGS`,
53
+
[`CustodySlashing`](./beacon-chain.md#custodyslashing) objects can be included
54
+
in the `block`. The custody slashings must satisfy the verification conditions
55
+
found in [custody slashings processing](beacon-chain.md#custody-slashings). The
56
+
validator receives a small "whistleblower" reward for each custody slashing
57
+
included (THIS IS NOT CURRENTLY THE CASE BUT PROBABLY SHOULD BE).
43
58
44
59
##### Custody key reveals
45
60
46
-
Up to `MAX_CUSTODY_KEY_REVEALS`, [`CustodyKeyReveal`](./beacon-chain.md#custodykeyreveal) objects can be included in the `block`. The custody key reveals must satisfy the verification conditions found in [custody key reveal processing](beacon-chain.md#custody-key-reveals). The validator receives a small reward for each custody key reveal included.
61
+
Up to `MAX_CUSTODY_KEY_REVEALS`,
62
+
[`CustodyKeyReveal`](./beacon-chain.md#custodykeyreveal) objects can be included
63
+
in the `block`. The custody key reveals must satisfy the verification conditions
64
+
found in [custody key reveal processing](beacon-chain.md#custody-key-reveals).
65
+
The validator receives a small reward for each custody key reveal included.
47
66
48
67
##### Early derived secret reveals
49
68
50
-
Up to `MAX_EARLY_DERIVED_SECRET_REVEALS`, [`EarlyDerivedSecretReveal`](./beacon-chain.md#earlyderivedsecretreveal) objects can be included in the `block`. The early derived secret reveals must satisfy the verification conditions found in [early derived secret reveal processing](beacon-chain.md#custody-key-reveals). The validator receives a small "whistleblower" reward for each early derived secret reveal included.
The validator receives a small "whistleblower" reward for each early derived
75
+
secret reveal included.
51
76
52
77
#### Construct attestation
53
78
54
-
`attestation.data`, `attestation.aggregation_bits`, and `attestation.signature` are unchanged from Phase 0. But safety/validity in signing the message is premised upon calculation of the "custody bit" [TODO].
79
+
`attestation.data`, `attestation.aggregation_bits`, and `attestation.signature`
80
+
are unchanged from Phase 0. But safety/validity in signing the message is
81
+
premised upon calculation of the "custody bit" [TODO].
55
82
56
83
## How to avoid slashing
57
84
58
-
Proposer and Attester slashings described in Phase 0 remain in place with the addition of the following.
85
+
Proposer and Attester slashings described in Phase 0 remain in place with the
86
+
addition of the following.
59
87
60
88
### Custody slashing
61
89
62
-
To avoid custody slashings, the attester must never sign any shard transition for which the custody bit is one. The custody bit is computed using the custody secret:
90
+
To avoid custody slashings, the attester must never sign any shard transition
91
+
for which the custody bit is one. The custody bit is computed using the custody
Note that the valid custody secret is always the one for the **attestation target epoch**, not to be confused with the epoch in which the shard block was generated.
79
-
While they are the same most of the time, getting this wrong at custody epoch boundaries would result in a custody slashing.
108
+
Note that the valid custody secret is always the one for the **attestation
109
+
target epoch**, not to be confused with the epoch in which the shard block was
110
+
generated. While they are the same most of the time, getting this wrong at
111
+
custody epoch boundaries would result in a custody slashing.
See [Reed-Solomon erasure code recovery in `n*log^2(n)` time with FFTs](https://ethresear.ch/t/reed-solomon-erasure-code-recovery-in-n-log-2-n-time-with-ffts/3039) for theory.
95
-
Implementations:
94
+
See
95
+
[Reed-Solomon erasure code recovery in `n*log^2(n)` time with FFTs](https://ethresear.ch/t/reed-solomon-erasure-code-recovery-in-n-log-2-n-time-with-ffts/3039)
Copy file name to clipboardExpand all lines: specs/_deprecated/das/fork-choice.md
+7-3Lines changed: 7 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,13 @@
11
11
12
12
## Introduction
13
13
14
-
This document is the beacon chain fork choice spec for Data Availability Sampling. The only change that we add from phase 0 is that we add a concept of "data dependencies";
15
-
a block is only eligible for consideration in the fork choice after a data availability test has been successfully completed for all dependencies.
16
-
The "root" of a shard block for data dependency purposes is considered to be a `DataCommitment` object, which is a pair of a Kate commitment and a length.
14
+
This document is the beacon chain fork choice spec for Data Availability
15
+
Sampling. The only change that we add from phase 0 is that we add a concept of
16
+
"data dependencies"; a block is only eligible for consideration in the fork
17
+
choice after a data availability test has been successfully completed for all
18
+
dependencies. The "root" of a shard block for data dependency purposes is
19
+
considered to be a `DataCommitment` object, which is a pair of a Kate commitment
0 commit comments