I haven' t been very active on the STEEM blockchain since the voting value of my minnow sized stake got decimated by the EIP hard fork. I had been unhappy with what Steemit Inc had been doing before that HF, and had pretty much abandoned my work on the STEEM centric txjsonrpcqueue python library, an attempt at a single source replacement for both the asyncsteem and the asyncsteem3 Python STEEM libraries, when Steemit Inc implemented API rate-limiting in a way more akin to a DOS protection implementation that basically killed the main STEEM projects that I myself was aiming to use txjsonrpcqueue for.
So basically, me, the dev and STEEM parted a long time ago. Me the fiction author and health and stats blogger stayed on for a bit, though after the EIP, I mostly moved to the creativecoin side chain.
When I first heard of Justin Sun taking over Steemit, I thought to myself: Well, the old bunch didn' t exactly do a good job managing the blockchain lately, he can' t likely do any worse, right?
Well, I was wrong.
So today I saw this post, and when I started reading, I got exited when I read this:
This new direction steps away from the burden of the Steemit Inc. ninja-mined stake, which has impacted the long term ability to work towards further development and decentralization for years.
Apart from EIP, bot killing API rate limits, poor deployment strategies for hard forks and other dumb shit Steemit Inc had been pulling recently, ninja mined stake has been a major factor in STEEM not being taken seriously by investors. The term ninja-mined shitcoin comes to mind when thinking back on discussing my STEEM presence with friends with a solid crypto portfolio. So these Hive folks were going to fork STEEM and do an airdrop that would fork out all ninja mined stake? Thats what I thought.
Well, I was wrong, again.
Reading a bit further on the details of the airdrop we read:
All valid STEEM stakeholders will receive a perfectly mirrored balance of their current STEEM holdings in the new HIVE coin. This will include matching amounts of current liquid STEEM, Steem Power, and SBD.
Whut? Why start off about Steemit Inc its ninja mined stake and create a fork of STEEM if you are just going to airdrop al ninja mined stake back after the fork?
Surely we could do better, right?
In the remaining part of this blog post I want to drop a few rough ideas on how a STEEM fork could do better.
Rebase & replay
Want to get rid of ninja mined stake ? Normally you can't do that on a life blockchain. But given Hive is already forking, why not use a rebase and replay strategy. It will take a few weeks longer to start, but that should be worth it. So how would rebase & replay work. Basically we take the transactions from the STEEM blockchain, starting at the genesis block and we ignore most of the transactions, store a few special ones (in our case the account creation transactions) until we reach the block with transactions where we want our new genesis to be. What block should that be? Well, the block where the 1000th STEEM account is created might be a decent new genesis point.
Now we create a new genesis block containing just the 1000 account creation transactions, and make this block our new genesis block. We have rebased our blockchain to the 1000 account genesis point, no more ninja mined stake, we can start replaying the rest of the transactions. If a transaction fails due to insuficient balance, it fails and doesn' t end up in the blockchain, if it succeeds it does.
Account creation airdrop
Without Steemit Inc's temporary delegation of ninja mined stake, our new accounts would be powerless at account creation time. So lets fix that. Lets say we want the same amount of forked coins that there are STEEM coins today. We look at :
- The total number of Steemit INC created accounts life today
- The total amount of tokens forked out by the rebase
And what we do is, we fork the lost tokens right back in on account creation in the form of staked tokens.
Forking out bot reputation
Next to ninja mined stake, there is an other huge problem with the STEEM blockchain, and that is the reputation system. Forking out bid-bot votes would probably be a bridge to far for many users, but how about forking out the reputation building part of bid-bot votes.
Let' s imagine the STEEM blockchain has an opt-in API for the reputation system on all votes. Now lets imagine the steemit website, mobile STEEM clients, and all of the user centric alternative websites opted in to the reputation system.
Now imagine all votes done by scripts and tools not known to be WUI/GUI operated by an actual person didn' t opt in. Could we use this scenario in a fork? Well, probably not. We could do the next best thing though. We could identify known bots and opt-out of the reputation system on all their votes during replay.
I think that if we ask the question if the Hive blockchain is a rescue buoy or a missed opportunity, I think at the moment we must conclude it is both. Yes, it is a rescue buoy regarding the Justin Sun, but only regarding the Justin Sun. Consider we could survive in these rough waters a little longer. Long enough to rebase and replay this live buoy into a much more credible blockchain project. A blockchain free of ninja-mined stake and free of bid-bot generated reputation.