Commit Graph

989 Commits

Author SHA1 Message Date
vbuterin 697545a9e0
Added entry_exit_effect_slot helper and moved index roots update 2019-01-22 22:47:07 -06:00
Dean Eigenmann 34a4396fa7
Update 0_beacon-chain.md 2019-01-22 23:10:12 +01:00
Dean Eigenmann 071537469e
Update 0_beacon-chain.md 2019-01-22 23:09:28 +01:00
Justin 6c824ffee4
Remove placeholders
Remove all custody and VDF placeholders (56 lines less!). A few notes on the placeholder fields and logic:

* All placeholder fields were dummy fields that can easily be restored in the phase 1 hard fork.
* One special case to the above is `custody_bit_0_validator_indices` in `SlashableVoteData` which was renamed to `validator_indices`. Renaming it back is *not* a spec change because SSZ field names are [no longer part of the spec](a9328157a8 (diff-8d8fe480a35579c7be2f976d9b321216)).
* The placeholder logic was written using generalised functions (e.g. `bls_verify_multiple` vs `bls_verify`, and `indices(slashable_vote_data)` vs `slashable_vote_data.validator_indices`). This generality was unnecessary because it was not triggered when all custody bits were 0. This means we can simplify the logic without being inconsistent with phase 1.

Rationale:

* Keep phase 0 (likely far harder to deliver than phase 1) as clean as possible
* Focus on upgrade paths and incremental releases
* Custody is still under research—keep the design space open
2019-01-22 20:45:30 +00:00
terence tsao 947e1b9520
Update 0_beacon-chain.md 2019-01-22 11:31:13 -08:00
terence tsao 1bc6c19dca
Update 0_beacon-chain.md 2019-01-22 10:56:01 -08:00
Jannik Luhn f8670e8069 SSZ: Remove note on efficiency 2019-01-22 17:18:21 +01:00
Jannik Luhn a5519a7d3b SSZ: List serialization with variable element size
Fix #232
2019-01-22 17:14:25 +01:00
Hsiao-Wei Wang c32a79f940
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 08:03:00 -06:00
Hsiao-Wei Wang 05e8d25a80
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:58:55 -06:00
Hsiao-Wei Wang daa1b6ebf1
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:58:29 -06:00
Hsiao-Wei Wang a934138d8b
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:58:10 -06:00
Hsiao-Wei Wang b7de018f4d
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:57:51 -06:00
Hsiao-Wei Wang 634740a2f2
Update specs/validator/0_beacon-chain-validator.md
Co-Authored-By: djrtwo <dannyjryan@gmail.com>
2019-01-22 07:56:44 -06:00
Justin e52d374521
Update 0_beacon-chain.md 2019-01-22 10:30:31 +00:00
Justin fb92d68bb9
Update 0_beacon-chain.md 2019-01-22 09:27:47 +00:00
Hsiao-Wei Wang afd9260ae2
Merge branch 'master' into vbuterin-patch-2 2019-01-22 17:07:32 +08:00
Danny Ryan a1b550a34f
fix formatting of references 2019-01-21 13:55:49 -06:00
Justin 941dfed863
Update 0_beacon-chain.md 2019-01-21 19:45:11 +00:00
Justin 80940ddd37
BLS-based RANDAO and custody (friendly to decentralised pools)
Unlock decentralised pools using m-of-n threshold BLS signatures for both RANDAO and custody. We also simplify a bunch:

* Remove `randao_commitment` and `custody_commitment`
* Remove miscellaneous logic such as `repeat_hash`

