Like all good blog posts, this one starts with a tweet. In this case, I can point to Nicola for spurring this one. Niraj and I previously collaborated on a post called “Merging Chains”. You can think of this in the same spirit as that post.
In a new possible Ethereum fork, will all the ERC20 fork too?
— Nicola Greco (@nicolagreco) January 18, 2018
If so, will they have internal wars on what fork they want to be on?
Portability has been a great side-effect of abstractions for computation, higher-level languages and will have the same effect for the decentralized world as well. In the centralized world, we have Dropbox, Google Drive, and Evernote. These all let us take our information wherever we want it. Whereas before, the existing model was a thumb drive or involved clunky data transfers. The internet helped pave the way for user side abstraction. When we wanted to upgrade devices, we didn’t have to worry about our data. On the dev side, we’ve seen the evolution of serverless. Preceding that were IaaS plays, namely AWS, and preceding that you had to rent out hardware and co-locate a hardware.
Right now, a lot of effort is spent building on a base layer Turing(ish)-complete stack-based machine like Ethereum. While Ethereum remains a market leader right now, things might change. A 0day exploit might appear, someone very influential might die within their organization, or a switch to PoS might actually prove to have a bad security model. Those don’t necessarily reflect what I believe but rather are stated to show some “existential” type risks that might compromise a base layer protocol.
In theory, a mature dapp built on top of Ethereum, shouldn’t derive much of its value from the security model of Ethereum. In theory, a dapp should be able to move its contract state to another base layer protocol. Another way to look at it is again through the lens of history and greater abstraction previously mentioned. A user doesn’t really care whether Dropbox uses it’s own servers or is hosted on AWS. Of course, they care about getting their information lost or stolen, but that’s up to the developers to worry about.
As mentioned previously, developers today don’t have to deal with renting servers. Developers on Ethereum don’t have to write EVM bytecode either. We’ve already seen people build on different platforms. Kin moving to Stellar rather than building on Ethereum, at least initially. I do have a gut feeling that the switching costs may be less than people think, especially since new base layer protocols are taking the tack of enabling the EVM already, like RSKSmart. Also, the Ethereum state trie is already publicly available, and that lets people do airdrops and such, like EtherMint.
And of course, Ethereum abstracted away the messy world of bootstrapping your own blockchain, secured by miners.However, as we build upon this world of abstractions it’s easy to forget that these build on real components, while you can write in a high-level language, your code is still executed by self-interested miners, and that leads to interesting side effects and security concerns.
Ryan Shea and co spent time thinking about migrating state for onename, so this isn’t a thought that is completely out of the blue. Of course we’re seeing protocols such as Cosmos, Polkadot, and aelf now being presented as partial scaling solutions. Hopefully, they'll allow protocols now built only on Ethereum to work on other base world computers with ease.
In the formally-verified future, dapps and protocols will compile down to multiple VMs. Users and developers might not have to worry about a break down in the consensus mechanism of any one base layer protocol. A “meta”-token that wraps both the native ERC20 and whatever the token specification is for another base layer protocol will exist. Maybe these token prices will be pegged to each other, Or value will be accrued in proportion to the amount of state that they actually keep. In this way, the different base layer protocols may just be different shards on which protocols interact. Already, some tokens are looking at building on both Ethereum and NEO.
If this vision of dapps on multiple chains does play out, competition between base layer protocols based solely on the dapps that they host may not be a long-term competitive advantage. Again, that hypothesis is premised on the belief that switching costs of state are low, and it does look like that is happening. If a protocol advertises the fact that they have a competitive advantage just because they’re building on a certain VM, that isn’t going to be a long-term advantage.
I don’t really offer up much in the way of analysis but just a bit of observation that we’re in the early days of crypto. There are so many rungs on the ladder of abstraction yet to be formalized and built. It's not immediately clear how scaling, where the points of friction and therefore economic value will be long term. You might say that the tokens that have the largest network effect will win out, i.e. Ethereum. Yet, the network effect argument is self-referential. It is intrinsically so, the more people use it, the better Ethereum gets. But the more people that leave an ecosystem, the more unstable it gets. With flows between addresses on chain and economic value exchanged cross-chain all available in real time on decentralized exchanges and on blockchains. We could see, in real-time, the shift in network effects from Ethereum to a hypothetical competitor. We won't have to wait for Facebook to release it's latest earning's report to show that it churn some X% of users. Please talk to me if you think I'm right or wrong :)