In order to understand the purpose of Tokens on the Ethereum blockchain we can separate tokens into two categories. The first is a currency type token which can be treated similar to money. The second is a token is a representation of an entity or a thing within the system. I will refer to these as “currency tokens” and “entity tokens” where disambiguation is required.
Tokens as money
In everyday life, tokens exist in many forms and provide a wide variety of utility. From circumventing gambling regulations to facilitating charitable donations, tokens act as an abstraction and proxy of value. Through network effects and emerging technology, digital tokens are changing the way we transmit and store value - the internet is evolving it’s own kind of money.
Ethereum is known for its record breaking crowd sales based on the issuance of new money. In these ICOs (Initial Coin Offerings) organisations create and sell currency tokens in order fund future development. These tokens usually permit some kind of participation or utility within the project and can often be traded on exchanges. If tokens have no utility other than investment, the SEC (Securities and Exchange Commission) now considers them to be securities and thus subject to financial regulation. It is likely other national regulatory bodies will follow suit.
Tokens contracts may be relatively complex depending on the nature of an ICO crowd sale or the project itself, however, at a minimum there are a few key properties and functions which token contracts share in common.
Supply: The total number of coins available. This is usually a fixed amount defined in a contract at the time of publishing on the blockchain.
Ownable: A user may take possession of tokens (assigned to a public address)
Transferable: Tokens may be passed from one user to another (assigned to a different address).
Balances: The contract must hold a list of user balances and allow them to be queried.
A standard for Ethereum currency token contracts has evolved called ERC20. These currency tokens do not have individual identities. Token contracts are essentially bookkeepers, holding a ledger of how many coins each address has. Since these contracts are exposed on the public blockchain it is vital that they are secure and well written. ERCs define only the specification - it’s up to developers to implement them. In order to avoid re-inventing the wheel, libraries are evolving to facilitate coding standards. Open Zeppelin is a project which maintains a library of best practice implementation patterns to help avoid common pitfalls like re-entrancy attacks (where funds are drawn multiple times from a contract before the first withdrawal transaction is mined). Its modular approach allows composition of contracts certain characteristic and test cases are also provided.
Tokens as Things
To uniquely represent an entity, asset or object i.e. any thing in an Ethereum contract, it is commonly abstracted to a hash - a very long number encoded as letters and digits. Hashing functions have several desirable properties:
Deterministic: Given the same inputs, it will produce the same output i.e. results are always the same.
Highly entropic: The output should be unpredictable. A small change in inputs, should result in a large change in output.
Collisionless: Different inputs should not be able to produce the same output.
Irreversible: The inputs should be unfeasible to recreate from the outputs.
There are a number of commonly used hashing functions - the most widely used in Ethereum are SHA256 and Keccak. Here’s an example of encoding two words with a single different letter, using SHA256.
Ethereum = a13bebeb57e1ea699bd4d2d9ac7e58399644e884b8a8783d96f6d146083f2430
Etherium = 988a2c9a2b164e1ca1b67a2780071a663d4f618512061920eb9676ac809c05b0
Tokenisation is essentially the commodification of a thing - creating new possibilities for ownership, trading and lending. Combining tokens with self enforcing contracts on the Ethereum network, allows people, robots and organisations to scale cross-border interactions and exchange in a way that has not been possible before.
For example, if Alice and Bob, each live in countries with poorly developed legal systems, they may be unable to participate in business together because they have no judicial recourse should things go wrong. By representing a good or service in token form, and setting conditions for closure in a smart contract, they can engage in business activities with greater confidence and security.
Tokenised assets are likely to have most immediate impact on supply chains, licensing and the sharing economy.
Supply chains: Many large corporations are exploring the utility of tokenisation to manage inventory and supply chains. The diamond industry will be able to use this technology to prove ethical sourcing and lineage of their products. Manufacturers can ensure the integrity of design and construction components and more reliably track their lineage.
Licensing: Representing music catalogues and licenses in token form allows for swift and dynamic allocation of digital rights - in an industry where distribution of wealth has been skewed towards incumbents and pop acts. Independent filmmakers will find it easier to license audio and artists will find it easier to get paid for their creative output.
Sharing economy: Individuals and organisations alike will be able to rent and consume resources from each other. Startup Slock.it, provides infrastructure and dynamic unlocking mechanisms for participants to access anything from bikes to electricity. Golem is another project which allows users to harness the unused processing power of others.
This is still a very early time for blockchain and many have compared the current state of development to that of the internet in 1993. However, the internet has already given us increased network effects that have lead to exponential growth and development in this space. Over the next year we will see many Ethereum projects leave beta and alpha for production releases - the revolution is already upon us.