Hello Steemians, tomorrow is the planned switchover date for HF20. After last week’s halting incident, we performed an exhaustive audit of the relevant blockchain code (specifically “config constants”) to ensure there were no similar bugs. After completing the audit, we are highly confident in this release, and we have recommended that the witnesses upgrade their nodes in preparation for the planned switchover tomorrow.
We will be fully staffed and prepared to deal with any problems that may arise. We are making this recommendation because we have the utmost confidence in the safety of the code and we believe that sticking to the scheduled time will minimize wallet downtime on exchanges. As of now, a super-majority of the top 20 Steem witnesses is running version 0.20.2 of steemd which means that, if nothing changes, the hardfork will occur tomorrow, September 25, 2018 at 15:00:00 UTC.
Before we go further into what changes users can expect after the Hardfork, we’re happy to announce that once all of the witnesses have begun running version 20 of steemd, we will be able to enable unlimited post editing on steemit.com!
Change is Coming
Hardfork 20 includes many updates, all of which were summarized in this post.
3 priorities governed the development of this hardfork:
- More efficiently allocating and pricing resources to ensure sustainability and scalability
- Enabling DApps to create free accounts while maintaining game theoretical security
- Setting the stage for communities on Steem and Smart Media Tokens
The biggest change included in this update is that our previous bandwidth system will be replaced with a more accurate and efficient “Resource Credit” system. In another post we explained in detail how the RC system will further Steem’s lead as the most advanced freemium blockchain in the world.
The development of that system was itself guided by 2 additional priorities:
- More accurately measuring the true cost of running the blockchain
- Enabling Steem developers to create more predictable user experiences
The new system will accomplish these goals by generating RCs (Resource Credits) based on stateless estimates of 3 resources: blockchain size, state size, and computational load. The blockchain will then distribute those credits to accounts based on how much Steem Power they hold. Like bandwidth, the only thing you will be able to do with RCs is “purchase” transactions (post, comment, vote, token transfer, etc.) and also like bandwidth, RCs will regenerate over time so that you can continue using the blockchain as long as you have Steem Power.
It is very important to understand that, while RCs will function very much like bandwidth, this is a significant change to how transactions will be priced. The old bandwidth mechanism functions by assuming that all physical resources are correlated to one thing: transaction size (tx). The benefit of this system is that it is inexpensive for the blockchain to compute. The downside is that simple tx size is not especially accurate, which means that users who only perform operations that are low cost are effectively subsidizing all users who are performing high cost operations.
For example, under the current bandwidth model, a follow is underpriced because its computational cost to the blockchain is born over time, whereas a transfer is dramatically overpriced since it requires a lot of resources at the time of the transfer, but virtually none over time. Yet, under the bandwidth model, token transfers are 24 times more expensive than a follow. The RC system fixes this by accounting for a wider variety of consumed resources thereby creating more accurate internal pricing.
Impact on User Experience
By measuring more of the critical resource types the blockchain will more accurately price operations in RCs, but that also means that as of right now, resources are not being accurately priced. So after the RC system goes live, the user experience will have to change and the new system will need time to reach a new equilibrium. Due to this uncertainty, we added a “fail safe” to the code that will enable witnesses to revert from the RC system back to the old bandwidth system if absolutely necessary.
However, we strongly recommend not using this option.
Our lead blockchain developers @vandeberg and @theoretical have spent countless hours scouring this code and are certain that over the long run this system will improve user experience on Steem. But, most importantly, it is absolutely critical for the sustainability and scalability of the platform that this system be allowed to operate and reach equilibrium.
Maintaining a Consistent User Experience
We have also built in a mechanism that will ensure users are gradually transitioned from the old bandwidth system to the new RC system. That being said, as the transition goes on, users will likely notice some changes in user experience, though it is difficult to predict what those changes will be. Over the long run, we believe that this new system will have a beneficial impact on the prevalence of bots and spam.
What to Expect
But while the system is searching for equilibrium, the appearance of these phenomena might actually increase. At the same time, we expect that the real user’s ability to transact may be more limited. We will be monitoring the behavior of the RC system following the hardfork and promise to inform users of any changes that represent serious threats. We thank you in advance for your patience as the system adapts.
The crux of the problem is that many expensive operations are underpriced by the current bandwidth algorithm. Were the RC system applied in its purest form, it would immediately impose draconian austerity on all operations, severely limiting the ordinary user’s ability to transact. In order to avoid this scenario we are making transactions artificially cheaper than they would otherwise be at the beginning‒setting the resource pools to 90% of max equilibrium at the time of the hardfork‒which will allow users to continue using the blockchain after the hardfork and gradually transition them into the RC system. It allows the user base to consume the artificially high resource pools down to the new equilibrium instead of forcing them to wait for the pools to regenerate up to the new equilibrium.
The changes in user experience should only last around 7 days. Unfortunately, it’s impossible to know exactly how things will unfold as the system relies on unpredictable human feedback. What we know has to happen in order for Steem to scale‒while remaining a freemium blockchain‒is that we must transition to a system in which the people who are performing low cost operations are not paying for the people who are performing high cost operations. In addition to improving the sustainability and scalability of the ecosystem, this system should have a beneficial effect with respect to spam and bots. But this also means that there will have to be a transition period during which users learn what operations consume a lot of RCs. Votes and token actions will require relatively few RCs, for example, while comments will consume far more RCs. Again, this is based entirely on the amount of computational resources these activities consume.
Free Account Creation
Another important change that is coming in HF20 is the ability for Steem Power holders to use their RCs to purchase Account Creation tokens. Purchasing an Account Creation token only enables you to do one thing: create one account at zero cost. Proportioning the amount of free accounts a user can create to their stake ensures that the account creator is incentivized to only create accounts for valuable people. As with the RC system, there are a lot of unknowns with respect to how this will function IRL. That is the cost of decentralized solutions optimized for sustainability and scalability. Since no one individual or entity controls the system, how exactly it will perform cannot be known.
Role of Witnesses
In order to minimize the risk of this system being gamed, the people who will bear the cost of abuse (those who have skin-in-the-game) have to exert the most influence over the system. For this reason, the witnesses will be the ones determining the supply of Account Creation tokens as they bear the cost of running the network. It is important to note that even if the witnesses set the number of Account Creation tokens to zero, all that means is that in order to create an account someone will have to pay the 3 STEEM account creation fee which, after HF20, will be burned instead of powered up. If they want that account to be able to transact on Steem, then they will need to delegate Steem Power to that account as is currently the case. In other words, if the witnesses set the supply of Account Creation tokens to zero, we are effectively left with the same system we have now.
The witnesses want this network to grow in size and value, so they have an incentive to make the supply of Account Creation tokens positive. We are recommending that witnesses set the supply of Account Creation tokens such that they support the same rate of sign ups we are currently experiencing. This is typically the approach we take when integrating new systems. First, we ensure that the system can deliver the same level of functionality as the old system and, once that has been sufficiently tested, we can begin exploring new capabilities.
Based on our calculations, this approach will make Account Creation tokens extremely expensive in terms of RCs at the beginning. It is important to remember that RCs also govern an account’s ability to transact. So if you spend all of your RCs on account creation, you will lose the ability to transact until your RCs regenerate over the next 5 days. Of course, accounts can power up more STEEM in order to receive more RCs and resume transacting.
It’s important to bear in mind that HF20 is not a panacea. It is another, very big, step in the right direction. What we know for certain is that these changes will provide all of us with the tools we need to scale Steem to much greater heights, but the cost we must bear is some uncertainty with respect to how these systems will interact with users in the short term, as well as what systems and tools we will need to build in order to effectively leverage the features we are adding to the base layer.
Let’s Do This!
We strongly believe that Hardfork 20 should be allowed to occur tomorrow and that this event will be a major step forward for the Steem blockchain and the Steem community. We kindly request your patience as the new systems go into effect and we promise to keep you fully informed in the event of any unforeseen consequences.
Steemit Blockchain Team