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".
it's good to see this is finally being addressed. lack of multi-device support is the one thing that has kept me from using scuttlebutt other than poking around to check things out and it's been several years now that people have been asking for this.
I want multi-device support and a way to delegate all the feed-syncing to an always on device like a raspberry pi or a VPS. That way, when I start the app on my phone or on my laptop, I can see the feeds much faster.
sorry to rain down here but multi-device support is not a feature of metafeeds at all. It only realizes partial replication. It's equally important to grow the network but strictly distinct, all metafeeds are on the same device.
Hi, I'm the creator of Manyverse. We definitely want to be on F-Droid, the reason it's not there at the moment is merely technical. Manyverse is a beast to compile on F-Droid servers, requires compiling Node.js (Mobile) from scratch, compiling several Rust dependencies, C++ dependencies, and it's a React Native project (which comes with its own headaches). Some while ago the build broke and I've been pouring hours into it trying to bring the build back, but it's killing me. Sorry for the inconvenience
A naive semi-unrelated question - why don't cell phones support LoraWAN (or similar mesh protocols)? This sort of thing could be ubiquitous in that landscape.
Because LoraWAN was designed for low power, intermittent/sporadic communication from battery/solar operated things spread out over a wide area. It's bandwidth is limited to 50kbits/sec per channel so its design is for sending small messages. Perfect use case would be something like a farm where you want to monitor dozens of small things such as the temperature in the barn, water level in a stock tank, monitor an irrigation system, monitor soil conditions, etc.
50kbp/s is equivalent to dial-up speed. 3G was only four times faster at 200kbp/s. I wouldn't say that LoraWAN's speed is the limiting factor.
A single second of transmission (i.e. ~6kb) is about 1,500 characters in UTF8, assuming no overhead. With an average of 6 characters per word, that's still 250 words per second, more than ample for human communication.
Your comment alone, with associated HTML, is 1159 characters. The Manyverse logo on their homepage is 46K characters. Scuttlebutt's "large-hermies-dancing.gif" is 118KB.
Not including IP and TCP overhead, the Scuttlebutt handshake is 340 bytes, each message in a box stream is 35 to 4130 bytes, and the box stream finishes with another 34 bytes. There are two box streams for every Scuttlebutt communication. There are also RPC messages sent in the box stream that are a minimum of 9 byte header and 9 byte goodbye.
Transmitting a single post containing the text "Second post!" takes 563 characters, not including the handshake, header, footer or encryption overhead.
The web and social networks are far more data intensive today than low bandwidth modalities can support, especially long distance, low power RF links that would be rapidly saturated.
Restricted length text a la Twitter might be manageable. Encrypted high fidelity blockchain social networks? Not a snowball's chance in hell unless so few people are using it that nobody is saturating the link.
Edit: In North America for LoRa there are 64 125kHz uplink channels, 8 500kHz uplink channels, and 8 500kHz downlink channels. This should give you an idea of how little capacity there really is.
The scope to which I was responding was the assertion that 50kbp/s is not enough to transfer more than a handful of bytes.
You are correct that images, encryption, and blockchains are outside the scope of what a constrained connection can sustain, but that's a bit like saying "We can't power an industrial economy on consumer-owned 100 watt solar panels" which while true, misses the point.
Yes, if you're using court etiquette protocols to transmit data, you're going to incur very large amounts of overhead.
If you're using insecure low-sophistication protocols in sparsely populated areas (e.g. flyover America), then the possibilities are much more expansive. Yes, the latter by definition isn't commercially nor urbanely (viz. pertaining to densely populated cities) viable, but for certain demographics that's a feature, not a bug.
It's not 50kbps per device, I would agree that could be manageable. It's 50kbps for the each channel (of which there are a limited number) that's serving a 5-20km radius.
In addition to this, in Europe LoRa (or more specifically the 868Mhz ISM band it uses) has a legally imposed duty cycle of 1% so it can only use 1% of the available airtime to transmit.
This makes it really impossible to send anything but a handful of bytes
Very nice! But that's exactly what makes the question legitimate: why don't smartphones have this functionality, or at least the hardware to enable apps that would offer it?
Yeah - not too interested in the exact how / mapping on to existing spectrum. More interested in the why part of working out why local is not as prevalent as further afield.
So in theory one could create a web app client over this, and allow people to host their own client instances (locally, on their laptop) or to provide semi-centralised nodes.
Why? Because this would overcome the limitations of Scuttlebutt for storage and syncing on mobile devices... yet the underlying data is decentralised and individuals could always avoid the website and access their data directly.
But really why? Well the UK is busy legislating the "Online Safety Bill" https://www.gov.uk/government/publications/draft-online-safe... and I run large community websites with user generated content. The proposals place a large burden and liability on me as a UK entity involved in facilitating people talking... it's designed to address Facebook and Twitter, etc but it does not have a threshold and the Gov argument is that it should apply to every piece of user generated content that isn't a review on a product.
I have no intention of accepting the liability involved (the paperwork is fine, the liability is not fine). Instead I am planning to solve this with tech and am looking at options - which I'll select from if the bill passes in it's current form.
Specifically I'm looking to decentralise and distribute, to encrypt and avoid any central ownership or authority... to disempower myself but to enable the community. But I don't want to do this in a way that enables someone else to exert control over the communities, I'm proudest most that I wasn't a dictator so have no intention of creating one in my absence.
The thought of a decentralised and unstoppable backend is very attractive.
While it seems cool, I just think that it is kind of self-defeating?
Sure I can see my friends posts after a while, but at the same time if you really live off-grid you will probably not have a connection for a while and in these times there is really no use case for the app anyway.
I just think I am most likely to check the stuff I want to check whenever I have a connection. But perhaps I am wrong.
My understanding is that it can also exchange traffic peer-to-peer, either when two nodes find each other on the same wifi network, or ever over Bluetooth. So if a friend (who presumably follows many of the same folks you follow) comes to visit your off-grid hovel, they bring the most recent network state with them. Anything you've written gets merged with that state, and if they later go back to some other form of connectivity, it propagates that way too.
This gets really interesting if, say, you're out camping with a bunch of friends who are all on SSB. You take some photos of something you found on a hike, and post them. Your fellow campers can respond and interact, just like always, since the data propagates around the campsite. When (one or all of) you return to civilization, the whole corpus propagates to whoever else follows you, and they can see (and now participate in) the whole thing. Even if some of the folks are still off in the wilderness and their phones haven't seen a cell tower in months.
When I was in high school, I took photos and write posts on paper. Then I post them on Facebook when I got access to the internet (in timeframe of less than an hour in 2 days)
This is great, however I'm curious, how do they handle the storage size that grows overtime? and how long does it take (depending on the growth) for the app to be unusable because of the size? At some point I think it will be like crypto where you have to download hundreds of gigabytes to get all the data right.
I suppose. The chance of meeting someone who uses SSB _and_ discovering that fact is near zero, though.
This reminds me quite a bit of trying to find someone to email back in the early 1990s, before the web existed. I might be excited by the technology, but if there's no one to share it with, that dulls the excitement rather a lot.
Bingo. I played with Patchwork for a few days, but found that no matter how many people I followed or posts I tried to respond to, nobody seemed to see what I wrote, or at least, nobody responded back.
So either I was completely uninteresting, or invisible, and I couldn't figure out which to start addressing it.
Maybe I'm expected to bootstrap a group of local friends and get everyone onto SSB and then we can talk using it? But if I already know them, we can just talk on IRC or whatever we already use.
I'm missing something fundamental about how this is supposed to work.
I found this article[1] which provided this insight into the relationship between the two.
> Now, in 2021, there is a growing underground project called Scuttlebutt that is tackling the decentralized web from a different perspective. Unlike Diaspora and Mastodon, Scuttlebutt is not a product for end-users — rather, it’s a protocol (like HTTP or RSS). Decentralized social network products, like Manyverse and Planetary, are being built for end-users on top of the Scuttlebutt protocol.
If the last part of that comment is dig implying that SSB is buggy, then providing some additional details about bugs we should be aware of would be illuminating.
Also I'd be very concerned about who developed it and why, and what the EULA truly is.
If everything is decentralized, there are no records if you get threatened, extorted, or harassed on a platform, and harmful content isn't saved anywhere notable.
At then end of the day, no platform can guarantee security but they all do cost money to develop and operate and nothing comes truly for free... this we all know... There is some motive for the platform being developed, which is unclear at this point to me.
I'd rather deal conservatively and cautiously with non P2P platforms at this point just to be fully honest.
> If everything is decentralized, there are no records if you get threatened, extorted, or harassed on a platform, and harmful content isn't saved anywhere notable.
I'd take some time to read the protocol. I'd go as far as saying the protocol _is_ the contract you form with other members of the network when communicating. No centralized EULA, it's a set of policies that you must follow if you want to establish communication with another node on the network.
If you receive a message, you'll have proof you received it and proof that it was created with the senders identity (key). This proof is stored locally on your device, and is likely replicated across multiple nodes that you peer with. From the "Private Messages" section:
> Private messages are encrypted so that only certain recipients can read them. They are posted to the sender’s Scuttlebutt feed like normal messages.
> Anyone can see the fact that a feed posted a private message, who sent it (the feed that posted it), when it was sent and its size. However the list of recipients, number of recipients and message body is concealed.
If someone posts something illegal (or just not nice) on their feed, you'll have proof too in the same way. That proof will also likely be federated across multiple peers. From the "Feed" section:
> The messages in a feed form an append-only log, meaning that once a message is posted it cannot be modified. Each message (except the first one) references the ID of the previous message, allowing a chain to be constructed back to the first message in the feed.
> there are no records
I'd argue the records on this platform are more resilient than what exist today on centralized platforms.
If your goal is to track harmful content, and alert people who share your definition of harmful, this communication protocol will allow you to do that. You should be able to form communities around moderation policies.
You linked two pages with practically no data. I'll paste all relevant data from both to save others the trouble.
> Scuttlebutt can be transformative for society, decentralizing and enabling local community development free of big corp. It is a fast growing decentralized social network. As an alternative to the large corporate social networks it enables autonomy for the users and a free zone from big data harvesting...
> Secure Scuttlebutt (SSB) is a peer-to peer communication protocol, mesh network, and self-hosted social media ecosystem.[3][4] Each user hosts their own content and the content of the peers they follow, which provides fault tolerance and eventual consistency.[5] Messages are digitally signed and added to an append-only list of messages published by an author.[6] SSB is primarily used for implementing distributed social networks, and utilizes cryptography to assure that content remains unforged as it is propagated through the network.[7][8]
I gave enough context for why to follow those links (to understand the motivation behind Secure Scuttlebutt) and I think most users of this site are just as competent as you are at clicking on links. I didn’t see any reason to copy/paste from them.
Besides, that’s not all the relevant data. The person I responds to was concerned about the motives around SSB. Going to the community’s main site and seeing the summary on Wikipedia would help them discover it (or the claimed motivations).
My hesitation is also the proposition: if everything for a community is stored on my phone, does that mean one person could post something illegal and now I have illegal material on my phone even if I never clicked a link to it? That's scary.
Is this considered concern trolling? A hostile actor could send you an MMS with illegal content, leave a bunch of voicemails with illegal content, clickjack/DNS hijack while you're getting coffee.
Every time I see this (and no offense, person whom I replied to) - it smells like someone is asking how much illicit content is available and how much policing there is.
Everything can be used for evil, if you try hard enough.
I think the distinction here is that GP is asking whether someone hosting something illegal on their timeline - which you are not subscribed to, have never looked at, etc. - will implicitly end up on your phone.
Different scenario than something illegal being explicitly sent to you.
The difference with blockchains is (depending on how it is set up) that illegal content can't be removed, as it is needed to validate the blockchain (it might be OK in this case).
While I don't think it's yet come up in court, if I was on a jury where someone's defense for keeping and distributing illegal material was "we need it so we can verify our blockchain", I wouldn't accept that argument.
Scuttlebutt only downloads from people/nodes that you follow and a (maybe configurable?) small number of steps from there, so you do not download the whole network only posts by your contacts and posts by contacts of contacts. IIRC you can also block accounts which ensures their posts/data is never downloaded to your device.
related / unrelated, plugging my project that is not a ssb replacement but takes the best bits of it and turns into fully anon distributed forum called moderator. @moderatorium on twitter in case interested, take a look.
Hi, I'm the creator of Manyverse. This part definitely needs to be clarified/improved on the UX side, and we know what should be done (we had a UX project dedicated to this: https://www.manyver.se/ux-research/ ) and we'll work on it soonish (still this year according to our roadmap). SSB is an invite-based system, and this is very important for community safety, this is what makes SSB really stand apart as a nice social network.
If you, or anyone reading this, wants to join our community, send me a DM on Twitter @andrestaltz with a short comment on who you are and what you're interested in, and I'll invite you if you seem trustworthy and friendly.
I think "offline" is sort of a smell test for decentralized. The problem isn't cell coverage, it's resilience. Centralized networks can implement censorship, get hacked, lose your data, become unavailable, and have to be accessed in a particular way. With scuttlebutt, you none of those particular limitations exist, at least in the same way.
Why does it need to? Isn't that implied by the design? Non-proprietary software that doesn't need the internet to communicate. Where would the censorship fit in?
The canonical app could have filtering built in, then if either you or the other person on the end is using the canonical version, the messages would get filtered. It's very likely everyone would be using an alternate release of the client.
As possibly alluded to by fabianhjr, one of the developers of Secure Scuttlebutt quite literally lives on a boat without internet connection for long periods of time
Manyverse creator here. We're working on the desktop app and it's almost ready. I use it on a regular basis on my own desktop. Check a screenshot and progress report at the bottom of this blog post: https://www.manyver.se/blog/2021-09-update
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.