Congratulations, we've made it! The future of social media is finally here. After four years of development, Spasm V2 is live, enabling groundbreaking multi-signing, which allows users to simultaneously sign the same message with multiple private keys using different protocols (JSON objects) and broadcast the message to different networks.

This message has been signed with an Ethereum private key using the Spasm protocol and simultaneously with a Nostr private key using the Nostr protocol, while having the same deterministic Spasm ID. This message is propagated through both the Spasm and Nostr networks at the same time.

You can try multi-signing by clicking 'show advanced' near the 'sign message' button on various Spasm instances, e.g.:

https://degenrocket.space

https://dark.vegas

https://monero.top

Spasm infrastructure.

Spasm.js npm package written in TypeScript provides a library to standardize different event formats such as Spasm, DMP, and Nostr, into one unified JSON object.

https://www.npmjs.com/package/spasm.js

DegenRocket (used by most Spasm instances) is the main Spasm-compatible client and server implementation.

https://github.com/degenrocket

RebelNet (used by SimplifiedPrivacy) is a slightly modified derivative of DegenRocket, but it's currently based on older version of Spasm, so some features like multi-signing aren't available yet.

https://rebelnet.me

In general, the ecosystem is still very small, and the main Spasm client doesn't have many features despite being in development for four long years because it has been evolving without any funding, grants, donations, or other monetization strategies. While money could help bring more devs and increase adoption, it was not yet possible to get any funding because Spasm is developed by freemen for freemen.

Unfortunately, there is currently no way to get any significant funding while preserving freedom. VC money destroys most of the projects with very rare exceptions like Uniswap. Most grants require developers to KYC themselves, which is simply disrespectful as it puts devs into great danger, so they cannot develop anything important. Donations can rarely provide enough funds for new projects.

Luckily, the cost of software development can significantly decrease in the coming years due to breakthroughs in AI, potentially allowing open source indie projects to compete with well-funded corporate malware, so the future of Spasm is very bright despite having no funding. Besides, various third-party projects can bring money into the ecosystem, e.g., DarkVegas has recently airdropped its token to Spasm users. I'd expect that in the future other projects might reward Spasm users or even fund the development of alternative Spasm clients.

Some history.

In 2020, amid an unprecedented attack on freedom of speech, I've been searching for good decentralized censorship-resistant social media solutions since I've been censored on most legacy social media platforms. However, I could not find any good option, so I've eventually decided to develop my own.

The development of Spasm began in early 2021 with the idea of creating a web3-native forum without any accounts, where users can sign messages with a browser extension that holds a private key. Creating a new extension with a new private key would have slowed down the adoption and lower security, so it was decided to use Ethereum private keys since hundreds of thousands or even millions of users installed battle-tested web3 browser extensions like MetaMask following the DeFi Summer of 2020. The first Spasm instance supported unsigned RSS posts and DMP messages signed with Ethereum private keys.

The genesis message "not your keys, not your words" was signed on January 1, 2022.

https://degenrocket.space/news/spasmid01192d1f9994bf436f50841

In 2023, I've learned about Nostr and was surprised that devs were able to kickstart the ecosystem and onboard a lot of users with their own unique Nostr private key. It's important to understand that Nostr is at least three different things: Nostr private key, Nostr messaging protocol, and Nostr network. We got used to thinking about each social media solution as one monolithic thing due to decades of influence by traditional VC-backed platforms that try to register a trademark, expand fast, compete with other platforms, and keep users inside their closed ecosystems to monetize them. In reality, good decentralized social media solutions are modular.

Nostr private keys use solid cryptography and Nostr messaging protocol is very flexible because developers can add new features using the `tags` field without asking anybody's permission as long as those features are backwards compatible with the original protocol. That was very important for me since chances of my improvement proposals being merged into the main repo were very low due to ideological disagreements with Nostr core devs.

I've also liked Nostr network's offchain approach to storing messages, unlike blockchain-based approaches of Steem/Hive and their more sophisticated clones like Lens and Farcaster. Unfortunately, many other social media solutions that enable signing with browsers extensions chose indirect signing in order to provide users with a one-click experience, e.g., Lens, Mirror, Zkitter. Luckily, Nostr devs chose direct signing similar to Spasm's approach, which makes it very easy to distribute messages across networks and verify them.

