Crypto’s Weirdest Cognitive Dissonance

Lucas Nuzzi
6 min readAug 14, 2020

We all stood behind the money printer go brrr meme. We need to live up to what we preach.

Cognitive Dissonance, noun

the state of having inconsistent thoughts, beliefs, or attitudes, especially as relating to behavioral decisions and attitude change.

(Oxford Dictionary)

We all like to think that we’re changing the world with this thing called crypto; reiterating upon a flawed financial system through decentralization, disintermediation and open access for all. After all, Bitcoin was created on the brink of the worst financial calamity in almost a century, when the opacity and cronyism of 21st century finance threatened to destroy value of an unprecedented scale.

While quantitative easing and bailouts were increasing the complexity of global economies and blurring the role of central banks, Bitcoin was being legitimized as a transparent and provably fair alternative. The successful bootstrap of its network gave birth to an entire industry that converged around the ethos of decentralization and openness.

We have embraced this ethos to build Unstoppable Applications, Decentralized Finance and Personal Banks in what’s often promoted as an entirely new financial system.

However, when it comes to living up to these ideals, there are times that crypto disappoints. There are times when it seems like instead of reiterating upon the opaque financial system we’ve inherited, crypto is merely replicating it. The debates that took place this week around supply transparency perfectly encapsulated this cognitive dissonance. It started with a seemingly simple question:

“What is the total supply of ETH?”

This question broke Crypto Twitter. As many found out, the answer turns out to be “it’s complicated.”

Source: CoinDesk Research

CoinDesk Research compiled the responses from 5 different data providers, and, as shown above, there is no consensus. Some respondents pointed at custom scripts, blockchain explorers and third-party querying tools; all of which highlighted an undeniable issue: there is no definitive answer. And instead of an overdue discussion on why there isn’t consensus on ETH’s supply, the conversation got dismissed with a blank “it’s hard to calculate it”.

“It’s hard to calculate it” is a bad answer

We all know it’s hard to calculate it. No Ethereum client (the software required to become a node on the network) features a standardized way to verify total supply of Ether. Since Ethereum’s account-based data structure was built from the ground up, it has always been a hard exercise to make assessments on supply, especially in comparison to Bitcoin and all of its forks.

For context, Bitcoin Core (Bitcoin’s main client) features a command called gettxoutsetinfo that grants any user the ability to audit Bitcoin’s supply for themselves. This is part of Bitcoin’s RPC command line, which, put simply, is an interface that allows users to perform the equivalent to API calls on their own nodes to do things like query wallet balances, broadcast transactions, amongst other functions. Gettxoutsetinfo sums up all valid Bitcoin balances (UTXOs) visible to a user’s node at any point in time and lands on a single BTC supply figure.

Ethereum, on the other hand, has features that make this calculation process considerably more difficult on a relative basis. For example, Ethereum blocks are appended to its blockchain at a fast rate (every ~15 seconds) through so-called uncle/ommer blocks. These are blocks found roughly at the same time by different miners. Instead of selecting one or the other, the protocol “merges” them together. The reward is then split between miners based on the composition of their blocks, which complicates the tracking of ETH issuance.

Then, there are the idiosyncrasies of complex smart contracts that require data providers and blockchain explorers to adopt their own methodologies to account for who owns what, when. Then, there are rounding heuristics at the discretion of the party making the calculation. In order to deal with these idiosyncrasies, anyone trying to land on an authoritative estimate of ETH’s supply is required to make methodological decisions at their own discretion; decisions that will ultimately skew the final figure. So, yes, this is by no means an easy exercise.

However, it was odd to see people fixate on the difficulty of the calculation and fail to acknowledge that the lack of consensus on the total supply of ETH is a valid concern. It was particularly weird to see pushback coming from people whose full time job is to promote the ideals of decentralization and openness.

However, it was odd to see people fixate on the difficulty of the calculation and fail to acknowledge that the lack of consensus on the total supply of ETH is a valid concern.

It was particularly weird to see pushback coming from people whose full time job is to promote the ideals of decentralization and openness.

Perhaps all the ad hominem that tend to follow any sentence with an implicit or explicit “Bitcoin vs Ethereum” comparison in them has clouded people’s judgement. But make no mistake, this lack of consensus should be taken seriously, especially if you care about ETH. The importance of strong assurances around a cryptoasset’s supply go far beyond transparency and auditability — it’s also very much a matter of security.

Consider that Bitcoin Core is as old as this industry itself and also enjoys a large portion of its developer mindshare. Nevertheless, it still experienced a couple of inflation bugs in its history. Ethereum clients are not infallible, and without a standardized RPC routine to audit ETH’s supply, potentially catastrophic bugs become harder to find.

With this in mind, the cavalier attitude seen on crypto twitter towards the lack of consensus on supply data should come as both odd and concerning. In the interest of not making generalizations, I must acknowledge that there were in fact members of the Ethereum community that not only recognized the severity of this issue, but were also brave enough to call out the cognitive dissonance — kudos to them.

“No right way to calculate it” is the right answer

At this point, any estimate of ETH’s total supply is as good as the methodology employed. CoinMetrics has done a lot of work to abstract away any subjectivity from our total ETH supply methodology. We’ve even gone through the effort of developing a new data model to audit the supply of various cryptoassets. This model converts blockchain data into the double-entry booking format, which is particularly useful to track inflation (subscribe to our State of the Network newsletter for future updates on this).

When we applied this data model and accompanying methodology to Ether, we have found that our total ETH supply figures very closely match Etherscan’s, Ethereum’s largest blockchain explorer. This is generally good news given Etherscan’s importance to the Ethereum ecosystem. However, albeit minor, there was still a 0.00052 ETH discrepancy found by Coin Metric’s In-House-Blockchain-Indiana-Jones, Antoine Le Calvez:

^follow this man on twitter

We believe Etherscan made a tiny rounding error in the block referenced in the tweet, but without looking into their methodology, it is hard to say. This highlights that, without a protocol-defined methodology to calculate supply, it is very unlikely that two parties will agree on what Ether’s total supply is, at least at the decimals level. And as much as I want you to trust Coin Metric’s data (knowing the care that goes into calculating it), this should be no replacement for the ability to verify it for yourself.

As of Block Height 10648267, Ether’s supply stood at 112,155,515.65573

If you care about ETH, take this criticism seriously and call your local Geth maintainer

The other good news is that this is an issue that can probably be fixed. Just like with AA, step number #1 is to acknowledge that there’s a problem. Step number 2 is to convince the maintainers of popular Ethereum clients, like Geth, Parity and OpenEthereum to build an RPC subroutine that converges on a single methodology to calculate total supply and issuance.

In order to truly live up to values of openness and decentralization, the equivalent to gettxoutsetinfo should be very minimum benchmark for any crypto asset. It’s a seemingly small feature, but a requirement for any objective assurances around supply. This is particularly important for more experimental cryptonetworks such as Ethereum, as an equivalent RPC would would allow ETH users to have better clarity around supply, especially in the event a bug makes ETH issuance inadvertently go brrr. It also simplifies the job of third parties by providing a protocol-level methodology we can follow.

--

--