1. What are ERC-20 tokens?
Recently, one of the most common methods of raising funds to launch and develop projects in the cryptocurrency industry has been so-called initial coin offerings (ICOs). Most ICOs use the Ethereum network, or more specifically, its smart contracts, as a platform. In fundraising campaigns, ICO organizers typically accept ETH or BTC as payment, charging investors with tokens in return. Most often, these are ERC-20 tokens.
2. What does the abbreviation ERC-20 mean?
ERC (Ethereum Request for Comments) is the official protocol for proposing improvements to the Ethereum network; 20 is a unique proposal identification number. The technical specifications for tokens issued on the Ethereum blockchain were published in 2015. Tokens that meet these specifications are known as ERC-20 standard tokens and are effectively smart contracts on the Ethereum blockchain. Although ERC-20 tokens function within the framework established by the Ethereum team, this framework is quite broad, providing developers with more flexibility when creating them.
The ERC-20 standard defines a set of rules that must be met in order for a token to be accepted and able to interact with other tokens in the network. The tokens themselves are blockchain assets that can have value and can be sent and received like any other cryptocurrency.
3. What prompted the need for the ERC-20 standard?
Before the ERC-20 standard, there were many compatibility issues between different forms of Ethereum tokens, each with a completely unique smart contract. In other words, in order for an exchange or wallet to support a token, its creators had to write completely new code each time. Thus, supporting a growing number of tokens was becoming increasingly problematic, taking too much time. To solve this problem, a standard protocol for all tokens was created.
4. How are ERC-20 tokens different from traditional cryptocurrencies?
The difference between ERC-20 tokens and other well-known cryptocurrencies, such as bitcoin or Litecoin, is that they are tied to the Ethereum network, use the address format accepted within that network and are sent using Ethereum transactions. Accordingly, transactions involving ERC-20 tokens can be tracked in the block browser.
At first glance, such a transaction may look empty because the ‘Value’ field contains zero, but the number of tokens sent (OmiseGo in this case) 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 whose distributed computing power they rely for their operation.
5. What are ERC-20 tokens for?
Scenarios for the use of ERC-20 tokens are varied. For example, they can act as project shares, certificates confirming ownership of assets, points in loyalty programs or as cryptocurrency. It is also possible for ERC-20 tokens to simultaneously perform several such roles.
Some of the best known ERC-20 tokens include 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.
6. What are the main characteristics of the ERC-20 protocol?
The ERC-20 standard provides six mandatory and three optional (but recommended) parameters for any smart contract.
The mandatory parameters include the totalSupply function, which is responsible for total token issuance, ensuring that no new tokens can be created once the maximum number is reached.
The balance0f function defines the initial number of tokens assigned to a certain address. Usually, this is the address belonging to the ICO organizers.
Also, the standard describes two methods of moving tokens, which are necessary to distribute them among users and enable transactions. So, the transfer function ensures the transfer of tokens to the user who invested in the project during the ICO; the
transferFrom function is needed to make transactions between users.
In addition, two more functions are needed to verify the previous two methods of moving tokens. The function of the ICO is used to verify that a smart contract, based on the total issue, can distribute tokens, while the function of the ICO is needed to verify that there is enough balance at the address to send tokens to another address.
Optional parameters include defining the maximum number of fractional digits after the decimal point (for comparison, bitcoin has eight such digits – 1.00000000 BTC), token name 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.
7. Are there risks in using ERC-20 tokens?
Because ERC-20 tokens are effectively smart contracts, they do have some risks, despite all their effectiveness. For example, a smart contract cannot be changed after it has been initiated by the ICO organizers, and it can also contain bugs and vulnerabilities that can lead to the loss of funds.
The history of Ethereum knows many such incidents – one of the most famous examples was the hack of The DAO in 2016. In order to eliminate its consequences and return funds to the network, a hardfork was conducted, as a result of which the new chain continued to exist under the name Ethereum, while the opponents of this decision kept the old chain, announcing the creation of Ethereum Classic.
8. What other problems can arise with ERC-20 tokens?
It should be noted that the ERC-20 protocol does not always prove to be sufficient for the purpose of creating tokens, and does not in itself guarantee that the token will be useful, valuable, or functional.
In addition, one of the disadvantages of the ERC-20 standard can be considered that it makes the ability to create tokens a fairly trivial affair on a technical level. This allows many projects to launch ICOs quite easily, as evidenced by the aggregate number of tokens – as of May 1, 2018, there were already about 80 thousand of them. This leads to an abundance of similar tokens, making it much more difficult for investors to select them.
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 for such a possibility, the tokens will be lost. As of the end of 2017, more than $3 million had been lost in this way! The ERC-223 proposal, describing the situation in which a transaction that is not compatible with the ERC-20 standard is rejected, is intended to solve this problem. We can also expect that the ERC-20 protocol itself will undergo certain changes in the future.