Live data from Hacker News

An off-grid social network

staltz.com

351–360 of 383 posts

Re: An off-grid social network

#351

As a historical note, there used to be quite a few very popular solutions for supporting early social networks over intermittent protocols. UUCP [ https://en.wikipedia.org/wiki/UUCP ] used the computers' modems to dial out to other computers, establishing temporary, point-to-point links between them. Each system in a UUCP network has a list of neighbor systems, with phone numbers, login names and passwords, etc. Fido…

I'm the one who brought FidoNet to Russia (Soviet Union, to be precise) in 1990. I remember how it was hard to find two more guys with modems and access to automatic international line in order to request a separate FidoNet region for USSR. Finally we got 2:50 region code in September 1990, and there were three of us - two guys from Novosibirsk and one from Yekaterinburg, both are large cities in the Asian part of USSR.

For us raised in Soviet Union, it was eye opening experience that you may freely exchange messages with people around the globe.

Re: An off-grid social network

#352
post #166

Bit of feedback: when you download the desktop application, it prompts for a desired name, image, and description. It's unclear whether this can be changed later, and I'm not yet sure whether I want to use my real identity or a throwaway. After creating an account with the default ¿randomly? generated name, I tried to use an invite obtained from http://198.211.122.115/invited which was linked from https://github.com/…

These pubs you mentioned are suffering under the large amount of traffic generated by HN and they were not designed for this load. Ideally hosting your own pub should be as easy as possible. My goal is to have it possible under a Heroku "Click to deploy" button or Zeit `now staltz/easy-ssb-pub` so that we can have more pubs. By the way, my pubs are public just because I chose to, but I may take that down if I want. N…

All pubs on the wiki are indeed overloaded. Interestingly if one sets up their own, the other pubs eventually sync with it, only the desktop client seems to be unhappy with laggy pubs. Is that by design?

FWIW, you can use pub.lua.cz:8008:@xYSW6eVu8gTS/nTSXZiH97dgKZ+wp7NkomR6WKK/PBI=.ed25519~iQ16RuvjKZqy/RhiXXmW9+6wuZNq+SBI8evG3PotxvI= if you have trouble connecting to the ones on github.

Feel free to add it to the wiki, I do plan to run it long term, but I am not a github user.

Re: An off-grid social network

#353

As a historical note, there used to be quite a few very popular solutions for supporting early social networks over intermittent protocols. UUCP [ https://en.wikipedia.org/wiki/UUCP ] used the computers' modems to dial out to other computers, establishing temporary, point-to-point links between them. Each system in a UUCP network has a list of neighbor systems, with phone numbers, login names and passwords, etc. Fido…

I'm the one who brought FidoNet to Russia (Soviet Union, to be precise) in 1990. I remember how it was hard to find two more guys with modems and access to automatic international line in order to request a separate FidoNet region for USSR. Finally we got 2:50 region code in September 1990, and there were three of us - two guys from Novosibirsk and one from Yekaterinburg, both are large cities in the Asian part of US…

Setting up links to the West was a very brave thing to do.

Re: An off-grid social network

#354

Earlier quoted context omitted.

Maybe but the person's point stands. Facebook has multiple datacenters with probably some kind of backups. It keeps things for years at a time even when it doesn't need to. It likes to because it helps the business model. Hardly anyone's pics and stuff will disappear. Compare that to their experience at home with personal gear. Many like the convenience and reliability of Facebook over their own technical skills or e…

It only takes one time of having your account locked by facebook or google and said people are automatically convinced of the obvious advantage of being in control of your own data. Same with backups, lose your data to drive failure or theft once and suddenly having a backup strategy becomes a priority. But as long as they have not been bitten once they don't care enough to actually do something proactive.

They usually resolve those with access to their data. Their computers getting trashed by malware or breaking is different. It can cost money to do recovery that might give them nothing. That concern is the more common case.

Re: An off-grid social network

#355
post #323

As a historical note, there used to be quite a few very popular solutions for supporting early social networks over intermittent protocols. UUCP [ https://en.wikipedia.org/wiki/UUCP ] used the computers' modems to dial out to other computers, establishing temporary, point-to-point links between them. Each system in a UUCP network has a list of neighbor systems, with phone numbers, login names and passwords, etc. Fido…

And this is why I'm curious why nobody yet written a social network on top of NNTP.

nobody made one[1]

[1]: https://chan.bbnet.io/

Re: An off-grid social network

#356
post #279

Earlier quoted context omitted.

> Someone who is "in" on encrypted content can observe the swarm anyway, thus gains very little from performing snooping on a DHT. I can see that this thread is getting specific to Bittorrent, and away from DHTs in general. Regardless, I'm not sure if this is the case. Please correct me if I'm wrong: * If I can watch requests on even a single copy of a single key/value pair in the DHT, I can learn some of the IP addr…

> This does not strike me as "quite small," but that's semantics. It is quite small because bittorrent needs to use some peer source. If you're not using the DHT you're using a tracker. The same information that can be obtained from the DHT can be obtained from trackers. So there's no novel information leakage introduced by the DHT. That's why the DHT does not really pose a big information leak. > This kind of proves…

> It is quite small because bittorrent needs to use some peer source. If you're not using the DHT you're using a tracker. The same information that can be obtained from the DHT can be obtained from trackers. So there's no novel information leakage introduced by the DHT.

Replacing a tracker with a DHT trades having one server with all peer and chunk knowledge with N servers with partial peer and chunk knowledge. If the goal is to stop unwanted eavesdroppers, then the choice is between (1) trusting that a single server that knows everything will not divulge information, or (2) trusting that an unknown, dynamic number of servers that anyone can run (including the unwanted eavesdroppers) will not divulge partial information.

The paper I linked up the thread indicates that unwanted eavesdroppers can learn a lot about the peers with choice (2) by exploiting the ways DHTs operate. Heuristics can slow this down, but not stop it. With choice (1), it is possible to fully stop unwanted eavesdroppers if peers can trust the tracker and communicate with it confidentially. There is no such possibility with choice (2) if the eavesdropper can run DHT nodes.

> That's not what I said. Relying on a DHT for some parts, such as bootstrap and discovery is still... well... relying on it, for things it is good at.

> Well yes, but these limits arise naturally anyway since A stores data for B on C and you can't really incentivize C to manage anything more than small bits of data.

Thank you for clarifying. Would you agree that reliable bootstrapping and reliable stead-state behavior are two separate concerns in the application? I'm mainly concerned with the latter; I would never make an application's steady-state behavior dependent on a DHT's ability to keep data available. In addition, bootstrapping information like initial peers and network settings can be obtained through other channels (e.g. DNS servers, user-given configuration, multicasting), which further decreases the need to rely on DHTs.

> About DHTs in general, you can easily make reverse lookups difficult or impossible by hashing the keys (bittorrent doesn't because the inputs already are hashes), you can obfuscate lookups by making them somewhat off-target until they're close to the target and making data-lookups and maintenance lookups indistinguishable. You can further add plausible deniability by by replaying recently-seeing lookups when doing maintenance of nearby buckets.

I'm not quite sure what you're saying here, but it sounds like you're saying that a peer can obfuscate lookups by adding "noise" (e.g. doing additional, unnecessary lookups). If so, then my reply would be this only increases the number of samples an eavesdropper needs to make to unmask a peer. To truly stop an eavesdropper, a peer needs to ensure that queries are uniformly distributed in both space and time. This would significantly slow down the peer's queries and consume a lot of network bandwidth, but it would stop the eavesdropper. I don't know of any production system that does this.

Re: An off-grid social network

#357

Hmm, the "legacy" interface to patchwork seems much nicer to me: https://www.scuttlebutt.nz/applications.html#patchwork-class... Curious what motivated the shift.

Wow, you weren't kidding, this indeed looks much nicer.

Re: An off-grid social network

#358
post #349
post #346

Earlier quoted context omitted.

6 characters, sorry ;-)

"host"... 4 characters, beats cloud...?

"Cloud" refers to a commoditized service, generally highly available / performant.

"Host" is generally less ambiguous, referring to a specific thing given the context of the discussion. It's a pronoun for machines (kinda).

Re: An off-grid social network

#359
post #345
post #243

Earlier quoted context omitted.

Speaking as an academic who studies distributed systems, my advise is to stay away from anything that relies on a public DHT to work correctly. They're vulnerable to node churn, Sybil attacks, and routing attacks. The last two are particularly devastating. Even if the peers had a key/value whitelist and hashes (e.g. like a .torrent file), an adversary can still insert itself into the routing tables of honest nodes an…

What do you think of S/Kademlia, or the invite-based DHT Persea?

S/Kademlia does not solve this problem; it simply slows down the rate at which an adversary can attack the system by a small amount (i.e. by making node ID creation more expensive and increasing a key/value pair's number of replicas).

There are several DHT papers that talk about bootstrapping DHTs off of social networks. They all fail to solve the Sybil problem in the same way: an adversary simply attacks the social network by pretending to be many people.

Re: An off-grid social network

#360
post #356

Earlier quoted context omitted.

> This does not strike me as "quite small," but that's semantics. It is quite small because bittorrent needs to use some peer source. If you're not using the DHT you're using a tracker. The same information that can be obtained from the DHT can be obtained from trackers. So there's no novel information leakage introduced by the DHT. That's why the DHT does not really pose a big information leak. > This kind of proves…

> It is quite small because bittorrent needs to use some peer source. If you're not using the DHT you're using a tracker. The same information that can be obtained from the DHT can be obtained from trackers. So there's no novel information leakage introduced by the DHT. Replacing a tracker with a DHT trades having one server with all peer and chunk knowledge with N servers with partial peer and chunk knowledge. If th…

> If the goal is to stop unwanted eavesdroppers, then the choice is between (1) trusting that a single server that knows everything will not divulge informatio

In practice trackers do divulge all the same information that can be gleaned from the DHT and so does PEX in a bittorrent swarm. Those are far more convenient to harvest.

> I'm not quite sure what you're saying here, but it sounds like you're saying that a peer can obfuscate lookups by adding "noise" (e.g. doing additional, unnecessary lookups).

That's only 2 of 4 measures I have listed. And I would mention encryption again as a 5th. The others: a) Opportunistically creating decoys by having others repeat lookups they have recently seen as part of their routing table maintenance b) storing data in the DHT in a way that requires some prior knowledge to be useful, which will ideally result in the only leaking information when the listener could obtain the information anyway if he has that prior knowledge.

There's a lot you can do to harden DHTs. I agree that naive implementations are trivial to attack, but to my knowledge it is possible to achieve byzantine fault tolerance in a DHT in principle, it's just that nobody has actually needed that level of defense yet, attacks in the wild tend to be fairly primitive and only succeed because some implementations are very sloppy about sanitizing things.

> To truly stop an eavesdropper, a peer needs to ensure that queries are uniformly distributed in both space and time.

Not quite. You only need to increase the number of samples needed beyond the number of samples a peer is likely to generate during some lifecycle, and that is not just done by adding more traffic.

> Would you agree that reliable bootstrapping and reliable stead-state behavior are two separate concerns in the application?

Certainly, but bootstrapping is a task that you do more frequently than you think. You don't just join a global overlay once, you also (re)join many sub-networks throughout each session or look for specific nodes. DHT is a bit like DNS. You only need it once a day for a domain (assuming long TTLs), and it's not exactly the most secure protocol and afterwards you do the heavy authentication lifting with TLS, but DNS is still important, even if it you're not spending lots of traffic on it.

Post reply on HN