Live data from Hacker News

An off-grid social network

staltz.com

271–280 of 383 posts

Re: An off-grid social network

#271
post #243
post #10

Earlier quoted context omitted.

to me it always sounds like approaches like dht are the solution but i'm having difficulties diving into it for the purpose of implementing it for my own apps. are there any noteworthy resources for non-academics to get started?

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…

absolutely. ssb avoids using DHT for these reasons (and to prove you can build something interesting without using them)

also note: DHT: hash table, BlockChain: linked list. but there are a lot more datastructures than that!

Re: An off-grid social network

#272
post #117

My friends and I have thought this through in detail a while ago, and have a few suggestions to make. I hope you make the best of it! Distributed identity Allow me to designate trusted friends / custodians. Store fractions of my private key with them, so that they can rebuild the key if I lost mine. They should also be able to issue a "revocation as of certain date" if my key is compromised, and vouch for my new key…

> Distributed identity a very nice person whom i like to call mix made a module for this recently: http://git.scuttlebot.io/%25XJz%2BcF9oIgd1eHYFGg3ycVwowLEseL...

horcrux! also found here : https://www.npmjs.com/package/ssb-horcrux

The part which splits your key is now automated and part of Patchbay. I'll build the resurrection part when someone needs it

Re: An off-grid social network

#273
post #117

My friends and I have thought this through in detail a while ago, and have a few suggestions to make. I hope you make the best of it! Distributed identity Allow me to designate trusted friends / custodians. Store fractions of my private key with them, so that they can rebuild the key if I lost mine. They should also be able to issue a "revocation as of certain date" if my key is compromised, and vouch for my new key…

you have had the same ideas as we did! this is roughly how secure scuttlebutt works.

Re: An off-grid social network

#274
post #244

Since the author didnt mention it, the original creator of the patchwork project is https://github.com/pfrazee When I used it, which admitedly was a long time ago now, the biggest setback was lack of cross device identities. So I ended up having two accounts with two feeds, `wesAtWork` and `wes`. Maybe they have solved this by now. ps. Does patchwork still have the little gif maker? Because that was a super fun featu…

Can you (or someone) clarify the difference between Patchwork and SSB? Does SSB handle the networking and discovery and encryption and whatnot, and Patchwork just acts as front-end for displaying diaries, connecting to pubs, posting and so forth?

correct, patchwork is the UI, ssb is the database.

Re: An off-grid social network

#275
post #244

Since the author didnt mention it, the original creator of the patchwork project is https://github.com/pfrazee When I used it, which admitedly was a long time ago now, the biggest setback was lack of cross device identities. So I ended up having two accounts with two feeds, `wesAtWork` and `wes`. Maybe they have solved this by now. ps. Does patchwork still have the little gif maker? Because that was a super fun featu…

Can you (or someone) clarify the difference between Patchwork and SSB? Does SSB handle the networking and discovery and encryption and whatnot, and Patchwork just acts as front-end for displaying diaries, connecting to pubs, posting and so forth?

The downvotes on replies are baffling over here. Here's what AljoschaMeyer said, and it's all accurate:

Patchwork is a user interface for displaying messages from the distributed database to the user, and to allow the user to add new messages. The underlying protocol supports arbitrary message types, patchwork exposes a UI for interacting with a subset of them. Anyone could write and use other UIs while still contributing to the same database. Patchbay[1] for example is a more developer-centric frontend. Under the hood, patchwork connects to a scuttlebot[2] server. Scuttlebot in turn is based on secure-scuttlebutt (ssb). [1] https://github.com/ssbc/patchbay [2] http://scuttlebot.io/

Re: An off-grid social network

#276
post #11

Earlier quoted context omitted.

Cross device identity is still an issue, but not a problem in the foundation. It's a matter of making client apps (like Patchwork) recognize a message of type "link this and that account together" and then your friend's app would automatically follow both accounts and render them as if they are the same thing. It'll be done eventually in Patchwork.

Is there a reason you can't just use the same key pair on both devices?

yes. 1) it would be significantly less secure - compromising either device would compromise both. Imagine an airplane with two engines that needs both to fly - a single engine plane is actually safer - because the chance of loosing one of one is less than the chance of loosing one of two, (assuming chance of engine failure is independent) Use a separate key on each device is like a two engine plane that can still fly with one engine - this is significantly safer than a single engine plane.

2) it would greatly complicate the replication protocol, having to take into account forks, rather than assuming append only, where you can represent the current synced state with a single counter.

Re: An off-grid social network

#277

