Initial coin offering (ICO) is one of the most common methods of raising funds for launching and developing cryptocurrency projects. Most ICOs use the Ethereum network as a platform, or, more precisely, smart contracts of this network. During the fundraising campaigns, ICO organizers usually accept ETH or BTC as payment, charging to investors tokens the coins. Most often, these are tokens of the ERC-20 standard, a technical standard used for smart contracts on the Ethereum blockchain.
What does the abbreviation ERC-20 mean?
ERC (Ethereum Request for Comments) is an official protocol for making suggestions for improving the Ethereum network; 20 — is a unique identification number of the offer. Technical specifications for Ethereum-based tokens were published in 2015. Tokens meeting these specifications are known as ERC-20 tokens and in fact are smart contracts based on Ethereum blockchain. Despite the fact that the ERC-20 tokens function within the framework defined by the Ethereum developers, the breadth of this framework provides developers with greater flexibility when creating them.
The ERC-20 standard defines a set of rules that must be met for token acceptance and ability to interact with other tokens on the network. The tokens themselves are blockchain-assets, which can have value, and can be sent and received like any other crypto currency.
Why the ERC-20 Standard was developed?
Before the appearance of the ERC-20 standard, there were many compatibility problems between different forms of Ethereum-token, each had an absolutely unique smart contract. In other words, so that a stock exchange or a wallet supports a token, its creators each time needed to write a completely new code. Thus, supporting a growing number of tokens became increasingly problematic, taking too much time. To solve this problem, a standard protocol for all tokens was developed.
What are the differences between ERC20 tokens and traditional cryptocurrencies?
Unlike other crypto currencies, ERC-20 tokens are tied to the Ethereum network, use Ethereum's addresses format, and are sent via Ethereum transactions. Accordingly, ERC-20 token transactions can be traced in the block browser.
At first glance, such a transaction might look empty, since the 'Value' field is set to zero, but the number of tokens sent (in this case — OmiseGo) can be seen in a separate field.It is important to understand that the ERC-20 tokens are not completely independent — they rely on the distributed computing capabilities of the Ethereum blockchain.
Why do we need ERC20 tokens?
ERC-20 tokens can be used in a variety of situations. For example, they can act as project shares, certificates confirming ownership of assets, points in loyalty programs or as a crypto currency. Also, there are situations when ERC-20 tokens simultaneously play several roles.
The most famous ERC-20 tokens are the following: 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 characteristics of the ERC-20 protocol?
The ERC-20 standard specifies six required and three optional (recommended) parameters for any smart contract.
Required parameters include thetotalSupply function, which is responsible for general issue of tokens — it makes it impossible to issue new tokens when the maximum number is reached.
Thebalance0f function determines the initial number of tokens assigned to a specific address. Usually, the address belongs to the ICO organizers.
Also, the ERC-20 standard describes two methods of tokens displacement, that are necessary for their distribution among users and the possibility of making transactions.
The transfer function provides the transfer of tokens to the user who invested in the project during the ICO; the transferFrom function is necessary for making transactions between users.
In addition, two more functions are needed to verify the two previous methods of tokens displacement. The Approve function is used to verify that a smart contract can distribute tokens based on total emissions, while the Allowance function is necessary to verify that the address has sufficient balance to send tokens to another address.
Among the optional parameters are the definition of the maximum number of fractional digits after the decimal point (for comparison, bitcoin has eight digits - 1.00000000 BTC), the name of the token and its symbol.
The set of these parameters allows exchanges and wallet providers to create a single code base that interacts with any smart contract ERC-20.
What are the risks of using ERC-20 tokens?
Since ERC-20 tokens are actually smart contracts, they, despite all their efficiency, have certain risks. For example, a smart contract can not be changed after it was initiated by the organizers of the ICO, it can also contain bugs and vulnerabilities that can lead to a loss of funds.
The history of Ethereum knows many similar incidents - one of the most famous examples was the hacking of the DAO (a digital decentralized autonomous organization) in 2016. To eliminate its consequences and return funds to the network, a hardcore was conducted, and the result was creation a new chain — Ethereum. The hacked chain has continued its work as Ethereum Classic.
What other "weak links" are in ERC-20 tokens?
The ERC-20 protocol is not always sufficient for purposes of tokens issuers — it does not guarantee that tokens will be useful, valuable or functional.
One of the drawbacks of the ERC-20 standard is that it vastly simplifies the process of tokens issue. This allows many projects to easily run an ICO, that is confirmed by the total number of ERC20 tokens — as of May 1, 2018, there are about 80,000 tokens. An abundance of similar to each other tokens significantly hinders the process of their selection by investors.
Another problem is that the tokens can be mistakenly sent to a smart contract of another ICO. If the smart contract does not provide for such a possibility, the tokens will be lost. This way more than $ 3 million was lost (as of the end of 2017). A proposal ERC-223 is supposed to solve this problem — the transaction inconsistent with the ERC-20 standard will be rejected. It can also be expected that certain changes will be brought into the ERC-20 protocol itself.