Commit Graph

2596 Commits

Author SHA1 Message Date
Hsiao-Wei Wang 2ccd357f0e
Update specs/core/1_custody-game.md
Co-Authored-By: vbuterin <v@buterin.com>
2019-05-03 21:05:54 +08:00
vbuterin 66b152f79e
Allow multiple bit challenges, and recover withdrawability
Resolves #864 items 4, 7, 14
2019-05-03 05:07:11 -05:00
dankrad c0f3453093 RANDAO reveal slashing, custody period staggering and integration of custody and RANDAO reveals (#880)
* Add RandaoRevealSlashing for early Randao reveals

* add some randao reveal slashing tests

* Unifying RANDAO reveal slashing and Custody reveal slashing; implemented more lenient penalty for not-to-early reveals

* Fix custody reveal domain

* Also test exposed_randao_reveals

* Re-add exposed_randao_reveals to validator initialization

* Fix tests

* Unified Randao Reveal slashing mechanism and Custody Reveal,
CUSTODY_PERIOD_TO_RANDAO_PADDING = EPOCHS_PER_CUSTODY_PERIOD

* Move exposed_randao_reveals into separate data structure to keep validator record clean

* new shiny staggered custody periods

* Fixes style and type hinting

* removes whitespace

* Cleans up multi-line conditionals

* Make RANDAO key reveal penalties proportional to block rewards

* Minor typos

* Minor typos

* Fixes off-by one error

* Removes unnecicary whitepsace

* Clean up comments; add test for key reveal too far in the future

* Reduce the CUSTODY_PERIOD_TO_RANDAO_PADDING again

* Fix max_proposer_slot_reward

* Fix types

* Move test

* Fix RandaoKeyReveal tests

* Move all RANDAO key reveal to phase 1

* Factor out signature checking

* Some fixes

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>

* Addressing Vitalik's suggestions: Separate RANDAO and Custody key reveals; append the cleanup of RANDAO reveals instead of adding a new function

* Remove remnants of verify_custody_key

* RandaoKeyReveal -> EarlyDerivedSecretReveal

* Make penalty proportional to number of secrets already exposed

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>

* Update specs/core/1_custody-game.md

Co-Authored-By: dankrad <dankrad@ethereum.org>
2019-05-03 17:30:55 +08:00
vbuterin 4ca2f11827
Custody game changes (#866)
* Custody game changes

1. Don't store the full chunk bits, instead only store a Merkle root. Increased history size complexity from `N` to `N + log(N)` but with the benefit of decreasing storage requirements from `N` to a single 32 byte hash.
2. `custody_bit` is computed as the first bit of the hash of the custody bits, not the xor. This allows us to more safely use functions with more risky security assumptions for computing the chunk mix.

* Update specs/core/1_custody-game.md

* Update specs/core/1_custody-game.md

* Update specs/core/1_custody-game.md

* Update specs/core/1_custody-game.md

* XOR aggregation before SHA256 to reduce number of hashes

* Simplifed get_chunk_bits_root

* standalone -> indexed

* Fix missing "data" and ToC
2019-05-03 17:20:54 +08:00
Alex Stokes 43e85f76d9
Update name of constant
max deposit amount is now in spirit named max effective balance
2019-05-02 21:05:51 -07:00
Alex Stokes 5d688ddb9d
Update property name 2019-05-02 20:45:39 -07:00
Danny Ryan d15ca4c50c
replace asserts in get_active_index_root and get_randao_mix with comment 2019-05-02 18:11:11 -06:00
Justin 9f2cdd9c78
Update 0_beacon-chain.md 2019-05-02 11:07:25 +01:00
Justin Drake 973f072235 Remove unnecessary test 2019-05-02 09:25:29 +01:00
Justin c761fbc318
Clean up verify_indexed_attestation
Cosmetic changes:

* Add 4 lines of comments (now every statement has a comment)
* Avoid unnecessary `assert` (the end goal for me is for `assert`s to be exclusive to the operation processing helpers).
* Merge `return`s into one (increase readability, reduce verbosity)
* Use shorter-named `bit_0_indices` and `bit_1_indices` helper variables

Substantive change:

* Remove the condition that `len(0_indices) + len(1_indices) > 0`. This condition is redundant in the context of `process_attester_slashing` because of `slashed_any`. It is largely artificial in `process_attestation` where validators are incentivised to maximise new attestations.
2019-05-02 09:24:24 +01:00
protolambda bbaa1417a8
remove incorrect unnecessary offset 2019-05-02 09:16:01 +02:00
Danny Ryan cdcb16dc1c
Merge pull request #1003 from ethereum/master
Backport (partial) v0.6.1 to dev
2019-05-01 20:19:52 -06:00
Danny Ryan b169c42339
fix underflows in generate_seed, get_randao_mix, and get_active_index_roots 2019-05-01 17:44:34 -06:00
terence tsao 68488a34d0
Update README.md 2019-05-01 16:33:21 -07:00
terence tsao d28e5e4843
Update 0_beacon-chain.md 2019-05-01 16:26:18 -07:00
Alex Stokes faf36e056f
Add notes to compute fork choice at genesis 2019-05-01 16:10:01 -07:00
Danny Ryan 715dc32334
Merge pull request #1015 from ethereum/JustinDrake-patch-11
Remove get_state_root from state transition doc
2019-05-01 17:08:15 -06:00
Danny Ryan 6242e54c0a
Merge branch 'JustinDrake-patch-11' of github.com:ethereum/eth2.0-specs into JustinDrake-patch-11 2019-05-01 17:06:23 -06:00
protolambda 524d7b09ba
implement SOS serialization in minimal_ssz.py 2019-05-02 00:34:17 +02:00
Danny Ryan 1bb9397b65
Merge pull request #1014 from ethereum/JustinDrake-patch-10
Add 32-byte graffiti
2019-05-01 16:30:02 -06:00
Danny Ryan 2ed8d99ac5
Merge pull request #1009 from ethereum/vbuterin-patch-2
Attestation committee refactor
2019-05-01 16:25:13 -06:00
Danny Ryan ef72b7ec20
Merge branch 'master' into vbuterin-patch-2 2019-05-01 16:19:21 -06:00
Danny Ryan 002e27973c
alter get_winning_crosslink.. to have same function signature as get_crosslink_committee 2019-05-01 15:51:43 -06:00
Danny Ryan 8f2c7a3663
revert cache to compute_committee 2019-05-01 12:56:48 -06:00
Diederik Loerakker 9d1ec584d3
Merge pull request #1022 from ethereum/revert-981-only_setup_py
Revert 981 only setup py to master
2019-05-02 01:25:14 +08:00
Diederik Loerakker 3562264a5c
Merge pull request #1020 from ethereum/revert-981-only_setup_py
Revert 981 only setup py
2019-05-02 01:03:56 +08:00
Justin Drake e85678ac15 restore compute_committee 2019-05-01 15:21:38 +01:00
Dankrad Feist b1930d2239
Union default values 2019-05-01 15:12:49 +01:00
Justin Drake 7980cf3ef7 Fix 2019-05-01 15:07:55 +01:00
Danny Ryan a25103cefd
Merge pull request #1013 from terencechain/patch-69
Generate seed once for get_beacon_proposer_index
2019-05-01 07:56:57 -06:00
Justin Drake 9b24d06b2c Cleanup 2019-05-01 14:16:55 +01:00
Justin 563df146b9
Update simple-serialize.md 2019-05-01 13:55:02 +01:00
Justin a33ee00239
Update simple-serialize.md 2019-05-01 13:52:37 +01:00
Justin Drake 2e63a9b5a0 clean up 2019-05-01 13:29:03 +01:00
Justin Drake 5df79d7565 Get rid of state_transition.py 2019-05-01 13:14:10 +01:00
Justin Drake 591a2b47c8 Simplify state_transition.py 2019-05-01 12:08:15 +01:00
Justin 8b316c6db4
Start moving state_transition.py to state transitition spec
The state transition spec should be reasonably self-contained, limiting the amount of "magic" outside of it. This PR is a first step in this direction, specifically for operation processing.
2019-05-01 12:04:27 +01:00
Hsiao-Wei Wang cc22432bb9
Update specs/simple-serialize.md
Co-Authored-By: dankrad <dankrad@ethereum.org>
2019-05-01 12:39:44 +02:00
Hsiao-Wei Wang d0447022cb
Update specs/simple-serialize.md
Co-Authored-By: dankrad <dankrad@ethereum.org>
2019-05-01 12:39:24 +02:00
Hsiao-Wei Wang 4a483309a5
Update specs/simple-serialize.md
Co-Authored-By: dankrad <dankrad@ethereum.org>
2019-05-01 12:39:07 +02:00
Hsiao-Wei Wang 5f341ae493
Move `get_state_root` to `pyspec/tests/helpers.py` 2019-05-01 17:06:02 +08:00
Justin f62126d5ee
Update 0_beacon-chain.md 2019-05-01 09:34:09 +01:00
Justin 407902763c
Update 0_beacon-chain.md 2019-05-01 09:33:22 +01:00
Justin Drake b6b4d3cbaf Add get_state_root in tests 2019-05-01 09:30:08 +01:00
Justin 427a53cdae
Remove get_state_root from state transition doc
Remove `get_state_root` from the state transition function spec because it is not used by the state transition function.
2019-05-01 09:24:51 +01:00
Justin bbcf5f0daa
Add 32-byte graffiti
Add 32-byte of arbitrary "graffiti" data in beacon blocks, in a similar vein to `extraData` in Eth1. To be used in wonderful and unpredictable ways (permissionless innovation by block proposers).
2019-05-01 09:19:54 +01:00
Justin Drake a0158c606e Expose get_commitee 2019-05-01 09:09:24 +01:00
Justin Drake a6e76ef9c6 Fix 2019-05-01 08:45:29 +01:00
Justin Drake 2e5ab130c1 Simplify presentation 2019-05-01 07:42:49 +01:00
Danny Ryan b3373a2d71
fix up some PR feedback and testing for #1009 2019-04-30 12:55:14 -06:00