23 - The power of standards
Creating original art through the use of remixing was the topic of last week's post. We thought through how smart contracts, thanks to their open source nature and ease of connection , foster originality. Ethereum was the first network to experience large-scale adoption of smart contracts and set many of the precedents for future smart contract platforms. One such precedent was the creation of something called a “standard.” Standards are a set of guidelines that create a foundation for an understanding between two parties. When all participants have an agreed upon set of guidelines, magic happens.
Standards = Agreements
Every day you operate based on a set of standards. The best example of standards are national laws. The US constitution is a set of standards that the former British colonies agreed on in 1787. Since then, 37 additional states have agreed to the standards created in 1787 and the 33 amendments that have postceeded it. Governing laws set the standards for the way in which people interact in a society, but they are just one type of standard. Red lights indicating stop and green meaning go are standard, and Ikea furniture assembly instructions are standard. All of these sets of guidelines help people make decisions to successfully interact with one another. They give everyone a single source of truth about how something is to be done.
Most people reading this post would agree that standards are a good thing. Standards help us to reduce the decisions we need to make which one could argue is the greatest drain on energy. Mark Zuckerberg, a man one could argue is reasonably successful, wears the same outfit every day so that he can reduce the number of decisions he needs to make. Steve Jobs took a similar approach with his jeans and turtleneck and even tried to get other Apple employees to follow suit; but the trend did not catch on. Creating the clothing standard for themselves and thereby reducing the decisions they needed to make each day gave them more time and energy for high level decision making.
Interoperability
Zuck and Job’s dress codes were mainly for themselves, but it also impacted those around them. If you worked with the two men, you were not distracted by any new outfits. You could count on them to show up each day projecting the same focus on work over fashion. Both men understood the importance of clear communication through the use of standards which also happened to be ingrained in the industry in which they worked.
In I’m looking for Web3, we learned that the internet was formed when the internet protocol language (IP) connected disparate government internets together. The internet protocol is a standard that established a way for all the siloed communication networks to communicate. The advancement that has followed has been mind blowing. The IP set the rules for how information flowed from one set of computers to another. Anyone could create a computer and have that system communicate with any other computer on the internet through the IP protocol. That agreed upon language completely eliminated the decision about how your computer should communicate with any other computer. Computer developers now had a rule book that they could implement and focus on other aspects of computing.
Moving into the world of blockchains, standards were necessary from the start. Blockchains need to have standards from day one so that each of the nodes on its network can correctly communicate. During the time when blockchain = Bitcoin, standards were simple. You either agreed with the bitcoin standard and wanted to continue to communicate with it, or you forked the network and created your own set of standards. The downside to forking is these two networks can now not communicate. All of this would change with the advent of Ethereum. Now if you wanted to create a token, you didn’t need to go through argos forking process but could simply deploy a smart contract on top of the Ethereum blockchain.
Ethereum provides an open canvas allowing anyone to create almost anything on the network. Many people have used this canvas to create tokens through a smart contract. Tokens are just numbers in a ledger and how those numbers are written can be different across smart contracts. It would be similar to writing the number “3” or the roman number “III.” Both symbols mean the same thing, but they are written using different numeric standards. Unlike a forked blockchain which requires additional work to communicate with the blockchain from which it just forked, tokens issued on a single network have the potential for seamless interactions with other tokens when they are created.
ERCs
A major problem that the Ethereum network faced early on was that token’s being issued on the network were all being created using different standards. It was like someone was writing in roman numerals, the other in our modern system, and a third in some numeric system that no one else has even heard of. Separate contract structures also meant that they could not communicate between projects similar to the days of old when forked chains could not communicate with their predecessors. Issuing tokens using different structures was also messy and meant that projects issuing tokens were reinventing token issuance each time they did it.
In Upgrades, we discussed Bitcoins’ network upgrade process using Bitcoin improvement proposals (BIP). The Ethereum blockchain relies on a similar improvement process which involves the submission of Ethereum improvement proposals (EIP). Applications built on top of the network have a process for establishing improvements known as “Ethereum request for comment” (ERC). ERC’s are essentially a specific type of EIP.
In 2015, ERC #20 was suggested to standardize the way that a specific token known as a “fungible” token can be issued. Fungible tokens are those that are exactly the same from token to token. The best example of a fungible asset would be the US dollar. Every dollar is exactly the same as every other dollar. If one person were to swap a dollar with another person, both people would be in the exact same financial position they were in if the swap had never occurred. Shares of company stock and gold are also good examples of fungible assets.
The ERC20 created a list of criteria that anyone issuing a fungible token should follow to effectively interact with the broader ecosystem. The characteristics are:
TotalSupply: Outlines information about the total token supply
BalanceOf: Describes account balance of the owner's account
Transfer: Executes transfers of a specified number of tokens to a specified address
TransferFrom: Executes transfers of a specified number of tokens from a specified address
Approve: Allow a spender to withdraw a set number of tokens from a specified account
Allowance: Returns a set number of tokens from a spender to an owner
Once ERC20 was established, token issuance began to take off because it described a clear standard for interacting with tokens issued. Exchanges, wallets, and other projects knew exactly how to communicate with them. There was however a downside to ERC20. The ICO bubble in 2017 was in large part due to the reduced barrier of entry created by ERC20. That easy of creation meant that anyone could issue a token. The lack of regulatory clarity around what a token is meant that they could marketed and sold to anyone, including the uninformed.
The take aways
Standards are everywhere and for good reason. A well-crafted standard helps to reduce decision-making by providing an established framework by which to operate . In the physical world, standards such as laws help us to establish how to organize a society. In the digital world, standards help to establish how to build applications that can communicate with each other. Laws change and so do digital standards. Standards can take time to be established. New ones might be required, and old ones sometimes need to be updated to match the times. One newer standard is ERC721, and it will be the topic of next week’s post.