An Introduction to Ethereum’s ERC-777 Standard
With the recent launch of notable dApps such as CryptoKitties, ERC-721 tokens have received attention as companies begin to explore the value of non-fungible digital assets (brief run-down of ERC-721 tokens here and here). And though ERC-20s and ERC-721s have received the most attention among Ethereum developers, there are a host of different ERC standards being debated and developed. ERC-777 is one of those standards. This article is a brief aggregation of the content currently published about the ERC-777 protocol and its attempt to address some of the issues with ERC-20 tokens.
The ERC-20 Token Standard
ERC stands for Ethereum Request for Comments — it is simply nomenclature to describe a certain set of protocols designed to be implemented on the Ethereum blockchain. The ERC-20 protocol was the original token protocol launched for the Ethereum blockchain. It serves as a blueprint that developers can use to create tokens for their company or for their ICO. The tokens built off the ERC-20 standard all adhere to the same underlying protocols and functionality, a quality that has promoted widespread adoption. Notably, ERC20 tokens are all compatible with MyEtherWallet and the majority of hardwallets. That means, during an ICO, both the developers and the customers can feel confident in the technological performance of the tokens they are selling/buying. This standardization should not be overlooked. Of the 211 ICOs in 2017 (amounting to nearly $4 billion), the majority of the tokens were built off the ERC-20 standard. It is certainly safe to say that the explosion in ICOs was partially facilitated by the fact that the ERC-20 protocol reduced the difficulty and friction of launching a new coin. As functional and crucial as ERC-20 tokens are, however, they are not without their limitations.
One of the most exciting functions of Ethereum is the ability to write and enact smart contracts. Part of the beauty of a decentralized ledger is the removal of “red tape” — you can send cryptoassets to whichever address you want without having to go through a laborious step in between. Some contracts, however, do not support every token. If you accidentally sent an ERC-20 token to a contract that did not support the underlying protocol, your token would be locked forever. As more and more non-professional users engage with emerging blockchain technology, issues with non-compatible ERC-20s could generate distrust in the technology if people find their tokens suddenly and irretrievably locked.
Introducing the ERC-777 Token Standard
Proposed on GitHub in November of 2017, the ERC-777 protocol aims to maintain the strengths of the ERC-20 protocol while bandaging some of the shortcomings and adding additional functionalities. Some of the primary benefits of the protocol are below:
Friction: The ERC-777 token protocol reduces the friction and number of transactions currently required to enact a smart contract under the ERC-20 protocol. ERC-20s require a double call function (i.e. a second verifying transaction) to be sent in order to enact the contract. The ERC-777 standard includes a function defining whether or not a token has been received (the “token received” function), allowing the contract to be triggered immediately. From a user-facing perspective, this lowers the amount of time and thought required to transact on the Ethereum blockchain. Behind the scenes, by allowing only one transaction to trigger a contract, the ERC-777 protocol lowers the transaction overhead on the blockchain (i.e. more things can be accomplished with the same throughput). Big picture, this could be pivotal in addressing some of the ongoing debates about the current limitations of low transactions per second due to high traffic on the Ethereum blockchain.
Security: From a security standpoint as well, ERC-777 has an edge over ERC-20. An address could reject any incoming tokens from an address that has been blacklisted — i.e. flagged for any reason, namely being associated with hackers, illicit activity, or non-compatibility. As blockchain dApps become more ingrained in everyday transactions, the ability of a vendor to be more confident in where payment is coming from is an essential development in on-chain KYC/AML (Know Your Customer / Anti-Money Laundering). For a technology literally built off the theory of a trustless ecosystem, any implementation allowing people to feel more confident in sending money/assets via the blockchain will likely hold tremendous positive consequences.
Information: The ERC-777 protocol includes a user data field, in which the sender can include any relevant information to the recipient. This would also support KYC/AML, as the token sender could include information about their identity or the reason for the transaction. The importance of an immutable ledger means that more data sent through blockchain supports a stronger, more trustworthy, and more robust ecosystem. The user data field is the first step in that direction, allowing information outside of simple transaction data to be sent and received.
Backwards Compatibility: This is a crucial element of ERC-777 tokens. The new protocol is compatible with older wallets that do not have the “tokens received” function (discussed above in “Friction”) — i.e. ERC-20 tokens. This means that the widespread implementation of the ERC-777 protocol would not create a “divide” in the ecosystem between tokens without the “received” function (ERC-20s, ERC-721s, etc.) and those with. Rather, backwards compatibility supports an Ethereum ecosystem in which many protocols can exist simultaneously. Protocols can be developed to endow tokens and addresses with qualities specific to the company launching the token or the desires of the users and coexist with other tokens.
Looking Ahead at the ERC-777 Standard
The ERC-777 protocol still has many obstacles in its way. It is still being debated and improved upon, and we have yet to see tokens built off the protocol or offered through an ICO. Moreover, we face the issue that there exists no standard way for ERC-20 tokens to be transformed into ERC-777 tokens. Depending on the design, some ERC-20 tokens could be coded to include similar improvements as ERC-777, or companies could host a buy-back whereby they redeem original tokens for new ones built upon a new protocol (i.e. see MKR or Storj). Yes, backwards compatibility allows ERC-20 and ERC-777 tokens to coexist fluidly, but the inability for companies to seamlessly migrate their ERC-20 tokens over to the ERC-777 standard might hinder the adoption of the new standard. We are only seeing the beginning of development on the blockchain, and the ERC-777 standard is a stepping stone in the further improvement of Ethereum.