I have a fear, which has been increasingly recently, that Ethereum is not innovating fast enough. As @Ethernian pointed out in this thread, it’s critical that Ethereum continue to innovate rapidly as that is one of its core differentiators.
The fact that it’s taken 16 months from Byzantium to Constantinople (still not in production), despite the fact that Constantinople is relatively noncontroversial and doesn’t actually change very much, is one reason I feel this way. The fact that, according to the best estimates, we won’t have a functional (from the perspective of most layer two developers) Eth2 until 2021 (phase 2) at the earliest, is another. (Note that this is not intended in any way as a criticism of Eth2 research. It’s a hard problem and, all things considered, the roadmap sounds reasonable to me. It’s more a question of how incremental our innovation should be–more on this in a moment.) Our inability to make decisions on controversial questions such as progpow is a third reason.
Some may have a vision for an Ethereum that’s more stable today, with few or no breaking changes. That’s not my vision. My vision is of an Ethereum that continues to innovate until we’ve achieved maturity along four dimensions, at which point the base layer should become stable, and innovation should occur at layer two and above, with two exceptions: fixing bugs/critical issues and public good issues which must be tackled at layer one. Those four dimensions are 1. scalability, 2. usability, 3. governance, and 4. adoption. In general I’m making the same case that @vbuterin made in this blog post.
To be clear, as we explored in depth in EIP-1283 reentrancy bug, we have a tacit social contract with smart contract developers today but it’s unclear what that contract is and what is considered invariant by both parties. Seeking to better understand that social contract and being more explicit about what should and should not be considered invariant would be a good start.
But I also feel strongly that, at this stage in Ethereum’s evolution, we must not shy away from innovation, even on the Eth1 chain. As I suggested elsewhere:
The two workstreams should continue to collaborate closely to ensure that, as much as possible, innovation flowing into Eth1x can be used as-is for Eth2, and that the upgrade can be performed as smoothly as possible. But the key point is: Eth1x innovation should not slow while we wait for Eth2.
With all that being said, here’s a list of experiments that we should consider attempting in the near term:
- Changing the PoW algorithm (to, e.g., progpow)
- PoS on Eth1
- Various governance strategies, including dipping our toes into on-chain governance
- Funding core R&D in-protocol via fees, inflation, and/or “rent,” i.e., experimenting with different forms of taxation.
- Finding a sustainable storage model via e.g. storage “rent” or “maintenance fees”
- Different virtual machines, e.g., Ewasm
- The various scaling technologies I outlined here
(I could keep going, and I urge others to add to this list.)
We don’t know if any of these ideas will work, and many of them may in fact be terrible, but the point is, we will never know if we don’t experiment. To me, one of the things that makes Ethereum the best blockchain is its general-purpose nature and the fact that we’re not afraid to experiment. Of course, this must be balanced against the social contract and the need for stability.
We need to find ways to run more experiments. I suggested several ways we might attempt this: