Rework the TODO

Probably missed a few. Will try to keep up to date.
This commit is contained in:
Justin 2018-10-03 11:59:59 +01:00 committed by GitHub
parent ef5d54cda0
commit afea8a10a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 17 deletions

View File

@ -581,27 +581,33 @@ Finally:
* Let `next_start_shard = (shard_and_committee_for_slots[-1][-1].shard_id + 1) % SHARD_COUNT` * Let `next_start_shard = (shard_and_committee_for_slots[-1][-1].shard_id + 1) % SHARD_COUNT`
* Set `shard_and_committee_for_slots[CYCLE_LENGTH:] = get_new_shuffling(block.ancestor_hashes[0], validators, next_start_shard)` * Set `shard_and_committee_for_slots[CYCLE_LENGTH:] = get_new_shuffling(block.ancestor_hashes[0], validators, next_start_shard)`
------- ### TODO
Note: this is ~80% complete. The main sections that are missing are: Note: This spec is ~60% complete.
* Logic for the formats of shard chains, who proposes shard blocks, etc. (in an initial release, if desired we could make crosslinks just be Merkle roots of blobs of data; in any case, one can philosophically view the whole point of the shard chains as being a coordination device for choosing what blobs of data to propose as crosslinks) * [ ] Specify how `crystallized_state_root` and `active_state_root` are constructed
* Logic for inducting queued validators from the PoW chain * [ ] Specify the shard chain blocks, proposers, etc.
* Penalties for signing or attesting to non-canonical-chain blocks (update: may not be necessary, see https://ethresear.ch/t/attestation-committee-based-full-pos-chains/2259) * [ ] Fully specify the registration contract on the PoW chain
* Per-validator proofs of custody, and associated slashing conditions * [ ] Flesh out RANDAO, including the hardening against orphaned reveals
* Versioning and upgrades * [ ] Add per-validator proofs of custody, including slashing conditions
* [ ] Clearly define all the terms in the glossary
* [ ] Add an appendix for BLS12-381
* [ ] Add an appendix for the offchain signature aggregation logic
* [ ] Rework the document for readability
* [ ] Undergo peer review, security audits and formal verification
Slashing conditions may include: **Possible changes and additions**
* [ ] Replace Blake with a STARK-friendly hash function
Casper FFG slot equivocation [done] * [ ] Replacing the IMD fork choice rule with LMD
Casper FFG surround [done] * [ ] Merge `crystallized_state_root` and `active_state_root` into a single root
Beacon chain proposal equivocation [done] * [ ] Add Merklelisation of the state root(s) for light clients
Shard chain proposal equivocation * [ ] Add logic for versioning and upgrades
Proof of custody secret leak * [ ] Get rid of dynasties
Proof of custody wrong custody bit * [ ] Add a RANDAO slashing condition for early leakage
Proof of custody no secret reveal * [ ] Reworking the `ShardAndCommittee` data structures
RANDAO leak * [ ] Reduce the slot duration to 8 seconds
* [ ] Allow for the delayed inclusion of aggregated signatures
# Appendix # Appendix
## Appendix A - Hash function ## Appendix A - Hash function