What is ERC-20? - Top ICO Platforms Overview

Most are aware that initial coin offerings (ICOs) raise funds through different token platforms.

Here we will go through the top existing platforms, what they are and how they work.

What is ERC-20?

Most ICOs use the ethereum network as a platform, to be more specific its smart contracts. When conducting fundraising campaigns ICO founders usually accept ethereum or bitcoin in exchange for their tokens. Most often these tokens are ERC-20 standard.

ERC means Ethereum Request for Comment and 20 is a number assigned to the proposal. The native currency of ethereum blockchain is ethereum but ERC-20 tokens also act as coins on ethereum network. Blockchain processes operations and smart contracts run on the virtual machine of ethereum. The official ethereum website describes the ICO mechanism on its platform as follows: buyer pays to a smart contract (in other words, a robot). The robot redirects the smart contract to its owner. Then the robot passes the tokens to the token buyer.

Flashback:

In 1994 Nick Szabo realized that with the help of a decentralized registry it’s possible to make "smart contracts" that can be written in code, stored and duplicated in the system, and their implementation will be provided by a network of computers.

Why is ERC-20 so popular among ICO?

Before the appearance of ERC-20 standard there were many problems with compatibility of various tokens based on ethereum. Each token had its own type of smart contracts, to allow it to work with a new token on exchanges and wallets, everyone had to write individual code. That took a very long time. As a result a unified protocol for all tokens, known as ERC-20 was developed.

Github.com

ERC-20 token standard has six mandatory parameters for each smart contract and three additional ones. Six mandatory parameters determine the number and facilitate the transfer of tokens.

The first two are used to set the source distribution: the totalSupply function which determines the total number of tokens. After reaching the maximum amount, the smart contract stops producing them. The function balance0f assigns a primary number of tokens to any address.

To transfer tokens from one user to another, two transfer methods are used. The Transfer function translates tokens from the primary address of individual user, who bought tokens during ICO. The TransferFrom function is used to transfer tokens from one user to another.

Two more functions are needed to test the previous two: the approve function checks if the smart contract managed to save tokens. The allowance function ensures that there is enough tokens in a certain address to forward then onto another address.

These six steps allowed the developers of wallets and exchanges to create a unified code base which can interact with any smart contract of the ERC-20 standard.

Here is the code of a common smart contract of ethereum platform.

Github.com

The emergence of ERC-20 standard increased the growth of ICOs by unifying functions that simplify the development of tokens.

Other Ethereum Standards

But time has proved that ERC-20 standard isn’t the most secure and has a number of errors when it comes to smart contracts: a smart contract that doesn’t support ERC-20 token doesn’t reject the transaction and doesn’t return funds, but freezes them and as a result tokens are just gone.

These errors of ERC-20 token led to the emergence of other standards based on ethereum.

ERC-223

Github.com

This standard was created to correct the vulnerability of the initial variation of ethereum protocol. If during the transfer an error occurs, then this transaction is simply canceled without the loss of funds. For this purpose were created a new transfer function and tokenFallBack algorithm, which allows to determine the type of transferred money.

ERC-721

Github.com

ERC-721 or non-fungible standard was created to ensure that each token is original and not interchangeable. This standard was invented by the creators of CryptoKitties game. Each token should contain its unique characteristics.

ERC-827

Github.com

ERC-827 is one of the last variations of ethereum protocol. Some even call it a competitor for ERC-20 standard. Its feature is the ability to transfer not only the sum, but also information about the transfer. The presence of this function makes it possible to transfer data all over the world within a few seconds. Also ERC-827 standard allows to confirm the transfer to an independent person without using private key.

At the end of July 2018, news appeared that developers Jordi Baylina, Jacques Dafflon, and Thomas Shababi are working on a new ethereum standard - ERC-777 which can potentially replace ERC-20.

The creators present ERC-777 standard as a more flexible alternative to ERC-20 and claim that it will allow for faster and more efficient transactions. ERC-777 will support backward compatibility with ERC-20.

Github.com

ERC-777 is said to implement the "send" function which would allow direct transactions and exchange through smart contracts. Using the "send" function ERC-777 token refers to a universal trusted contract that doesn’t have an owner-ERC-820 which is essentially a register that informs the token whether the contract its accessing is compatible. If the contract isn’t compatible or registered, the transaction will be rejected.

Another possible advantage of ERC-777 is using hooks. Hooks are functions that can be caused during a transfer. In other words, hook outline the parameters of the transaction.

How hooks work also depends on ERC-820 contract. If a smart contract is written in such way as to reject receiving tokens with a particular function, it will refer to ERC-820 contract to с check if the named function is present in the token being passed to it. If the transferred token is not included into the ERC-820 contract, the transaction will be rejected. In this case the sender will have to transfer his token using ERC-20 standard. Thus ERC-777 will likely supports all the functionality of ERC-20. Backward compatibility allows developers to move to a new standard with a relatively low level of risk.

Any other platforms?

Waves

Waves is the first platform created for ICOs. It offers various tools for simple token creation which does not require any technical knowledge. Waves was aware of ethereum’s problems with scalability that prevented it offering users support for large amounts of transactions.

Waves also has its own decentralized exchange (DEX). Any created token can almost instantly be traded or exchanged for fiat and other tokens.

NEO

NEO platform offers its own protocol - NEP (NEO Enhancement Protocol) and NEP-5, an app that allows NEO to support tokens in the same way that ethereum does. In fact ERC-20 and ERC-223 standards were the main models on which NEP-5 protocol was based.

NEP-5 features:

NEO supports 1000 transactions per second. There are no transaction fees;

NEO supports several programming languages instead of ethereum that uses its own Solidity language;

NEO claims that its platform is already resistant to quantum computers that can decrypt private account keys;

Consensus model of NEO - dBFT model - prevents forks.

Stellar Lumens

Stellar platform is a high liquidity model. Like Waves, Stellar has its own decentralized exchange (SDEX) which allows token trading from the first day of their launch. SDEX has instant search for the lowest prices, low commission and grants the end user with control over the token keys.

Also Stellar platform is reliably protected from hacking. It combines high speed of transactions which virtually eliminates any scalability problems.

Self-made blockchain

This option assumes a serious technical knowledge and deep understanding of blockchain technology. The development team will have to work a lot but will have an opportunity to learn from other people's mistakes. At the same time this option gives more flexibility. For those who are going to do something that is very different in the market, this is the best way.