The Proof of EOS' Flexibility Lies In Its Comparison with Steemit

Written by boogerwooger | Published 2020/04/22
Tech Story Tags: blockchain | blockchain-technology | smart-contracts | blockchain-application | blockchain-use-cases | blockchain-top-story | hackernoon-top-story | steemit-vs-eos

TLDR EOS is the last generation of successful blockchains based on fast DPoS consensuses. The story of Cyberway - a project launched in August 2019 after Golos - is real proof of EOS flexibility. Golos and Steemit have complicated tokenomics and both use many interesting algorithms to restrict manipulations with votes in Golos. In the spring of 2018, it became evident that Golos was not able to solve incoming challenges to migrate Golos to our new platform. But let’s go back to our story.via the TL;DR App

In my opinion, the most important part of EOS is “OS”. After many architecture redesigns and refactoring, EOS became an excellent blockchain-based OS allowing projects to launch fast and secure blockchains with a  flexible account system and fully functional smart contracts.

The MixBytes team has been working with the EOS ecosystem for quite a while, and we’ve learnt a big part of this blockchain history. EOS is the last generation of successful blockchain engines based on fast DPoS consensuses. The story of Cyberway - a project launched in August 2019 after Golos - is real proof of EOS flexibility.
Cyberway went through one of the most complicated blockchain launches with a transparent transfer of complex data from one blockchain to another. From a technological point of view, that was a hard-fork involving several layers of cumbersome interactions.  
GOLOS users could observe an absolutely new blockchain. They continued their activities, proving that a complicated transfer of all crypto assets, access rights and content from one blockchain to another is possible for real projects.  
And this is how the story goes.

Golos and Steemit: arithmetics and financial system

In 2016, a group of creative IT developers from Russia came up with an idea for blockchain implementation in real life. Inspired by the growing popularity of decentralization, they decided to build a smart user- and community-driven  platform capable of digitizing virtual activities. Steem was chosen as a basis due to its system or rewards proportional to user votes. 
When Steem was launched, it was a home mainly for native English speakers. Therefore, only the English posts were viewed and voted for, while Russian speaking users received a very small part of a reward pull. This was a reason for forking Golos.
GOLOS tokens called GBG were created (GBG stands for Gold Backed by Golos). Steem tokens (SBD) were associated with dollars, while Golos GBG - with 1 mg of gold.  Steem content evaluation system included a remuneration system from a common pull based on a square reward curve. Users with GOLOS balances were able to send their votes to vesting shares (a certain type of system shares). 
In any decentralized votings and ranking algorithms simple use of vestings without restrictions can lead to problems. Firstly, it is a “whale stake” issue, when a user with a huge amount of vests can make massive decisions hiding other user activity. At the same time, there is a “sybil stake” problem, when such a user has control on many accounts and makes them act together. There is no simple and universal solution to these two mutually exclusive problems - that’s why Golos and Steemit have complicated tokenomics and both use many interesting algorithms. 
For example, one of the mechanisms to restrict manipulations with votes in Golos is limiting the rate of voting. Every account has a “battery”, and its “charge” is depleted every time a user votes. This “battery” allows users to vote only a limited number of times per day (40 times). For example, a user with 1000 vestings can vote only for 200 different posts or comments during 5 days, spending in average 5 vests (1000/200) for each post or comment. This helps to prevent automated bots from voting for thousands of posts and gathering rewards for each of them.
The second algorithm is Steemit non-linear, quadratic “weight” of votes that changed to linear weight in Golos. When a user votes, the weight of his vests is calculated as the square of the “vests spent”. For example, if Alice votes for a post with 3 vests, the added weight is 3 * 3 = 9 votes, but when Bob votes with 100 vests, the weight of his votes is 100 * 100 = 10 000 votes. This makes users with big balances much more powerful than users with small vest balances. That, in turn, allows “whales” with a good reputation and many publications to make more influential decisions about content quality.
There are much more interesting mechanisms for those who plan to build decentralized systems that incentivize user-driven creation and moderation of content. 
But let’s go back to our story.

Cyberway launch 