However, since Nostr was completely detached from any blockchain, it could not utilize a decentralized blockchain to plug certain features like unique usernames, token-gated communities, and store social graph. It didn't really bother early adopters since most of them were bitcoin maxis, who are generally against tokens, NFTs, and putting any non-payment-related data on the blockchain, but it made it harder to scale Nostr beyond early adopters without sacrificing decentralization and censorship-resistance. It's kind of similar to Lightning Network, which can be used in a relatively private self-custodial way by tech-savvy bitcoiners who already run their own nodes, but the majority of regular users prefer custodial solutions without any privacy. I think that Nostr might follow similar destiny and either forever remain a niche echo chamber or become very centralized. In fact, the majority of Nostr users already use a few large relays, which improves UX, but significantly decreases censorship-resistance.

Besides, similar to all other social media solutions, Nostr is a closed ecosystem that requires the usage of a certain private key, message protocol, and network. Additionally, the majority of Nostr users don't use browser extensions, but rather interact with the network via mobile apps, which don't provide the same level of freedom as browser extensions. Even worse, the most popular Nostr app is iOS-based.

Anyway, I wanted to explain why I've chosen to integrate Nostr into Spasm, but I've ended up ranting about Nostr's design flaws. I want to emphasize that despite all the limitations and my criticism above, Nostr is still one of the best decentralized social media solutions. Most other solutions don't deserve such a detailed breakdown. Long story short, I've added support for Nostr private keys and Nostr message protocol by the end of 2023.

However, users with both Ethereum and Nostr private keys had to choose which private key to use for signing a message. Ethereum and Nostr ecosystems have different pros and cons, so it was never an easy choice. The Ethereum ecosystem has unique usernames (ENS, UD, etc.), transaction and voting history associated with a pubkey, and various blockchain-based social graph solutions (Lens, Farcaster), while the Nostr ecosystem has its own offchain social graph and some handy features like an ability to pull various user-specified account-related info. In other words, it was finally time to start working on a long-delayed transition to Spasm V2 with multi-signing.

One year later, in the end of 2024, Spasm V2 has been finally released, allowing users to simultaneously sign messages with both Ethereum and Nostr private keys and propagate the same message with the same deterministic Spasm ID across different networks. I've also expanded Nostr integration even further by allowing Spasm users to interact with the Nostr network. However, that module is optional because it significantly reduces privacy since the Nostr network is a privacy nightmare because you have to ping many relays to get all the events and it's easy to collect metadata of other users by running your own relay and listing it as a preferred relay for your pubkey.

Keep in mind that while single and multi-signing works smoothly, interacting with the Nostr network via Spasm clients is still clunky, but the UX will improve over the next few months.

Finally, why Spasm is the most advanced generation of social media?

The first generation is traditional social media (TRASH) such as Facebook, Twitter, Reddit, Telegram. These are centralized platforms without any interoperability and without any censorship-resistance.

The second generation consists of interoperable platforms such as Fediverse's Mastodon, Lemmy, Diaspora. These platforms have a bit more freedom, but they are built on old tech, so their only option to survive is to transition to newer tech like Spasm.

The third generation is signature-based solutions such as Secure Scuttlebutt (SSB), Steem/Hive, Nostr, Lens, Farcaster, Bluesky. These solutions have more decentralization and censorship-resistance, but they are still closed ecosystems because they require users to use a particular private key, message protocol, app, network, token, etc.

The fourth generation is truly open decentralized social media ecosystems such as Spasm, which are highly modular and agnostic to private keys, message protocols, transport layers, and storage infrastructure. In other words, Spasm is ultimate freedom.

Contacts.

If you want to run a Spasm instance, integrate Spasm into your app, or support the project, then you can send a message to `degenrocket` on the privacy-focused messaging app called Session. Alternatively, you can send a direct message via Nostr or create a github issue, but there are plans to move away from github to better alternatives.

Reply to this note

Please Login to reply.

Discussion

No replies yet.