--- tags: newineth2 description: The latest update on Ethereum 2.0 development image: https://benjaminion.xyz/f/favicon-96x96.png GA: UA-129359374-2 --- <style> a {text-decoration: underline;} a {color: #0000ee;} a:visited {color: #551a8b;} </style> # What's New in Eth2 - 6 December 2019 ![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 31 at [eth2.news](https://eth2.news/) # The Who is @twigwam? Edition^[[https://twitter.com/twigwam/status/1198039770443714560](https://twitter.com/twigwam/status/1198039770443714560)] ## Top picks - Yay, the Ethereum Foundation Blog is back! :tada: Back through 2014-16 it was a terrific resource. More recently it has been much used pretty much only for announcements. Carl Beekhuizen to the rescue with [Validated: Staking on eth2 #0](https://blog.ethereum.org/2019/11/27/Validated-Staking-on-eth2-0/). And [in French](https://www.ethereum-france.com/valide-introduction-a-la-preuve-denjeu-sur-eth2/). - Danny Ryan is putting me out of work with [Eth2 monster update #5](https://blog.ethereum.org/2019/12/05/eth2-quick-update-no-5/) - A reminder that [Ethereum 2.0 Info](https://eth2.info) is a thing. I've given it a little refresh more to come. ## Phase 0: The Beacon Chain implementation We have new kids on the block! [Nethermind](https://nethermind.io/) has come out of stealth with [Cortex](https://github.com/NethermindEth/cortex), an in-progress Eth2 beacon chain implementation in .Net. Welcome to the party! :tada: ### Testnet news Prysmatic Labs' [testnet](https://prylabs.net/) continues to [run well](https://twitter.com/preston_vanloon/status/1203017263269343232), and now boasts not [one](https://beaconcha.in/) but [two](https://beacon.etherscan.io/) block explorers, from Etherchain and Etherscan respectively. Some people are [quite excited](https://twitter.com/VitalikButerin/status/1202619566066741248) about this! And it has just officially become the first public multi-client network, with the news this week that Parity's Shasper client [was able to join](https://twitter.com/sorpaas/status/1202651945430929409) :fire: But it's not the only testnet in town. Status also has a [public testnet](https://github.com/status-im/nim-beacon-chain#connecting-to-testnets) with the Nimbus client (tweetstorm [here](https://twitter.com/jcksie/status/1202883953381773312)), and Sigma Prime plans to release their Lighthouse-based public testnet in the next few days. Expect a lot more of this over the next weeks, with clients hopping on to each others' networks from time to time. I'd look out for a proper long-lived, large-scale, multi-client, public network sometime in January. ### Deposit contract Jim McDonald found a [front-running weakness](https://ethresear.ch/t/deposit-contract-exploit/6528?u=benjaminion) in the workflow around the deposit contract when delegating to a staking pool (more detailed write-up [here](https://hackmd.io/bCZjQnOyRBqxyHKxKnTz0Q?view), and Jim's [proposed fix](https://github.com/ethereum/eth2.0-specs/pull/1506)). Further discussion [on Gitter](https://gitter.im/ethereum/sharding?at=5de110e28e906a1c8d3ab338), and more [on Gitter](https://gitter.im/ethereum/sharding?at=5de90b6bd75ad3721d5b26b7) (keep reading...). A suggested workaround: [don't use](https://twitter.com/jadler0/status/1200423111562342400) a staking pool :stuck_out_tongue: Meanwhile, Runtime Verification continues to audit the deposit contract bytecode, with the final report expected later this month. (Depending on what we decide to do or not do about the issue above, I guess). ### BLS Signatures The other blocker to deploying the deposit contract has also been resolved. As reported [last time](https://hackmd.io/@benjaminion/H12CnGHhr#Implementers%E2%80%99-call), the standardisation of the BLS signature scheme is now at the point where we are confident enough to adopt it for Eth2. There's a [draft implementation](https://github.com/ethereum/py_ecc/pull/79) for *py_ecc*. I have some work to do on [my own implementation](https://github.com/PegaSysEng/artemis/pull/898) to bring it up to date with the final spec. A decent alternative to spending Christmas with the family :joy: ### Spec updates As [explained by Danny](https://blog.ethereum.org/2019/12/05/eth2-quick-update-no-5/), a [fix](https://notes.ethereum.org/@djrtwo/HynY6CthS) to the fork choice rule is [in flight](https://github.com/ethereum/eth2.0-specs/pull/1495), arising from some verification work being done by researchers at San Jose State University. I'm super happy that the spec is getting more scrutiny from academia - this is hugely encouraging. It was agreed on this week's call that the signing root would be [removed](https://github.com/ethereum/eth2.0-specs/pull/1491) from the spec, a simplification that has been widely welcomed. ### Networking Least Authority has [audited](https://leastauthority.com/blog/ethereum-node-discovery-protocol-audit/) the discv5 node discovery protocol that we plan to use in Eth2. Full report [here](https://leastauthority.com/static/publications/LeastAuthority-Node-Discovery-Protocol-Audit-Report.pdf). Their main recommendation is to implement a DoS protection mechanism (such as the kind of proof-of-work proposed by Ari Juels and my PegaSys colleague John Brainard [way back in 1999](http://www.arijuels.com/wp-content/uploads/2013/09/JB99.pdf)). As discussed on the [networking call](https://hackmd.io/@benjaminion/BJ3YqrSTr#discv5) this week, this omission is deliberate for now while other approaches are researched. ## Phase 1: Sharding implementation We are expecting the [new sharding spec](https://github.com/ethereum/eth2.0-specs/pull/1483) to be merged and stable around New Year. ## Phase 2: Execution environments Matt Garnett kicked off a terrific conversation on potential [Execution Toolchains for Ethereum 2.0](https://github.com/quilt/pm/issues/2). And Will V has written up a bunch of open questions on [State Providers and Stateless Networks in Eth2](https://ethresear.ch/t/remaining-questions-on-state-providers-and-stateless-networks-in-eth2/6585?u=benjaminion). ## Calls This was the week of calls. Eth2 development has finally sharded itself into a bunch of parallel workstreams.^[See what I did there?] ### Client Implementers' call Call #29 took place on the 5th of December. The original and the best. * [Agenda](https://github.com/ethereum/eth2.0-pm/issues/108) * [Video](https://youtu.be/MxeEWmEdb5E?t=309) * My [quick notes](https://hackmd.io/@benjaminion/H1J8vYLaS), and [notes from Mamy](https://gist.github.com/mratsim/b1fe4213ece4b60baa93be773715fd83). ### Phase 2 call The inaugural Phase&nbsp;2 call took place on December 3rd with [this agenda](https://github.com/ethereum/eth2.0-pm/issues/103). It was not recorded or livestreamed, but there are [notes](https://github.com/ethereum/eth2.0-pm/issues/103#issuecomment-561938586). The plan is for this call to take place monthly. Calls are announced on the Eth2 Phase&nbsp;2 [Telegram channel](https://t.me/eth2quilt). ### Networking call The inaugural [Eth2 Networking call](https://github.com/ethereum/eth2.0-pm/issues/106) was on the 4th. [My notes](https://hackmd.io/@benjaminion/BJ3YqrSTr) and [Mamy's notes](https://gist.github.com/mratsim/fef2b0a7c5a335ac6bc61c01592b3fea). Next call in two weeks. Update: [recording of the second call](https://www.youtube.com/watch?v=h_GeWO0U-bw). ### Light client call And the [Light Client Task Force call #2](https://github.com/ChainSafe/lodestar/issues/555) was also on the 4th. I haven't found a recording yet, but will let y'all know if one appears. There is a [recording](https://www.youtube.com/watch?v=aY4Qsk22IAE) and detailed [transcript and notes](https://medium.com/chainsafe-systems/light-client-task-force-call-1-1aaf559230fb) from the first call on the 4th of November. ### Eth 1.x call The [next Eth 1.x call](https://ethresear.ch/t/eth1-x-call-2-tuesday-dec-17th-next-steps-and-collecting-research-topics/6512?u=benjaminion) will be on December 17th. Why am I telling you this? Because there are increasing commonalities between the directions of Eth1 and Eth2, and part of the effort is to prepare Eth1 for a transition to Eth2 one day. The future is stateless. ## Research A couple of engineering focused research articles: - Preston Van Loon on [Voting on the Eth1 chain](https://hackmd.io/@prestonvanloon/H1rfsG5iH). - Mikhail Kalinin on [Detecting Slashing conditions](https://hackmd.io/@sYlY_LZpQIGgFmhdv6vV-A/By897a5sH). See [this RFC](https://github.com/ethereum/eth2.0-pm/issues/63) for the background. The second [Legendre PRF bounty](https://legendreprf.org/bounties) has been [claimed](https://twitter.com/dankrad/status/1200895809014915073). As a reminder, the Legendre PRF may be useful for generating multi-party proofs of custody for [Phase&nbsp;1](https://github.com/ethereum/eth2.0-specs/blob/dev/specs/core/1_custody-game.md#legendre_bit). This needed when you want to trustlessly divide a single stake between multiple validators acting together. Also on [ethresear.ch](https://ethresear.ch/): - Protolambda makes a very thorough review of [atomic cross shard communications](https://ethresear.ch/t/commit-capabilities-atomic-cross-shard-communication/6509?u=benjaminion) and gives a new proposal. - Vitalik on [Responding to 51% attacks in Casper FFG](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363?u=benjaminion). I think I missed this previously. Find out why "a 51% attack would be a moment of joy for the community"! - [Using HoneyBadgerMPC for the multi-party Proof-of-Custody](https://ethresear.ch/t/using-honeybadgermpc-for-the-multi-party-proof-of-custody/6545?u=benjaminion). This is related to the Legendre PRF thing mentioned above: an actual MPC implementation of the scheme. - My colleage Nicolas Liochon has a proposal for a protocol change to enable [Trustless Staking Pools](https://ethresear.ch/t/trustless-staking-pools/6529?u=benjaminion0). His view is that staking pools will emerge whatever we do, thus we might as well find in-protocol ways to make them demonstrably safer for users. Another approach might be contract-based stake insurance, I guess. ## In other news - Some much appreciated [appreciation](https://twitter.com/evabeylin/status/1199035479183642625) from Eva Beylin for all those working on Eth2 :raised_hands: - Explainers: - Bruno Skvorc compares Polkadot's and Eth2's [approaches to scalbility](https://bitfalls.com/2019/12/02/polkadot-vs-ethereum-2-0-shards-and-parachains/) - For SSZ nerds, Protolambda has written at length about [Merkle tree type abstraction](https://github.com/protolambda/eth-merkle-trees/blob/master/typing_partials.md). - Jim McDonald explains [validator effective balances](https://www.attestant.io/posts/understanding-validator-effective-balance/). It's more complicated than you might think. - Adrian Sutton has written a nice [explainer on weak subjectivity](https://www.symphonious.net/2019/11/27/exploring-ethereum-2-weak-subjectivity-period/). - Client team updates from [Lighthouse](https://lighthouse.sigmaprime.io/update-18.html) and [Prysm](https://medium.com/prysmatic-labs/ethereum-2-0-development-update-40-prysmatic-labs-30741bf3758b) - Trail of Bits [won the tender](https://twitter.com/sigp_io/status/1199865159084150785) to audit the Lighthouse codebase. - Bitfly has [open-sourced](https://twitter.com/etherchain_org/status/1198942363172982784) their [Eth2 Beacon Chain Explorer](https://github.com/gobitfly/eth2-beaconchain-explorer) :tada: - Terence from Prysmatic will be speaking on Eth2 at a [Meetup in SF](https://www.meetup.com/SF-Ethereum-Developers/events/266949631/) on January 7th. ### And finally I've been doing [Advent of Code](https://adventofcode.com/2019) again. This year in Haskell :sweat_smile: Feel free to come and mock [my efforts](https://github.com/benjaminion/AdventOfCode_2019). * * * [![[Twitter]](https://benjaminion.xyz/newineth2/img/twitter.svg =40x40)](https://twitter.com/benjaminion_xyz)[![[Peepeth]](https://benjaminion.xyz/newineth2/img/peepeth.svg =40x40)](https://peepeth.com/benjaminion_xyz) Follow me on [Twitter](https://twitter.com/benjaminion_xyz) and/or [Peepeth](https://peepeth.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).