Despite Golos being a fork of Steem, these blockchains continued to develop individually. After a time, a team of Golos developers made several hardforks, and blockchain code became more rapid and optimized. 
In the spring of 2018, it became evident that Golos engine was not able to solve incoming challenges, it was necessary to migrate to a new platform. Several possible scenarios were compared. The first one was to improve the existing code and shift towards the multi-community. Smart Media Tokens invented by Steem were chosen as a new feature. The idea implied deployment of multi-community vestings and tokens with reward cycles in each community. 
The second decision was to render Golos into a new type of smart contract application on EOS. Why was EOS chosen? Here are some essential properties for such systems, proving the right choice of the team.
Speed
Simple numbers like 3 000 tps don’t give a lot of information about the real blockchain speed (if you disagree, please read this). This is especially true of systems with user-supplied smart-contracts like EOS or Ethereum, that have a lot of different transaction types and serious security restrictions. 
There are a few blockchains faster than EOS and its forks, that is proved by REAL production systems working with real data and cryptocurrency balances of users. Some  corporate blockchain projects speak about high speed and show impressive performance numbers, mostly in articles and press-releases. In fact, a few developers can check these numbers, while in EOS and Cyberway you can see every block and transaction in public access. 
Also, performance of corporate blockchains cannot be compared to EOS, Ethereum or Cyberway as the majority of them skip the system of transaction resource restrictions, simply trading security for speed. On-chain code provided by validators (instead of the user one) also reduces security requirements and allows to make things faster. Some projects show the TPS numbers based on local tests performed by inhouse teams or simple token transfers without smart contract functionality. 
As a researcher, I must say that there is no “magic wand” for a high blockchain speed. For now, EOS is one of fastest blockchain engines with highly optimized in-memory storage and security guarantees for user-supplied smart contract systems. In addition, EOS is already the third generation of successful blockchain projects (Bitshares, Steemit), and the team has a huge experience in decentralized system development.
Consensus
Among many consensus algorithms, DPoS (Delegated Proof-of-Stake) was the first successful algorithm in production, responsible for user money. 
After many changes its design became a standard, and now almost all other implementations use similar algorithms. The set of validators is chosen via voting using token balances as votes, and the resulting set of validators (or witnesses) produce blocks one by one. The logic of voting and rewards for the blocks resides in system smart contracts allowing to design flexible governance and staking systems. Polkadot, TON and many other projects use similar schemes in their main chains. 
If you plan to implement a “proof-of-stake” type of consensus, there are not a lot of options. The most reliable and secure variant is DPoS consensus, similar to the one used in EOS and its forks. In addition, EOS algorithms of block production allow users to have a very fast response time from blockchain. It’s very important for content-based systems that mainly focus on user interaction. 
Smart contracts
Smart contracts in EOS allowed Golos to add any number of different applications, including Golos itself, without changing the code of blockchain nodes. The design of user-supplied smart-contracts in EOS allows any user to create his own application with Golos or other tokens. This flexibility enables many non-blockchain projects to migrate to the Cyberway blockchain without serious UI changes. After migration, the platform allows to develop different blockchain applications, financial and gaming projects powered by “off-chain” data: posts, comments, and images.

Migration

The idea of migration to EOS was considered for voting. Direct migration to EOS smart contracts without changing EOS source code was impossible due to a rather high price of EOS transactions. Developers decided to update EOS platform code before migration: bandwidth and storage systems, system contracts, and block time were changed due to required higher latency of applications. Witnesses (GOLOS validators) voted for development, and within 6 months a prototype of the EOS fork with Golos application was finished (January 2019). 
The decision to move everything to the new codebase was taken in the GOLOS blockchain. In April 2019, voting with GOLOS tokens was launched for all token holders, including witnesses (see more here). The migration was approved, and the team continued to modify EOS adding important changes in resource economics and user onboarding without tokens. This feature is extremely important for attracting new users with no experience and blockchain knowledge, and a challenge because there are no “free” actions in blockchains, otherwise security will be violated. GOLOS ended up having its own economic cycle, independent from validation, staking and witness activity.
In August 2019, the last GOLOS nodes disabled a data receipt function, and a snapshot of the Golos chain was created. User account list, keys, votes, balances, posts rewarded, posts processed, user votes for witnesses and other information required for migration was uploaded in the snapshot. 
First 7 witnesses voted for the migration start by producing blocks in Cyberway. A new Cyberway Genesis block was created from the Golos snapshot through rendering the hash sum of the last Golos irreversible block (LIB) into the Cyberway Genesis block. In other words, 7 separate and independent nodes created the same genesis block of a new blockchain. Any single byte of difference could lead to errors and  a complete blockchain initiation failure. 
At the end of August 2019, first nodes of Cyberway started producing blocks. User interface was maintained the same - that simplified user adaptation. First rewards in Cyberway were distributed for posts made in Golos, and emission of CYBER and GOLOS  tokens began.  
This hard fork-based migration did not terminate the existence of Golos, it turned it into a Golos-classic fork with its own history. 

Project progress 

Cyberway was not built only for Golos migration: its current architecture allows to launch many different applications. Оne of them is Commun.com - a social network with internal economics, separate tokens for communities, and many interesting features (here is their whitepaper). Thanks to the Cyberway platform, you can begin to explore it right now without any need to buy tokens - just create or rate interesting posts. Another application that successfully migrated to the Cyberway is Stihi.io  - the Russian poetry and literature portal. All these projects offer content creators and users new ways to interact and more freedom and independence from individual decisions.  
Today, Cyberway is a very promising platform for any content-driven projects, allowing to create complicated economics for content: moderation, ranking, expert communities, and professional social networks. Any Cyberway user can create or moderate interesting content, transforming it to real value, or launch his own  smart contract-based system with an internal economic model using well-documented and secure code. Also, Cyberway can be used in computer games to maintain account management and create cryptocurrency and game item exchanges.
In my opinion, such systems are the next generation of content and gaming projects, and all we see now are only the first steps to full-scale decentralized systems. 

Written by boogerwooger | Software Researcher
Published by HackerNoon on 2020/04/22