--- tags: newineth2 description: The latest update on Ethereum 2.0 development image: https://benjaminion.xyz/f/favicon-96x96.png --- <style> a {text-decoration: underline;} a {color: #0000ee;} a:visited {color: #551a8b;} </style> # What's New in Eth2 - 10 July 2020 ![My avatar](https://benjaminion.xyz/f/ms-icon-144x144.png =32x32) Ben Edgington ([PegaSys](https://pegasys.tech/), [ConsenSys](https://consensys.net/) — but views expressed are all my own) Edition 46 at [eth2.news](https://eth2.news/) ## Top picks Top pick this time is from Anthony Sassano's Daily Gwei on [The Great Merger](https://thedailygwei.substack.com/p/the-great-merger-the-daily-gwei-22) - "A primer and overview of the eth1 <> eth2 merger". I'm going to take this opportunity to say that the [Daily Gwei](https://thedailygwei.substack.com/) 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... :joy: no seriously, just sincere, unsolicited praise.] The other thing I enjoyed this week was [Vitalik on the Hashing it Out podcast](http://thebitcoinpodcast.com/hashing-it-out-86/). Not specifically Eth2, but a wonderful bird's-eye view of pretty much everything happening across Ethereum today (with some Eth2 in there, obviously). ## Editorial 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!](https://twitter.com/benjaminion_xyz/status/1277968357220691969)). 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! :sweat_smile: The pace of innovation has been immense. The achievements are astonishing. Going from zero to near-production multiclient testnets in that timeframe is incredible. I've worked in product development for 25 years, and I've never seen anything significant move this quickly. Do me a favour: next time you hear someone whining about "When Eth2?", please ever so politely remind them of this. ## Phase 0: The beacon chain The main news since last time is that we successfully launched the Altona testnet ([explorer](https://altona.beaconcha.in/), [dashboard](https://eth2stats.io/altona-testnet)). 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](https://www.youtube.com/watch?v=3apiaM5g6jY), kindly hosted by [superphiz](https://www.reddit.com/user/superphiz/). See me looking anxious, and then delighted as my node, [Metal Albert](https://hackmd.io/@benjaminion/wnie2_200501#And-finally%E2%80%A6), gets to mint the [very first block](https://altona.beaconcha.in/block/2549b9ea577ccaeba472e7c966aa853cd5bd0acaa2f0031bf1dafdf237810a3f). 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](https://leastauthority.com/blog/audit-of-gossipsub-v1-1-for-protocol-labs/) 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](https://twitter.com/dannyryan/status/1279085799644884992) for the [Herumi](https://github.com/herumi/bls) cryptographic library that some clients are using. see the [RfP doc](https://notes.ethereum.org/@Uj8LfAR6SACOz4TM6m07kw/HJd-uSTh8), but be quick - responses are due by Tuesday. As mentioned previously, there is a new kid on the BLS library block: the [Blst](https://github.com/supranational/blst) library from Supranational. A [few of us](https://twitter.com/paulhauner/status/1280760605373161472) 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](https://tools.ietf.org/html/draft-irtf-cfrg-hash-to-curve-09). 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](https://twitter.com/dannyryan/status/1279443288756416512) at EthGlobal's [HackFS](https://hack.ethglobal.co/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 :grinning: ### Tooling Jim McDonald has added [subgraphs to thegraph.com](https://discord.com/channels/595666850260713488/595701053161209866/728550226662785145) for the various testnet deposit contracts (Topaz, Onyx, Altona). This allows easy queries against the deposit history. Play with it on [The Graph](https://thegraph.com/explorer/subgraph/attestantio/eth2deposits-altona). Protolambda teased us with rumours of [Rumor v2](https://twitter.com/protolambda/status/1279108981710094338) and then [released](https://github.com/protolambda/rumor/releases/tag/v0.2.0) 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](https://github.com/protolambda/rumor). Never one to sit on his hands, Protolambda has also been building out a [repo of useful scripts](https://github.com/protolambda/eth2-py-scripts) for interacting with beacon nodes or otherwise processing Eth2 data. The block explorers are continuing to innovate. Etherscan has [announced](https://medium.com/etherscan-blog/beaconscan-the-validators-explorer-66c5aa2d4229) an Eth2 validator explorer with email alerting, dashboard and other functions[^fn1]. Check it out at [BeaconScan](https://beaconscan.com/). Meanwhile, beaconcha.in keeps adding features: build dashboards from graffiti strings, tag validators, [track the deposit process](https://twitter.com/etherchain_org/status/1278693851901894661) when onboarding validators, along with a nice [explainer](https://kb.beaconcha.in/ethereum-2.0-and-depositing-process) for the deposit process and validator statuses. [^fn1]: 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](https://eth2.news) :wink: ## The Great Explainers 'Tis the season of articles on how to run beacon nodes and validators. Here's a selection: - Installing and Running an Ethereum 2 [PegaSys Teku Validator on the Altona Testnet](https://medium.com/@steve.berryman/installing-and-running-an-ethereum-2-pegasys-teku-validator-on-the-altona-testnet-e3b9a0989a52) from Steve Berryman of Attestant. - CoinCashew on How to stake on ETH 2.0 [Altona Testnet with Lighthouse on Ubuntu](https://www.coincashew.com/coins/overview-eth/guide-how-to-stake-on-eth-2.0-altona-testnet-with-lighthouse-on-ubuntu) - Hive Blog with [Altona Test-net Validator using Raspberry Pi4B 8GB](https://hive.blog/ethereum/@tarekadam/altona-test-net-validator-using-raspberry-pi4b-8-gb) - Super detailed notes on [setting up a Prysm validator](https://github.com/metanull-operator/eth2-ubuntu), with dashboards and all. There's lots of good stuff here that's applicable to all the clients. 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](https://dappnode.io/). 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](https://medium.com/@SomerEsat/ethereum-and-the-seven-clients-648815c4ac71). Somer has definitely done his homework, and I can confirm that the Teku info is spot-on. Also available [in Chinese](https://www.unitimes.pro/p/3a0f747f59a44c0e9ef29308a7f3470b).[^fn2] [^fn2]: When Teku was called Artemis, we always appeared at the start of these lists; now always at the end. Serious branding fail. Here's an article that I'm embarrassed to confess I missed in the last issue (especially as I'd actually reviewed a draft :anguished:). Mara Schmiedt is keen that we explore using [Secret Shared Validators on Ethereum 2.0](https://medium.com/coinmonks/secret-shared-validators-on-ethereum-2-0-ea29ab380016) for robustness and diversity of the network. The Eth2 protocol has been designed with this kind of trustless multiparty computation capability from the outset, and I really hope this becomes a thing, although I fear that everyone will just end up doing whatever is easiest. Bison Trails announced their plans to support Eth2 with a [solid explainer](https://bisontrails.co/eth2-announcement/) on the Eth2's design and roadmap. Ivan on Tech is Breaking Down ETH 2.0 again, this time with [eWASM and EVM Explained](https://academy.ivanontech.com/blog/breaking-down-eth-2-0-ewasm-and-evm-explained). [Everstake](https://twitter.com/bo_opryshko/status/1280126459420573697) has kicked off a planned series of Eth2 articles with [What is Ethereum 2.0](https://medium.com/everstake/what-is-ethereum-2-0-and-what-will-happen-to-this-cryptocurrency-8a24a73ae62e). ## Media 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](https://www.reddit.com/r/ethereum/comments/ho2zpt/ama_we_are_the_efs_eth_20_research_team_pt_4_10/) 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](https://docs.ethhub.io/other/ethereum-2.0-ama/), for reference. Tyler Smith did a brilliant Tweet thread about the [next 6-12 months](https://twitter.com/R_Tyler_Smith/status/1280545450572099584) for Ethereum, highlighting a bunch of risks and rewards. Not exclusively Eth2, but Eth2 [features heavily](https://twitter.com/R_Tyler_Smith/status/1280545459761790984): <p style="text-align:center"> <a href="https://twitter.com/R_Tyler_Smith/status/1280545459761790984"><img width="363" height="184" alt="Tweet from Tyler Smith" src="https://benjaminion.xyz/images/TylerSmithTweet_200707.png"></a> </p> Vitalik, Danny and Karl Floersch discussed Eth2 and scaling Ethereum in general at [ETHPlanet](https://twitter.com/ETHPlanet/status/1280198696643117057)'s summer camp. The recording is on [YouTube](https://youtu.be/WTqGUKSpciw?t=811) (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](https://www.youtube.com/watch?v=7qLa39V08vM) with Kacper Bak of Quantstamp. (Quantstamp did the [Prysm security review](https://github.com/prysmaticlabs/prysm/issues?q=is%3Aissue+label%3AAudit), by the way.) Bernhard Mueller and Vitalik discuss how the Eth2 roadmap [could be simplified](https://twitter.com/muellerberndt/status/1279011030128001029) 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](https://gateway.ipfs.io/ipfs/QmbB3wA5R2PR8s87pJRSUCcBHRxAtfFtkSWmVWEcHsaFeV/#/0x592af74865799e1ed509afef002a6eca26e1caa2) has a market currently sitting at 55:45 that the beacon chain will launch in 2020. Evan Van Ness has put [500 USDC](https://twitter.com/evan_van_ness/status/1278901117846540288) on the 2020 side. [Polymarket](https://www.poly.market/market/will-ethereum-20-phase-0-launch-before-2021) has just reversed its opinion from 56:44 for to 74:26 against :shrug: Meanwhile, Justin is still [batting for](https://www.reddit.com/r/ethereum/comments/ho2zpt/ama_we_are_the_efs_eth_20_research_team_pt_4_10/fxizbhp/) the [3rd of January](https://twitter.com/trent_vanepps/status/1281594510280208384). [Vitalik](https://www.reddit.com/r/ethereum/comments/ho2zpt/ama_we_are_the_efs_eth_20_research_team_pt_4_10/fxj3vfu/) and [Danny](https://www.reddit.com/r/ethereum/comments/ho2zpt/ama_we_are_the_efs_eth_20_research_team_pt_4_10/fxj2r7p/) 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](https://twitter.com/preston_vanloon/status/1281609559988006912) on this. ## Research Aditya Asgaonkar published his [analysis of the weak subjectivity period](https://notes.ethereum.org/@adiasg/weak-subjectvity-eth2) for Eth2. As mentioned [last time](https://hackmd.io/@benjaminion/wnie2_200627#Implementers), 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](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/) 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](https://hackmd.io/@benjaminion/B1WexiV1P#Weak-subjectivity). 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](https://ethresear.ch/t/de-anonymization-using-time-sync-vulnerabilities/7610?u=benjaminion) - 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](https://ethresear.ch/t/packetology-validator-privacy/7547?u=benjaminion) 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](https://ethresear.ch/t/public-single-leader-election-psle-secret-probabilistic-backup-election-spbe/7633/3?u=benjaminion): 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)](https://ethresear.ch/t/public-single-leader-election-psle-secret-probabilistic-backup-election-spbe/7633?u=benjaminion). 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. ## Regular Calls ### Implementers Call #43 took place on the 9th of July. * [Agenda](https://github.com/ethereum/eth2.0-pm/issues/165) * [Video](https://youtu.be/4IooxDX_GfU?t=52) * My [quick notes](https://hackmd.io/@benjaminion/B1WexiV1P), and from [Mamy](https://gist.github.com/mratsim/9fe87f650cde05c5da8c3c49da2f3b06). In addition to the usual agenda we had a couple of special topics: - Incident response: Mehdi from Sigma Prime is assembling a cross-team working group to define an incident response process in readiness for when issues occur on the beacon chain mainnet. - Weak subjectivity: we discussed the outcomes of Aditya's weak subjectivity report described above. For the most part we devs are a bunch of introverts, so there wasn't a lot of chat on the call. But Aditya will convene another working group where I expect there will be plenty of lively discussion. 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. ## Client team stuff - Client team update from [Prysm](https://medium.com/prysmatic-labs/eth-2-0-dev-update-53-altona-testnet-launched-bf41173a8513). By the way, we're now doing fortnightly releases of Teku, and you can check out our [changelogs](https://github.com/PegaSysEng/teku/releases) in lieu of a nice shiny write-up. - We fixed a subtle error in Teku, and Adrian Sutton [wrote it up](https://www.symphonious.net/2020/07/06/exploring-ethereum-2-the-curious-case-of-the-invisible-fork/). Tl;dr late-arriving blocks caused a surprising race condition. - Cayman from the Lodestar team spoke to the Taipei Ethereum Meetup this morning, and demoed some of the Lodestar product suite: [Eth2 in the Web](https://www.youtube.com/watch?v=UxxLM7O65uE). Slides [here](https://docs.google.com/presentation/d/1gX1S4FBmMdjyM5oUm5-sMtNZ3kPwEiwU3iNk7KnIw2E/edit#slide=id.g55f47d0478_0_10). It turns out that the Lodestar team has put together some nice tools that I was unaware of: - https://simpleserialize.com (actually, I did know this one) - https://enr-viewer.com <- I've been looking for one of these :heart: - https://bls-keygen.com ## And finally... Thank you so much to the 48 kind contributors to my Gitcoin Round 6 CLR [grant](https://gitcoin.co/grants/551/the-ethereum-20-annotated-specification)! You are all wonderful :i_love_you_hand_sign: I've got some big plans to improve the annotated spec, not least actually finishing the beacon chain part :joy: I'll be getting a move on over the next weeks. * * * [![[Twitter]](https://benjaminion.xyz/newineth2/img/twitter.svg =40x40)](https://twitter.com/benjaminion_xyz) Follow me on [Twitter](https://twitter.com/benjaminion_xyz) to hear when the next edition is out 🙌. [![[RSS]](https://benjaminion.xyz/newineth2/img/rss.svg =32x32)](https://benjaminion.xyz/newineth2/rss_feed.xml) We also have an [RSS feed](https://benjaminion.xyz/newineth2/rss_feed.xml).