Can I choose who's content I pass along? I am ok distributing my own feed, that's presumably why I am joining the network. I am not OK passing along someone else's hate speech, porn, warez, malware, spam, etc. I'd like to be able to review the feeds available and say "Yeah sure I'll pass that around." If everything in a feed is encrypted then I'd need to decide. Also yeah my brother who's feed I follow and pass may u…

Curating exercises of freedom of speech, eh? Sounds like decentralization won't lead to more digital freedom after all with attitudes like this.

yes. users actively replicate data, not passively. they have inherent control over what they pass on. If a community doesn't want to replicate your data, then go to find one that does.

Re: An off-grid social network

#278

A hipster living on a self-steering sailing boat has 600 modules published on NPM. I can't even. Seriously how could this be even more funny?!

I think of hipster as someone who follows (non mainstream) trends, goes to starbucks, loves Apple products and cannot live without Wifi. Not a hacker who builds it's own stuff and cares about privacy. But maybe the beard confuses people.

Re: An off-grid social network

#279
post #264

Earlier quoted context omitted.

> Although maintaining secrecy while exchanging data over public infrastructure is desirable, that can be achieved by encrypting the payload instead of obscuring the fact that you participated in the network at all. If I'm "in" on the sharing, then I learn the IP addresses (and ISPs and proximate locations) of the other people downloading the shared file. Moreover, if I control the right hash buckets in the DHT's key…

> Encryption alone does not make file-sharing a private affair. Someone who is "in" on encrypted content can observe the swarm anyway, thus gains very little from performing snooping on a DHT. On the other hand a passive DHT observer who is not "in" will be hampered by not knowing what content is shared, he only sees participation in opaque hashes. Additionally payload encryption adds deniability because anyone can t…

> 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 addresses asking for it (and when they ask for it).

* If I can watch requests on all copies of the key/value pair, then I can learn all the interested IP addresses and the times when they ask.

* If I can do this for the key/value pairs that make up a .torrent file, then I can (1) get the entire .torrent file and learn the list of file hashes, and (2) find out the IPs who are interested in the .torrent file.

* If I can then observe any of the key/value pairs for the .torrent file hashes, then I can learn which IPs are interested in and can serve the encrypted data (and the times at which they do so).

This does not strike me as "quite small," but that's semantics.

> There is no bumping in kademlia with unbounded node storage. And clients with limited storage can make bumping very hard for others with oldest-first and one-per-subnet policies, i.e. bumping the attackers instead of genuine keys.

Yes, the DHT nodes can employ heuristics to try to stop this, just like how BEP42 is a heuristic to thwart Sybils. But that's not the same as solving the problem. Applications that need to be reliable have to be aware of these limits, and anticipate them in their design.

> No, they should use DHT as a bootstrap mechanism of easy-to-replicate, difficult-to-disrupt small bits of information (e.g. peer contacts as in bittorrent) which then run their own content-specific gossip network for the critical content. In some contexts it can also make sense to make reverse lookups difficult, so attackers won't know what to disrupt unless they're already part of some group.

This kind of proves my point. You're recommending that applications not rely on DHTs, but instead use their own content-specific gossip network.

To be fair, I'm perfectly okay with using DHTs as one of a family of solutions for addressing one-off or non-critical storage problems (like bootstrapping). But the point I'm trying to make is that they're not good for much else, and developers need to be aware of these limits if they want to use a DHT for anything.

EDIT: formatting

Re: An off-grid social network

#280
post #36

Earlier quoted context omitted.

> But it doesn't matter because this issue is already solved. We already have globally unique usernames. They're called email addresses, they are unique by their very nature, and they are (for all intents and purposes) already decentralized. No, they're not: billg@microsoft.com depends on microsoft.com, which depends on com, which depends on the root nameservers, which are … a central nameservice. That's the whole po…

I think you misunderstand what the phrase "for all intents and purposes" means. It doesn't mean "literally, 100% true" it means "for true enough for this argument". What network does your blockchain run on? It still relies on Comcast to get to my house right? Because you want it to run over the Internet? Maybe you're using AT&T? Probably L3 is in there somewhere, but you're still relying on a centralized piece of equ…

> I think you misunderstand what the phrase "for all intents and purposes" means. It doesn't mean "literally, 100% true" it means "for true enough for this argument".

Email addresses aren't in any way decentralised. Saying they are isn't true enough.

> What network does your blockchain run on?

The product in question _doesn't_ rely on ICANN, or Comcast running to your house; it can work without either of those.

Post reply on HN