--- 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 Mar 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 37 at [eth2.news](https://eth2.news/) ## Top picks Pick of the week is the self-proclaimed [Beacon Chain Ethereum 2.0 explainer you need to read first](https://ethos.dev/beacon-chain/) by my OG colleague Joseph Chow. Pretty much what the title says :smiley: ## Phase 0: The beacon chain An update to the spec (v.0.10.2?) is due out soon, including a few things from the external audit (which will be published soon) and some networking items. ### Testnets [Great excitement](https://twitter.com/raulitojordan/status/1235978892860682240) earlier today! The first validator was slashed on Prysm's Sapphire testnet. You can see the block where it occurred, [here](https://beaconcha.in/block/408311) - scroll down to the bottom where it says "1 attester & 0 proposer slashings". So what happened? The proposer of the block included evidence that a validator making attestations committed a slashable offence. We can see the data in the block via [Prysm's API](https://api.prylabs.net/eth/v1alpha1/beacon/blocks?slot=408311). Look carefully in there and you can see the `attesterSlashings` object. This contains evidence of two conflicting votes (attestations) made by a validator: - Validator #35293 voted once for source checkpoint 12757 and target 12758 with block root "YnJ1aGFoYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" - The same validator then voted again for the same source and target checkpoints, but with with a different beacon block root, "kJtJdW/ZLB+dJkLgsxvNQzLM1uAdbe/Au3YsSNOiY2A=" This is counted as a "double vote" (two votes with different attestation data, but the same target epoch), which is a slashable offence under the Casper FFG rules. This is not something that can happen by accident to a normally behaving validator: it was either deliberate or the result of bug. We can also check the [validator record](https://beaconcha.in/validator/35293), and verify that it has been marked as slashed and exited. It will have had 0.1 Ether slashed as soon as the offence was detected (on the real network this will be 1 Ether), and will have a further slashing penalty applied in about 18 days' time, the amount of which will depend on how many other validators are slashed in the meantime. The main point of this is that the Prysmatic team were able to _detect_ this slashable behaviour. This is [far from trivial](https://github.com/ethereum/eth2.0-pm/issues/63) amidst all the activity occurring on the network. In other testnet news, we put our PegaSys client, Teku, to work [syncing up](https://twitter.com/benjaminion_xyz/status/1232434296578658304) the Prysm testnet. It was pretty slow at the time, but we've since merged in a [massive PR](https://github.com/PegaSysEng/teku/pull/1133) to implement a new binary tree datastructure, along with a bunch of other speedups. And, Prysm [is now syncing](https://twitter.com/n1shantd/status/1235764020847800322) the Lighthouse EthDenver testnet. Looking good for joint testnets! ### Testing Protolambda's [Rumor](https://github.com/protolambda/rumor) REPL tool for Eth2 network testing is on the verge of becoming self-aware. A [network testing strategy](https://gist.github.com/dryajov/91300c9c02fc48a1c0ff29708e562369) is being put together that can run on top of the tool. The work that Sigma Prime is doing on fuzz-testing the various clients [continues to progress](https://blog.sigmaprime.io/beacon-fuzz-02.html) nicely. ### Rewards and Penalties Herman Junge of the ConsenSys Pukara (staking as a service) team wrote a detailed and clear [article on rewards and penalties](https://codefi.consensys.net/blog/rewards-and-penalties-on-ethereum-20-phase-0). This is the explainer I've been trying to write for months, but it always got out of hand: there's a lot of subtlety to cover. Kudos to Herman for doing a great job :grinning:. In conjunction with this, there is code for a [rewards and penalties simulator](https://github.com/hermanjunge/eth2-reward-simulation), and a couple of simulation widgets: [1](https://consensys.github.io/eth2-widgets/#/validator-simulation), [2](https://consensys.github.io/eth2-widgets/#/network-simulation). ## Regular Calls ### Implementers' call Call #34 took place on the 27th of February. * [Agenda](https://github.com/ethereum/eth2.0-pm/issues/129) * [Video](https://youtu.be/tLiMgFoG_vs?t=70) * My [quick notes](https://hackmd.io/@benjaminion/SygoFBrVL), and [from Mamy](https://gist.github.com/mratsim/80d4a9f313c8c5cac3ac433d7ce810e4). And [full notes](https://github.com/ethereum/eth2.0-pm/blob/5a2ff102e5ce9665d200210e36b8a13534737ae3/eth2.0-implementers-calls/call_034.md) from Pooja Ranjan of the Cat Herders. ### Networking call The network working group met on the 4th of March. I wrote [some notes](https://hackmd.io/@benjaminion/rk2OEQ64L) from the call. It was pretty technical. There was also a post-call ad-hoc meeting at EthCC, with some brief notes [here](https://github.com/ethereum/eth2.0-pm/issues/131#issuecomment-594632185): basically an outline plan for "official" testnets. ### Stateless Ethereum (fka Eth 1.x) There was [a stateless Ethereum call](https://github.com/ethereum/pm/issues/153) on February 25th. Here's Griffin's [write-up](https://blog.ethereum.org/2020/02/28/eth1x-files-digest-no-3/). Piper Merriam's EthCC talk (see below) is a great summary of the current state of play. (See what I did there?) ## EthCC I've been pretty miserable all week because I had to cancel my travel to EthCC in Paris at the last minute :disappointed:. Thankfully, the livestream was pretty good most of the time, and I was able to keep up with a few things. Here's a round up of all the talks in the Eth2 track, with links to video, and slides where I have info. I've also included a couple of other talks with an Eth2 angle. Day 1, 3 March 2020 - Will Villanueva, "Phase2 Update from Quilt": [video](https://youtu.be/wrv-LmV0bkQ?t=231) [slides](https://docs.google.com/presentation/d/1ECy4tswiG23ncCKGsP4cWTVZANzXQESWm5hl7-Yea9Y/edit#slide=id.p) - After 10 mins it turns into a great extended Q&A session when the projector gives out. - EF Research Team, "Eth2Real Workshop": [video](https://www.youtube.com/watch?v=kfKOg4slEac) [slides](https://docs.google.com/presentation/d/10B6qfJIEaOq2X0LmgfNLIIUfgQ-l6ylFRNdUTitiMzw/edit#slide=id.g704a79fd8e_2_0) - Lots of missing bits in the video, sadly. - Vitalik Buterin, Funding ecosystem public goods: [video](https://www.youtube.com/watch?v=O0Tca-GV5mk) - The beginning is missing and the sound is _terrible_ until 7 mins in. - Joseph Lubin, Keynote/fireside chat: [video](https://youtu.be/PtZj2H1zIZA?t=499) - Barnabé Monnot, RIG Bouillabaisse: Incentives in eth2 and beyond [video](https://youtu.be/9srQ4H1NRzc?t=516) [slides](https://github.com/ethereum/rig/blob/master/assets/pdf/rig-ethcc.pdf) - Note that the video is mislabelled - Vlad Zamfir, Liveness in CBC Casper, [video](https://www.youtube.com/watch?v=fepAqvd1Gfw) - Cayman Nava, Navigating Eth2 with Simple Serialize, [video](https://youtu.be/QXtVAHysxZ8?t=25) Day 2, 4 March 2020 - Aditya Asgaonkar, Design Choices in Eth2.0, [video](https://www.youtube.com/watch?v=Hw58XA-oDjw) [slides](https://docs.google.com/presentation/d/17zA4nCAakHUIgdlWBH7IjbEAlIvUKGXL-m1YhqReUUc/edit#slide=id.p) - Mikerah Quintyne-Collins, Validator Privacy in Eth2.0, [video](https://www.youtube.com/watch?v=WC0GPPZ-qVg) Day 3, 5 March 2020 - Alex Stokes, "Eth1 meets Eth2: forecasting the future": [video](https://www.youtube.com/watch?v=9wf7HkYSWiw) [slides](https://docs.google.com/presentation/d/1KJ8d4gDaGwWo2btbVRYFoDAIKBeacKXgbOlBULXxt7Q/edit#slide=id.p) - Piper Merriam, "Stateless Ethereum": [video](https://youtu.be/9NJcYX2gfXM?t=160) - Christopher Goes, Interblockchain Communication for Eth 2.0: [video](https://www.youtube.com/watch?v=GhYcvQi2f9c) - Mehdi Zerouali, Lighthouse: Road to Eth2 mainnet, [video](https://youtu.be/DPuGNLIQClI?t=76) [slides](https://docs.google.com/presentation/d/1n3MFGIjfMCElZCKuwrLAQPjhgmG6P8NKOegl3J10XBw/edit#slide=id.p1) ## Research Mikhail Kalinin is working on Eth1 <-> Eth2 bridges. One part of this that's under discussion is applying the "finality gadget" to the Eth1 chain. He [analyses the finality gadget](https://ethresear.ch/t/on-the-way-to-eth1-finality/7041?u=benjaminion) in an EthResearch post. Being able to watch the beacon chain is crucial to constructions like this, and Mikhail has also recently written about what [an FFG client might look like](https://hackmd.io/@n0ble/rkmHGWkMU). There's lots going on around stateless Ethereum just now. Here's a discussion on [the challenges of providing witnesses](https://ethresear.ch/t/the-direct-push-model-cant-handle-stale-witnesses/7019?u=benjaminion). See also Sam Wilson's presentation discussed below. Dankrad gives a sketch of a way that [atomic cross-shard transactions](https://ethresear.ch/t/the-train-and-hotel-ee/7021?u=benjaminion) could be implemented without too much machinery. An [analysis of the performance](https://ethresear.ch/t/zero-knowledge-tooling-for-an-eth-2-0-wasm-execution-layer/7080?u=benjaminion) of some zero-knowledge cryptographic primitives on Ewasm that might be important for Phase 2. ## In other news - Development updates from [Nimbus](https://our.status.im/nimbus-status-update-february-so-far/) and [Prysm](https://medium.com/prysmatic-labs/eth-2-0-dev-update-45-cross-compiles-slashing-protection-2e6359e15195) - A bunch of people [hacked on Eth2](https://twitter.com/protolambda/status/1234155380487393280) at EthLondon last weekend. And some won cash prizes! - Sam Wilson's slides from Eth222 on [Dynamic State Access & Solidity](https://docs.google.com/presentation/d/1X2ISqI3Fd8Jol8Kf0IRtnk27BV3jnX3jhn2VXLhQMHI/edit#slide=id.g70cfee5e5c_0_0). Witness provision will be easier (in a future stateless version of Ethereum) if access to state is "static" (knowable beforehand). Here's a thread that [explains why](https://twitter.com/_SamWilsn_/status/1234823421122564096). In the presentation, Sam shows a way for Solidity to alert a developer to non-static (dynamic) state accesses. There's also some good new discussion on his [ethresear.ch](https://ethresear.ch/t/automated-detection-of-dynamic-state-access-in-solidity/7003?u=benjaminion) post. - Here's the [Quilt team's reading list](https://github.com/quilt/reading/issues). - 10 mins of [Vitalik on BlockTV](https://blocktv.com/watch/2020-03-04/5e5fab84186fc-vitalik-buterin-talks-eth-2-and-the-future-of-money) talking Eth2 among other things. ## And finally... I'm still thoroughly enjoying working on the [Eth2 Annotated Spec](https://benjaminion.xyz/eth2-annotated-spec/phase0/beacon-chain/introduction). Progress is quite slow, but mostly because I just keep falling down rabbit holes that just have to be explored. It really is fascinating. Anyway, check it out, and let me know what you think. * * * [![[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).