My Authors
Read all threads
Here's an attempt at explaining the ETH supply discrepancy that @pierre_rochard & others have pointed out.

TL;DR: because Ethereum doesn't just have ETH (it also has contracts), instead of tracking supply each block, both the tokens and contracts are tracked, a.k.a. the "state"
Obviously, because this state is large, it's not literally part of each block, instead we store it in a tree and just keep the root node ("state root"). Every time an account or contract, which is stored in a leaf of that tree, changes, it change its entire branch, incl. the root
Here's a write up by @PegaSysEng about what data is stored exactly where and what it represents: pegasys.tech/ethereum-expla…
So, by tracking the state root in every block, we can keep consensus on "everything that's stored in Ethereum", balances and contracts included. Any implementation allows you to query this at each block, here's the link for Besu, for example: besu.hyperledger.org/en/stable/Refe…
If clients disagreed with each other about this, then we'd see a fork between implementations. So this means that every block, every node agrees on not only the ETH supply but also the code and data stored in every smart contract.
So where do the discrepancies come from? Well, likely from the scripts that people (and orgs) have been using to track it. Because this is not exposed in the client, people have to write their own script to track supply, which is error prone.
IMO, this is a genuine issue that was highlighted and one that can be addressed by exposing the supply in the clients themselves vs. requiring people to write their own scripts. I outline how clients can do this here:
My hunch is most of the complexity in calculating this from a script doesn't come from Ethereum's "changing supply", but from two other things:
1. The lack of "transaction" to increment miner balances, see: ethereum.stackexchange.com/questions/1578…
2. The complex rules when calculating uncles, again, here's an old issue that explains part of it: github.com/ethereum/homes…
Another reason why the numbers can be different is whether they are run each block or not. Eyeballing a few of the differences, it seems like a fair bit are caused by daily vs. ??? vs. block-by-block processing of the supply.
Hopefully this helps clarify things a bit 🤞🏻
Another possible reason for the discrepancy by Vitalik:

Not sure what the "right" number would be here? Total coins issued or coins not proven to be destroyed 🤔
Missing some Tweet in this thread? You can try to force a refresh.

Keep Current with Tim Beiko | timbeiko.eth

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!