Whitepaper In Four Minutes - Secure Scuttlebutt (SSB)

Whitepaper In Four Minutes - Secure Scuttlebutt (SSB)




Prologue

Since the rise of the feed-based social networks and messaging giants, the Internet has become highly centralized. Most of our time on the internet is spent in one of these big internet silos. They require users to always be online and to always be sharing. With the promise of connecting everyone in the network, the silos profit from sharing their user's data and targeting them with interesting messages the users would like.

This model has helped bring the next billion population come online and educate them on how to use the internet. While it has helped a lot, there is a definite side effect of this. This model has clear privacy implications, as the users don’t have any control over the data shared in the system. Another bigger issue is that for a huge population, the silo is analogous to the internet.

Introduction

Secure Scuttlebutt (ssb) is a peer to peer protocol that can be used to build offline-first decentralized applications. Every user in scuttlebutt has an append-only immutable log that they can write to. Whenever a user is in contact with one of their friends in scuttlebutt they share all the new information they have about themselves and their friends. This is the gossip-based replication protocol that is used.

Users and Security

Each user in Scuttlebutt has a private-public key pair. The hash of the user’s public key is used for identification. It looks like

@ye+QN09iPcDJC6YvQYjoQc8sLF/IFhmNbEqgdzQo3lQ=.ed25519

The “@“ in the beginning signifies that this is a user’s public key.

Every item that a user adds to their log can be called as a message. The message can either be public or private. All messages that a user add’s to their log is signed; This is used throughout the system to verify that a message has not been tampered with.

ssb identity keypairs

The list of public messages of a user can be used to build the public feed of the user. Each user can choose which feeds/user they would like to follow. This is useful for the gossip mechanism that Scuttlebutt uses.

The private messages, on the other hand can only be seen by the parties that the message is meant for. The message is encrypted using a secret and the secret is encrypted with the public key of the recipient. This way, only the recipient can decrypt the secret used to encrypt the message. [2]

Gossip and Pub

Scuttlebutt is a slang for gossip, it is similar to the concept of a water cooler in an office.

Scuttlebutt uses gossip in the sense, other users (or 3rd parties) can relay information for you, just like how gossip is done in the real world. [3] The only difference with real-life gossip is that no data is lost or added to the information i.e no Masala (spice) can be added to the message without anyone finding it out.

It’s like all the good things about gossip, with all the bad things like misinformation taken out. [4]
 Follow Graph and Message visibility in the Patchwork client

Since all users are not always discoverable because of NAT issues, Scuttlebutt has the concept of a pub. This pub is analogous to a real-life pub where users can go to and meet each other. In a very raw sense, a pub is another scuttlebutt user which is always online and relays messages.

Beyond Social Networks

While a social network was the first area that scuttlebutt was used for, today, the community has already expanded it to many different areas. There is a working implementation of git over ssb [5], called as ssb-git. Scuttlebutt is written in node.js, so the community has npm running over ssb [6].

The community is already playing chess on ssh while talking about books on their decentralized goodreads. Scuttlebutt is a protocol and is highly modular, which makes it optimal to build different types of applications on top of it.

Join the revolution

The easiest way to get a feel of scuttlebutt is to download the patchwork client [6] and connect to one of the pubs. [8] . Once connected, start by saying hi in #new-people.

Conclusion

Scuttlebutt is being worked upon constantly and the ecosystem of applications built on scuttlebutt is growing every day. The community is built on a strong ethical philosophy [9][10] and believes in dogfooding (using what they build and eventually building on it). Mobile support for scuttlebutt is being worked on [11] and it will help bring the next billion on the decentralized scuttlebutt internet.

References:

  1. Scuttlebutt Protocol Guide
  2. ssb-keys github repository
  3. Gossip
  4. Gossiping securely is the new email - Medium
  5. git-ssb intro
  6. ssb-npm 101
  7. Patchwork
  8. List of Pub Servers
  9. SSB Principles
  10. The future will be technical
  11. mmmmm-mobile github repository

Image Source:

Read summary of a whitepaper in four minutes. Every week. On Wednesdays.
Sometimes twice a week!