The “Ethereum Request for Comment 20” (shortened as ERC20) was the standard for Ethereum tokens, a short list of guidelines that provided them with cross-compatibility. It created a sort of order and a set of rules for new tokens to follow, or else they’d risk being moved to the sidelines of the nascent blockchain industry.

Certainly, it provided a much needed set of guidelines for new Ethereum tokens to follow. The same logic could be re-applied across a variety of different tokens. ERC20 was favored by the first wave of blockchain crowdfunding projects due to its interoperability and ease of deployment. As of today, there are approximately 100,000 ERC20 compatible token smart contracts in the Ethereum main-net. The most active tokens, in terms of performed operations, have hundreds of thousands of transactions under their belt.

And yet it is time for a change, one that’s more than necessary due to a core feature: transferring tokens from one address to another using a smart contract.

The transfer function of the ERC20 compatible token requires the receiver’s wallet to trigger the transferFrom function. When you fail to “prepare” the wallet for the eventual transfer, the tokens are lost forever, unable to enter the receiver’s wallet or return back to the sender. As this occurs within a smart contract, there is no mechanism to enter the automated contract and extract the tokens from the busted transaction. In other words, your money will be lost forever.

There is already a long list of tokens that are forever lost in ERC20 smart contracts, where the addressee failed to trigger the transferFrom function.

This is where the ERC223 token standard comes into play. ERC223 uses the same transfer function for wallets and smart contracts, negating the risk of confusion on part of the receiver:

transfer (address, uint, bytes)

function transfer(address _to, uint _value, bytes _data) returns (bool success)

There were some opposing opinions, claiming that the issue was not so much a bug rather than a feature. However, make no mistake, this specific feature of the ERC20 token standard design caused a losses totalling millions of dollars across different tokens and it must be considered as a software bug, specifically classified as a software vulnerability.

Asides from fixing this annoying bug, the new transfer method will also allow the smart contract to actively control the tokens that are being sent. For example, an exchange smart contract can react to a token transfer by adjusting the amount in a user’s wallet.

Not only does it solve this pressing issue, but ERC223 transfers also cost less gas than their ERC20 counterparts! Sadly, companies already utilizing the ERC20 Smart Contracts cannot “upgrade” to ERC223, but all ERC223 tokens are cross-compatible with ERC20 tokens.

The ERC223 is clearly the future for transfers on the Ethereum network. For the reasons mentioned above, Bethereum will be utilizing the ERC223 standard for its token.