Commit Graph

2412 Commits

Author SHA1 Message Date
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
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
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
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
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
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
terence tsao
c5d6c045e6 Update 0_beacon-chain.md 2019-04-30 11:07:58 -07:00
Justin
a40f37b9a2 Update 0_beacon-chain.md 2019-04-30 12:31:11 +01:00
Justin
60888c0c48 Update 0_beacon-chain.md 2019-04-30 12:27:45 +01:00
Justin
a23c9f712d Update 0_beacon-chain.md 2019-04-30 11:44:21 +01:00
Justin
adfa014a30 Update 0_beacon-chain.md 2019-04-30 11:38:11 +01:00
Justin
73603f4ed6 Update 0_beacon-chain.md 2019-04-30 11:34:57 +01:00
Justin
66403ad853 Update 0_beacon-chain.md 2019-04-30 11:00:23 +01:00
Justin
09ed9aea98 Update 0_beacon-chain.md 2019-04-30 10:55:09 +01:00
Justin
b19e7dbf0d Update 0_beacon-chain.md 2019-04-30 10:44:29 +01:00
Justin
92140d199e Update 0_beacon-chain.md 2019-04-30 10:41:09 +01:00
Justin
bcd7a83af4 Update 0_beacon-chain.md 2019-04-30 10:39:18 +01:00
Hsiao-Wei Wang
59d7be60db Fix is_double_vote and is_surround_vote 2019-04-30 15:19:11 +08:00
vbuterin
c13c4c5c7b Calculate historical start shards from state 2019-04-30 02:09:52 -05:00
Danny Ryan
dc458bfd2b Merge pull request #1004 from ethereum/JustinDrake-patch-10
Fix two effective_balance bugs
2019-04-29 12:06:27 -06:00
Danny Ryan
2348595f6d Merge pull request #1006 from JSON/patch-1
Tidying up the test_gen readme
2019-04-29 11:58:19 -06:00
Danny Ryan
90cacf5bfc Merge pull request #1007 from ethereum/v060-fixes
Some v0.6.0->v0.6.1 fixes
2019-04-29 11:58:00 -06:00
vbuterin
77d7aa7630 Attestation committee refactor
* Remove `get_crosslink_committees_at_slot` (that function's ugly man...)
* Make the "base" that everything works off instead be `get_crosslink_committee`
* Attestations store epoch, start shard and shard, no longer slot (slot can be calculated from the other three)
* Retaining start shard in attestations allows `get_attesting_indices` to peek much further back into the past, making it useful for slashings (Phase 1)
* Some two-layer-deep nested loops become one-layer-deep loops
2019-04-29 11:02:39 -05:00
JSON
c2555f7ce9 Update README.md 2019-04-28 00:48:57 -05:00
JSON
772a3800e6 Update README.md 2019-04-28 00:42:04 -05:00
Justin
9dd4b2110a Fix two effective_balance bugs
* Initialisation bug: initial `effective_balance` be not greater than `MAX_EFFECTIVE_BALANCE`
* Hysteresis bug: do not prevent `effective_balance` to go from `MAX_EFFECTIVE_BALANCE - 1` to `MAX_EFFECTIVE_BALANCE`
2019-04-26 18:46:35 +04:00
Danny Ryan
b69423f29b Merge pull request #996 from ethereum/return_tuple
`_deltas` functions should return `Tuple` instead of `List`
2019-04-26 08:44:51 -06:00
Danny Ryan
a146f257b5 Merge pull request #997 from ethereum/hwwhww/clean_up
PEP8-ish cleanup
2019-04-26 08:42:36 -06:00
Danny Ryan
48bdfd8642 Merge branch 'master' into hwwhww/clean_up 2019-04-26 08:40:50 -06:00
Danny Ryan
b31c21b3a7 Merge pull request #1001 from ethereum/registry_test
Fix `process_registry_updates` and add `test_process_registry_updates`
2019-04-26 08:30:57 -06:00
Danny Ryan
f76ade93d8 update registry tests to return the blocks that transiiton the pre_state to post_state 2019-04-26 08:27:07 -06:00
Danny Ryan
7c549a9ab7 Merge pull request #995 from ethereum/deposit_contract_description
Modify deposit contract description
2019-04-26 08:02:46 -06:00