CPU Fiasco on EOS: My Take
It all started on the first day of the CPU blackout on EOS, when I finally had my Eureka! moment.
Just to be clear, I was able to transact fairly normally throughout the CPU fiasco of November, but many of my friends were not able to do much of anything. They were plunged into CPU darkness on November 1, 2019, unable to transact normally on EOS for almost a month. During this time, I finally came to realize that perhaps I had accidentally drifted into a cult-like mindset where I believed that EOS was ‘the one’. The CPU fiasco itself was not the cause of me waking up, but rather it was the mishandling and outright denial of this fail that caused me to wake up and rethink my beliefs as far as EOS is concerned.
Up until October 31, I believed the EOS mainnet would be the next Google-like blockchain goliath, with an ungodly amount of transactions per second, no fees for transactions and loads of enterprises, users and gamers, all experiencing varying degrees of euphoria, the kind of euphoria that was unaware of even being on a blockchain at all. I had dreamed of a frictionless user experience and with it, a new era for humanity, where people from failed governments could rebuild their economies and could create or find livable wages in a technological oasis of abundance. In short, it was a dream world. It was my dream of a better world for all people. It was a dream I naively thought other people shared. I was very wrong.
The reality of what transpired during the month of November didn’t resemble any of that dream.
Pretty quickly it became clear that the people who invested their time and money into the EOS mainnet (I’ll call them landlords) didn’t give a shit about anyone else except their own pockets. They didn’t see anything wrong with the fact that regular users were shut out of their EOS accounts (definition of shut out: unable to use bloks.io or needing to do more than 5 transactions per day).
What these landlords failed to realize is a vast amount of users were stuck and this had a very negative effect on the most important aspect of building any new tech community: user trust. One bad experience gets easily transmitted to that person’s friends, and negative experiences tend to travel farther than positive ones. Being ignored, belittled and shamed is perhaps the worst possible experience, and that is exactly what happened to a lot of people. I witnessed it. It was super ugly.
These landlords began telling people to buy more EOS to stake. I was also called “Stupid Stella” in Telegram by Bonz Manifest of Prospectors after I critiqued the REX design and called out the CPU fail. The CPU fiasco brought out the worst in people, and showed me exactly who was who on the inside.
This was at the time when REX loans had stopped, and no CPU was able to be rented. The only thing people could do was use Bloks.io to get 5 free transactions per day, if they could figure that out. Some people couldn’t figure out the exact method as it required very precise steps and people who had their EOS in Coinbase, who really knows what happened to them.
Otherwise, people would need about 100 EOS to transact normally during this time. Some dApps began paying for users’ resources, but for some dApps this wasn’t economically possible.
This was also about the same time that Dan Larimer tweeted:
“Would you complain because car rentals were too expensive?” -https://twitter.com/bytemaster7/status/1191807563249192961
The public blowback on Twitter was strong as Crystal Rose, myself and Dallas Rushing called out this hubris-filled, unsympathetic and ridiculous analogy. It was a “Wake up and get off your ridiculous Shower Throne” moment.
Rob Finch said it well:
“It is easy to be in denial about a flaw in your idea when the market rewarded your idea with $4B” -https://twitter.com/finchify/status/1192165512182145024?s=20
The CTO of Block.One was in fact was correct that everything was working as he designed it, but what he really failed to grasp is that publicly stating “Everything is working as designed” comes across to the thousands of people who were shut out of their accounts as completely unsympathetic, verging on robotic assholery. It indicated to everyone who was watching the CPU fiasco just out of touch with reality Block.One is. I waited for anyone in Block.One to transparently admit that there was a problem and Dan Larimer finally did admit that the REX design was in need of improvements, but he did this really late, like 3 weeks into the problem. Brendan Blumer has yet to say anything about any of this.
“We have been working on some solutions to improve Rex in the short term and more generally solve the cpu pricing problem. I look forward to sharing the details of today’s discussion. #eosio will keep getting better as we overcome these challenges!”
All this was adding to the ‘fiasco’ aspect but what most people didn’t know is that there was an exploit in the namebid contract that some people were taking advantage of to steal resources on the EOS mainnet. I don’t know to what extent this bug was exploited and how much in eosio resources were stolen, but this happened early in November:
From EIDOS (@Enumivo) Twitter account:
“There is an exploitable bug in the name bidding contract that makes it possible for anyone to steal eosio system resources. If this will not be fixed soon, we will be forced to upgrade EIDOS system contracts to make it more restrictive. We are still studying the extent of this.”- Enumivo Twitter Account: https://twitter.com/enumivo/status/1194296149298929664
Details about this resource exploit:
Here’s the GitHub: https://github.com/EOSIO/eosio.contracts/releases/tag/v1.8.1
Here’s the BP’s approval of this patch:
EIDOS (the one contract that caused EOS CPU to fall to its knees) was EOS’ Cryptokitties moment but lasted a month and was much more damaging as far as trust is concerned.
I learned a lot from seeing how a failed resource design affects a community, and I am grateful to EIDOS for revealing the truth, in two respects: it illustrated the design flaws in REX and it clearly exposed the philosophical underpinnings inside each person. I am also grateful to EIDOS for revealing the EOS resource exploit publicly on Twitter. I doubt very many people were aware that EOS resources were being stolen via the namebid contract exploit.
One thing is pretty clear: the current resource model doesn’t work as I first suspected, and after 21 days of the EOS mainnet being functionally unusable for 90% of the people, Larimer comes out with his redesigned REX system:
EOSIO Resource Allocation Reimagined
The EOS public network, the first implementation of EOSIO, is the most used public blockchain by a wide margin and has…
Dan’s new Rex design:
“By having 100% of all CPU allocated by leasing, there is no longer a dynamic supply of tokens staked to CPU, nor is there any need to worry about people withdrawing EOS from REX causing shocks to the CPU rental market and its pricing algorithm.
Furthermore, CPU time becomes non-transferrable because all CPU time is allocated via leasing from the system contract rather than by staking EOS. This eliminates the speculative component to CPU pricing and ensures everyone is operating under the same resource model.”
What this means:
Over a year, people in EOS will no longer be staking their EOS to get their own resources. Everyone will be putting their EOS into the same pot and everyone will be leasing from it to get CPU. Those who put a lot of EOS into the Resource Pool will earn leasing fees. So the original design that all current EOS landlords were sold in 2018 (of being an owner of the network and having free transactions) is being changed into a leasing model where everyone pays fees to transact. For people who have a lot of EOS in the new Resource Pool, they will probably earn more than they pay out for CPU. But this is a fundamental design shift, in that “free transactions” no longer exists really.
This is at least, how I understand it.
I have combed through all the tweets from Dan and Brendan of Block.One, and I noticed there is no acknowledgement of any problems. There’s no apology or anything remotely resembling understanding of people’s negative experiences using EOS. I don’t know about you, but if I designed a system that caused this amount of negative experiences for people for a month solid, I’d own up to it, issue a transparent formal apology and start looking around at other chains whose resource systems are functioning well.
It was very curious to watch how people reacted differently to the same external situation.
Some began to defend this flawed REX design like rabid, irrational tribal dogs, others shut themselves off in a cave for weeks (Rob Finch), others decided to move to an entirely different blockchain (Dallas Rushing of Karma), some people descended into a depressive dark hell (Crypto Tim), others barked out on Twitter “Capitulated yet?” (@rektkid), some went quiet, others began to look around at other eosio chains like Telos (too many to count), others wrote a threatening 30-day ultimatum (EarnBet) countless other casual EOS users were never heard because they’ve already left and me, well I no longer believe in any one blockchain over another and I launched a new chain agnostic venture called Meme My Coin
Tough Love for B1 and the current Top 21 BPs of the EOS mainnet:
You missed an opportunity to bring people together. The CPU fiasco was that missed opportunity. By avoiding and failing to acknowledge your role in this fiasco, you’ve shown that you have no regard for the little people. Your silence and initial avoidance shows everyone that you have no idea how to handle real problems that affect a lot of people. Problems happen frequently so there is no way to avoid them. The only thing you have control over is how you handle them. What people in EOS have lost is trust in the system and its shepherds. That is the lesson here.
Time to get out of the shower.