What's New in Eth2 - 3 December 2018
Edition 9. Archive. Trouble viewing? Load original.
Ben Edgington (PegaSys, ConsenSys — but views expressed are all my own)
The Cleanups Part 1 Edition
Tl;dr As Justin said in a podcast back in August, "It's a hard life for the people implementing sharding". The Beacon chain spec continues to be under heavy revision, with multiple, extensive reworkings and refactorings to keep track of. Nevertheless, substantive changes are few, suggesting that completeness may be in sight!
Specification updates
- We have a Table of Contents!
- An immense, 45 commit, clean-up, rework, rewrite, renaming and refactor from Justin. As far as I can tell on quick review, not much substantial has changed, but there's a huge amount here for client implementers to trawl through. The title suggests that this will not be the last big clean-up. [...and Part 2 is up, but not yet merged.]
- Epochs are back and cycles are no more. This brings a big gain in simplicity and is related to fixing up Casper LMD's fork choice rule.
- Various refactorings of the sample code. Largely aimed at not passing the whole state around all the time, and making it clearer what, if anything, is being mutated.
- The validator registration contract for the PoW Mainnet has been updated. The previous version was vulnerable to a kind of spamming attack to start the beacon chain early. The new version also allows a validator to top-up its balance (to avoid being ejected if the quadratic leak has reduced the balance.)
In addition, there has been a little flurry of PRs from my PegaSys colleague, Daniel Burnett. Dan has a couple of decades of experience in professional standards creation and will be helping to improve the usability, reliability and precision of the Ethereum 2.0 specs. So far, there's a start on a notation section, intra-document linking for key terms, and normative and informative references.
No updates this week.
Just a proofread.
A separate specification for BLS signature verification has been added.
Validators in Ethereum 2.0 use BLS signatures rather than the more familiar ECDSA signatures used in current Ethereum. The main reason is that individual signatures from validators in a committee can be aggregated into a single signature that is easy to verify.
General
Reminder: take a look at the open issues marked RFC and get involved. Currently open for discussion:
Implementers' call
There was a call on 29 November.
Some highlights:
- The Phase 0 specification is nearing feature completion, but "likely contains at least 100 bugs". So get hunting!
- Justin is working on the Transparent Paper, a gloss of the specification targetting insight, readability and transparency. It will contain definitions and explanations of design decisions. He is aiming to complete this by the end of January.
- Leo from the Barcelona Supercomputer Centre will be picking up his simulations of sharding behaviour.
- Three great discussions around p2p networking and architecture:
-
- Using QUIC (a TCP alternative) with libp2p. There's a follow-up discussion.
- Using discv5 for peer discovery. More on peer discovery.
- Validator privacy and roles. It is recommended that validator nodes be logically separated from beacon chain nodes. Further discussion.
Research
It's worth keeping an eye on progress in what was formerly known as Ethereum 1.x. Various documents have been produced by the working groups. Many of these ideas will have some bearing on Ethereum 2.0. In particular, the output of the State Rent working group is is a hot topic.
Ethresear.ch
- Vitalik has posted A minimal state execution proposal. This is clearly a discussion starter. It proposes "maximally simple" models for execution, state rent, and cross-shard contract calls. The goal is to push complexity higher up the stack.
- Revival of a month-old thread on a suggested Ethereum 2.0 data-storage model with some good conversation related to state rent.
- If you haven't had enough of state rent yet, here's another lively discussion.
- A sketch of a way for validators to each use a local VRF to get assigned to shards. This seems related to the validator privacy discussion mentioned above.
Gitter
In other news...
Follow me on Twitter to hear when the next edition is out 🙌.
Main sources: