1. The whole Cambridge Analytica issue was caused by APIs that are too open. For distributed systems there are more ways to exploit the APIs and gather data on users.
2. There is a clear issue with Facebook's accountability in these areas. Distributed systems are typically open source, they run on multiple servers by different owners, this leads to zero accountability.
3. GDPR compliance about deleting data is almost impossible in a distributed system.
4. Some of the problems with Facebook are more about usability and clarifying how things work to users. For instance the scandal with people giving away access to their private messages. Open source software and distributed software tends to be much harder to use.
5. Any future concern/issue will be much harder to resolve if there are thousands of different instance running decentralized social networks.
6. Using AI to detect abusive content or spot fake news is much harder if you only have a subset of the data. So it becomes harder to address those concerns in a distributed setting.
So while I think this stuff is awesome from a tech perspective, in many ways it just makes these problems harder to solve.
GP points out that in a distributed social network, 3rd parties can still mine your data, you still have trouble permanently erasing information, and in fact these problems grow instead of shrink. From a user's POV, what matters is the total amount of 3rd parties over them and the leverage they have against these 3rd parties as a whole. GP's point is that shrinking FB's power by going to a distributed social network might actually increase the total power 3rd parties have over users.
I'm not afraid that I do something stupid and people find out. I'm afraid that I don't do anything stupid, but facebook makes it look like I did. They have authority a distributed system could never have.
Also I'm not worried about someone who sells pruning shears could mine my data and find out that I like pruning shears. I'm worried that facebook only shows me adds of shitty pruning shears of certain companies. Who happen to be drinking buddies with facebook executives.
You can say that these are delusional things to worry about. But how do you draw the line when concentration of power is OK and when it's not?
* make the effort to learn how to set up and maintain your own instance of your chosen federated social app. You get to decide exactly what data is and isn't shared with the network. You don't depend on the goodwill of any third party , or their security competence (just your own).
* find a geek you know, and get them to host an instance for you. There is a third party, but it's someone you personally know and presumably trust.
* find a public instance run by a collective or organisation you trust to care about your privacy and know how to protect it, eg some people might trust the motives and competence of EFF, or their country's civil liberties organisation (eg ACLU in the US), or a collective like RiseUp.net or Disroot.org.
While export/ import of accounts between instances is an unsolved problem at present (Hubzilla can do it using Nomadic Identity but only between Hubzilla instances), the devs of all the federated apps are aware of it as a major pain point, and work is underway to implement it. In the meantime, if you're willing to go to the trouble of re-following and nagging all your followers to re-follow, you can move between the 3 options above at will. FB and other datafarms offer you none of these options.
Huh? Scuttlebutt is fully encrypted.. doesn't that make the API vastly more locked down than Facebook/etc?
> There is a clear issue with Facebook's accountability in these areas. Distributed systems are typically open source, they run on multiple servers by different owners, this leads to zero accountability.
This is no worse than Facebook though. With Facebook, your friend could steal all of the data you let them see. With Scuttlebutt, your friend could steal all of the data you let them see.
At least with this I control who sees my data, no? Sure, I can't have accountability with a friend, but at least no company/etc has access to my data.
> GDPR compliance about deleting data is almost impossible in a distributed system.
Doesn't GDPR apply to companies? If my mom sends me a physical card, do I have to adhere to GDPR laws with her address/name? How is that any different than Scuttlebutt?
Encryption has nothing to do with it. The whole issue with CA was that they (just as many apps before them) were using Facebook social graph data that was available for them to access via the API. Encryption on any layer has nothing to do with it - if you have access to the API, you get the data. In distributed system, if you are a node in the system, you have to have access to social graph data - otherwise the whole concept of social network does not work. You can't "see what your friends are doing" if there's no information about who your "friends" are. And if the nodes on the network have information about who your friends are - or can get that information - then they have the same access as CA (and many other apps before them) had. Facebook can at least (if they wanted to) cut off the external API and not tell the social graph structure to anybody outside Facebook. I don't see how this is possible in a distributed network.
If you start integrating Tor/i2p hidden services, even global passive network adversaries will struggle to figure out the social graph from network monitoring.
We don't currently allow third party apps in Peergos, and when we do they won't be able to access the social graph, nor will they be able to connect to the internet, nor anything else outside peergos. So that data can't be exfiltrated.
What data are you talking about that can easily be crawled without any permissions?
If it is that simple then maybe Scuttlebutt isn't a good protocol, but a secure end-to-end platform like this is definitely possible. And if anyone is going to build it it's not going to be a company who makes all of their cash from harvesting user data.
I guess I just don't understand what accountability there is to be even had? If I send an encrypted message to my friend, who is accountable? What are they accountable for?
If I'm sending illegal content to someone only I can be held accountable (and possibly the person I'm sending to). Is that any different in Scuttlebutts case?
As far as GDPR goes, you're right because you're specifically choosing people to send it to. However, having a mechanism to delete your messages on other people's systems when they sync would probably go a long way.
It is my understanding at the moment that it's not scientifically possible to do this. If I'm mistaken I would love to hear a proposal for doing this, but I don't understand how full read access can be revokable once you have the data and a way to decrypt it. DRM doesn't count/work.
Also, the way the protocol works is that clients discover the most recent log entry number, and then request all "missing" ones. So that delete message would be more like a "please overwrite message id 29342 with zeros or something".
From what I understand of SSB,it works by distributing messages to receiving users as part of a blockchain, making all messages effectively public, even if not published with the goal of giving the public access. But maybe similar functionality could be added by setting up private "clubs" - pub servers set up by groups of users who know and trust each other - which would play the same role as a Hubzilla hub, storing private messages and displaying them to users who can authenticate correctly.
Yeah, it is worse because if you screw up, you don't have anyone to blame but yourself.
You have complete control over your data.
No, not at all! TOR is fully encrypted, but there are somewhat regular vulnerability reports about various parts of the stack. Including criticial vulnerabilities that can and have been exploited by nation states, for example.
> This is no worse than Facebook though
This is not at all clear to me. The attack surface for Scuttlebutt is much larger, and I trust Facebook's security team to audit and patch much more than I trust any random friend.
Sure, but I wouldn't choose "a random friend" to run my FB replacement service, I'd choose a trusted friend. And more importantly, no matter how good Facebooks security team are at patching and auditing servers - THEY ARE THE ADVERSARY IN THIS CONTEXT!
How does this relate to scuttlebutt? There's no scuttlebutt “service”; it's a tool and a protocol, like a pen and the English language.
> no matter how good Facebooks security team are at patching and auditing servers - THEY ARE THE ADVERSARY IN THIS CONTEXT!
I think this is the salient point: if you send data to your friend, they necessarily have that data and can leak it; but there's no need for a stranger with unknown motives (Facebook) to also have that data.
Your friend can, but Facebook can scrutinize third-party apps. In a decentralized world, there's no one who has access to holistically examine automated access and detect shady activity. In a decentralized world, everything is essentially a third-party app.
The other thing I’ve seen a lot of people use are notifications / invites. e.g. most big gaming communities are bad experiences but you can bootstrap your friends into a better group. That seems harder to change and it’s definitely a real need.
Basically only automation & power users.
I can assure you that they don't. Anyone can have a third-party app that scavenges for private info.
See: Cambridge Analytica.
>there's no one who has access to holistically examine automated access and detect shady activity
There is. It is you. You can shut off access your data any time you want to. Yes, if you give someone access to some data, that data could potentially be out there forever but you can revoke access to your (future) data freely.
And, most importantly, the same is true for literally any platform.
One quick look at people taking screen shots of snapchat posts shows how deletion of data from a platform like FB or Snapchat is irrelevant - viewers of that data can always copy it.
About accountability: if YOU are compromised, your friends' data are compromised, and vice versa. Are you saying that the median security skill of your friends are higher than Facebook? Because any of them can leak your data unintentionally.
About encryption: it's freaking useless in this case. Remember, some people fall for Nigeria prince scam. And what happen when their keys are compromised? See above.
That's the crux of the argument: you can't guarantee that your precious friends and family can safeguard their keys (in fact, I doubt my personal security practice is remotely as good as FB or Google or Amazon or MS or Apple). In that case, by the virtual of distribution, your data is copied everywhere, waiting for any key to compromise.
1. Follow you from site to site, scooping up all the data they can on you.
2. Allowed all of that data to be accessible not just by you opening up to a bad actor app, but by any of your friends opening up to a bad actor app.
Calling it "overly open APIs" is misleading at best. The point of an API is that it is a public interface. If Scuttlebut has proper permissions controls then they wont have these problems... and because they're open source those problems can be scrutinized rather than remaining opaque.
The only solution would to be to enforce reasonable app usage in the client, and then require all your friends to use that client. That seems to defeat the purpose of a decentralised protocol.
The SSB protocol has other design goals beyond “be Facebook but less evil”; for example it works seamlessly offline.
Things I do care about:
-Open source & non-abusive client. (i.e. no tracking what users see or read)
I don't care about abusive content or fake news. If I see fake news, I just stop following whoever posted it.
So, under my criteria: decentralized > facebook
Isn't this asking for a bit much? /s
How do you know? Could you also tell me if my computer has virus, since you seem to have an oracle?
With Scuttlebutt, largely, the client controls every one of your points. Different clients (with different settings/controls) can interact with a network upon which other users are using completely separate clients, each with separate settings controlling how user data is contributed to the network. Consent is not an issue.
With Facebook, as a user, you need to agree to Facebook's strict terms to be a part of their closed network, and—largely—cannot do so with your own client with its own data-contributing settings. The only close equivalent is using something like uBlock with your own browser, but the control you have their is very limited.
I say consent is not an issue but I'll devil's advocate myself and describe a Scuttlebutt setup where it would be. Say a company sets up a normal centralised service, which you visit in your browser, sign up for a central account, and it's backed by Scuttlebutt behind the scenes. Users of that centralised service can connect to a larger Scuttlebutt network upon which other users may be using their own dedicated clients to access. Consent is an issue for that central service (which acts as a defacto client on your behalf), but not for the network at large.
How about letting people make their own decision who they want to talk to, without a third party saying “I forbid it”.
Human beings exist as part of a society--a larger organism. Imagine if a cell were permitted to send any proteins or RNA it wanted to its neighboring cells. As long as the signals are benign or simply "nuisance" level, it's fine. But if the signals subvert the very organism of which they are a part--for example, by tricking neighboring cells into ignoring programmed cell death and encouraging enlarged blood vessel growth in the area--then there is a real danger that these cells are becoming a cancer to the host body that sustains their very existence.
I think the scare-quotes you put around "service" might be to show that a communication service that silences your communication is no service at all. But isn't that true of any complex, principle-based decision? If you have a friend who says he is going to blow up a federal building, and you report him, are you a "friend"? Some principles trump others--like saving lives over sustaining friendships, for instance. In the same manner, I think there are legitimate cases where a "service" should not serve.
How that should work in practice is still being worked out--in the halls of tech companies and legislatures all over the world.
You finally got to the crux of your argument after contorting around a bad analogy. Only tech companies and legislatures should be figuring out what services we should have.
Let me tell you something. That position is the complete opposite of what Hacker News is all about.
Instead you seem to be a hurry to travel down a road that sometimes ends with the word "Statist" getting thrown around as an epithet against heretical outsiders.
> [Disparagingly:] Only tech companies and legislatures should be figuring out what services we should have.
Let's apply the same logic to non-digital goods and services: Do you believe it is fundamentally wrong for a government -- even with significant public support -- to interfere with one anonymous man's Galtian quest to sell radium toothpaste by mail?
Amazing...even after I point out his janky biology analogy, you go ahead and try one yourself. You people can't help but to double down.
Yeah, that's what I suspected, we're done here.
Government? Maybe. Private corporations exploiting the hell out of a natural monopoly? Hell no. Genuinely democratic government (which implies opt-in, or at least the ability to opt-out) sure. That's what standards bodies are for.
Unlike some here, I can see value in user protection laws like the GDPR, for the same reason I see the value in governments creating heavy disincentives for kidnapping or murder. Such laws can, if necessary, be enforced on groups running instances of federated social network software. We saw what happened when the US Congress tried to regulate a major centralized provider; a slap on the wrist with a wet bus ticket:
In your own example you alluded to cells refusing to commit apoptosis. By your analogy, it should be just and proper for people to be regularly savrificed for their state — their very lives may be required to be given up for the state to function.
I do not think we base our human societies on the law of the jungle — and certainly not on the inner workings of an organism! I doubt you are able to take this analogy very far without coming up against horrendous human rights violations.
Any regime could apply this reasoning to prevent any threats to itself arising from people discussing things.
The other points are just stating "much harder", which seems to just bring skepticism and little actionable suggestions.
I think there is a natural monopoly for some aspects of this, which is why Facebook is so hard to quit. But I don't think the whole thing need be in private, for-profit hands. Mozilla shows that a nonprofit can be a good steward of important web assets, with much stronger user advocacy than for-profit companies normally do.
Doing something like that for identity and interconnect between messaging and micropublishing providers seems much more robust than pure decentralization to me, which I expect would have the same failure mode as OpenSocial , where forces pushing toward natural monopoly are basically unchecked.
Contrast this with how well proprietary messaging platforms have been taken up and improved iteratively. Or even look at how Google is advancing GMail. Email is nominally federated, but they have circa a billion users. 44% of US adults report using it, and it's 61% of 18-29 age users.
But this sounds like the old proprietary vs open source arguments. 1. The biggest tech companies in the world have struggled to keep up with the pace of innovation in open source. 2. Scale of userbase counts but standards facilitate this by creating a network and market. 3. There is a compelling business case for having an ownership stake in your tech platform which revolves around roadmap, security, and longevity. Longevity is counterintuitive but FB can bite the dust like Myspace, and Google can go the way of Woolworths. Huge institutional brands can evaporate fast and barely leave a trace; many young people today have never heard of Madonna, David Bowie, Led Zeppelin, unthinkable to older generations.
The way to differentiate on standards is via features and service, which gmail does well (spam was the killer feature which got most using it). But just lately Google has started looking at proprietary extensions to web and mail, and it's like Microsoft in the early web all over again. We saw how that turned out, even though it was unthinkable that MS wouldn't "win the web" at the time by their sheer scale, brand recognition, and a market share which amounted to a de facto monopoly.
(And funnily enough, Google seems to make the same product mistakes as MS, where it tries to boil the ocean in an orgy of featuritis. With a subset of the tech behind Wave they could have made a great competitor to Wechat/Line etc. Look at Slack - it costs around the same, possibly more than, Office 365 or Google Apps for Business, yet does a tiny fraction. Everybody knows Slack's only real differentiator is UX and service e.g. not having to run chat servers, bouncers, search etc. Again Google could have pieced a lot of Slack together from existing components in Wave. Feels like they are very shaky when it comes to executing product and it could be their undoing.)
Who is gonna police that?
How are you gonna prevent anarchy?
Cats and dogs living together...oh my. Let me clue you in on something. In free societies there's risks and individuals make bad decisions, and we live with it. We don't need someone policing everything.
Ideally, there should only be a select few that determine which apps and programs should run for the masses. We should even control which software users have access to.. After all, giving the people too many choices leads to imminent danger on all fronts and is uncontrollable.
I'm increasingly convinced that there are a great many who relish the idea that the internet, privacy, software, and ultimately life should be state controlled, similar to China or North Korea, as long as It's their people making the rules..
It's 2018 and that would never happen though.
For starters, you say "free societies", but try to think deeper about what that exactly means. It's most likely a collection of nation states, each with its own governance and military and law. Everything around you works because of some sort of centralized authority.
Most people don't realize this--I myself who's a programmer probably would have died without knowing this if I didn't get into decentralized tech stuff--because they never needed to question why governments exist or why nations exist.
TLDR: Anarchy is likely to happen if there's no regulation. Even the Internet itself is regulated if you look into every party involved.
So within a project like Mastodon, they define goals; eg a spam-free network). Then, they theorize mechanisms to implement those goals; eg give users the ability to mute/ block spammers, and give instances the ability to boot spammers, and mute/ block instances infested with spammers. Then they code those features, roll them out, and see if they achieve the goal. Rinse, repeat. Pretty much the same process a centralized open source site like Reddit, Lobste.rs, Minds, or Yours would use.
Things get a bit more complex when Mastodon wants to federate with instances of software other than Mastodon (eg GNU Social). Fortunately in tech, we have other names for consensus and guidelines about inter-operation between different programs implementing similar features; protocols and standards. For example, the W3C Social Web EG got a bunch of folks together from projects that want to federate, and standardized a set of protocols under the name ActivityPub. Because this standard is written by people with experience dealing with Bad Actors in federated networks of their own software, they can share this knowledge, and follow a similar set of steps to those laid out above.
In contrast, FB at al are the worst of both worlds. They have total power to police anything, and the only way to hold them accountable is to abandon your data and your contacts on their platform and opt-out (thus #deletefacebook). They accrue more power and wealth the more users they have spending time on the site (abusively or otherwise), so they do the absolute minimum to hold Bad Actor users accountable, just enough to other users getting driven off the site. See how centralization doesn't really help here?
Do you really need to idiot proof everything? I'd say just let natural selection happen at this point.
I'd say people with this mindset will be the first to be eliminated through natural selection, not because they're unintelligent, but because of the belief that they're intelligent and smart enough not to fall for this. The reason is: EVERYONE can fall for anything.
Positive liberty is the distribution of responsibility to the collective (and managing/controlling the collective through central bureaucracy), negative liberty is distributing the responsibility to the individual, self organization, or stateful components in dev lingo.
Your error is that you're set on only one perspective, positive liberty, like many people in europe. GDPR is like that, instead of giving people the tools to protect themselves, and not leak data in first place, and educate them about voting with their wallets, they just take it from the individual and apply it to the collective.
That's the mindset of centralization. It's clear that decentralization efforts fail if you insist on distributing the responsibility collectively.
* ads (if using a browser that doesn't get rid of them)
* "you missed someone's birthday who you didn't even remember you were "friends" with
* look at this really popular post in your social vicinity, ENGAGE!!!
* cat/dog/food pictures
* politics of the same kind I had to ignore as a teenager, back then by mail. Sign $petition here!
* the occasional thing I give a flying fk about
This is not accidental. It is what facebook is built to do: keep you on their page, engaged.
Scuttlebutt and such don't have that incentive. Liking "Pizza" or "Justing Bieber" doesn't exist. You can like a specific post, but that's not the same as putting your entire preferences on there. The possibility to digitally model your entire family and social graph and all your preferences in the open doesn't exist, simply because... why would someone implement that? And why would they then gear the UI to reward you for doing that?
And it's not as inherently in danger of becoming an across-sites profile kept by a single entity.
I know you must be high school or college aged, because you didn't mention baby photos. Watch out. That's going to take over your feed in a couple years.
And if they don’t retain...how would it be useful to anyone when none of their friends are on it?
If there is too much friction then people simply won't adopt it
(I had more to say about this but I posted the longer version on Diaspora instead.)
However there is no global state, users only push-pull feeds of friends and friends of friends. (In part for privacy and in part for performance, you don't need to carry all the data for a social network to be useful)
> 3. GDPR compliance about deleting data is almost impossible in a distributed system.
However that doesn't apply to individuals that aren't providing a public service.
> 4. ... Open source software and distributed software tends to be much harder to use.
Yes, however there has been some exiting discussion around what UX could become possible in a decentralized context. See https://coolguy.website/writing/the-future-will-be-technical...
> 5. Any future concern/issue will be much harder to resolve if there are thousands of different instance running decentralized social networks.
There are no instances, only peers. (Pubs are sort of easy to connect to peers and there is work being done on peer discovery to outdate most pubs; they could still be used to connect communits around topics, hobbies, etc as a way to reduce the distance between peers)
> 6. Using AI to detect abusive content or spot fake news is much harder if you only have a subset of the data.
There is no retweeting/sharing, though there is work being done on Out of Order Messaging to propagate a single message along the follow graph and there is work being done on flagging/tagging feeds/ids and posts. (Along with some semantics around how to interpret the flags/tags to improve UX and user control)
Why do you draw this distinction between "instances" and "peers"? A conventional understanding of the word "instance" would suggest it means "a running instance of the software system in question", which would suggest the word has no meaning distinct from what "peer" would mean in this context. Am I missing a critical and non-obvious distinction?
> There is no retweeting/sharing
My experience is that users really like these features.
I understand why you ask this, but the word "instance" has come to mean the server running something like MediaGoblin or Mastodon (the server in a server/client model), while a "peer" is an end-user device running a P2P app like BitTorrent or ScuttleButt (that is both client and server). P2P networks have their cons, but the major pro for a network not backed by large wads of capital is that they scale as they add users. Server-to-server federated networks using OStatus, Diaspora protocol, Zot, or ActivityPub have to scale by convincing people with scarce sysadmin skills to set up more servers, and figure out how to sustain them (both organizationally and financially).
> My experience is that users really like [retweeting/sharing] features.
Sure, but that doesn't mean every piece of network software needs to have them. They are one of the key tools for abusing The Stacks; post something you want to trend (spam, fake news), get a botnet of zombie users to boost it. Given the way Scuttlebutt transports and stores posts, they would create a lot of extra overhead, and potential for abuse, for no major benefit (people can always cut'n'paste if they really want to reshare).
this is cool! could you explain more?
i thought Pubs were needed to connect with peers on internal networks, to alleviate NAT traversal issues.
what i would like to know more about regarding Pubs - but could not find any info on some time ago - is how much it will cost, more or less, to host your own Pub in terms of data transfer/storage, CPU, etc. and whether rate limits can be set to manage this.
nice to see your docs.. i have them bookmarked for later :)
Although I do agree on the fake news point you make.
Edit: It seems that scuttlebutt does support optional end-to-end encryption: https://github.com/ssbc/secure-scuttlebutt#security-properti...
That was my assumption too, but I have no technical knowledge on the subject.
If encryption was used, would that keep a rogue server admin from accessing sensitive user data?
So if you want your friends to be able to use it then you'll need a shared key with your friends.
But only the clients have the key, so the servers pushing the data around can't access it.
Edit: Check out how Keybase handles this.
There are no servers, it is peer to peer. The pubs are just easy to connect to to bootstrap new users into the social network and have been mostly closed off now that it has become more popular to avoid bad actors from abusing that easy way in.
You can bootstrap on a LAN / WAN without pubs.
These guys really have free reign and just get a slap on the wrist WHEN ELECTIONS ARE MEDDLED WITH.
We should leave their platforms in droves to deprive them of power cause it seems like even the US Congress won’t stand up to them.
What's hilarious is that the same people worried about internet driven misinformation are now the ones jumping into action because the media told them to #deletefacebook.
No, the issue was that other people had access to data they shouldn't have. there's no problem with the API being open if only the right person has access to the right data, ie, if access management is done right
1) ... on the users that have chosen to enable this
2) ... for the users that use other peoples servers or servers from disreputable people, or share to those who do the same.
3) ... and? this presumes GDPR is a good thing
4) ... it's impossible to view a list of viewed messages, perform bulk operations, flag, sort, group etc. facebook to the same level that can be done in other 'archaic' technologies such as email. presuming commercial ui's are designed for user friendlyness rather than increasing user engagement, etc. is a red herring. also, strawman.
5) much like HTML, TCP/IP, SMTP, HTTP and everything else the internet runs on?
6) which is why spam filters don't work? and users don't have brains to do this themselves?
It's a tool. The protocol sends data peer-to-peer.
Maybe people will have to start paying the market what this data is worth, as opposed to burying it in EULAs and using venture and angel funding to create a next generation data oligarchy more difficult to overcome than any financial oppression?
And if that is not what you are implying, perhaps you could explain what it is you do think we should be doing instead.
Google and others operating a crawler would have the same data as FB has today.
This is not your usual startup launch, it's a community project by multiple open source hackers. If something is missing, you can make it happen. And there are so many ongoing developments right now (see list below), that it really doesn't make sense, at this point, to point out the current problems with the protocol. It's evolving fast, and can evolve even faster if you choose to make it your own and do something about it.
Here are a couple of things being developed:
- Mobile app for Android
- Better cryptographically-verified user invites
- P2P replication over WebRTC
- P2P replication over DHT (Kademlia)
- Better scalability (Epidemic broadcast trees)
- GitHub alternative
- "Out-of-order" replication (get messages from distant friends of your friends)
- Private groups
- Moderation tools (every person as a moderator)
- Socio-technical discussion around data accountability
- New RPC stack, rewrite
- Rust client
- Go implementation
- C implementation
- Groundwork for iOS support
- Multi-devices accounts
- Scuttlebutt on Firefox as an extension
- Overall improving onboarding and docs
- Replication over Bluetooth and Wi-Fi P2P
- Web viewer
- Scuttlebutt cloud (easy way of setting up servers)
- Websites on scuttlebutt
It's a moving target
I think these ideas will change the world for the better.
Note that this repo has been sidelined, as I have fundamental issues with the protocol SSB is built on. Unless there's changes to how the messages are signed and verified, I'm not planning on putting any serious effort into SSB.
The SPKI version of a message would look something like (I've removed the hash property, because I don't think it makes sense for an object to specify the hash to be used to refer to it, but one could add it back in if one wished):
(previous (hash sha256 |XphMUkWQtomKjXQvFGfsGYpt69sgEY7Y4Vou9cEuJho=|))
(author (public-key (ed25519 |FCX/tsDLpubCPKKfIrw4gc+SQkHcaD17s7GI6i/ziWY=|)))
(content (type vote)
(link (hash sha256 |DlBH/hCmXfVzks2uY+WIll4aTzxrfBA8m/3GIdX3Vew=|))
(previous (hash sha256 |XphMUkWQtomKjXQvFGfsGYpt69sgEY7Y4Vou9cEuJho=|))
(author (public-key (ed25519 |FCX/tsDLpubCPKKfIrw4gc+SQkHcaD17s7GI6i/ziWY=|)))
(content (type vote)
(link (hash sha256 |DlBH/hCmXfVzks2uY+WIll4aTzxrfBA8m/3GIdX3Vew=|))
(signature (hash sha256 |XphMUkWQtomKjXQvFGfsGYpt69sgEY7Y4Vou9cEuJho=|)
(hash sha256 |5hHMWc1PqfrwFVfALci5JXCWqW7VC4I4iS4+Utvr44w=|)
Why do I bring this up? Obviously it's possible to make JSON be a cryptographically-sound format (either by foregoing objects for arrays, or by rules around object-field ordering, along with other rules about encoding), but using it instead of an already-sound format indicates an unfamiliarity with prior work in the field.
(previous (hash sha256 |XphMUkWQtomKjXQvFGfsGYpt69sgEY7Y4Vou9cEuJho=|))
(author (public-key (ed25519 |FCX/tsDLpubCPKKfIrw4gc+SQkHcaD17s7GI6i/ziWY=|)))
(content (type vote)
(link (hash sha256 |DlBH/hCmXfVzks2uY+WIll4aTzxrfBA8m/3GIdX3Vew=|))
Even though it's super low bitrate(1200bps/9600bps) since you have a binary foundation w/ base64 you can send raw binary to get low over-head but then easily verify+decode since base64 is well supported across a wide range of languages.
Other data formats that are ordered, and serialize somewhat more deterministically, are CBOR, Protobufs, or s-exp.
To be an alternative to facebook, it should at least do 50% of what facebook does, and it should be accessible to all.
Anything that takes more than 3 steps to get it running it's going to keep people out. And if you keep people out, you don't have a social network, at least not anything like facebook where your grandma and people you went to school with but never met (or pretend you never met) are.
Plus you need marketing, a business plan, and so much more than just code that puts people together on the same page.
I hope for a social network where the data belongs to the user, but unless you get the complication out of it... it will be just something cool but not worth the time.
It's a common mistake to attribute the success of Facebook to its features (it boils down to microblogging + threaded discussions). The usefulness (i.e. product from a marketing perspective) of Facebook isn't its features, it's the people who joined it. Look at Google+, it's not that bad in terms of features. But it lacks people, therefore it's not a competing product. A competitor would be not someone who does 50% of what FB does. It would be someone who has 50% of what Facebook has.
I use facebook only for events, groups and chat.
I am very interested in the UI/UX opportunities for training the decentralized generation how to interface with decentralized systems and manage their identities, especially across devices and contexts. This has been my biggest criticism of pretty much all of the attempts at a decentralized version of an existing mainstream web service that I have seen.
I love the decentralization community but it often feels very much like an engineer's realm, probably because it's mostly interesting from an engineering perspective. Maybe it's just who I follow, but I don't see a lot of activity in this area from user experience designers. Some collaboration could really help build a decentralized service that stands a chance of truly competing in the global space. Thus far I think it's highly unlikely the average mainstream user will convert.
What's far more compelling but challenging is open source federated social networking, which is a facebook on rocket fuel and overcomes the network effect as each provider implementing adds to a shared network. Even if it takes decades, this is going to be the inevitable model and fb will end up either joining in as a provider or do a myspace.
OK, but that's not this. Scuttlebutt is peer-to-peer, not federated. There are no servers.
I don't agree. What is the business plan of email (by which I mean SMTP, not some webmail provider)?
Of course, a protocol by itself isn't very useful. You need services using it and systems implementing and supporting it, which do cost money and require some kind of resourcing model...
Is Morse code less useful because of the lack of viable Morse code service providers?
You can use Morse code without any service providers whatsoever! Though using it to send messages solely to yourself might not be the best of all possible uses, it's absolutely a viable use.
Similarly, you could implement SMTP for yourself on paper. It might not be quite what was intended or maximally useful, but it's certainly a use. Some people might opine that it's far more useful with services implementing it widely and making its benefits available to many. I can't say they're being wildly unreasonable.
Cheap cop-out. "some webmail provider" is what runs 99.999% of email. The people who run their own email, or run off hobby email servers, are insignificant.
You can't turn a blind eye to where the majority of users are going to be if you're implementing anything that actually needs traction in order to be successful.
Federated social networks are like email: each instance is like the "webmail provider" you can pick and chose and some of them even come with their own clients and bells and whisltes.
Protocol doesn't need a business plan.
How is this so hard to understand?
Products in developed countries is much more valuable than products in third world countries.
This is such a cool thing in my eyes for parts of the world with little / no internet access. The creator of the project (AFAIK) sails around the world and, again, has little internet access. this allows him to keep people updated when he eventually does find internet.
The idea that centralized storage is the problem masks the actual concern. There is nothing inherently wrong with centrally stored data. There is a problem is when it is locked down by a 3rd party, and/or you don't control how it is used.
I'd argue that a 3rd party having the personal details and communication logs of 2 billion people is a massive problem. Privacy, governmental data requests, accidental information leakages, profiling, job applicant scrutiny, fake news, spam, data misuse by employees etc. Or even worse, in times of war.
If the store is decentralized, then any party could be equivalent to a third party, and therefore anyone has access to your data.
How is that going to work then? Every single company holding your data in a central place is mining it today and selling the information to advertisers.
On a distributed network you replicate data only with people you choose. Since you're not going to add a government (or an ad company) to your friend list, they won't have your data. Private communications are encrypted and flowing directly to the recipient, so there's no port that agencies can tap into to listen. There won't be any big data to analyze, since data is spread across the network. Backup is easy, it's just a folder. Fake news never gets promoted, since there are no paid promotions.
Spam is a non-issue since there are no advertisers. There's no way to get into your feed than through your friends. There's no server or central storage, so employee misuse is not an issue. And you can have as many identities as you choose, there won't be a mandatory real name policy.
I could go on.
That doesn't mean it has to be that way in the future though. There are centralized social networks that are charging money for their use, and they are not selling to advertisers nor are there any.
With decentralized, you still have the same issues (I don't really know how you solve those unless data transfer is truly peer-to-peer which I think causes discoverability and similar issues to usability), but at least the scope of them is inherently limited and you can opt in/out of the source based on your trust of it.
It doesn't matter how it works, the fact of the matter is that while logistically third parties are typical in today's environment, they aren't implied by centralization.
Does Amazon's s3 sell your data to third parties? No. It's still centralized though!
> Since you're not going to add a government (or an ad company) to your friend list, they won't have your data.
Except when people use things like hashbase.io because they can't afford to run the server program 24/7 themselves. Then the hashbase.io analogous service sells your data to a third party, and congratulations you've got a system that has all of the lose of distributed systems, with all of the lose of centralized systems.
If Alice wants to communicate with Bob, she shouldn't be obliged to trust Facebook too.
It's odd that we got used to the idea that "(1) registration, (2) strong password creation, (3) username selection (in case of conflicts), (4) email verification link, (5) login" is somehow a good user experience.
Cycle.js and xstream are amazing, as an aside. Thank you.
Eventually, the client will probably have a “that's also me” button, which you'll press on both devices to confirm.
Facebook isn't an alternative to email if my grandma can't use it.
Computers aren't an alternative to telephones if my grandma can't use it.
Telephones aren't an alternative to mail if my grandma can't use it.
It'll get easier and simpler, I promise.
Just because things have gotten more complicated and people have used them doesn't mean that people will start to use any complicated thing.
Google+ / Google Wave isn't an alternative to email if my grandma can't use it.
GPG isn't an alternative to talking in-person communication if my grandma can't use it.
Yes, you have valid examples where things that are relatively complex did become popular, but there are many many more examples of things that were more complicated and failed.
Just because scuttlebutt is complicated is not a reason it will succeed, but is indeed a valid reason it might fail.
Arguably it isn't FB if regular college kids can't use it. If they can subsequently onboard less tech savvy people, so be it, but that could be a future goal.
I wonder if Facebook is perhaps just not worth it.
The idea was interesting, the UI was pleasant, and I could see this working at some tech conference where people connect with each-other and there's a common pub server so people can keep in touch afterward, but I don't see uncle Joe or grandma using this thing over FB.
I really like the idea of a distributed social network, but it needs a simpler, straightforward protocol. And it needs to be free of clutter.
There should be a pub server for each real community. I know it's not the most user friendly, but it suffices that one person in a real community of friends is techy enough to set it up, and it's not that hard: http://butt.nz/install?url=https://github.com/ahdinosaur/ssb... (this tool enables you to install your own server with a few clicks)
if you want to setup your own pub, i made an automated Digital Ocean installer (also a detailed manual) for a Docker-based pub: http://github.com/ahdinosaur/ssb-pub.
i'm also working (with funding from #ssbc-grants) on a hosted pub-as-a-service product: http://buttcloud.org.
curious to know about your experience with that.
also is there a way to set rate limits?
I'd really like to have a decentralized offering, but unless it provides the key features Facebook does, like the timeline, newsfeed, groups and pages, it'll be a very hard sell to get others on board.
I much prefer the DAT protocol, which has mutability built into its assumptions about how people will use it.
I know you could do the same thing with an immutable protocol, but Scuttlebutt is a perfect example of why immutability shouldn't be the default. Try deleting something you put on there and maybe you'll see why. I couldn't figure out any obvious way to do this. I'd imagine that's because nobody has coded the "mutability feature" for deleting posts.
Mutability needs to be built in. You shouldn't have to reinvent the wheel (mutability) every time you need it.
Beaker Browser/DAT is a much more interesting decentralized experience in my opinion.
You seem to misunderstand https... for one, it doesn’t hide your visit to that site from your ISP; they know the IP address you visited, and due to SNI, they will even know the domain. The point is to make sure you are connecting to the site you think you are connecting to.
A website only needs to require you to login if they want to make sure that you are who you are and/or to prevent others from accessing information that you have shared with that website.
A plain HTTP site which is merely informative is perfectly reasonable.
Given the almost-no-cost of the choice, why default to the less-secure alternative?
Do we even need social networks anymore?
Shockingly, it turns out the world includes people whose habits and preferences differ from yours.
For one, forum communities tend to be focused on a relatively small group of people in that forum.
Twitter, Facebook, etc., tend to be fully global with the idea that anyone can access anyone else. Presence of media, I think, also matters a lot. On many forums media exists, but is not visible to unregistered users. There's an aspect of "you join or you're an outsider, and if we don't like you we can make you stop joining".
I don't know if I can straight up define it but there seems to be some fundamental difference between Facebook and your random hardware forum.
We don't need those lame squares and their dank memes.
What's new/different here over this and other efforts?
ScuttleButt is peer to peer, somewhat like torrents but for data feeds.
I know that doesn't make it not p2p, but reading p2p makes me think I need direct connections with peers. Gossip is sort of nifty that way.. though I'm not a fan of semi-centralized redirect servers.
Spin up your own relay, generate some invites for your friends, and share all of your gossip through a server that you control yourself.
That's a weird argument - it doesn't even make sense no matter how you look at it.
1. Security is more or less centralized as per core code and core protocol.
2. Why do you imply big monolith is secure than a small instance? Where's the logical connection in that?
If it's federated, it means thousands of accounts are likely going to live on each server - and many of those servers will be easy to hack. It is in that sense the facebook does a better job securing it (and they have shown that they can do opsec) -- not any theoretical "centralized vs distributed" argument.
curious what thoughts on this are.. could it be incorporated wit SSB (or Dat Project for that matter), or fundamentally different (ActivityPub is also federated, but doesn't have to be.. though i'm no expert on this).
Friendi.ca and Hubzilla can already interoperate with Diaspora using the Diaspora protocol. Here's a good guide to the current landscape of free code, federated social networks here, and which protocols each app supports:
- Providing a "secure" system in nodejs (it does not matter how good your crypto code is I I can poison left-pad)
- Bad privacy behaviour: you can follow anybody, limited ability to have private/friend-only messages.
Added, thanks and thanks!
The problem with Facebook is that it holds way too much personal information about a person - phone numbers, emails, a person's likes/dislikes, hometown, current location, etc, and because society has been 'programmed' to share so much about themselves, no thanks to social networks like Facebook that promotes building your 'profile'.
In fact, strip away all that personal information and have people share their thoughts and their dinner photos and what you get is just Twitter, Instagram, Snapchat or a blogging platform.
A decentralized alternative to Facebook will not solve the problems Facebook has because in the end even if you own the private key to your own data it's up to you if you want to share your data with someone or an app, and once you've done that to a malicious party, your social network is compromised. And as some have pointed out in this thread, a decentralized and open source alternative would be worse.
In the end, it's up to the individual to be smart about what to share and what not to share, and reveal as little about themselves as possible rather than parade it all out to the world or to their 'friends' list. All it takes is for someone not too technical to download a hacked 'client update' to their decentralized Facebook alternative to have everything they thought to be secure be leaked out.
An alternative that promises to be more secure than what it's replacing is just asking for more complacency. I'm sure we thought Facebook was extremely secure at some point, so why not share everything?