Towards token forks?
Picture from Curtis Perry, flickr, https://www.flickr.com/photos/curtisperry/22781687833
We have seen "hard forks" on the major blockchains these last 2 years, the most famous ones being the Ethereum Classic fork following the DAO attack back in 2016 and the Bitcoin Cash fork following the block size increase controversy last summer. I can't help asking myself whether we will see similar forks on "tokens" any time soon. Does it even make sense and what would it look like?
Background
A large portion of the successful ICOs to date were based on Ethereum ERC 20 contracts. There are a lot of good articles in the wild explaining how ERC 20 contracts work, including this one: https://medium.com/@jgm.orinoco/understanding-erc-20-token-contracts-a809a7310aa5
Essentially, ERC 20 is just a specification that describes a number of functions a smart contract (representing a token) has to implement so it can be queried in a standard manner by the rest of the ecosystem (wallets, exchanges, etc...).
The amount of tokens a specific user possesses is determined by a series of events, which typically correspond to an initial token attribution against other cryptocurrencies (the very purpose of an ICO), transfers between users, further token minting, and token consumption to use application (Dapp) services. Eventually, tokens are simply numbers stored in a smart contract. It is very easy to clone a token, using tools like this one for example: https://github.com/Giveth/minime
The value of a token is therefore determined by its "utility value", i.e. the fact that you can use this specific token (and not any random clone) to consume services that accept this token.
Token fork scenarios
In this context, I see at least 2 possible situations that could lead to token forks.
1. New Smart Contract functionalities required
To pursue the development of the application (Dapp) using the token, the project team might need to upgrade the smart contract to add new functionalities. This is OK as long as the application is the only one using the Smart Contract, but what if projects have been created (either by the community or companies) on top of this Smart Contract, and these projects are not ready to use the new Smart Contract?
In this case, it is possible that two different tokens would emerge out of the initial one: a token that will still be controlled by the old smart contract and associated legacy applications, and a new one that will be controlled by the new smart contract and used by the new application?
From a user perspective, we would be in a situation very similar to the last Bitcoin and ETH forks. You would still be able to use both tokens in parallel, but trading them might be tricky, as exchanges would need to choose which version of the token they support.
2. Governance issue
Take the case of Tezos as an example. There seems to be a total disagreement between the Tezos and T2 foundations as to how the project should be driven (in particular how the reserve founds should be used): https://www.coindesk.com/tezos-new-board-mean-money/
The Tezos Foundation has control over the use of the funds, but the T2 Foundation has control over the code. So can we imagine a scenario where the T2 Foundation would clone the existing tokens (taking control of the token reserve in the process), and release the application only to the cloned tokens. This is a bit extreme but why not?
Like in the previous example, one will still be able to use the 2 tokens in parallel, but it is difficult to predict how the price of these tokens will be impacted.
At the end of the day, as with fiat currencies, it's people's faith in a given token that makes it valuable... let's see what 2018 brings!