(Side note: Dfinity seems to be working to reduce the communication complexity of BLS DKG (Distributed Key Generation) so validator pools should also benefit from that.)
2019-01-21 18:41:29 +00:00
Danny Ryan 460188f9f5
clarify get_shuffling invariant 2019-01-21 11:47:23 -06:00
Danny Ryan 52696f8806
ensure validator links to master 2019-01-21 11:07:56 -06:00
Danny Ryan c60a4f13fc
Merge pull request #478 from ethereum/hwwhww/refactor_validator_registry
Extract the first two lines of (non-)validator-registry-update
2019-01-21 08:52:42 -06:00
Danny Ryan 32bfa812d1
Merge pull request #470 from mkalinin/mkalinin-patch-2
Add a note about exceptions in Python code
2019-01-21 08:48:49 -06:00
Danny Ryan 2e58d52aa6
Update 0_beacon-chain.md 2019-01-21 08:48:36 -06:00
Danny Ryan 8e502dd03f
Merge pull request #464 from ethereum/inclusion-fix
clarify `inclusion_distance`
2019-01-21 08:47:23 -06:00
Danny Ryan 0efeed9a56
fix constants in validator section 2019-01-21 08:39:24 -06:00
Danny Ryan f204a81e04
Merge branch 'master' into honest-validator 2019-01-21 08:36:37 -06:00
vbuterin 12b217df70
Updated as per hww's suggestions 2019-01-19 18:13:17 -06:00
Hsiao-Wei Wang 02725b870e
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-19 18:11:14 -06:00
Hsiao-Wei Wang 958c338c8f
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-19 18:11:07 -06:00
Hsiao-Wei Wang c8d8dc94c0
Extract the first two lines of (non-)validator-registry-update 2019-01-19 17:19:14 +08:00
Hsiao-Wei Wang 1ae3768ac8
Minor fixes 2019-01-19 16:06:00 +08:00
Hsiao-Wei Wang 41813462c3
Add custom types 2019-01-19 15:58:24 +08:00
Hsiao-Wei Wang ba8c44dd9a
Fix the new `Eth1Data` fields to `bytes32` 2019-01-19 15:46:09 +08:00
Hsiao-Wei Wang 47170bfafd
Merge branch 'master' into vbuterin-patch-2 2019-01-19 15:28:14 +08:00
Hsiao-Wei Wang 28ec5846de
Merge pull request #475 from ethereum/djrtwo-patch-4
remove unused variable def
2019-01-19 15:17:05 +08:00
Hsiao-Wei Wang 8dff59abd8
Merge pull request #474 from ethereum/djrtwo-patch-3
add some missing `data` calls
2019-01-19 15:16:00 +08:00
Hsiao-Wei Wang 15685cd3f1
Merge pull request #458 from ethereum/bytes32
Update BLS and core specs for `bytes32` and `bytes48` SSZ types
2019-01-19 15:09:09 +08:00
vbuterin 9e75a76fc1
Implement #459
Contents:

* Peg entries and exits to epoch boundaries
* Add a store of historical active index roots
* Mix it into the randomness
* Remove the delta hash chain

Note that the actual light client implementation is beyond the scope of the spec.

[Note to reviewers: verify that the invariant added in the PR is correct]

Question:

