I wrote previously about visions for the future of Spacemesh. Two of the three visions I described were fairly conventional and in line with existing blockchains (namely, Bitcoin and Ethereum). The third briefly considered some alternative ideas including AI and better software. This week I want to explore the topic again but cast a wider net. I want to think even more outside the box and dig deeper.
Spacemesh has been live for a few weeks and all things considered it’s doing just fine. I think it’s where it should be in its lifecycle in terms of adoption, health of the network and of the community, maturity of the technology, etc.. (Not to say that these things are all perfect, there’s still a ton of work to do and almost everything needs to be improved, but it’s where it should be for alpha software.) I nevertheless can’t help but think ahead and wonder where it might be in a few years. Partly that’s a question of organic growth and development; partly it’s a question of which direction we choose to steward it.
I for one would be disappointed if Spacemesh turned out to be “just another blockchain” like all the rest. There are plenty of blockchains and plenty of smart contract platforms including layer two chains. I think we’re onto something unique, novel, and potentially big with Spacemesh and I’d be disappointed if it doesn’t evolve into something more than “just another blockchain,” like all the others. Here are some other things it might evolve into.
Thing #1: High Performance Compute Marketplace 💽
In order to start mining Spacemesh you need to first initialize your storage using a GPU. If you happen to have your own GPU, that’s great, you’re off to the races. But many community members and would be miners don’t have GPUs. Spacemesh is all about inclusivity and we’d like to make it at easy as possible for these users, too, to be able to start mining quickly and easily.
One way to do that is to make it easy for community members that do have GPUs to loan them out to users that don’t. The boring way of doing this would be to build an e-commerce platform along the lines of Vast.ai, Runpod, or Coreweave that lets you use your credit card to pay for someone else’s compute. That’s boring and it’s not in line with the Spacemesh ethos because it requires someone to already be enfranchised by the existing financial system, i.e., they have to have tens of dollars, a credit card, a bank account, etc.. We want people to be able to start mining with nothing other than the hardware and bandwidth they’ve already got, on any device including (eventually) a mobile phone.
It’s possible to do this as a decentralized marketplace. It could be done today but it would probably have to be built on top of something like Ethereum since Spacemesh doesn’t yet have full smart contract support. Another option is to build support into the Spacemesh protocol itself. We haven’t worked all the details yet, but the idea is that one user could establish a lien on another miner’s earnings, a bit like how a mortgage works. The lender, who provided the initial GPU access, would receive a portion of the borrower’s rewards up to a certain amount and/or a certain point in time. It’s a positive sum, win win situation, and best of all it doesn’t require bank accounts, credit cards, or fiat money at all.
The idea made me wonder: isn’t this effectively a decentralized GPU marketplace? Given that the Spacemesh network also contains vast amounts of storage (over 30 PB and growing quickly), doesn’t that mean that there’s potential to turn Spacemesh into a decentralized network for computational resources, or to build such a thing on top of Spacemesh?
I’m aware that this isn’t an easy product to develop and it isn’t an easy problem to solve. The complexity of projects like Filecoin show that the technology and the economics required to get this to work are quite complicated. But I wonder if Spacemesh couldn’t do better.
Even something as straightforward as a decentralized GPU marketplace is non trivial. You have to ensure security on both ends: that the host get paid and that their system isn’t compromised or overwhelmed, and that guests get honest, uninterrupted access to the resources they pay for. Doing that, getting the incentives right and policing the system, is a difficult problem even for a centralized network; doing it in a decentralized way would be even harder. A bunch of big projects such as Golem and iExec have tried but no one has yet succeeded or figured it out.
Still, it feels in many ways like an organic extension of what Spacemesh and its community and userbase are already doing. If we could start small and address the niche needs of our own small community, it’s just conceivable that we could build a general purpose solution that would work for AI and other high performance compute applications. The demand for those is only going to grow over time. There’s a surprisingly small number of incumbents in the market today and they’re all quite similar; there’s probably room for a fresh approach.
As I wrote a few years ago a blockchain and its ecosystem are like a desert island in economic terms. It needs to sell something of substance and of value to the world to create positive trade inflows and increase economic value. The most obvious thing that Spacemesh has to offer the world is the collective resources of all of its miners.
Thing #2: Application Platform 📱
The biggest thing that existing blockchains and Web3 platforms have failed to do is deliver usable applications (other than money) that solve real problems for everyday people, full stop. Mainstream attention is focused on things like regulation, scams, and energy FUD but this is the real story, the biggest indictment of crypto as an industry. It’s sad but it’s true. Regarding the one use case that does work and is valuable, money, Bitcoin mostly solved this all the way back in 2009, its core protocol hasn’t changed much since then, and the only meaningful money-related innovations that have come along since then are the Lightning network (built on Bitcoin) and stablecoins. (You might argue that DeFi counts, but I don’t think it has any mainstream users to speak of.)
When I joined the industry full time in 2017 it was hyper-financialized, rife with speculation, and felt like a casino. Three years later, still frustrated about the same thing, I wrote Ethereum is a Casino. I can’t believe I’m saying this today but here we are six years later and—you guessed it—it’s still mostly a casino and has delivered shockingly little else. When’s the last time you heard of a popular, usable Web3 application that allowed you to do anything other than gamble or speculate? Friend.tech (“the marketplace for your friends”) has exploded in popularity recently and—you guessed it—it lets you speculate on the “value” of friends and influencers 🤦. What an embarrassment.
There are many reasons for this. Crypto is still early, its value proposition isn’t widely understood, and it’ll take more time to mature and play out. Speculation always comes first and has a valuable and important role to play attracting capital and attention. Builders in crypto tend to be young and inexperienced, typically haven’t worked on real world applications with actual users before, and are better at chasing shiny things than they are at understanding people, problems, and use cases. They don’t have a UX or product bone in their body. And they’re more interested in numbers and in money than in people. The appalling number of grifters and scam artists that have flocked to the industry certainly hasn’t helped, and neither has climate and energy FUD.
Most of all, however, I think we’ve simply failed to give developers the right tools and we’ve failed to tell them the right story. Building applications in Web2 has become a terrible experience. It’s way, way too complicated with far too many decisions to make. It requires knowledge and understanding of dozens of disparate frameworks and protocols, which carries an enormous cognitive burden—to the point that a single human developer almost cannot keep the entire stack of even a moderately complex application in their mind. For this reason apps are enormously expensive and time-consuming to build, operate, and maintain. Building apps used to be fun but it isn’t anymore. I could go on. (I have: here, here, and here. I wrote about it last week.)
Web3 shouldn’t be a hard sell since we’re offering something fundamentally different and better! Except that it’s not actually better. We expect developers to learn new languages like Solidity (Ethereum) and Hoon (Urbit). I don’t know about you, but as a developer I’m tired of learning new languages, which is why old stalwarts like Java, Javascript, and Python will probably be with us forever. The thought of learning not only a new, radically different language but an entirely new stack of technologies and ideas is daunting and frankly sounds like the opposite of fun, all the more so because I’m pretty sure AI will be writing most software pretty soon.
And this is to say nothing of soul-crushing, UX and DevEx-destroying ideas like gas, time to finality, a proliferation of shitcoins, lack of on and off ramps and high transaction fees on the few that do exist, high gas fees, and the cold start problem, to name but a few. Granted, there have been gradual UX improvements in Web3 such as the introduction of meta transactions and account abstraction, but frankly these are lipstick on a pig. Is that really the best we can do?
It should be dead simple to build a Web3 app. In fact, it should be 10x easier than building a Web2 app. We stand zero chance of ever appealing to developers or fostering a meaningful ecosystem of apps if we can’t achieve this. And the only way we’re going to get there is by thinking seriously outside the box and getting unstuck from this suboptimal local maximum we’ve been stuck in for years. Developers might have been willing to strap in and learn Solidity and the Ethereum stack a few years ago when they could make a killing building yet another DeFi casino app, but those days are over. The total number of Web3 developers has been stagnant for two years and has fallen quite a bit recently.
All of this is to say that there’s an enormous opportunity to do better here. We’re still working on our VM design and all options are on the table. I, for one, would like to see Spacemesh ditch “industry standard” mumbo jumbo like EVM compatibility and lean into offering a radically better developer experience. It should be possible to build and deploy a basic, boilerplate Web3 app in five minutes or less without needing to learn a new stack or set of tools, and without needing to acquire mysterious coins. (Having said that, the decision about whether or not to support EVM compatibility has multiple tradeoffs and isn’t straightforward.)
We can’t build all of the killer apps ourselves, but we can do the very clever thing that Apple did with the iPhone: we can launch a platform strategy where we give the world’s best, most motivated, bravest developers the tools they need to build superpowered apps that can do things that Web2 apps cannot (such as eliminating usernames, passwords, and logins entirely), and that deliver UX and interoperability that’s totally unprecedented.
It all starts with the VM, which we’re working on. Expect more on this soon.
Thing #3: Social Network 👭
In a sense Spacemesh is already a social network. It’s a group of likeminded people who are at least somewhat values-aligned and are all working towards the same thing. We hang out on chat apps, we have inside jokes and we share memes, we share links and articles with one another, and we even hang out face to face from time to time.
Unfortunately nearly all of our interactions today are mediated by unaccountable, centralized platforms like Slack and Discord. Neither application is open source and neither makes its data portable or indexable. I find Discord particularly poorly designed and buggy with atrocious UX. The entire point of Web3 is to liberate ourselves from this sort of centralized, closed source, unaccountable application, isn’t it? So isn’t it totally hypocritical that we still subject ourselves to them on a daily basis?
The sad reality is that we all have day jobs to worry about. We’re busy people and we’re focused on building Spacemesh and the community around Spacemesh; there’s no way that today we can also build better software for communities. While I care a great deal about which software I use, and which software we impose upon our community, at the end of the day I’m a pragmatist and I don’t think we can be perfectly idealist about our software. If we were we’d literally never get anything done.
Slack and Discord are both deeply flawed, but they’re still the best we’ve got today. (Believe me, I’ve tried the alternatives and they’re worse.) We have open source platforms like Linux, Android, and Chromium, we have great free and open source software like Discourse, and even Telegram and Signal are at least partially open source. It sort of blows my mind that no one has built good, open source team collaboration software yet, despite the fact that many have tried. This speaks to what a difficult problem it is.
When something better exists, we’ll be among the first adopters. And if no one else builds something better then eventually we may have to! In a sufficiently distant future where Spacemesh is mature and sustainable I could see this being the sort of thing we attempt to tackle as a community. It’s a sufficiently Big, Important Problem.
Besides chat, one place we might start is with content. As I wrote last week, the experience of both producing and consuming digital content today, whether articles, books, podcasts, audiobooks, or music, is terrible for a bunch of reasons. For one thing content is scattered across way too many sites and services, nearly all of which are proprietary and closed. There was a brief moment when I thought an open alternative, RSS, might win, but it posed too much of a threat and unfortunately Facebook and other walled garden social media platforms killed it. For another it’s choked by ads and hidden behind paywalls and inside walled gardens. Content, like information, wants to be free. Web3 has certain superpowers that, like Napster and Bittorrent before it which also changed paradigms, might finally bring this about.
But there are more prosaic reasons: there’s simply too much content and it’s not well curated. We could build a social network around creation, curation, and hosting/serving of content. In my opinion this would be a lot more wholesome, would create a lot more value for the world, and would be more aligned with the cypherpunk ethos of blockchain than trading monkey JPEGs or shares in your friends.
Creation and curation of high quality content is a skill that requires very little training or education, as social media apps proved. It’s the sort of thing that people anywhere in the world, connected to the same value-creation network, could participate in permissionlessly. As much as I want to support independent content creators I’m not terribly interested in managing a dozen or more individual subscriptions on Substack, Patreon, and Onlyfans, both because managing subscriptions is frustrating and time consuming and, even more importantly, because there’s no easy way to aggregate that content into a single feed. If, on the other hand, it all existed as part of the same open network that allowed content aggregation and, say, micropayments, that would be another thing entirely.
Other than just being a community of people who care about something more than gambling, Spacemesh possibly has another edge here in that our miners are committing lots of free hard drive space to the protocol. While that space is currently intentionally filled with cryptographic junk, we might someday figure out how to use at least some of that space to host useful data such as content.