From ERC20 tokens to collectible coins: What do we know about the Ethereum protocols that manage our ICOs and private transactions?
Disclaimer: The views expressed here are the author’s own and do not necessarily represent the views of Cointelegraph.com
Today, anyone can create a smart contract based on the Ethereum blockchain and release their own tokens. Until recently, the implementation of a particular coin was entirely entrusted to the developer of that coin, and it had rather an experimental nature often accompanied by a number of related problems - including the freezing of investors' funds, hacking of contracts or unpredictable network operation.
In this ‘Wild West’ atmosphere, new Ethereum protocols are being created - which are designed to correct the errors of previous versions. Perhaps one of them will replace the ERC20 by the end of the year, making working with the blockchain even more reliable and simple for users.
ERC20: The king of dApps
User friendly logics and simplified structure turned Ethereum into a highly demanded framework, with almost 83 percent of projects choosing the Ethereum blockchain for the underlying structure.
Image source: ICOWatchList
More than a dozen major tokens are based on ERC20 standard, and around 400 new coins are issued every day. While these figures may sound unreal, the Coinmarketcap rating and the Ethereum Tokens Chart demonstrate that the total market capitalization of such tokens is around $52.6 bln. Furthermore, this process seems to be totally uncontrolled since no legislation exists to regulate the frequency or initiator of the issue.
Image source: Ethplorer
You may see references to "ERC20" when reading information about Ethereum (ETH). ERC20 is a standard which is the most common and widely used within the Ethereum platform. Wikipedia gives the standard the following definition:
ERC stands for Ethereum Request for Comment, and 20 is the number that was assigned to this request.
The ERC20 standard was introduced in 2015. While it initially saw active use only by programmers, the standard has gained widespread adoption in just two years. The standard describes the rules for the creation and operation of coins developed on its basis. Such specifications were an innovative solution in the crypto industry, since until then there were no unified programming standards - and it solved the main problem encountered by the creators of new tokens.
The issue was that all coins issued before the introduction of this standard were completely unique, which greatly complicated the work of exchanges, wallets and other applications used to interact with new tokens. Each time developers had to change or add a layer to their software, so that the new coin could work stably and was compatible with their system.
In 2017, the ERC20 standard started to be used everywhere thanks to the uniformity of the code and simplified integration with various apps and platforms. It triggered the explosive growth of initial coin offering (ICO) startups which now had the necessary tools for entering exchanges and overcoming liquidity problems.
Image source: Smith&Crown
Right after implementation of ERC20, the number of ICO startups in the cryptocurrency market increased substantially with almost 86,000 tokens issued as of May 2018. Not surprisingly, projects no longer needed to invent their own specifications and rules for the issue and operation of tokens, or to develop standards for their compatibility with the separate blockchain. All this has already been described in the ERC20 standard with introduction of six main functions:
- Total amount of coins;
- Number of coins on the balance of a specific address;
- Functions for transferring tokens from the primary address to the address of the individual user or ICO participant;
- Functions for transferring tokens between users;
- Functions for checking the residual amount of tokens on a smart contract with the ability to withdraw funds;
- Functions ensuring that the sender has enough tokens to complete the transaction at the time of sending.
Smart contracts: birth of a new economy
The main secret of the success of the ERC20 standard is the introduction of smart contracts. Though the basic principles of smart contracts have been already implemented in the Bitcoin blockchain, their capabilities were severely limited and were not suitable for creating tokens for individual dApps. That's why Ethereum can be considered the first platform that fully developed the concept of smart contracts and implemented it.
Image source: Openxcell.com
The main idea of the smart contract is as follows - when a user sends tokens to the address of a recipient, the sender’s address balance reduces while the recipient’s one increases for the same amount. What is special about this? No one technically sends anything to anyone. In fact, the smart contract is informed about the change in the balance of the owner for a definite amount of tokens. As a result tokens disappear from the sender’s wallet, appearing in the recipient's address. Thanks to this system, nodes in the network no longer need to constantly check with the database. All that they are required to do now is to verify the accuracy of all the contract terms, since the parties - the sender and the receiver - interact exclusively through smart contracts.
Calling for changes
Since the ERC20 standard was the first version of the Ethereum-based protocol, over time a number of problems and shortcomings have been revealed. For example, users accidentally sent tokens to the address of a smart contract, and reversing the transaction was impossible. This is due to the fact that the standard implementation of the ERC20 token involves two ways of transferring tokens:
- The transfer function, which allows to send tokens from one address to another;
- A combination of functions (approve + transferFrom) for sending tokens to a smart contract.
It should be noted that event processing is a well known and standard practice in programming. Therefore, the transfer of funds in the Ethereum network works as follows - the transfer is processed with the possibility of detecting errors. In this case, the transaction is considered to be completed only after a successful transfer of funds and in the absence of any errors. Otherwise, the smart contract cancels the transaction. If you send ETH to a smart contract that doesn't work with it, this event processing will help to avoid losing funds, since this transaction will be rejected on the recipient’s side.
According to the ERC20 standard, token transmissions should be considered as an event, but the transfer function does not allow processing this transaction, because it simply increases the receiver's balance without any pre-check. This can lead to a problem when the contract doesn’t recognize the transaction if the recipient is a smart contract and the tokens were sent using the "transfer" function. This causes an unexpected behavior of the transfer function and leads to an unpredictable result - i.e. tokens can be lost and permanently frozen.
How did the creators of Ethereum solve this problem? The answer was simple - developers who introduced the approve and transferFrom functions, giving the user the right to allow the smart contract to withdraw their funds when sending a transaction. Any errors have since been excluded.
It is noteworthy that the developers themselves do not consider this a mistake:
This is not a bug, but a user error. It's not a bug or vulnerability, it's a feature of the standard ERC20 design.
However, this problem still persists - with over $4 mln lost by ICO participants during the last year. A significant example is the EOS tokensale smart contract which has received about $2.1 mln from the users who were unable to recover their funds.
Among other contracts which pocketed investors’ funds are ones belonging to Tronix - $400,000, Golem and ZRX - more than $200,000 each, and OmiseGo having more than $150,000 frozen to date. It seems that new users are not learning from others’ mistakes.
ERC223: Correction of ERC20 errors
Type: standard token
To solve the vulnerability of the first version of the Ethereum protocol, a user named Dexaran developed the ERC223 standard, which forced the ERC20 standard to behave in the same way as when transferring ETH to smart contracts. Now, in case of an error in the transfer function, when the smart contract does not support this cryptocurrency, the transaction is cancelled. For this, two new functions were introduced:
- The transfer function replacing the old transfer and transferFrom;
- The tokenFallBack function for the destination smart contract, which determines the type of coins sent.
Quite often new standards are proposed for tokens. As a rule, they are carefully examined by both crypto community and blockchain developers. Some of them, not very well-known, still have a potential to replace ERC20.
ERC721: CryptoKitties and other collections
Creator: Dieter Shirley
Type: collectible token
Tokens created with the help of the ERC20 standard are interchangeable. In other words, each token is the same as the other one. If one is considering it as a currency, this property is simply necessary, but from the point of view of "cryptocurrency collectibles" such a token does not fit at all.
Thanks to ERC721, each token becomes unique. Mike Raitsyn, a co-founder of SnowFox platform, which helped projects with issuing over 30 tokens, including ERC721, sees the potential in this kind of protocol:
“Combined with Layer 2 scaling solutions (sharding, Plazma and state channels) we get the ultimate vehicle for putting every significant asset on a public (or hybrid if you please) blockchain with 100 percent immutability and security”.
The developers of the “Ethereum’s killer” online game CryptoKitties were one of the first to use this standard. It is based on the use of unique attributes: age, color, breed. Some mixture of attributes can become incredibly rare, making a kitten very expensive. Not surprisingly, this idea was picked up by other entertainment projects such as CryptoPuppies, CryptoPets, and even CryptoPunks.
ERC827: New ERC20
Creator: Augusto Lemble
Type: standard token
ERC827 is one of the latest versions of the Ethereum protocols and was called by blockchain journalist Dariusz R Jakubowski “a new ERC20”. Unlike its predecessor, this standard can transfer not only the cost, but also the transaction data. Developers managed to add this useful function into a relatively small code fragment with a size of less than 100 lines. This functionality expands the horizons of the Ethereum network use on a nationwide scale and allows moving data around the world in a matter of seconds. In addition, this standard allows verifying a transaction by a third party, for example, a broker or agent, without an access to a private key. The safety and reliability of the blockchain are at the same time unchanged.
ERC948: Paradise for B2C businessmen
Creator: Kevin Owocki
Type: token for subscription
The "subscription" model has become extremely popular in the digital world with over 11 mln customers attracted only last year. A study of the McKinsey company showed that 15 percent of all buyers had subscribed to e-commerce in 2017.
The ERC948 protocol gives developers an opportunity for building a platform where companies can leverage an economic model that has proven valuable in the retail and software industry in the past decade. Furthermore, the model of subscription may gain a wider spread in 2018 by uniting blockchain projects with their customers.
ERC884: "White list" for investors
Creator: Dave Sag
Type: standard token
Based on the 2017 draft law, The Delaware General Corporation Law (DGCL) officially allowed the use of blockchains to register shareholders. ERC884 was created for assets released by any public or private company in Delaware, and contains several add-ons beyond the capabilities of ERC20. This includes the requirement to identify and whitelist the owners of tokens as an integral part of the very token.
Evolution of protocols
The growing competition among leading cryptocurrencies boosts the evolution in the development of new protocols. Every new Ethereum token standard offers a more advanced set of functions which excel the existing ones. The introduction of these new standards allows developers to solve the backlog of vulnerability, misuse or inefficiency, and gives birth to more mature blockchain dApps. The opportunity is ripe for 2018 to see new protocols, and only time will tell whether the industry will witness ERC20000 or other innovative tools that will emerge as a result of the arms race between Ethereum and EOS.