Ask HN: Does the Ethereum foundation really not develop a post-Merge client?

15 points by RjQoLCOSwiIKfpm ↗ HN
TL;DR: To use the new Proof of Stake network, you'll need 2 pieces of software in parallel. It seems only one of those is developed by the Ethereum foundation - implementations of the other one are only developed by various seemingly commercial entities - despite the foundation holding $ 1 billion in assets (see comments).

Now that the PoS-merge is close, I tried to find out how to actually use it.

https://ethereum.org/en/developers/docs/nodes-and-clients/ says:

> After The Merge, both execution and consensus clients must be run together in order for a user to gain access to the Ethereum network.

Here are the lists of implementations of those two clients:

https://ethereum.org/en/developers/docs/nodes-and-clients/#execution-clients

https://ethereum.org/en/developers/docs/nodes-and-clients/#consensus-clients

So they do develop an execution client, commonly known as "geth". It's on their own GitHub: https://github.com/ethereum/go-ethereum

But the 5 consensus clients not only have websites which aren't ethereum.org - they are in fact also hosted on different GitHub accounts:

https://github.com/sigp/lighthouse

https://github.com/ChainSafe/lodestar

https://github.com/status-im/nimbus-eth1 (yes, this is also for eth2, see "About" at top right)

https://github.com/prysmaticlabs/prysm

https://github.com/Consensys/teku

