Forking Ethereum: notes on Casper and blockchain evolution

in #blockchain8 years ago (edited)

By Aleksandr Bulkin, Co-Founder @ CoinFund.
Cross-posted from the Blockchain Investments Blog.

I recently gave a talk in Odessa, Ukraine on the basics of blockchains, cryptocurrencies, and cryptofinance. The audience was a mix of businessmen and developers, and both groups displayed lively interest in the topic. After the talk three characters approached me. They turned out to be the businessmen types. In an effort to protect and grow their capital, they told me, they invested in a moderately profitable Bitcoin mining rig, which I found to be a rather impressive achievement for someone whose main gig is chemical exports.

During dinner that night these progressive even if predictably shady gentlemen kept bombarding me with questions. I asked them one of my own: why are you mining Bitcoin and not, say, Ethereum? Their answer was obvious, but only in retrospect. They said one word: Casper. This was before the DAO attack, but it did set off an entire line of thinking for me, which was subsequently confirmed by later events. I thought about feasibility of a scaling strategy predicated on a significant number of hard forks. Also, what is the process by which this space will ultimately evolve?

I remember feeling very optimistic during Vlad Zamfir’s recent talk at the NYC Ethereum Meetup. Vlad was describing the Ethereum scaling strategy. He saw it as a series of hard forks to introduce major changes into the system starting with a complete overhaul of the consensus protocol in order to transition to Casper, which is based on Proof of Stake (PoS). I felt this was a good approach because clearly scaling-related problems are hard to predict and having a long-term vision that includes a way to mitigate issues as they arise is a good thing. While only Gods and Satoshi can give commandments that never change, mere mortals can only build systems based on their limited view of the future. Good designs must therefore include an ability to change, or they quickly go out of date.

It sounded like Ethereum was taking an approach very different from Bitcoin. Vlad and Vitalik obviously believe that you can only achieve long-term sustainability of a system like Ethereum through incremental changes, some of which can be foreseen while others will just become obvious along the way. They also correctly feel that a blockchain based on Proof of Work (PoW) is not a scalable solution, but provides the system with a good bootstrapping strategy because it is simpler to implement.

That was my view on Ethereum after Vlad’s talk. I was optimistic, because in my view having a strategy for changes makes Ethereum a long-term player. Since Vlad’s talk, Ethereum doubled in price. Shortly thereafter, the DAO hack happened and I remembered the Ukrainian businessmen.

Miners in a PoW network are a special-interest group. On one hand they are rather interested in the health of the network. But from the point of view of the Ukrainians, they would need to put up a significant investment to build a farm; their thinking was that it would be lost as soon as Casper is adopted in Ethereum. Miners are self-interested players. They have many networks to choose from. Most importantly, for most PoW systems they are the sole party responsible for adopting or rejecting hard forks.

And consider what a hard fork is. At some pre-agreed block number the rules for what blocks are accepted change in a way that is not backward compatible. Now consider what happens when a Proof of Work network transitions to Proof of Stake. At some pre-agreed block number miners stop accepting blocks signed through work and start accepting — wait a minute: what miners?

So there is a group of people out there who, at some block number, are supposed to power off their farms and go home? What happens if they don’t? Will the users just stop respecting the blocks they generate? Consider being a user of Ethereum. You have a significant amount of effort and money invested into your contracts, your Ether, your DAO 2.0, and so on. You are faced with the prospect of either running some new code that hasn’t been battle tested and for which you don’t see a clear community consensus, or just keep status quo and continue using the PoW network with no change. Which would you choose?

Things could potentially turn out even weirder. It is not inconceivable that after a fork both branches will continue to be signed (or mined) and accepted by some percentage of the community. Clearly, contents of wallets that existed before the fork will carry over into both branches and remain usable. If users feel that there is value remaining in a given branch they will continue using it, especially those who already own some pre-fork funds. This process would essentially amount to splitting a cryptocurrency into two.

This illustrates that protocol changes are a very complicated matter. The essence of the problem is that a system that uses a consensus protocol requires social consensus between people to exist around that protocol. As long as the protocol remains unchanged, the existing economic motivations support such social consensus to remain the persistent equilibrium state. Essentially, we trust the system because everyone does and in doing so we receive the benefits of such system: we can exchange value, make agreements, and form communities. But a change of consensus protocol (a fork) requires the equilibrium to shift. It requires that everyone shift from trusting the old system to trusting the new one. This shift must happen collectively or else chaos ensues.

