Nostr v SSB
This is part of a document I wrote up while researching Nostr on behalf of the company I work for, Planetary. I’m sharing it here because several people outside have asked to see it. These are my opnions after spending 5 years in the Secure Scuttlebutt community and 1 week in the Nostr community, so there are certainly some generalizations on the Nostr side that are based on first impressions and bias and may not be reflective of every part of the ecosystem. It’s also worth mentioning that Nostr is very young and could change significantly. Indeed it will have to if it continues to grow.
Summary
Nostr is “The simplest open protocol that is able to create a censorship-resistant global ‘social’ network once and for all.” Nostr is very young and the protocol is still in its infancy. It’s unclear whether its simplicity is naive or elegant, whether it can scale to millions of users both in technical performance and preventing spam and abuse. Nevertheless the protocol is easy to work with and has a vibrant community quickly growing around it.
The key difference at a protocol level is that SSB posts are signed and published to an ordered append-only log, while Nostr posts are just signed and sent to to relay servers. There are many other differences most of them hinge on this fact.
The main advantages it has over Scuttlebutt are:
- Onboarding is quick and easy.
- The protocol already supports editing, deleting, and ephemeral posts.
- You can use the same account with multiple devices.
- It is much easier to understand and implement.
- It has more active users, momentum, apps, and tools.
The main disadvantages it has vs. Scuttlebutt are:
- There are not yet any good systems to prevent abuse on public relays. There is no way to block or hide abusive accounts or posts in most apps, there is no standard way to report abusive accounts to relay owners, there are no blocklists being shared by relay owners, etc.
- There is not yet any good solution to preventing spam on the network. The leading idea so far is adding a proof-of-work cost to publish a message, which is isn’t a great solution imo.
- Nostr messages are unordered. This is what gives the protocol its simplicity and power, but it creates some side effects:
- You can never know if you have all the messages from a given account, even your own.
- You can’t efficiently sync messages between relays (yet). This results in awkward flows where users may not be sure where their data is or how to move it.
- It may not be obvious when a relay is omitting some content on purpose.
- Faking the timestamp on a message is much easier.
Here are some other contrasts that don’t fall clearly into advantage/disadvantage:
SSB | Nostr |
Local discourse | Global discourse |
Freedom of listening first | Freedom of speech first |
Solarpunk, anti-capitalist vibes | crypto vibes |
Slow rate of protocol change | High rate of protocol change |
Poor docs + specs | Good docs + specs |
Founder inactive | Founder active |
Emphasis on relationships + governance to solve problems | Emphasis on technology to solve problems |
Technical Feature Comparison
Feature | SSB | Nostr |
Self-authenticating data | X | X |
Identity portability | X | X |
Trustless servers | X | |
Multi-device identities | X | |
Key rotation | ||
Key delegation | X | |
Edit/Deleting Content | X | |
Peer to Peer Replication | X | |
Binary Data | X | |
Peer content moderation | X | |
Aliases for identities | X | X |
Retweets/reposts | X | |
Impossible to fork feed | X | |
Easy to add new message types | X | X |
Hashtags | X | X |
Ephemeral Messages | X | |
Published social graph | X | X |
Private direct messages | X | X |
Private groups | ||
Public groups | X | |
Emoji reactions | X | X |
Content warnings | X | X |
Web viewers | X | X |
User interaction required for relays | X | X |
Works offline | X |