Edition 46 at eth2.news
Top pick this time is from Anthony Sassano's Daily Gwei on The Great Merger - "A primer and overview of the eth1 <> eth2 merger".
I'm going to take this opportunity to say that the Daily Gwei is just brilliant. It is perfectly bite-sized, accurate, and informative. Anthony's sound knowledge of a broad range topics across the ecosystem is, frankly, amazing. I can't begin to imagine how much work goes into producing this every day. [This promotion was brought to you by…
The other thing I enjoyed this week was Vitalik on the Hashing it Out podcast. Not specifically Eth2, but a wonderful bird's-eye view of pretty much everything happening across Ethereum today (with some Eth2 in there, obviously).
I realised last week that it is just two years since we met up in Berlin to embark on the Eth2 journey in its current form (tweet, with pictures!). We had previously been working on separate designs for sharding and Casper, managed by smart contracts on the Eth1 chain. But this proved too limiting: for one thing, the minimum stake at that time was expected to be 1000 Eth.
The scale of ambition for Eth2 had massively outgrown the limitations of the old design, and we re-booted the whole thing from, essentially, a blank sheet of paper. Was it the right thing to do? I am totally convinced that it was. The constraints of the previous approach were just too severe. (Though Vitalik, in the podcast linked above, regrets not putting in some kind of minimally viable proof-of-stake earlier.)
What a two years it has been!
The main news since last time is that we successfully launched the Altona testnet (explorer, dashboard). The Genesis event went smoothly at 12:30:05 UTC on Monday 29th of June. If you've really got nothing better to do you can watch the video, kindly hosted by superphiz. See me looking anxious, and then delighted as my node, Metal Albert, gets to mint the very first block.
The current testnets, Altona (multi-client) and Onyx (Prysm), keep on chugging without too much drama so far. Signs are good. We're looking at opening up a large-scale, broad participation test network in 2-3 weeks time. Watch this space.
Least Authority has published their audit of Protocol Labs' Gossipsub v1.1 design and implementation. This is the protocol we are using for Eth2. It has lots of bells and whistles (tunable parameters). As mentioned on this week's devs' call, we'll have a minor spec update soon with gossipsub params appropriately set for Eth2.
Speaking of audits, the Ethereum Foundation is seeking auditors for the Herumi cryptographic library that some clients are using. see the RfP doc, but be quick - responses are due by Tuesday.
As mentioned previously, there is a new kid on the BLS library block: the Blst library from Supranational. A few of us are working on integrating this into clients, and performance so far looks very encouraging. Rumour has it that this will be undergoing formal verfication later this year (which is strictly stronger than an audit). Oh, and there is another update to the hash-to-curve spec. This is v09, but there are no substantive changes that affect Eth2 between v07 and v09, so no impact for us (thankfully).
The Ethereum Foundation is sponsoring prizes at EthGlobal's HackFS. These are for Eth2 + libp2p projects. One of the things apparent from the testnets is that it is really difficult to analyse and debug distributed systems (attestations get dropped - how can we find out why?). We very much need better tooling around this kind of thing. So get hacking, please
Jim McDonald has added subgraphs to thegraph.com for the various testnet deposit contracts (Topaz, Onyx, Altona). This allows easy queries against the deposit history. Play with it on The Graph.
Protolambda teased us with rumours of Rumor v2 and then released it earlier this week. Rumor is "an interactive shell written in Go, to run the Eth2 network stack, attach to testnets, debug clients, and extract data for tooling". Check on progress at GitHub.
Never one to sit on his hands, Protolambda has also been building out a repo of useful scripts for interacting with beacon nodes or otherwise processing Eth2 data.
The block explorers are continuing to innovate. Etherscan has announced an Eth2 validator explorer with email alerting, dashboard and other functions[1]. Check it out at BeaconScan. Meanwhile, beaconcha.in keeps adding features: build dashboards from graffiti strings, tag validators, track the deposit process when onboarding validators, along with a nice explainer for the deposit process and validator statuses.
'Tis the season of articles on how to run beacon nodes and validators. Here's a selection:
Now, these articles are somewhat technical, and are aimed at people not afraid to dive into the details. If that's not you, don't worry, there will also be plenty of simple plug-and-play options like the DAppNode. However, it's a good reminder that hosting your own node is not for the faint-hearted. It won't ever be set-and-forget, but will need some degree of care and maintenance over a long period of time.
If you are confused about the all the Eth2 clients out there, Somer Esat has put together a very nice survey of the current state of things: Ethereum 2.0 and the Seven Clients. Somer has definitely done his homework, and I can confirm that the Teku info is spot-on. Also available in Chinese.[2]
Here's an article that I'm embarrassed to confess I missed in the last issue (especially as I'd actually reviewed a draft
Bison Trails announced their plans to support Eth2 with a solid explainer on the Eth2's design and roadmap.
Ivan on Tech is Breaking Down ETH 2.0 again, this time with eWASM and EVM Explained.
Everstake has kicked off a planned series of Eth2 articles with What is Ethereum 2.0.
I'm trialling a new section as a catch-all for podcasts, tweets and other bits of news that don't really fit elsewhere.
There is a Reddit AMA by the EF research team going on as I write. These are always worth tracking - seeing some great Q&A so far. Past AMAs have been nicely curated by Ethhub, for reference.
Tyler Smith did a brilliant Tweet thread about the next 6-12 months for Ethereum, highlighting a bunch of risks and rewards. Not exclusively Eth2, but Eth2 features heavily:
Learn More →
Vitalik, Danny and Karl Floersch discussed Eth2 and scaling Ethereum in general at ETHPlanet's summer camp. The recording is on YouTube (link skips the first 13.5 minutes since there were some technical difficulties.) It's a nice overview conversation.
Another interview: the MikoBits podcast did a deep dive on Eth2 with Kacper Bak of Quantstamp. (Quantstamp did the Prysm security review, by the way.)
Bernhard Mueller and Vitalik discuss how the Eth2 roadmap could be simplified in a short tweet thread.
As ever, much speculation about the beacon chain launch date. Prediction markets are supposed to be good at this stuff: Omen has a market currently sitting at 55:45 that the beacon chain will launch in 2020. Evan Van Ness has put 500 USDC on the 2020 side. Polymarket has just reversed its opinion from 56:44 for to 74:26 against
Meanwhile, Justin is still batting for the 3rd of January. Vitalik and Danny are pushing for earlier. I'm pretty keen to get it done this year, and all our product planning with Teku revolves around that goal. The final word on this.
Aditya Asgaonkar published his analysis of the weak subjectivity period for Eth2. As mentioned last time, his conclusions are a bit surprising. I think we were assuming that the WSP would be of the order of months, but Aditya calculates that it is more like a week or two.
The weak subjectivity period is a consequence of proof-of-stake protocols that applies to new nodes joining the network, or anyone re-syncing after some time offline. It does not affect nodes that remain mostly in-sync. The issue is that, once validators have left the network, they are free to make historical blocks and attestations in the past without penalty (since they can no longer be slashed). If enough validators do this then they could trick new nodes into following an incorrect chain. A defence against this is rate-limiting validators joining and leaving the network, and we do this. But even so, Aditya shows that, even with a large validator set, enough could leave within a couple of weeks to cause problems.
The fix for this is for new nodes to have a trusted checkpoint from within the WSP available from somewhere. This ensures that nodes will always sync the right chain. Aditya proposes a few ways that this could be achieved, and we discussed it on yesterday's devs call. It potentially means quite different workflows for client devs. We're putting together a working group to discuss approaches to this. Obviously, we need to find ways to distribute these checkpoints as trustlessly as possible.
From Ethresear.ch:
De-anonymization using time sync vulnerabilities - Alex Vlasov of ConsenSys TXRX with more on how to attack the chain via clock sync. In this case, de-anonymising validators is the game, something that Jonny Rhea (also TXRX) has also been working on recently.
How can we solve issues related to validator privacy? The issue is that if an attacker knows in advance that it is my turn to propose a block, then I can be selectively DoSed at very low resource for the attacker. This allows an easy way to disrupt the operation of the chain.
There are ways to have a single block proposer per slot who is unknown in advance: so-called secret single leader election. But these involve somewhat complex cryptography. Another, very simple, approach is to probablistically choose a number of proposers per slot, with an expected value of one. This can also be done secretly via validator signatures, but can sometimes result in many block proposers, and sometimes in none, both of which are problematic in different ways.
Danny Ryan has proposed a hybrid approach that aims to combine the best of both simple approaches: Public Single Leader Election (PSLE) + Secret Probabilistic Backup Election (SPBE). The plan is to keep it in the back pocket in case network attacks become a problem, at least until we have a robust solution.
Call #43 took place on the 9th of July.
In addition to the usual agenda we had a couple of special topics:
I'm also looking forward to the release of Sigma Prime's "Fuzzing@Home" setup which puts their fuzz-test environment into Docker so that client implementations can be put through their paces in a massively distributed way.
Thank you so much to the 48 kind contributors to my Gitcoin Round 6 CLR grant! You are all wonderful
I've got some big plans to improve the annotated spec, not least actually finishing the beacon chain part
Follow me on Twitter to hear when the next edition is out 🙌.
We also have an RSS feed.
They are quite wrong about the answer to this question, however: "How do I keep track of updates on ETH 2.0?" Obviously, dear reader, you know the right answer
When Teku was called Artemis, we always appeared at the start of these lists; now always at the end. Serious branding fail. ↩︎