Further, all of these 5 institutions seem to be companies from the looks of their website, not non-profit foundations. (Please correct me and pardon me if that is not true, I don't have the time to navigate through all these websites to figure out their precise legal status.)

So is it true that there is no official reference implementation to run the post-Merge, Proof of Stake Ethereum?

Only 3rd party software which is somehow endorsed but which you have to choose on your own still?

Sure, more choice can be nice, but it would seem advantageous to have at least one trustworthy reference client instead of the users having to decide which of 5 commercial entities they trust?

12 comments

[ 5.0 ms ] story [ 19.7 ms ] thread
Notice: I get that they advertise this as diversity.

But from the perspective of someone who just wants to use the software it would be a lot easier if I don't have to sieve through 5 commercial websites.

Also: For the $ 1 billion they hold in assets [0] I'd expect them to provide at least one full set of usable software from it, not just specifications on how to write the software - which is what they seem to only be producing now?

They already cancelled their GUI wallet some years ago (https://github.com/ethereum/mist) which was kind of weird already considering that people did have money in it already.

But you could at least resort to using geth as a terminal UI client.

Now it seems ETH holders won't be able to access their funds using fully official software at all, which is kinda "meh", no matter if you're pro-crypto or against.

[0] Calculated with today's Ether price, based on: https://www.coindesk.com/business/2022/04/19/ethereum-founda...

I guess the foundation is prioritizing the health of the overall ecosystem (diversity) over the convenience of people who just want to get started. Perhaps they see Ethereum as backend infrastructure not as a user-facing system.
Well, yes this might make sense, but it reminds me of a situation where there is full diversity:

Chinese consumer products on Amazon.

Is it enjoyable to buy stuff out of this very large diversity? Rather not, because most of it is garbage :|

It can be nice to have at least one known-to-be-good version of things :)

> was kind of weird already considering that people did have money in it already.

Wallets are signing software with various pretty interfaces. Wallets can sign messages to access things on-chain. Wallets don't store gold coins actually in the wallet.

Someone testing recoverability can take the recovery phrases and put them in a different wallet on a different continent. Both old and new wallets will show the coins and will be able to sign messages.

Oh I was fully aware of that, but nevertheless I do not consider it a wise decision to abandon the wallet development:

I would say the probability is 100% that a non-zero percentage of users will not be able to figure out how to migrate to a different software and thus lose their money.

Also, as said elsewhere, for the billion dollars they got handed they could at least provide the most basic set of software. If you're a cryptocurrency project that would be a wallet.

The idea of “official” is intentionally being rejected. There is no official version of anything, just community consensus of the spec, from which anyone can implement a client.

In the past the ethereum foundation has made their own wallets/browsers/clients but they’d rather focus energy in other places and instead have grants and donations to others to help them get started and to operate their own companies.

The reason is to break away from being an authority, over time the EF should become less powerful. They are making decisions to reduce their importance and the reliance the ecosystem has on one group. Ethereum users were never ethereum foundation users.

The other listed organisations and their clients are all excellent. This is a much more healthy approach.

The groups writing client software are at least writing open source software, generally under liberal or GPL licensing. So there's that. They aren't selling the software, although they do tend to establish commercial relationships with some entities. Many of those groups work in companies that do something more commercial with other blockchains than Ethereum, though.

Some of the funding for the various implementations comes from Ethereum Foundation (EF) itself. It's not just Geth which is supported by EF funds, but Geth has a special place because of its history.

The Ethereum Foundation takes the view that "client diversity" of proof-of-stake validator implementations is a security requirement: https://ethereum.org/en/developers/docs/nodes-and-clients/cl...

Shipping an endorsed EF implementation would undermine that requirement.

So instead, they publish and regularly update a spec, the major clients are all open source, to some extent the EF has sponsored the development of multiple clients, there is continuous interop testing between all the major clients going on, and the client teams meet at weekly EF meetings.

The next such meeting is today (the All Core Devs meeting), and it's conducted in public, you can listen in real time or afterwards on Youtube. You wouldn't see that if they were ordinary commercial companies.

Ideally they would like to see client diversity in the execution layer as well (Geth et al), and consider single-client (Geth) dominance to be a weak part of the system.

(I am writing an execution layer client that isn't in the list at the moment. Stealth mode, if you like. It's feature is extremely compact storage using a novel database structure, fast storage and network sync, and zk-EVM proofs will probably be coming. The organisation writing it (me) certainly isn't profit seeking with regard to this project (nor paid for that matter; it's a personal side project). Being able to fork and build on other groups' work, as well as test against them, is very useful!)

Thanks for your lengthy reply!

This is all fine and good, but you're forgetting about a central aspect of reality:

In the end, a user realistically has to decide for one piece of software.

You can't expect a single user to store their money across 5 different vendor's software. Probably not even 2.

So each user must decide.

Now how are they supposed to do so?

Throw a dice? Have randomness decide what secures potentially thousands of $ worth of your money?

That seems like an impressively reckless thing to ask of your users.

And beyond that it's just unrealistic. You can't expect that people will be fine with storing their money in an effectively random fashion.

If money is involved, people will want clear guidance on what is the most secure way, not "what are 5 different ways of which we don't tell you which one is the best".

If they decided to go for a sane approach and provide a known-good client, they could still develop N others and use them as unit tests to test the primary client against.

Or just get people to use them without forcing them to do so. E.g. they could just ask users nicely.

This is like saying the problem with linux is that there’s too many distros. How do you expect users to choose one? How can you compete with Windows, which has one easy answer for what to install, when every linux user needs to first become an expert on whether they want to use arch, ubuntu, nix, debian, etc.

I think it would be kind of silly to say that, because the whole point of linux is that it’s open and if you put the work in you can set everything up just the way you like it.

Equivalently, the whole point of ethereum is that there’s no boss. Imagine if the EF could push an auto-update that everyone’s clients and wallets automatically pulled. If that were possible, ethereum would just be a centralized service with extra steps. If you want a centralized service for moving your money around, there are plenty. The single most important design principle of ethereum is that it’s not centralized, so saying “but it would be so much easier to use if it were a bit more centralized!” will fall on deaf ears.

They're aiming to be the equivalent of the W3C. They write the specifications and private companies build the clients, just like web browsers for the internet.

Ethereum's aim is to be a neutral platform for exchange of value, as big and important as the internet. Having one company make the official client would undermine that.