Scuttlebutt (the underlying protocol of Manyverse) is the best decentralized social network I've found so far. It takes a much more radical approach than that of federation ala Mastadon, which is just centralization in miniature.
Under the hood, scuttlebutt uses multiple independent blockchains, each tied to a single user. The upside of this is that it makes for a great eventually consistent gossip protocol; the downside is that the entire chain needs to be propagated for any of it to make sense, making it a very storage-intensive protocol.
Private messaging is implemented in a really interesting way using cryptographic envelopes that are publicly gossiped, but only decryptable by the recipient — whose address is also encrypted and therefore hidden.
Personally, I'm looking forward to when they introduce a good decentralized solution for moderation. This would help keep the size of the chain smaller, and make the information you see more usable.
The Scuttlebutt Protocol Guide [0] is a really easy and interesting read, I highly recommend it.
This makes me a bit nervous for the participants though.
If I send you a private message, the message is encrypted along that private channel - but it's also stored permanently on the blockchain unless I'm mistaken.
For something like WhatsApp or Signal any possible future technology is not a concern - as long as our encrypted channel is secure right now that's good enough for what we need (TLS is similarly fine if it's fine right now). With this design, private conversations will be held encrypted forever in the chain, waiting for a day when the encryption is either broken or vulnerable to brute force (e.g. by a future quantum processor).
I realise this sounds incredibly paranoid, but with Google's Sycamore and whatever else is being cooked up in other labs, we know the tech is coming eventually. The only question mark is really over the time horizon of getting there.
We assume that a functionally useful implementation of Shor's algorithm for breaking RSA cryptography is beyond reach in the near term, but that's only an assumption, and ignores the possibility that an orders-of-magnitude-better classical or quantum algorithm for factorisation remains undiscovered.
> With this design, private conversations will be held encrypted forever in the chain, waiting for a day when the encryption is either broken or vulnerable to brute force (e.g. by a future quantum processor).
If we can make it resilient for long enough, such things will be an incredibly valuable resource for historians of the future. We just need to be sure a hundred or so years of Moore's Law isn't enough to break it.
I think Urbit solves some of the issues that remain unsolved in Scuttlebutt. When you have non-zero cost NFTs as IDs on the network you make spam a non-issue and moderation 'easy'.
Avoiding blockchain in the actual system design also gets rid of the storage-intensive protocol issue, it's my favorite approach of the attempts to pull off these decentralized systems. It's also the only one I thing could truly work at scale as a new underlying system that applications can be built on top of from those I've seen.
The ability to update code across the network and the built in incentives for infrastructure nodes (stars) are really interesting. I also think the functional OS design is pretty cool.
I never heard of Urbit, but a search returns it got funding also from Peter Thiel, which is famous (among other things) for Palantir Technologies. I'm not sure I would trust it.
The system itself is built to be exclusionary, where it has a cap of 4.5 B users. I have owned a planet for a few years now and would love to part with it, but haven’t mad much luck on OpenSea.
>The system itself is built to be exclusionary, where it has a cap of 4.5 B users.
2^32 is exclusionary? I don't see an easy way to make planets more inclusive. You could replace planets with moons (2^64 max users), then usernames need to be twice as long. Would you make the network architecture use nine-bit "syllables" (2^(9*4) max users)? Things wouldn't run so well on our 64-bit hardware.
That cap can be increased if necessary it’s just a default, the reason to have non-zero cost ids to combat spam and accrue reputation makes sense.
I don’t agree with CY’s NRX politics (or much of Thiel’s for that matter - I think he was influenced by CY), but that’s unrelated to the merits of the tech and CY left the project in 2019.
I'm a big Mastodon supporter, and I like the idea of SSB but I just couldn't manage the storage/bandwidth/latency costs on my phone. I tried out Manyverse for a few weeks a few years back when my friends were using it but it took XX minutes to sync every time I opened up the app, and posts I saw were always days old and out of date. A very annoying user experience for a mobile application and eventually I just uninstalled it. (It actually reminded me of using Google Keep, another app that regularly locks me out of my notes to do "housekeeping" every few days—at least Manyverse has a good excuse!)
>Under the hood, scuttlebutt uses multiple independent blockchains, each tied to a single user.
Now wondering why the landing page for Manyverse prominently says: "No token. No ICO. No blockchain."
It makes the downside you mention "making it a very storage-intensive protocol" more interesting, and confusing for someone trying to understand the tech stack behind it.
Maybe I'm getting some semantic distinction wrong. Each user's thread is essentially a cryptographically linked list. It differs from Bitcoin for example in that there's no change of ownership, and so no forking or input/output transactions, it's just a linear list of events. There are no gas fees or tokens, since there's no need to pay for anything, each peer voluntarily gossips information.
The description you cited is also probably more for marketing purposes than technical explication. No one wants to use a social media platform built on ETH, the experience is just horrible.
In a blockchain, blocks occur at regularly timed intervals, and are distributed globally, which is all enforced by some distributed authority mechanism, like Proof of Work. Rumor has it that Satoshi was originally going to call the data structure a "Timechain" but wanted to emphasize the cryptographic integrity feature more than the time keeping feature.
... what if you could "follow" a moderation source, the same way you choose to follow user, or a group of users? (Disclaimer: I do not know much about how scuttlebutt in particular handles any of this.) This would have the curious effect of separating the moderation from the platform; several moderators with varying opinions could make their own decisions, and the sum of the opinions you as a user have subscribed to determines the relative "trust" for a piece of content. Maybe you could choose moderators that align with your personal biases, or seek out those that more aggressively combat something you find annoying or offensive? But you could also switch those out on a whim, if your trust for that particular admin changed over time. Like, you aren't stuck with their decisions, you're just leaning on them to help you make yours.
This was very popular on Twitter for a while—tens of thousands of people subscribed to Wil Wheaton and Randi Harper's "anti-nazi/GG" blocklists using BlockTogether, and then it all blew up when people realized Wil was just adding anyone who annoyed him on social media (including using a different tool to block all of the followers of anyone who annoyed him and then propagating that), and that Randi went on a spree of blocking anyone who disagreed with transphobic author Jesse Singal. And these decisions were completely opaque—I know personally a few independent artists who ended up on those lists, who spent weeks in the dark about why their commission revenue had suddenly dried up.
I don't think the entire idea is completely unsalvageable, but I've come to believe that it's better to limit the "viral" nature of moderation decisions, at least without strong notification, appeal, and oversight—and that the more appeal and oversight you have, the more abusable by bad actors your moderation process is. it's a tough bind.
SSB is a store and forward network, so this is sort of built in. Basically, you only see posts that are within a configurable number of hops in the follow graph, and if you block somebody then you don't replicate any of their posts to your followers, so if everybody you follow has somebody blocked then you'll never see their stuff even if they are followed by somebody one hop further out.
(Default hops is 3, and most people use 3, so functionally this doesn't matter much. But if it was 5 or something, this would matter a lot. It's also sort of why people recommend unfollowing pubs once you've built up a network you trust -- because pubs will connect to anybody who requests it, so even users with no redeeming qualities who no human being would choose to follow, like dedicate griefer accounts, will end up being replicated by a pub.)
We're almost finished with a proof of concept of meta feeds for partial replication, and we're working on compiling statistics on how much will it reduce the total payload sizes during replication. For that purpose we built a network simulator to simulate replication at scale: https://github.com/ssb-ngi-pointer/netsim/
Note that what gets stored is your own posts, and those of the accounts you follow + another hop or two. If there's someone out there on the network who you don't interact with and your follows don't follow, you won't be storing their data.
Yes, I think the current central hub has around 30GB or more of data. In my mind, this is the key limitation of Scuttlebutt, and I'm not sure it's fixable. Scuttlebutt is still worth learning from though.
It should be fixable by running your own personal "server" that is always online and has a good amount of storage, isn't it? The mobile app can sync to your personal server and fetch a limited history whenever needed.
I wasn't aware of that, I'd love a link to learn more about it. But anyway, the architecture supports a totally decentralized network; Manyverse supports p2p gossip, I think across a LAN, and maybe bluetooth as well?
This limitation is a feature :) Humans are only good at forming social relationships with a limited number of people (Dunbar's number). Scuttlebutt isn't designed to connect you with total strangers, only friends-of-friends-of-friends — a social network.
My Scuttlebutt/Patchwork data is about 2-3 gigs of storage. You can also make your experience lighter by making it text only by changing the permissions on the blob storage folder to read only.
On mac it's in the user directory in a folder called .ssb
If you want to remove it i first recommend making a backup of the 'secret' file, located in that folder, as it contains your private key, in case you ever want to use that identity again. if you do delete that file you will not be able to add new entries to that original identity.
Zeronet maintain the site content by each users as shared folder, hence audience only need to sync the current state, not the entire history. Sounds more efficient than SSB
There's no site, so I don't know how this is related? SSB is a peer to peer protocol, and (aside from the UIs of most desktop implementations being electron) doesn't use webtech.
I suppose people use SSB mainly for social network, so each "site" can be the wall of the users, with posts and comments submitted by the users or their friends.
But you're right, SSB is more broad as a generic p2p message protocol (and zeronet is a generic p2p site protocol)
It seems like the storage-intensive nature of the network would limit growth -- at some point it would get too big and slow. Interesting to have this built in, it would favour many smaller networks; decentralized by design.
You only store the feeds for friends and friends-of-friends by default. So it does store a lot, but it's not outrageous amounts unless you friend everyone and join every pub.
And since each device you connect with is really its own identity, you can be more selective with your mobile devices (with constrained storage) and less selective with your desktop or server.
Last I checked (almost a year ago fwiw) you had blocks, mutes, and the ability to specify for your node how much you gossip in terms of how many hops you are away from the source.
What I'm interested in is something like the ability to subscribe to a trusted source's moderation in order to inherit their blocks and mutes, or at least to penalize certain content that is less likely to be trusted or interesting.
The problem here is how SSB is used in practice; most content is not passed p2p, but through a single hub. This isn't part of the design, it just happens to be how they're bootstrapping right now. But it does mean that number of hops is not a good proxy for actual social closeness.
Is that still the case? It was like this 3 years ago when I last tried it. Sounds like in practice SSB is just as centralized as a standard client-server network.
It's optional. There are some benefits to relying on a hub such as having the ability to follow channels of interest the hub hosts and structured similarly with hashtags on twitter.
It's only a "blockchain" in a very literal "AES-CBC is a blockchain" kind of sense: there are things that are chained. It's really a Merkle tree. No bitcoin style implications of the word here. In fact the Manyverse website says "no blockchain".
Under the hood, scuttlebutt uses multiple independent blockchains, each tied to a single user. The upside of this is that it makes for a great eventually consistent gossip protocol; the downside is that the entire chain needs to be propagated for any of it to make sense, making it a very storage-intensive protocol.
Private messaging is implemented in a really interesting way using cryptographic envelopes that are publicly gossiped, but only decryptable by the recipient — whose address is also encrypted and therefore hidden.
Personally, I'm looking forward to when they introduce a good decentralized solution for moderation. This would help keep the size of the chain smaller, and make the information you see more usable.
The Scuttlebutt Protocol Guide [0] is a really easy and interesting read, I highly recommend it.
[0] https://ssbc.github.io/scuttlebutt-protocol-guide/
Edit: clarified what Scuttlebutt is.