What is the abbreviation ERC-20
Recently, one of the most common methods of raising funds for launching and developing projects in the cryptocurrency industry has become the so-called initial coin offering (ICO). Most ICOs use the Ethereum network as a platform, or, more precisely, the smart contracts of this network. When conducting fundraising campaigns, ICO organizers usually accept ETH or BTC as payment, charging investors tokens in return. Most often these are tokens of the ERC-20 standard.
ERC (Ethereum Request for Comments) is the official protocol for making suggestions for improving the Ethereum network; 20 – unique identification number of the offer. Technical specifications for tokens issued on the Ethereum blockchain were published in 2015. Tokens that meet these specifications are known as ERC-20 tokens and are actually smart contracts on the Ethereum blockchain. Despite the fact that ERC-20 tokens operate within the framework set by the Ethereum team, this framework is quite wide, providing developers with great flexibility in creating them.
The ERC-20 standard defines a set of rules that must be followed in order for the token to be accepted and able to interact with other tokens in the network. Tokens themselves are blockchain assets that can have value, and can also be sent and received like any other cryptocurrency.
What caused the need to create an ERC-20 standard
Before the advent of the ERC-20 standard, there were many compatibility problems between various forms of Ethereum tokens, each of which had an absolutely unique smart contract. In other words, in order for the exchange or wallet to support the token, its creators each time needed to write a completely new code. Thus, supporting a growing number of tokens has become increasingly problematic, taking up too much time. To solve this problem, a standard protocol was created for all tokens.
How are ERC-20 tokens different from traditional cryptocurrencies
The difference between ERC-20 tokens and other well-known cryptocurrencies, for example, Bitcoin or Litecoin, is that they are tied to the Ethereum network, use the address format accepted within this network and are sent using Ethereum transactions. Accordingly, transactions involving ERC-20 tokens can be tracked in the block explorer.
At first glance, such a transaction may look empty, since zero is indicated in the ‘Value’ field, but the number of sent tokens (in this case, OmiseGo) can be seen in a separate field.
It is important to understand that ERC-20 tokens are not completely independent – as mentioned above, they are based on the Ethereum blockchain, on the distributed computing capabilities of which they rely in their work.
What are ERC-20 tokens for
The scenarios for using ERC-20 tokens are very diverse. For example, they can act as project shares, certificates confirming ownership of assets, points in loyalty programs, or as cryptocurrency. There are also options in which ERC-20 tokens simultaneously perform several such roles.
Among the most famous ERC-20 tokens are: 0x, Aragon, Augur, Aeternity, Aion, Binance Coin, BAT, Bancor, Civic, Decentraland, Dentacoin, DigixDAO, Dragon, District0x, EOS, FirstBlood, Gnosis, Golem, Iconomi, Kin , KuCoin, Kyber, Melonport, Matchpool, Numeraire, OmiseGo, Po.et, Raiden, RChain, Ripio, SingularDTV, Status, Storj, TAAS, TenX, TTron, VeChain, Veritaseum, Viberate, WeTrust, Wings and iExec RLC.
What are the main features of the ERC-20 protocol
The ERC-20 standard provides six mandatory and three optional (but recommended) parameters for any smart contract.
Mandatory parameters include the totalSupply function, which is responsible for the total issue of tokens, making it impossible to create new tokens when the maximum number is reached.
The balance0f function determines the initial number of tokens assigned to a specific address. Usually, this is the address that belongs to the organizers of the ICO.
The standard also describes two methods of moving tokens, necessary for their distribution among users and the possibility of transactions. So, the transfer function provides the transfer of tokens to the user who invested in the project during the ICO; Function
TransferFrom is necessary for transactions between users.
In addition, two more functions are needed to verify the two previous methods of moving tokens. The approve function serves to verify that the smart contract, based on the general issue, can distribute tokens, while the allowance function is necessary to verify that there is sufficient balance on the address to send tokens to another address.
Among the optional parameters is the determination of the maximum number of fractional digits after the decimal point (for comparison, bitcoin has eight such digits – 1.00000000 BTC), the name of the token and its symbol.
A set of these parameters allows exchanges and wallet providers to create a single code base that interacts with any ERC-20 smart contract.
Are there any risks when using ERC-20 tokens
Since ERC-20 tokens are actually smart contracts, they, despite all their effectiveness, have certain risks. For example, a smart contract cannot be changed after it was initiated by the organizers of the ICO, it may also contain bugs and vulnerabilities that could lead to loss of funds.
The history of Ethereum knows many such incidents – one of the most famous examples was the hacking of The DAO in 2016. To eliminate its consequences and return the funds to the network, a hard fork was conducted, as a result of which the new chain continued to exist under the name Ethereum, and opponents of such a decision retained the old chain, announcing the creation of Ethereum Classic.
What other problems can occur with ERC-20 tokens
It should be noted that the ERC-20 protocol is not always sufficient for the goals that are pursued when creating tokens, and in itself does not guarantee that the token will be useful, valuable or functional.
In addition, one of the drawbacks of the ERC-20 standard can be considered that it makes the ability to create tokens a rather trivial thing at the technical level. This allows many projects to simply launch an ICO, which is confirmed by the total number of tokens – as of May 1, 2018, there were already about 80 thousand of them. This leads to an abundance of tokens similar to each other, significantly complicating the process of their choice by investors.
Another problem is that tokens can be mistakenly sent to the smart contract of another ICO. In this case, if the smart contract does not provide such an opportunity, tokens will be lost. As of the end of 2017, more than $ 3 million was lost in this way! The ERC-223 proposal, which describes a situation in which a transaction incompatible with the ERC-20 standard, is rejected, is designed to solve this problem. You can also expect that the ERC-20 protocol itself will undergo certain changes in the future.