* Do we want to also only store epoch-boundary randao values? I don't think we use the epoch-intermediate ones anywhere.....
2019-01-18 21:06:21 -06:00
Danny Ryan cc18df1185
remove unused variable def 2019-01-18 18:45:15 -06:00
Danny Ryan 89f0543ab9
add some missing `data` calls 2019-01-18 17:13:23 -07:00
Jonny Rhea 8d5c75c6fd Update bls_signature.md (#473)
fq2 param should be a list
2019-01-18 21:39:28 +00:00
Justin 1c48544fee
Update 0_beacon-chain.md 2019-01-18 21:38:25 +00:00
Justin 70dfdace15
Update 0_beacon-chain.md 2019-01-18 21:37:30 +00:00
Danny Ryan aa29b9a347
add missing state param to calls to get_crosslink_committees_at_slots 2019-01-18 09:55:32 -06:00
Danny Ryan b493f850fc
cleanup crosslink committees iters 2019-01-18 09:40:15 -06:00
Mikhail Kalinin 11009af16e
Adds a note about Python code exceptions 2019-01-18 18:01:43 +06:00
Alex Stokes a7307b9236 Sign full `Exit` message so that a validator can prevent tampering (#468) 2019-01-18 10:10:23 +00:00
Hsiao-Wei Wang 690cf4b787
PR feedback 2019-01-18 16:21:58 +08:00
Danny Ryan c8a42c4dcc
Merge pull request #429 from Nashatyrev/master
Potential UInt underflow in get_shard_committees_at_slot
2019-01-17 22:01:46 -06:00
Danny Ryan 421ef9e08d
fix bad link in v guide 2019-01-17 21:29:38 -06:00
Danny Ryan b8f48d20a5
add follow distance constant and extra details around time to being added to the validator registry 2019-01-17 21:28:14 -06:00
Danny Ryan 90273cf46d
Merge pull request #469 from decanus/patch-10
`a.beacon_block_root` -> `a.data.beacon_block_root`
2019-01-17 20:25:50 -06:00
Danny Ryan 166a1d0638
Merge pull request #467 from decanus/patch-9
Adds Data field
2019-01-17 20:25:17 -06:00
Dean Eigenmann 15fdea5b1b
`a.beacon_block_root` -> `a.data.beacon_block_root` 2019-01-18 02:36:37 +01:00
Dean Eigenmann 96aac450b5
Update 0_beacon-chain.md 2019-01-18 02:22:12 +01:00
Dean Eigenmann c8597a0d49
Update 0_beacon-chain.md 2019-01-18 02:11:54 +01:00
Hsiao-Wei Wang 063f658697
`bytes96` for Signature 2019-01-18 03:19:38 +08:00
Danny Ryan 91eba49eeb fix slot for domain in verify_slashable_vote_data (#465) 2019-01-17 19:00:29 +00:00
Danny Ryan 8b64832a02
ensure inclusion distance is for lower applicable attestation 2019-01-17 12:07:41 -06:00
Danny Ryan 7fc5238b8f
update deposit root section to utilize eth1data 2019-01-17 11:38:56 -06:00
Danny Ryan 8cdb8d9334
Merge branch 'master' into honest-validator 2019-01-17 11:00:51 -06:00
Hsiao-Wei Wang 13dc373224
Update specs/simple-serialize.md
Co-Authored-By: decanus <dean@tokenate.io>
2019-01-17 17:51:34 +01:00
Dean Eigenmann f485259d74
Update simple-serialize.md 2019-01-17 17:48:07 +01:00
Dean Eigenmann 7603d1d5c9
Update simple-serialize.md 2019-01-17 17:47:07 +01:00
Jacek Sieka a80f2717f3 ssz: switch integer encoding to little endian (#139) 2019-01-17 15:34:07 +00:00
Hsiao-Wei Wang df83dc7bf5
Merge branch 'master' into bytes32 2019-01-17 19:49:10 +08:00
vbuterin 7686702c29 Vote for block hash along with deposit root (#448) 2019-01-17 11:43:47 +00:00
Hsiao-Wei Wang 18b97cf922
pubkey: Bytes48 2019-01-17 19:40:26 +08:00
terence tsao 7439939e29 Misc Renamings (#450)
- `participation_bitfield` -> `aggregation_bitfield`
- `validator_registry_latest_change_slot` -> `validator_registry_update_slot`
- `latest_penalized_exit_balances` -> `latest_penalized_balances`
- `fork_data` -> `fork`
    - `pre_fork_version` -> `previous_version`
    - `pork_fork_version` -> `current_version`
    - `fork_slot` -> `slot`
2019-01-17 11:18:30 +00:00
Hsiao-Wei Wang 8d2f4a1705 SSZ: Add `bytesN`, remove `hashN` and `Address` (#455) 2019-01-17 11:02:57 +00:00
JinHwan 87fb35d244 Remove Record suffix (#434) 2019-01-17 11:01:13 +00:00
terence tsao 812b385f64 Normalize ETH units to Gwei (#420) 2019-01-17 10:55:05 +00:00
Hsiao-Wei Wang ba7bc29ce9
Fix `bls_aggregate_signatures` 2019-01-17 17:36:31 +08:00
Hsiao-Wei Wang 209220787b
Deal with BLS APIs, will define `Bytes48` in the type hinting cleanup 2019-01-17 17:29:28 +08:00
Hsiao-Wei Wang 713af88c43
`proof_of_possession: Signature` 2019-01-17 17:03:20 +08:00
Hsiao-Wei Wang 725199593b
For pubkey type hinting, use `bytes` for now. 2019-01-17 17:00:39 +08:00
Hsiao-Wei Wang 0b10b0444a
Replace `Hash32` with `Bytes32` 2019-01-17 16:56:33 +08:00
Hsiao-Wei Wang 61f5d99dee
Fix `Deposit.branch` type notation 2019-01-17 16:54:38 +08:00
Hsiao-Wei Wang 14891047d7
Update `EMPTY_SIGNATURE` 2019-01-17 16:52:56 +08:00
Hsiao-Wei Wang a588643661
Replace `uint384` with `bytes48` for pubkey 2019-01-17 16:51:50 +08:00
Hsiao-Wei Wang 7005e5fd55
Replace `['uint384']` with `Signature` 2019-01-17 16:49:08 +08:00
Hsiao-Wei Wang b515683e39
Replace `'[uint384]'` with Signature 2019-01-17 16:47:27 +08:00
Hsiao-Wei Wang 8d5fd404a7
Add `Signature` SSZ obj 2019-01-17 16:42:46 +08:00
Hsiao-Wei Wang accd3cfd01
Replace `hash32` with `bytes32` 2019-01-17 16:33:59 +08:00
Hsiao-Wei Wang 23e3f4defe
Rename `bytes1(x)`, `bytes2(x)`... function to `int_to_bytes1(x)`, `int_to_bytes2(x)`... 2019-01-17 16:30:04 +08:00
Anton Nashatyrev d29cbd6535 Merge remote-tracking branch 'upstream/master' 2019-01-17 11:00:19 +03:00
Dean Eigenmann 509870d138
Update 0_beacon-chain.md 2019-01-17 02:18:30 +01:00
Dean Eigenmann 412d295da3
Update 0_beacon-chain.md 2019-01-16 22:28:15 +01:00
Danny Ryan 40d4ec33cb
add basics for all block operations 2019-01-16 15:24:59 -06:00
Dean Eigenmann b74f518e4b
Fix typo `validators` -> `validator_registry` 2019-01-16 22:01:32 +01:00
Danny Ryan 2881f56c08
add pr feedback 2019-01-16 14:44:58 -06:00
Dean Eigenmann 60bbe7addc
Update 0_beacon-chain.md 2019-01-16 21:33:36 +01:00
Dean Eigenmann 5d542576d9
Update 0_beacon-chain.md 2019-01-16 21:31:33 +01:00
Danny Ryan a8716436a5
Merge branch 'master' into honest-validator 2019-01-16 13:46:06 -06:00
Danny Ryan 2c78645fc6
Merge pull request #452 from GregTheGreek/master
fix typo with get_attestation_participants
2019-01-16 13:41:03 -06:00
Hsiao-Wei Wang e5ea67f4ac
Update specs/core/0_beacon-chain.md
Co-Authored-By: GregTheGreek <gregorymarkou@gmail.com>
2019-01-16 14:39:00 -05:00
Dean Eigenmann 3b1ccae58c
Update 0_beacon-chain.md 2019-01-16 20:35:01 +01:00
Gregory Markou 2c25ed9062 fix typo with get_attestation_participants 2019-01-16 14:05:53 -05:00
Danny Ryan 85d6082990
Merge pull request #443 from terenc3t/patch-35
Replace shard_committee with crosslink_committee
2019-01-16 12:05:43 -06:00
Dustin Brody 5058e38b23 fix ValidatorRegistryDeltaBlock field naming/reference inconsistency 2019-01-15 20:26:53 -08:00
Hsiao-Wei Wang 0515adff44
Merge pull request #438 from mkalinin/fix-proposer-slashings
Fix one of proposer slashing verifications
2019-01-15 20:53:37 +08:00
Anton Nashatyrev 5321fee1cd Merge with spec update 2019-01-15 11:32:19 +03:00
Danny Ryan 8173854227
Update specs/core/0_beacon-chain.md
Co-Authored-By: mkalinin <noblesse.knight@gmail.com>
2019-01-15 12:02:17 +06:00
terence tsao aa990eb10e
update `shard committees` in get_shuffling 2019-01-14 21:07:36 -08:00
Hsiao-Wei Wang 134ef6d252
Update specs/core/0_beacon-chain.md
Co-Authored-By: terenc3t <terence@prysmaticlabs.com>
2019-01-14 20:44:30 -08:00
Danny Ryan 6b72ae3a3b
fill in missing links in phase 0 validator doc 2019-01-14 22:36:33 -06:00
Danny Ryan d29ce725db
add deposit root logic in block proposals 2019-01-14 21:50:34 -06:00
Hsiao-Wei Wang 1070ba2d11
Add ToC 2019-01-15 11:33:46 +08:00
Danny Ryan 1d44023731
initial pass on phase 0 validator doc 2019-01-14 21:25:23 -06:00
terence tsao bd506e1222
Update 0_beacon-chain.md 2019-01-14 16:06:33 -08:00
Danny Ryan 6f539fb1af minor fix to bls_verify param names in "proposer signature" (#441) 2019-01-14 22:23:57 +00:00
Hsiao-Wei Wang 1cd71b9d58
Fix some naming inconsistency and typos 2019-01-14 21:54:29 +08:00
Mikhail Kalinin 61cf6209d8 Fix one of proposer slashing verifications 2019-01-14 15:31:02 +06:00
Hsiao-Wei Wang 43d0142da9
Merge pull request #414 from benjaminion/vyper-merkle-branch
Add getter to Vyper contract for Merkle branches
2019-01-14 14:49:40 +08:00
terence tsao 4d1aadcc5c
Update 0_beacon-chain.md 2019-01-13 21:11:44 -08:00
Danny Ryan 891c87eca2
Merge pull request #408 from ethereum/vitalik91
Remove shard committees from the state
2019-01-13 22:55:08 -06:00
Danny Ryan bbf6b5c267
Merge pull request #419 from jimpo/bls-correction
Correct references to signature scheme in beacon spec.
2019-01-13 16:05:53 -06:00
terence tsao 2646ca1337
Update 0_beacon-chain.md 2019-01-13 08:55:48 -08:00
Danny Ryan 2b66811a04
address terence pr feedback 2019-01-11 11:35:18 -06:00
Danny Ryan 0a7e72f641
Merge branch 'master' into vitalik91 2019-01-11 11:33:38 -06:00
Justin 271e7b5cb8
Update 0_beacon-chain.md 2019-01-11 16:23:10 +00:00
Justin 7a0d45279c
Update 0_beacon-chain.md 2019-01-11 15:24:29 +00:00
Stan Drozd d9c6ad9008 get_attestation_participants: inline ceil_div8() (#430) 2019-01-11 14:37:38 +00:00
Anton Nashatyrev 8ebc4dece8 Local var should stay uint 2019-01-11 15:07:18 +03:00
Justin c8bd90aba3
Update 0_beacon-chain.md 2019-01-11 11:53:12 +00:00
Justin dd532d7887
Update 0_beacon-chain.md
* Avoid abbreviations
* Use `branch` as a more suggestive variable name than `ret`
* Cleanup spacing after comma
* Avoid having two index variables (`index` and `idx`)—Does this break anything?
2019-01-11 11:52:04 +00:00
Ben Edgington b75ac05ab6 Fix typo seed -> randao_mix 2019-01-11 11:05:43 +00:00
vbuterin 459734cb9e
get_randao_mix slot boundary fix 2019-01-10 22:34:13 -06:00
vbuterin 70c0cc43c5
Fixes as per Danny and Terence 2019-01-10 22:33:22 -06:00
Danny Ryan eec8b4ac44
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-10 21:02:51 -06:00
Danny Ryan 7736843917
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-10 21:01:30 -06:00
Danny Ryan 648c35dc3d
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-10 21:01:05 -06:00
Danny Ryan a0a96c7e7c
Update specs/core/0_beacon-chain.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-01-10 21:00:59 -06:00
jonny rhea d2eca73482 added assertion that n >= 0 2019-01-10 18:09:58 -06:00
Alex Stokes c141d90f0f
Fix typo with initial generation of `latest_penalized_exit_balances`
The spec as written is not valid python -- the generator of the list
comprehension must be iterable.

It looks like the author simply meant to `range` over the intended length.

This commit fixes the missing `range` operator
2019-01-10 15:41:15 -06:00
Ben Edgington 78fcda7ce0 Use bitwise xor to simplify merkle branch getter 2019-01-10 20:45:39 +00:00
Danny Ryan ab7f9d8f54
Merge pull request #422 from ethereum/JustinDrake-patch-1
Fix #320
2019-01-10 12:27:53 -06:00
Danny Ryan 5b1f352414
Merge pull request #388 from ralexstokes/add-missing-property-to-merkle-verification
Fixes a few bugs with deposit verification.
2019-01-10 12:15:12 -06:00
Danny Ryan 69cd904782
Merge branch 'master' into vitalik91 2019-01-10 11:29:11 -06:00
Vitalik Buterin e2886bf3d3 prev -> previous, cur -> current, get_shard_committee_at_slot rework, get_randao_mix rework 2019-01-10 11:01:19 -06:00
terence tsao c589f8273b
Update 0_beacon-chain.md 2019-01-10 08:19:56 -08:00
Justin 3476b02ffa
Fix #320
* Avoids unnecessary hashing of `message`
* Makes the ordering of arguments (`message` followed by `domain`) consistent with usage order
2019-01-10 11:52:21 +00:00
Alex Stokes 4cf06d908a
Truncate the index into the Merkle tree to bytes[8]
The beacon chain expects a `uint64` in part to avoid big-int computation.
This commit updates the `Deposit` log so that it broadcasts data of the
appropriate size.
2019-01-09 17:18:15 -06:00
Alex Stokes d62834654f
Broadcast `merkle_tree_index` in lieu of the deposit count 2019-01-09 17:02:19 -06:00
Alex Stokes 7a6854aab9
Fix variable name that was lost in botched rebase 2019-01-09 16:52:43 -06:00
Jim Posen b25154c774 Correct references to sig scheme in beacon spec.
BLS is the name of the signature scheme and BLS12-381 is the name of the
curve that it is defined over. So it is more correct to talk about a
"BLS signature/pubkey" rather than a "BLS12-381 signature/pubkey".
2019-01-09 12:47:19 -08:00
Alex Stokes f49f7eddf9
Use the correct name for the `amount` field 2019-01-09 14:44:06 -06:00
Alex Stokes c5de2fe710
Add missing deposit root when performing Merkle verification 2019-01-09 14:37:51 -06:00