From afea8a10a5f0e1ba3b2e0035a8e40325b0df0de2 Mon Sep 17 00:00:00 2001 From: Justin Date: Wed, 3 Oct 2018 11:59:59 +0100 Subject: [PATCH] Rework the TODO Probably missed a few. Will try to keep up to date. --- specs/casper_sharding_v2.1.md | 40 ++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/specs/casper_sharding_v2.1.md b/specs/casper_sharding_v2.1.md index c0d2c231c..04c7a2312 100644 --- a/specs/casper_sharding_v2.1.md +++ b/specs/casper_sharding_v2.1.md @@ -581,27 +581,33 @@ Finally: * 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)` -------- +### 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) -* Logic for inducting queued validators from the PoW chain -* 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) -* Per-validator proofs of custody, and associated slashing conditions -* Versioning and upgrades +* [ ] Specify how `crystallized_state_root` and `active_state_root` are constructed +* [ ] Specify the shard chain blocks, proposers, etc. +* [ ] Fully specify the registration contract on the PoW chain +* [ ] Flesh out RANDAO, including the hardening against orphaned reveals +* [ ] 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** - - Casper FFG slot equivocation [done] - Casper FFG surround [done] - Beacon chain proposal equivocation [done] - Shard chain proposal equivocation - Proof of custody secret leak - Proof of custody wrong custody bit - Proof of custody no secret reveal - RANDAO leak +* [ ] Replace Blake with a STARK-friendly hash function +* [ ] Replacing the IMD fork choice rule with LMD +* [ ] Merge `crystallized_state_root` and `active_state_root` into a single root +* [ ] Add Merklelisation of the state root(s) for light clients +* [ ] Add logic for versioning and upgrades +* [ ] Get rid of dynasties +* [ ] Add a RANDAO slashing condition for early leakage +* [ ] Reworking the `ShardAndCommittee` data structures +* [ ] Reduce the slot duration to 8 seconds +* [ ] Allow for the delayed inclusion of aggregated signatures # Appendix ## Appendix A - Hash function