This becomes even more complex when you consider special interest groups such as miners. While it is not true that miners are a power that is entirely independent from community sentiment, in existing PoW systems they have a considerable authority on what goes in and what doesn’t. And anyone with disproportionate power will assume the de facto role of government, whether explicitly or implicitly. We can see this by noticing that preventing change is a decision just as much as going through with it and miners have a tremendous power to enforce status quo. Just think of the Bitcoin block size debacle.

The events that followed the DAO collapse show that governance is necessary in order for a smart contract platform to be resilient enough for large scale use. Such governance must give the community some ability to counteract theft, prevent unethical use, or even recover lost private keys. However, governance in the form of protocol forks is entirely untenable. This is not only due to consensus issues surrounding forks, but also owing to the fact that any change in the consensus protocol creates security risks. At the time when I started writing this article a soft fork was proposed and ratified by the Ethereum community. A few days later it was discovered to be vulnerable to DoS attacks and reverted. While this may be a risk justified for Casper, it clearly isn’t justified for day-to-day decisions that address exceptional situations and ethical concerns.

Casper can still happen. The first block of the new protocol could, for example, contain significant distribution of Ether to miners which incentivize them to not stand in the way. There could be a transition that includes some hybrid PoW/PoS approach (or, see this thread for some thoughts from Vitalik Buterin). But the deeper issue remains: protocol changes without a known, established process are chaotic and risky. For a system with a significant amount of vested value they may be too risky to be possible.

It appears that every time a new idea emerges, a new blockchain is developed to implement it. I recently spoke with the founder of Tezos; Tezos is envisioned as a PoS system from the outset, it generalizes any blockchain system into the sum of three distinct protocols, and it uses social consensus to upgrade some of these layers. Essentially, it makes consensus changes (i.e. forks) a platform-level feature which are easy to implement. It also intends for forks to be a tool of governance.

One may agree or disagree with any of these design decisions. My point is that we must recognize as a fact of life that developing a new blockchain is always much easier than upgrading an old one. The effort needed to upgrade an existing system comes from the need to convince existing community members (miners, end users) that the change is both needed, safe, and universally accepted. On the other hand developing a new blockchain doesn’t require convincing anyone. If it is useful people will come and inject it with value.

So should Casper be an upgrade to Ethereum? Should we risk stability of the current, well-thought-out system to go through with a complicated upgrade in the form of a hard fork whose consequences we can barely predict? Or should the Ethereum development team simply develop Casper as a brand new blockchain? In other words, should a company cannibalize its own business in the name of innovation?

This is not a novel question. The answer that we have from experience seems to be Yes: Apple, for instance, shrewdly let the iPhone cannibalize the entire iPod market. But look at what’s happening in the blockchain technology space right now. It seems everyone who is developing a blockchain system sees their product as one final answer, the last word. The business model for developing a blockchain product is crowdfunding followed by sustained growth. Everyone wants to have the success of Bitcoin, but its success is clearly a consequence of its commitment to immutability. This will, of course, either limit its applications until it becomes entirely obsolete or, worse, make hackery the way to go until it becomes a total mess.

Is this realistic? Shouldn’t we instead face the fact that the process of refining ideas in the long-term is the critical part of any healthy innovation trajectory and that we lack such a process almost entirely? Instead of developing complicated upgrade strategies, shouldn’t we instead focus on blockchain interoperability features, so that we can easily transfer value from one blockchain to another if we deem this new one to be better in some material respect? In other words, shouldn’t we grow the space as a whole, as opposed to any particular blockchain?

My personal view is that we are about to experience a shift of consciousness with regards to how the blockchain space will grow. Instead of looking for the best solution, we will arrive at the situation where a large number of small blockchain systems will closely interoperate with each other. Just as Andreas Antonopoulos envisions in his talk on the future of altcoins, I believe there will be a large number of cryptocurrencies, each with their own function and properties. These cryptocurrencies will be born and die by the dozen, yet the value of the space as a whole will steadily grow.

Application developers will quickly realize that they can not afford to make a long-term commitment to a single blockchain system. Instead they will look for ways to develop applications that can be easily adopted to using a different system if the old one blows up or becomes superseded by something better. There will be demand for tools that provide abstraction into blockchain layers, so that these layers can be easily replaced. There will be demand for versatile blockchain-independent financial tools that can handle a large number of cryptocurrencies simultaneously.

This is my view. I welcome your comments. And, as always, feel free to join the discussion on the CoinFund Slack.

Coin Marketplace

STEEM 0.29
TRX 0.13
JST 0.033
BTC 63035.00
ETH 3022.97
USDT 1.00
SBD 3.82