With the increasing number of blockchain based technologies coming every day, there are few things that make EOS stand out. The EOS venture eagerly intends to assemble a decentralized system equipped for handling almost unlimited number of transactions every second. Such a system could ensure mass adoption of blockchain technology around the world. But let us first discuss what EOS is, and what is so special about it that the whole blockchain community (that might be a little exaggeration) is going crazy about it.

Peculiarities of EOS:

Mining was completely removed and replaced with verification of blocks.

Verification is not reward based but it is based on compensation.

BFT is used for tolerating any possible fault in the system.

It uses timestamp- if a transaction is not verified in the given time then it is dropped. BFT removes the case of creation of false forks due to multiple miners verifying the same block.

aBFT works parallel with BFT to ensure that every transaction becomes 100% irreversible in just 1 second.

EOS enables blocks to be produced in exactly every 0.5 seconds.

It allows every account to attain a unique human-readable name which can be of up to 12 characters.

The block producers schedule transactions in such a way that there is no conflict over memory access to scopes and therefore they can be executed in parallel.

• Multi-user control enhances security and it can greatly reduce the risk of theft due to hacking.

• 21 unique block producers are chosen on the basis of the number of votes casted by token holders.

EOS is a framework of blockchain that targets the major issues that other blockchains face such as block size, transaction speed and consensus mechanisms. One major change in the framework is the use of the general-purpose programming language, C++. The EOS blockchain will basically work like any operating system framework, for example, Windows or Android, and individuals would then be able to create their DApps similarly.

Developers of EOS use C++ to build the smart contracts but the question is why do that when we have solidity for that purpose?

Why use C++?

The first thing that comes to mind is the control it offers to programmer over how to manage the resources as C++ is a low-level language. This makes it hard to learn despite of being one of the most powerful languages.

If we compare C++ with other high-level languages such as Javascript, it has a lot of features that they lack. • It is statically typed language meaning that it does verification process at compile time rather than at run-time.

• One more important thing in C++ is the use of Macro which is a pre-processor directive used to define a constant. What pre-processor does is to communicate the block of code to the compiler before entering into main () block. A macro is defined with the pre-processor directive, #define. The advantage of using macro is that it increases the speed of the program fragment.

• Explicit call-by-reference, call-by-value. • Use of templates using generic programming.

• For a C++ program, the memory of a computer is like a succession of memory cells, each one byte in size, and each with a unique address. These single-byte memory cells are ordered in a way that allows data representations larger than one byte to occupy memory cells that have consecutive addresses.

Consensus Algorithm

EOS is the first blockchain to implement Delegated Proof of Stake (DPoS) algorithm. The primary difference between DPoS and other mining algorithms is that there are a foreordained number of miners which, in the case of EOS, are denoted as Delegates. EOS has 21 delegates who are responsible for ensuring the security of the network. Every node in the system that holds some tokens has the right to vote for choosing the delegates.

DPoS is considered permission less consensus algorithm because, in this network, anybody can become a delegate by attaining the required number of votes. Once the voting is completed, those who rank within the first 21 most voted people are selected as the delegates while others are kept on the waiting list.

There is no competition between the delegates as the mining algorithm randomly selects block producers proportionally to their voting stake. The major purpose of DPoS is to enhance scalability but there is a lot of discussion on it, for somehow it is centralizing the blockchain. This discussion has both its values and criticism.

Transaction fees:

EOS doesn’t charge anyone for using their system i.e. for transactions. In the white paper, they state “users should not have to pay in order to use the platform or benefit from its services”. The only thing one needs is few tokens in his/her account as to cover the required bandwidth for the transaction. For example, if you are just moving around EOS tokens, it is free. On the other hand, if you have an application that has a large number of users, you might have to buy or lease a huge amount of tokens.

Accounts:

EOS uses a human-readable name that can be up to 12 characters. EOS has an in-build account system as compared to other blockchain projects. With this system, they introduced permission levels as to give selective access to the users based on their keys just like Steemit. This takes security to whole another level.

Virtual Machine:

EOS has a virtual machine for the deployment of smart contract and it claims to support many VM versions including the Ethereum EVM. There will be two types of EVM

• Web Assembly VM — it could enable smart contract development in C/C++.

• The Ethereum EVM — EOS could modify and implement the Ethereum Virtual Machine.

Storage:

Delegates are not limited to block production only; they are also responsible for providing decentralized network storage. The storage capacity will be allocated based on the amount of token holding. The greater the number of tokens, the greater the allocated space. The storage provided might also influence the voting process. It will be based on IPFS offering peer-to-peer file discovery. All the files on IPFS are referred back to their hashes. If a file gets changed then the new hash won’t be discoverable by the network.

Conclusion

EOS provides a scalable solution for all the problems modern blockchain technologies are facing and is simply putting its efforts to generate a decentralized blockchain on which clients can make smart contracts and decentralized applications (DApps) while handling a huge number of transactions in a productively quick pace and without exchange or transaction costs.

Criticism

As claimed by Block One (developers of EOS), no blockchain can beat EOS. They have implemented the best technologies of all times. They are implementing the latest algorithm, enhancing the size of blocks, reducing transaction fees but are all their claims achievable?

EOS’s system has a lot of vulnerabilities that are not up to their claims!

• The main goal of any blockchain is the decentralization but EOS has reduced that considerably. Though the 21 nodes would be selected by voting but the power distribution is not balanced, mathematically or otherwise. The voting power lies with the token owners; let us suppose if 51 percent of the token holders are some big giant company comprising of wealthy people, all power lies with them. This makes the purpose of decentralization invalid.

• For the algorithm, DPoS might have the most efficient working and throughput but it trades-off productivity with decentralization.

• One of the most prominent issue that EOS faces are the huge number of unwanted guests- the Bugs! A lot of hackers have been reporting bugs from the system but still, they keep popping!

We hope EOS can overcome all the present and future criticisms that may arise. If it really happens to solve all the issues that exist in other blockchains then it will lead blockchain towards global acceptance.