Described in a whitepaper from 2017, EOS is a project that has quickly become one of the biggest in the cryptocurrency space. In January of 2018, the project had a capitalization of close to USD$10 billion and was constantly in the top 10 of digital currencies together with Bitcoin, Ethereum, Ripple and Monero and other established decentralized networks. You can see a list of the biggest cryptocurrencies by market capitalization as you are reading this article here: https://www.coingecko.com/en?sort_by=market_cap
Block.one, a company based in the Cayman Islands, started offering EOS tokens using the Ethereum platform in June of 2017 and has quickly collected over $700 million. As of January of 2018, EOS token has been trading on a number of popular exchanges, including Kraken, Bitfinex, Binance, and Hitbtc. This article will introduce you to the idea behind the EOS project.
Advantages and challenges of the blockchain technology
Launched by Satoshi Nakamoto in 2009, Bitcoin has become the biggest digital currency by market capitalization because it brought to the market a set of unique advantages that utilize blockchain technology.
These advantages include decentralization, transparency and enabling individuals and organizations conduct peer-to-peer transactions without having to use a third party.
The technology behind Bitcoin and most digital currencies available on the market today is called blockchain. The blockchain is a distributed transparent public ledger. Blocks of the blockchain are similar to pages in the ledger. Every new block of the blockchain contains a code, called a hash, to the previous page of the ledger. All transactions that occur on a blockchain network become a part of the blockchain. Since all the blocks are connected via hashes, it becomes impossible to tamper with individual blocks or the blockchain as a whole. A node on a blockchain network is a computer that has a full copy of the blockchain. As of the writing of this article, the Bitcoin blockchain has over 10,000 nodes. You can see a list and a map of nodes that are active on the network as you are reading this article by visiting https://bitnodes.earn.com/.
After the launch of the Bitcoin network, many people have started to recognize the advantages of the blockchain technology and realized that the technology could have applications in many various fields and not just in the financial realm. Examples of projects that use blockchain include encrypted messaging network Bitmessage, a decentralized exchange Bitshares, social media network Steemit and others.
However, the creation of a blockchain-based product from scratch comes with a number of challenges. It is difficult to create code for blockchain applications even though Bitcoin, Ethereum, and many other blockchain-based projects have made their code open-source. On that of that, traditional consensus mechanisms such as proof-of-work and proof-of-stake require large networks to function effectively and efficiently. A large network is not something that any startup business can create quickly, even when the business and its clients can really benefit from all the advantages that blockchain technology brings to the table.
In order to solve this problem, Vitalik Buterin has proposed in 2013 and later crowdfunded and built Ethereum, an open-source blockchain-based platform that allows developers to create and run decentralized blockchain-based applications or dapps. You may think about Bitcoin as an application of the blockchain technology to the creation of a currency. Ethereum allows to create similar applications but in a variety of fields.
The main idea that Ethereum uses to accomplish that is called a smart contract. A smart contract can use a blockchain network to define all the rules, obligations of parties, penalties, and outcomes of an agreement just like a regular contract would do. Then, the contract uses the platform to become independent from that parties that created the contract. The contract can also automatically enforce the rules and pay out the funds. As of January of 2018, Ethereum is the largest platform that enables developers to create their own applications by using Ethereum’s smart contract functionality.
Vitalik Buterin has created the Ethereum network as a neutral platform for all kinds of applications. The creators of Ethereum didn’t include any features for interface development, role-based permissions or any other functionality. In a way, the Ethereum platform has no features meaning that if a project wants to create and implement certain features, it will have to use Ethereum to build these features from scratch. Ethereum does allow for it, but it doesn’t provide any such features by design. This is the main difference between Ethereum and EOS.
The developers of EOS want to create an elaborate platform that would allow for both vertical and horizontal growth of decentralized applications. They recognize that many different decentralized applications need and want to use the same features. This is why the EOS software aims to provide developers with such tools as databases, user roles and authentication functionality, scheduling of applications across multiple devices, user accounts and more.
No transaction fees and ability to fix issues without network disruptions
Some of the biggest advantages of the EOS network are going to be free transactions and the ability to freeze and fix issues when they arise without updating the entire network. This article will explain how these features currently work on the Ethereum network and give an overview of how they will work on EOS.
Zero cost to run code on EOS vs paying with gas to run transactions on Ethereum
The Ethereum network uses the Ethereum Virtual Machine (EVM) to execute smart contracts and run decentralized applications. The EVM is an environment for code execution. Every node on the Ethereum network functions within the EVM. All transactions that Ethereum users run on the network, including sending funds, require the network to perform some amount of operations. The Ethereum network charges users for running these operations. The units of charge for running operations on the Ethereum network are measured in Gas. This concept is very similar to the concept of measuring electricity in Kilowatts and using different amounts of electricity to run various devices that you use in your home.
1 Gas on the Ethereum network can execute a command or one line of code. The more complex the set of operations or the smart contract that you want to execute, the more gas you will need. If you don’t have enough funds in your account to complete a transaction and pay the amount required to complete it in Gas, the transaction will not go through.
Just like on the Bitcoin network miners are free to choose the transactions that include into the blocks of the Bitcoin blockchain that they create, miners on the Ethereum network can choose which transactions they run. The obvious disadvantage of this system is that the price of gas can fluctuate and, therefore, the price of running a contract on the Ethereum network can vary significantly.
The creators of the EOS network want to solve this issue by eliminating the transaction fees on the network altogether. They plan on doing so by replacing the proof-of-work/proof-of-stake algorithm that the Ethereum network uses by an algorithm called delegated proof of stake. In delegated proof of stake, members of the network are entitled to its resources proportionately to the stake that they hold in the network. This means that, for example, if you own 1% of the network, you are entitled to 1% of the network storage, bandwidth, and other resources. Because of this, EOS will be a great choice for developers that want to create blockchain-based decentralized freemium applications. Using freemium business model, developers on the EOS network can make certain features of their applications free to users and then charge users for other features, which would allow the developers to pay for the amount of stake they’d need to maintain in order to run their applications on the EOS network.
One of the biggest issues with the proof-of-work algorithm that the Ethereum network used since its inception was the difficulty of fixing broken applications and flawed smart contracts.
Some people think that smart contracts are foolproof by definition, which is not true. The biggest benefit of running a smart contract on the Ethereum network is that the network will execute the contract even if some variables change. An example of such a change is a party in a contract deciding that it doesn’t want to proceed with the contract. On the Ethereum network, this wouldn’t matter and the network will still execute the contract. The network is foolproof in terms of executing the contract but not in terms of creating perfect contracts. If there is a flaw in the contract, the network will not fix the flaw automatically.
This is what happened with the project called “The DAO” (“The DAO”, which is a name of the project, should not be confused with a DAO, which is an abbreviation for the term “decentralized autonomous organization”). “The DAO” was a dao whose mission was to provide businesses and non-profits with a way to run organizations on a blockchain network in a decentralized, stateless way. “The DAO” ran a crowd sale in May of 2016, which at the time became the largest crowd sale in the history. One of the conditions of the crowd sale was that the owners of the project would not be able to access the funds for 28 days after the start of the project. In June of 2016, a hacker or a group of hackers found a vulnerability in the code of the project. Hackers were able to change the code in a way that would allow them to get access to one-third of “The DAO’s” funds, about 3.6 million Ether out of 11.5 million Ethers that the project has collected (at the time of the attack 3.6 million Ether were approximately equal to USD$50 million). However, because the contract had a 28-day holding period, it was possible to prevent hackers from getting the money. Because of this, the Ethereum network went through a hard fork in July of 2016. Developers changed the code of the network and hackers were not able to access the funds they diverted from “The DAO.”
A hard fork means that users had to update their software in order to keep using the network. The users who disagreed with the changes to the code could keep using unchanged software, which became known as Ethereum Classic.
It is interesting to note that at the time, the hackers of “The DAO” (or someone pretending to be one of the hackers) posted several messages in which they claimed that they haven’t done anything illegal or wrong. From their point of view, they simply found a vulnerability in the code and used the vulnerability to their advantage, which, according to them, was not a crime.
If “The DAO” with its flawed code were to run on EOS, the creators of “The DAO” could have frozen and fixed their project without disrupting the entire network.
Block creation and voting on the EOS network
On the EOS network, miners will be creating blocks at the speed of one block every three seconds. One member of the network will have the authorization to create a block of the EOS blockchain at any given moment in time. If the member doesn’t create a block in the allocated time frame, the network will skip the block and there will be a gap in the blockchain of six seconds or more. The EOS network will remove the member that was supposed to create the block from the list of members it considers as future block creators if the member did not produce any other blocks in the previous 24 hours. To get on the list again, the member will need to notify the network about the intention to start creating blocks again. This is done so that the network keeps the number of unreliable members small.
The EOS network will be creating blocks in rounds of 21. At the beginning of each round, the network will be choosing 21 block producers in a random way based on the stake of the producers in the network.
Under regular conditions, the EOS network won’t have any forks because its block producers will be cooperating and not compete during the creation of the blocks.
To freeze an account, the network will need 17 out of 21 active producer votes. Just like with Bitcoin and Ethereum, the producers have the power to choose transactions they include in the EOS blockchain. If producers abuse their rights, others can vote them out and unfreeze the frozen account. Not only will the EOS network have the functionality to freeze and unfreeze accounts, but its block producers will also be able to replace account code if the code runs in an unstoppable unpredictable manner. To do so, they will need to get 17 out of 21 votes in the same way they will need to get the votes to freeze an account.
Scalability and token distribution
Scalability has become one of the main issues that cryptocurrencies such as Bitcoin need and blockchain networks such as Ethereum need to solve in order to gain mass adoption and keep growing.
The issue with Bitcoin is that Satoshi Nakamoto has programmed the Bitcoin network to create a block of Bitcoin blockchain every ten minutes. A block of the Bitcoin blockchain is 1 megabyte in size. In practical terms, the limitations of ten minutes and 1 megabyte mean that the Bitcoin network can process between 3 and 7 transactions per second versus over 20,000 transactions that a conventional fiat currency network such as Visa can process.
The creators of the Bitcoin Lightning Network argue that in order to grow, the Bitcoin network will need to start processing transactions of the main blockchain. The reasoning for it is very simple: if one blockchain were to include all the world’s transactions in one ledger, the size of the ledger would prevent the network from staying decentralized and would have requirements for storage and computational power that only a small number of members of the network would be able to meet. Those who oppose the introduction of the Lightning Network say that the network acts as a third party and the existence of the network contradicts the original idea behind Bitcoin being a “peer-to-peer electronic cash system,” the phrase in quotes literally being the title of the original whitepaper by Satoshi Nakamoto in which he introduced Bitcoin and technology behind it. Developers of Bitcoin Cash tried to solve the scalability issue by increasing the size of the block of the blockchain, yet events that followed have shown that a simple block size increase will not solve the issue. One of such events was SatoshiDice, a blockchain-based betting game, switching to Bitcoin Cash. Soon after the switch, SatoshiDice started accounting for about 5-6% of the block space of the Bitcoin Cash blockchain. This means that if Bitcoin Cash were to keep becoming more popular, with only twenty more games it would start facing the block size issue again. If it were to keep increasing the size of the blocks, the blockchain would grow too big in size for regular home computers to be able to act as Bitcoin Cash nodes, which would lead to centralization of power on the network.
The same issues exist on the Ethereum network, too. As of the beginning of 2018, the Ethereum network can process up to 13 transactions per second, which is a limit imposed by the performance of single thread of a Central Processing Unit (CPU) of one computer. This capacity cuts in about in half for Ether tokens because roughly 50% of this computing power goes to processing Gas, which is Ether’s currency that pays to run code and transactions on the Ether network.
In the past, both the Ethereum and the Bitcoin Network have been overloaded and have at times rejected all but the transactions with the highest fees. For example, on December 22, 2017, the average transaction fee on the Bitcoin network was USD$55.16. This means that if you wanted to send your friend an equivalent of USD$3 in bitcoins for a cup of coffee, you would need to include a fee of USD$55 for your equivalent of USD$3 to be included on the Bitcoin blockchain.
The creators of EOS network plan to solve the scalability issue by using asynchronous communication and parallel processing of information.
The goal of the EOS network is to allow two members of the network communicate with each other without having to wait for three seconds for the EOS network blockchain to create a block. The EOS network will accomplish this goal by dividing blocks of the blockchain into cycles. Each cycle will have multiple threads. Each thread will consist of a list of transactions and each list of transactions will include messages that need to be delivered. This structure is similar to a tree structure that can process information in a parallel and in a sequential manner at the same time.
A cycle or a block of the EOS blockchain will have access to transactions from the previous blocks and cycles.
The developers of the EOS network stress the importance of the fact that next-generation blockchain networks will have to be modular, meaning that not everyone on the network has to run everything in the way things occur on the Bitcoin network.
EOS token distribution
Block.one, the developer of the EOS.IO Software, launched the distribution of one billion of EOS Tokens on June 26, 2017. The company created a schedule, according to which it distributed 200 million tokens between June 26 and July 1 of 2017. Another 70% of the tokens, or 700 million EOS tokens, were given out in 350 consecutive periods each consisting of 23 hours and containing 2 million tokens. Finally, the founders of the project will receive 100 million tokens that were reserved for the company block.one. The founders chose to reserve the tokens for the company based on the feedback from the cryptocurrency community to ensure that the interests of the founders, of the block.one project and the future EOS network are aligned. The smart contract that governs the distribution of the tokens does allow the founders or block.one to transfer, trade or exchange their tokens. Once block.one launches the EOS network, a smart contract would release 10% of the tokens one year after the launch and will keep releasing 10% annually over a period of 10 years until it releases the entire amount of tokens released for the founders.