I wrote last week that Spacemesh is about to launch, and the big question on everyone’s mind—well, the one besides, What’s the first bug that’ll crash mainnet?—is, What does Spacemesh want to be when it grows up?
Let me say upfront that simultaneously making sure Spacemesh is as ready as it can be for genesis in a matter of days, while also thinking very long term and figuring out what it should be when it grows up, is extraordinarily difficult. There’s some tension between these two goals. The first means making sure we’ve run the most robust tests we can run, making sure the infrastructure is well designed, well built and battle tested, etc. It means fixing bugs and doing everything we can to get across the finish line, even if that means temporary fixes that’ll require upgrades later.
By contrast the second goal means we need to make sure we don’t do something dumb today that will be difficult to change, upgrade, or improve later. It means we need to chart a course for our team, our community, and our investors, and more generally we need to set the tone of our community, make it clear which sort of use cases we’re excited about, etc. Any one of these tasks is already a full-time job; doing them all at once is a massive undertaking, one that a team less capable than the incredible Spacemesh team would not be able to handle.
Recently I’ve felt torn between these two competing mindsets. There’s what feels like an infinite amount of work still to do to prepare for genesis. There’s so, so much more that we can and should do: testing, documentation, tooling and infrastructure, communications, and improving processes and writing better code, just for starters. But this is really, truly just the beginning. Spacemesh will really be a newborn when it first emerges into the world. It has a very limited set of features, its security model, while theoretically sound, is anything but battle tested, and of course the landscape of blockchain infrastructure, layer ones and twos and rollups and everything else, is increasingly complex and diverse (more on this below). The list of tools, technologies, and options is growing and evolving rapidly and the goalposts are moving very quickly. It was enough three or four years ago to say that our VM strategy was “EVM compatibility” or “a Wasm runtime.” To say the same thing today sounds embarrassingly quaint and behind the times. Even very well funded projects struggle to attract attention, applications, and adoption. All of these are reasons that Spacemesh needs to think big, long term, and outside the box.
Nevertheless the time to make these decisions is now. A roadmap is important not because we’ll ultimately adhere to it—the long term fate of the protocol is anyway in the hands of the community—but because it’s an important exercise in its own right. We don’t control the ultimate destiny or direction of the protocol, but we do control both the initial configuration and, probably even more importantly, the initial values and constitution of the ecosystem that launches the project. In other words, while a parent doesn’t control their child’s ultimate destiny, they do have a great deal of influence over the child’s values and their initial direction. So having a roadmap is at least as important as having working code.
Here are three directions I think Spacemesh might go, and the tradeoffs associated with each.
Thing #1: Like Bitcoin, but Better
I have to be careful with how I phrase this. I alluded to it last week when I said that, at genesis, Spacemesh will be like Bitcoin, but better, in the sense that it will be money and not much else in the beginning. Bitcoin is already pretty great. It has more or less one job—to be money outside the hands of the state—and it does that job pretty well. It’s been doing that job well for well over a decade now and is by far the most battle-tested blockchain and cryptocurrency. There’s a large graveyard of projects (and forks) that claimed to be a “better Bitcoin,” and that may have innovated along one dimension but failed to see the others or understand why Bitcoin has been so successful. Saying you’re going to do what Bitcoin does is one thing; running in the wild without being successfully attacked or taken down for over a decade is another thing entirely. Bitcoin doesn’t need your help, and it doesn’t need my help. It certainly doesn’t need Spacemesh, not at this stage. Perhaps the right phrase is, “Spacemesh could become a thing like Bitcoin but better in some specific, important ways.”
While there’s not a lot I would change about Bitcoin, it’s not perfect, either. And more to the point, even if you imagine that Bitcoin is perfect, the world is changing and what works well today might not work as well in a year or ten or a hundred. Things need to evolve to stay relevant and competitive. Contrary to what many Ethereum folks might say, I think Bitcoin has done a pretty good job of evolving and staying relevant up to this point, within the bounds of its social contract. But it does show signs of weakness along several dimensions including economics and technology. It’s not clear how well Bitcoin’s fee model will work once mining rewards taper off after a few more halvenings—although recent developments provide some new hope. And it’s unclear how competitive and relevant Bitcoin will remain, for how long, against the landscape of rapid iteration and evolution that’s happening in Ethereum and in the space more broadly. Bitcoin has experienced pretty severe brain drain lately and the community (to the extent that such a thing even exists) tends to be hostile to newcomers and OGs alike.
Other things being equal, I wish I could take Bitcoin, keep its security model but reduce its energy consumption by 99%, and slow down and spread out its issuance. To be clear I wouldn’t do it on the live Bitcoin network, at least not at first. I’d do it on another, similar network, where these ideas and technologies could be battle-tested, before I’d consider deploying them to Bitcoin itself.
This is one way I see Spacemesh evolving. It could be a version of “Bitcoin 2.0” with many of the same values and guiding principles but more up to date technology and better economics (and, hopefully, a healthier, more welcoming community). Sort of like the thing Satoshi would have built if he were building Bitcoin today with all the knowledge of the past 15 years. With luck, Spacemesh will work and some of the ideas and technologies it’s pioneering, like proofs of spacetime, might be adopted by Bitcoin in a hypothetical distant future where Bitcoin faces existential challenges and needs to evolve. In any case I don’t believe in stagnation, and no matter how good Bitcoin is today I don’t believe Bitcoiners should ever rest on their laurels and declare the project complete. That might be possible for something like a VM but it’s not possible for a social system as important and complex as global money and a global truth machine. Innovation and experimentation are critical, and Spacemesh will balance these against other important Bitcoin-aligned values like security, stability, and credibly neutrality.
In this version of the future, Spacemesh might choose to focus on the money use case at the expense of a more full-featured VM. It might worry less about transaction throughput and instead choose to outsource more complex use cases to rollups and other L2s. This is a simple, well-understood roadmap, well trodden by Bitcoiners, but the downside is that by embracing this strategy Spacemesh might end up not satisfying either Bitcoiners (who could misunderstand and view the project as a threat) or Ethereans (who might feel that it’s not cutting-edge enough and doesn’t offer enough DeFi bells and DAO whistles). It’s also a somewhat backwards-looking, anti-innovation stance and by adopting it Spacemesh might quickly find itself behind the times and struggling to attract both developers and users.
Thing #2: Like Ethereum, but Better
Comparing anything to Ethereum is hard for a couple reasons. The first reason is that the Ethereum ecosystem is vast and complex—significantly more so than Bitcoin’s. “Ethereum” can refer to many things: the ecosystem including many related projects and chains, the Ethereum protocol itself and the various client implementations, the core EVM standard and related tooling, or the ecosystem of other projects and chains that implement, utilize, or rely on EVM in one fashion or another, to name but a few.
The second reason is that Ethereum is a moving target. One must consider Ethereum as it was, as it is today, and as it will be. Each of these is different. Ethereum started out as a monolithic layer one blockchain that provided both consensus on data availability and execution. Today, it’s two chains, one that provides data availability and one that provides execution. The future is even more complicated but the main thrust of the current roadmap is fundamentally data availability for an ecosystem of rollups, to which Ethereum will outsource the vast majority of execution. On top of these one might also consider Ethereum as it might’ve been in an alternate reality, before it pivoted away from the previous, shard-centric roadmap to one that’s rollup-centric instead. In this reality Ethereum would’ve been a family of shard chains that exchange data and share a trust model and security. These chains to varying degrees would be homogeneous (EVM-compatible shards) or heterogeneous (many different “execution environments” that somewhat resemble today’s rollups). This last model, in particular, should sound a lot like Cosmos and Polkadot.
Each of these models has its advantages and disadvantages. The monolithic model, today exemplified by Solana, is the simplest and provides the best performance since consensus and execution are tightly coupled. It has the advantage of composability but it’s inflexible and has limited scalability (for more on this tradeoff, see this talk). Ethereum’s dual-chain model is a hybrid, a step on the path towards Ethereum’s rollup-centric vision. It’s more flexible than the monolithic model, separating the specialized duties of consensus and execution, but it provides few of the upsides of a truly modular model (such as, e.g., being able to plug multiple consensus engines into a single consensus and data availability layer). The direction Ethereum is heading, the modular, rollup-centric roadmap, provides enormous, theoretically unlimited scalability and a great deal of flexibility, powering many heterogeneous layer two ecosystems (including optimistic and ZK rollups, and other types of side chains) at the cost of complexity and the loss of atomic composability. This is very similar to the Polkadot model in that there’s a single trusted base-layer chain (in Polkadot it’s known as the Relay Chain), as opposed to the Cosmos model where each chain is sovereign and they do not share security or rely on a single base layer chain as an anchor of trust. The devil’s in the details with respect to the tradeoffs among these models, and the differences are mostly down to economics and security: where individual chains or the entire ecosystem get their security, how much and whom they pay for that security, etc.
There’s already a thriving ecosystem of second- and third-generation smart contract blockchains experimenting with all of the main areas of this design space. It’s not obvious to me which of these is the winner, and in any case there will be multiple dominant models that emerge for different types of applications and different use cases. It’s also not immediately obvious to me which model makes the most sense for Spacemesh. This is one reason it’s such a difficult decision: there are many options with no clear winner.
The point is, I don’t expect Spacemesh would be a “better Ethereum” (or Cosmos, or Solana) just by picking a different point in this design space. Regardless of which point Spacemesh does pick, there are a number of smaller things Spacemesh might improve upon. The most obvious one to me is developer experience. Building decentralized applications on modern blockchains including Ethereum is still much harder than it should be, and harder than it needs to be. A better VM and better tooling, and a better, more holistic application model, inspired by projects like Urbit and the Blockchain OS would go a long way towards improving this. Of course, any departure from EVM would mean limited compatibility for existing code and tooling, which are obstacles that would need to be overcome.
Another is improving upon existing rollup designs: while projects like Arbitrum, Optimism, and various ZK-EVMs are making great progress, without exception none has yet succeeded in shipping a decentralized sequencer (the “sequencer failure” column in this table is depressing). By enshrining a rollup in the protocol and having layer one miners act also as a decentralized network of sequencers, Spacemesh could improve upon existing designs. This might require a tradeoff in terms of scalability but it’s too soon to say.
Thing #3: Something Completely Different
It should be pretty clear that I’m not in love with either of these possible paths. Frankly, I don’t think Spacemesh should try to be a better Bitcoin, a better Ethereum, or a better anything else. Spacemesh will succeed or fail on its own merits, by charting its own course and defining the criteria by which it will be judged.
Why is it so hard to escape the existing blockchain paradigms, as described above? When you’ve been in a particular industry working on a particular platform or set of tools for long enough, you develop certain patterns of thinking. You frame things in terms of what you already know and understand. For the past six years my world has been blockchain and cryptocurrency, and specifically VMs and smart contract platforms like Ethereum. To a hammer everything seems like a nail, and to an Etherean everything seems like a coordination problem that can be solved with another token or a better smart contract. By and large, this is also the frame through which Spacemesh has been conceived, designed, and developed these past five years. It’s the frame for the first two things, above. But as we chart the course towards Spacemesh’s future I think it’s important that we break out of this frame.
The problem with the frame is that it presupposes that the world needs things like coins, tokens, blockchains, smart contracts, and global consensus. Those things are exciting ideas and they’re potentially useful tools and technologies that have certain (albeit limited) use cases but they’re not the right place to start. The right starting point is always problems to be solved.
What problems are existing blockchains solving?
Bitcoin solves real problems and creates enormous social value. The case for Ethereum is a bit more complicated. I wrote a few years ago about how on a good day Ethereum feels like a crowded shitcoin casino; on a bad day, it feels like an empty, expensive shitcoin casino (a bit like the ones in Decentraland). In some ways the situation has improved a bit. Valuable primitives including DAOs, stablecoins, and NFTs have emerged and gained popularity. All are socially valuable and all are nearly impossible to develop on Bitcoin (although as mentioned above that may be changing). The most generous interpretation of Ethereum is that it’s an operating system for building better human institutions using tools like decentralization, censorship resistance, and cryptoeconomics (i.e., better incentives). In reality, however, the largest use cases by far still involve token trading and speculation. Over the past few days gas prices on Ethereum have been higher than they’ve been in a year because of… you guessed it, meme coins.
What social problems remain to be solved, that can be addressed by blockchain technology and the sorts of things we’re building, but that aren’t well served by existing platforms like Bitcoin and Ethereum? Well, for one thing, money is still not completely solved. Bitcoin is a huge step in the right direction, and stablecoins on Ethereum improve upon this in some ways but introduce huge risks and downsides as well. Given the state of fiat money and monetary policy globally, the demand for better digital money is infinite. One way to conceive of Spacemesh is as a socio-economic experiment: a machine that motivated, technically-minded young people around the world can use to literally mint money for themselves and their families. In this respect it’s like a form of digital UBI for open-minded, curious folks with a decent computer and an Internet connection. It’s not dissimilar from how Bitcoin and Ethereum started, although it’s designed to be more sustainable in this respect. I’m not sure this experiment has ever been tried and I’m not sure exactly where it will lead, but I believe it’s worth trying.
Another problem to solve is software itself. The modern software stack, the architecture we use when we build applications, is beyond dystopian and is full of dark, hostile patterns and UX antipatterns. It’s far too complex and far too fragile. I don’t have the space to go into details here, but I’ve done so before. Blockchain and adjacent technologies including P2P networks, deterministic virtual machines, atomic transactions, etc. represent a radical paradigm shift in how we conceive of and architect applications. Having said this, blockchains have been around for 14 years and P2P applications like Bittorrent for more than 20 years, and they’ve barely moved the needle in terms of the architecture of the applications we use day to day such as email, messaging, social media, etc. I still believe strongly in the power of decentralization—both politically, in terms of how apps are built and governed, and logically, in terms of where they run and store data—but we have a lot of work ahead of us in building better, faster, more usable decentralized apps. Spacemesh has a role to play here as well, and technologies like WebAssembly in combination with global networks like blockchains offer a better alternative.
Finally, one can’t talk about software or even society for that matter in 2023 without addressing the elephant in the room, AI. The technology, or at least usable applications built with it, are still in their infancy. However, designing and developing the right substrate for AI to thrive and be useful, and to contribute meaningfully and safely to applications including money and software, represents an enormous opportunity and, equally, a threat to incumbents. I’m worried about the architecture and governance of AI applications for the same reason I dislike nearly all Web2 applications today: it’s overly centralized and unaccountable. What would a substrate for a global, decentralized AI network look like?
These are some of the high level ideas I’m thinking about when I think about what Spacemesh might want to become when it grows up.