Ben Edgington

@benjaminion

Prime membership

Joined on Nov 30, 2018

  • In Ethereum 2.0's data availability model, we have a need to be able to reconstruct chunks of data when up to half of that data has been lost or withheld. I recently implemented some code to do this, but I always like to understand what's really going on, so I put together this worked example. This example is going to be super unambitious. We are going to start with two items of data. We will encode these into four items of data, and then throw two of them away. Finally we will recover the original two items. At this scale, you don't need to be very sophisticated. If our data are $[a,b]$, we can extend it to $[a,b,a+b,a-b]$: now we can lose any two of these values and still recover the original numbers (try it!). But for much larger scales, we need a general technique that can be efficiently implemented. Such a technique is described by Vitalik Buterin in a post Reed-Solomon erasure code recovery in n*log^2(n) time with FFTs. My example here essentially follows that description and notation. It will seem massively over-complex when applied to our meager two data, but remember that the method is both general and efficient. If you would like to play with it yourself, I've coded up the toy example below in this repo.
     Like 4 Bookmark
  • Everything I wish I'd known before I started fiddling with this thing. The elliptic curve BLS12-381 has become something of a celebrity in recent years. Many protocols are putting it to use for digital signatures and zero-knowledge proofs: Zcash, Ethereum 2.0, Skale, Algorand, Dfinity, Chia, and more. Unfortunately, existing material about BLS12-381 is full of obscure incantations like "instantiating its sextic twist", and "optimal extension field towers". I'm here to fix that :smile:[^fn1] [^fn1]: I studied mathematics many years ago, but diligently shirked anything to do with pure maths, including group theory. I regret that now. Anyway, this will not be too technical, but I'm also not an expert, so might get some things wrong and will be a bit hand-wavy in general. In case it's not obvious, I am not a cryptographer. I won't be giving a general introduction to elliptic curves and their exciting group properties. There are already some great primers out there and I will be assuming basic knowledge of these things. Equally, there's much in here that is not specific to BLS12-381, and applies to other curves.
     Like 102 Bookmark
  • ![My avatar](https://benjaminion.xyz/f/ms-icon-144x144.png =32x32) Ben Edgington (Eth2 at ConsenSys — all views expressed are my own) Edition 100 at eth2.news The Verge of the Merge Edition :::warning :warning: There is no ETH2 coin. Anyone offering you ETH2 coins is scamming you. :warning: :::
     Like  Bookmark
  • by Ben Edgington 26 August 2022 Back issues 12 August 2022 29 July 2022 15 July 2022 1 July 2022 17 June 2022 3 June 2022
     Like 4 Bookmark
  • :::info Notice This page is unmaintained and the information is now quite out of date. The best current resource I can recommend is my Upgrading Ethereum book. ::: Canonical link: https://eth2.info
     Like 9 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/747 Livestream: https://youtube.com/live/Xc6Ss-m_nlE Alex Stokes in the chair today. Capella Client releases Consensus spec release 1.3.0-rc5 is out.
     Like 1 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/738 Livestream: https://youtube.com/live/C5SmmkriuwA?feature=share Capella Goerli upgrade due next Tuesday. Blog post is out with client releases (except Nimbus). Monday 15:30 UTC community call is planned. Upgrade due at 22:25 UTC Tuesday, Ethstaker livestream starts at 22:00 UTC. There are no specific plans to flood BLS credential change messages for Goerli - has been done on testnets in the past and don't expect issues.
     Like 1 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/731 Livestream: https://www.youtube.com/watch?v=io7ALEfxJsE&t=722s Capella Testnet updates Devnet 7 was shut down this morning. Everything seemed fine, with 359k BLS changes processed, but not running final client versions. Plan to run one more large devnet just after the Sepolia upgrade. Overall a very good test. Zhejiang testnet continues quite stable. MEV-boost happy-case seems good. All clients supporting it. Next, on MSF-2 (mainnet shadow fork), plan to test some edge cases, but Capella fork time is not yet set for that.
     Like  Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/711 Livestream: https://youtube.com/live/YMu50yNUz5Y Capella devnet updates Zhejiang fork, the Shanghai/Capella public testnet, was two days ago - great success. No issues. [Marius] Some Geth nodes encountered a bad block while syncing. Looks like some client may not be RLP-ing blocks correctly. Please check your code, execution clients. Only happens on blocks with empty withdrawals. Difficult to reproduce from the Geth side alone. [Barnabas] Can set up a very small testnet without any BLS changes to reproduce.
     Like  Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/702 Livestream: https://youtu.be/a-AO35BobNY Capella pre-interop testnets update [Pari] Withdrawal devnet 2 launched yesterday. A couple of bad blocks (maybe EthereumJS), but otherwise looking good. Larger, public version coming next week. First withdrawal shadow fork went well earlier today - forked Sepolia - but only with a small subset of clients. Aim to shadow fork mainnet in a couple of weeks. [Marius] The bad blocks on devnet 2 were due to EthereumJS - (1) warm coinbase and (2) a huge amount of init data (due to specially hand-crafted transactions). The fork monitor shows the bad blocks. There are four bad blocks shown by Besu nodes, but not by any other nodes - should be investigated. They are not part of the canonical chain.
     Like 2 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/688 Livestream: https://www.youtube.com/watch?v=UazJO0fQ3Ho The last call of 2022. Capella Goat Star Goat Star is a spec release made yesterday, with new test vectors.
     Like 2 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/667 Livestream: https://youtu.be/KFc1sWYlVZ4 Capella Last week's All Core Devs call recap (of consensus stuff). Danny understands that we will keep withdrawals separately specified from EIP-4844, and slated for Capella. If they do end up getting implemented together, we would not combine the specs, but would just stagger the upgrade. This was confirmed to be the common understanding on this call. testnets / progress updates Running two testnets (no EIP-4844): one post-merge, one pre-merge (to facilitate Prysm). Many participants... (see recording for the details). Full withdrawals working fine.
     Like 2 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/660 Livestream: https://youtu.be/IK1jNCQz5yk @metachris mev-boost summary and questions Summary document. (Discussion brought forward from later in the agenda.) Release of MEV-Boost 1.4.0 allows setting minimum bid value
     Like  Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/630 Livestream: https://youtu.be/GWkhFCvwOT4 Introductory Tim Beiko in the chair this week. Lots on the agenda! Spec, research, etc. Withdrawals
     Like 2 Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/598 Livestream: https://youtu.be/tjmpu8O-xsA Merge [Pari] Last shadow fork went well. Updated to latest Geth version on Monday. Mainnet shadow fork 12 will happen next week, using client versions recommended on the EF blog announcement. [Marius] Still seeing bad blocks from Erigon on MSF11. Erigon team is aware and has reproduced the issue on Ropsten where they will continue to work on it.
     Like  Bookmark
  • ![My avatar](https://benjaminion.xyz/f/ms-icon-144x144.png =32x32) Ben Edgington (Eth2 at ConsenSys — all views expressed are my own) Edition 99 at eth2.news :rocket: The LFG Edition :rocket: :::warning :warning: There is no ETH2 coin. Anyone offering you ETH2 coins is scamming you. :warning: :::
     Like  Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/594 Livestream: https://youtu.be/CIAGQMUKEZ4 Merge Goerli Merge review Issue tracker. Goerli Merge happened approx. 12 hours ago. Currently healthy, though has been wobbly at times.
     Like 1 Bookmark
  • ![My avatar](https://benjaminion.xyz/f/ms-icon-144x144.png =32x32) Ben Edgington (Eth2 at ConsenSys — all views expressed are my own) Edition 98 at eth2.news :::warning :warning: There is no ETH2 coin. Anyone offering you ETH2 coins is scamming you. :warning: ::: Apparently I need to say this :man-shrugging:
     Like  Bookmark
  • [Quick contemporaneous notes by Ben Edgington; fka "Eth2 Implementers' Call"] Agenda: https://github.com/ethereum/pm/issues/574 Livestream: https://youtu.be/XDfNg8mdC10 Merge [Pari] Two shadow forks. Goerli SF5: no big issues (but see Nethermind below). Have been testing MEV-Boost (Prysm, Lodestar, Teku) with ~30% of the network now, looking fine.
     Like 1 Bookmark
  • ![My avatar](https://benjaminion.xyz/f/ms-icon-144x144.png =32x32) Ben Edgington (Eth2 at ConsenSys — all views expressed are my own) Edition 97 at eth2.news :::warning :warning: There is no ETH2 coin. Anyone offering you ETH2 coins is scamming you. :warning: ::: Apparently I need to say this :man-shrugging:
     Like 1 Bookmark