Isn't that exactly the problem ipfs is attempting to address. What kind of solution do you want and why does this one not work for you? It's easier to discard someone else's idea than it is to evaluate it's merits. I'm not sure this is the solution but it looks interesting and it appears to interoperate with the existing Web via gateways even though the author does not make this clear early on in the documentation.
We've had the web for twenty years now, and are just beginning to understand what it is and how it changes the world. If you're suggesting using IPFS (or any other system) as a way to expand and grow the web, I'm with you. But replacing the web means throwing out a lot of hard-won experience and intuition, in favor of a system that's bound to have its own issues down the line.
Also HTTP isn't going away.
Can you imagine ways there could be less of it?
I'm so lost at this assertion. How is this a social / political problem?
IPFS is not permanent hosting. It is not an attempt to take power away from others and distribute it to the masses. It is purely a technical problem, which i think is objectively true.
I have a feeling that you believe IPFS is partially designed to subvert governments/etc. And to an extent, that may be possible, but it is being built with DMCA's in mind. IPFS wants to allow governments / copyright holders to take content down from the network. It is not trying to become a pirate haven. Why? Well, mainly because piracy inhibits adoption. There may not be a way to DMCA currently (i haven't checked in months), but there are Github issue(s) on it. The creators don't want to see IPFS blocked in countries because it can permanently host illegal content. Which makes a ton of sense.
The problem IPFS is trying to solve, as i see it, is purely technical. As advertised in pretty much every pitch i've seen for this technology, we are simply scaling too fast in storage and not fast enough in bandwidth. It appears impossible to handle the infrastructure load of files we are creating. IPFS solves this by automatically pulling content as locally as possible, reducing network overhead. Furthermore, it means that a DDOS/viral/etc of a central resource will not kill it. It's safely and mostly permanently (barring DMCA/etc requests) available.
So with that said, what political and social problem do you see IPFS trying to solve? I don't see any.
"The Internet has been one of the great equalizers in human history and a real accelerator of innovation. But the increasing consolidation of control is a threat to that.
"IPFS remains true to the original vision of the open and flat web, but delivers the technology which makes that vision a reality."
This presents IPFS as the technological cure for the "consolidation of control" that threatens the Internet.
These are not purely technical problems.
The technology and the marketing seem at odds, to me.
Really? The number of BitTorrent users is considerably greater than the number of IPFS users, so surely the exact opposite is true.
Maybe a piracy platform build on top of IPFS could be its killer app.
Eg, for a long time BitTorrent was being branded as a pirate haven. The only major players i saw adopt BitTorrent were open source projects needing to distribute large ISOs. IPFS is something that they're trying to get into standards, into browsers, into operating systems, etc. If it's known for distributing kiddy porn on the dark net it will be much more difficult.
I know piracy spreads like wildfire, but it's not really the target audience for what IPFS is trying to do. In short, they want YouTube, not PirateBay. Or so i gather, at least.
Do you disagree?
You can't go downloading and seeding random hashes if this exposes you to criminal charges and/or law suites.
Any nodes on the network which abide by this will simply not download and/or unpin the data.
It doesn't prevent you from downloading some kiddy porn that a stranger sent you.. but neither does the internet. This, is purely to allow law to take place, and hopefully allow lawmakers to work with IPFS, and not block the whole damn thing.
Not that this central authority will solve this issue either. It just opens another can of worms.
Who will review claims and reports? Who will be authorized to add hashes to the blacklist? How will counternotices be handled? How will different juridistictions and conflicting laws be handled? Who will be liable for content that makes it past the filters? Who will pay for all this?
The world is a messy place and IPFS does nothing to protect its users.
I'm a bit confused, why is it the job of IPFS to "protect its users"? IPFS has no liability here, it's simply trying to make IPFS a law-abiding software as a whole. So it is not outlawed.
IPFS doesn't have any reason to "protect" me from things i download anymore than HTTP or TPC does. It's a technology for localizing data. What makes you feel IPFS has to protect its users?
It sounds like you think IPFS somehow spreads files onto your system without your consent. You only download what you choose to, just like with HTTP/TPC/UPD and the whole tech stack.
IPFS changes nothing for your personal security. It's not intended to. It's a technology to lower bandwidth usage from the production of mass data in the current age. And in regards to it being ironic for having a central authority, - sure - but the problem is bandwidth that IPFS is aiming to solve is, not law and/or DMCAs.
IPFS must have some seriously bad marketing (i blame the whole "good for humanity angle"), because i feel like you and a lot of people have the entirely wrong idea about IPFS. It's a technology, nothing more.. especially in it's current form. The only thing it might "save the world" from is bandwidth, lol.
The creators of IPFS may not have any liability, but they open up its users to severe issues of liability due to the way it operates.
IPFS will become toxic real quick, if it becomes know that IPFS can make you an unintentional distributor of kiddy porn and pirated content.
The core problem is that IPFS' default mode of operation is actively user hostile. This is a big problem, and the reason IPFS needs to protect its users. IPFS not only leaks what you retrieve, it also makes you an (unknowing) distributior of everything you retrieve. All it takes for you to commit a crime and/or copyright infringement, not only as a consumer but also a as a distributor, is to be tricked into retrieving one hash.
In conclusion, IPFS needs not only to not be outlawed, it also needs to be safe to use. As it is IPFS is not safe to use. Hence IPFS needs to do something to become safe to use, i.e. to protect its users.
Yea, this is where you're mistaken. It cannot make you distribute anything! You only distribute what you download. Don't download kiddy porn, and you won't distribute kiddy porn.
> All it takes for you to commit a crime and/or copyright infringement, not only as a consumer but also a as a distributor, is to be tricked into retrieving one hash.
That is fair - but the same could be said for every p2p system on the planet. Has anyone solved this problem? How does BitTorrent protect me from unknowingly downloading kiddy porn?
Oh, really?
"In some cases, nodes must work for their blocks. In the case that a node has nothing that its peers want (or nothing at all), it seeks the pieces its peers want, with lower priority than what the node wants itself. This incentivizes nodes to cache and disseminate rare pieces, even if they are not interested in them directly."
https://github.com/ipfs/papers/blob/master/ipfs-cap2pfs/ipfs...
What's to say BitSwap won't proactively decide to download and start seeding some rare pieces of kiddy porn?
> You only distribute what you download.
As if that wasn't bad enough.
> Don't download kiddy porn, and you won't distribute kiddy porn.
How are you to know if a hash contains kiddy porn or not?
You need to know if the hash contains kiddy porn before you download it, but to know if it contains kiddy porn you have to download it. Classic Catch-22.
The only rational response to a system like this is not to use it.
> How does BitTorrent protect me from unknowingly downloading kiddy porn?
By not randomly downloading stuff from the Internet. By only downloading torrents, I have explicitly chosen to retrieve (hopefully from vetted and reputable sources). By giving me complete control and feedback on what I'm seeding.
Obviously not ideal, but far better than what IPFS does.
I also don't get how this central censorship authority is going to work. I very much doubt IPFS wants to become the Internet Police for Saudi Arabia.
The whole thing is a futile attempt to appease lawmakers and dictators, since any filtering will be done clientside. Nothing is stopping the client from ignoring any blacklists.
Any great or small firewall will just find it easier to block the whole thing than do some silly whack-a-mole deep packet inspection.
How is IPFS not going to become a haven for kiddy porn aficionados?
If the censorship authority publishes a list of blacklisted hashes, that's the same as publishing a directory of all the available kiddy porn. Oops!
If the censorship authority requires each hash to be queried individually, it becomes a real honeypot for the state surveillance machinery.
Not exactly great choices.
Nice catch, that is interesting. Granted, i feel like this could be tweaked as it is simply a mechanic to attempt to reduce leeching on the network.
> You need to know if the hash contains kiddy porn before you download it, but to know if it contains kiddy porn you have to download it. Classic Catch-22.
How do you know if that link to a pdf from a friend contains kiddy porn? You need to download it to check the md5 / contents.
I'm really lost on how this is any different than HTTP/BitTorrent/etc. Any link on the web can be kiddy. Any bittorrent link can be kiddy. Any IPFS link can be kiddy. They're all equally dangerous on that front as i see it.
The only argument i feel like can be made on this front, is that the hash can make for a hard to visually decipher file. Ie, `foo.com/bar.pdf` is inherently more "trust worthy" than `/ipfs/d3b07384d113edec49eaa6238ad5ff00`. With that said though, that's a better reason to not use `/ipfs/d3b07384d113edec49eaa6238ad5ff00` than it is to use `/ipns/foo.com/bar.pdf` (fake domain/example for easy discussion).
Again, stay away from random hashes just like you stay away from sketchy torrents and random http files.
How do you propose tweaking it without either publishing a directory of all the kiddy porn on IPFS or creating a bottleneck which incidentally is ideal for tracking and surveillance?
> How do you know if that link to a pdf from a friend contains kiddy porn?
You don't, but at least your browser won't shout out to the world: "Hey, everybody! This guy is downloading kiddy porn! IPFS does that and to add insult to injury then automatically goes on to seed it.
On the web you also have a sense of where you are. With IPFS you don't, it's all a bunch of hashes. There is no there there. There are no clues to tell you that you are in a seedy neighborhood. Everything is just available, one hash away, from kiddy porn to fine art. That makes navigating IPFSpace such a minefield, the next hash could take you anywhere.
> I'm really lost on how this is any different than HTTP/BitTorrent/etc.
Let me recap:
- BitSwap
- metadata leakage
- automatic seeding
- opacity and lack of control
> Again, stay away from random hashes just like you stay away from sketchy torrents and random http files.
How? Is there some kind of sniff test I don't know about?
> How do you propose tweaking it without either publishing a directory of all the kiddy porn on IPFS or creating a bottleneck which incidentally is ideal for tracking and surveillance?
Well this is off the cuff, because i wasn't aware of BitSwap's desire to seed in the event of no swap data.. but with that said, i was mainly just referring to alternate methods to help inhibit leeching.
Eg, allow leeching but only for the first (tiny) %x. How willing a host is to allow leeching should be up to them regardless. If i'm hosting a file i want to distribute for an open source network, it's in my interest to host it, and i'd rather not inhibit others from downloading what i'm providing them based on some BitSwap algorithm trying to make things "fair".
P2P is a tough challenge though, which is what that whole sketchy BitSwap section stems from. I imagine a beer and an hour and you could come up with a dozen alternate methods to discourage leeching. Whether or not they're as effective as requiring "work", is impossible for me to say.. but i think we both agree that the work outlined in that PDF is a bit.. sketchy.
> How? Is there some kind of sniff test I don't know about?
Well, i don't know about you - but i don't download random files on the internet. I download from trusted sources only. IPFS would be no different. A trusted web TLD or a trusted IPNS namespace would be good enough for me to feel it is trusted, in both accounts. Outside of trusted domains on the web, i don't download it. Eg, would you download 555.555.555.555/foo.pdf? I certainly wouldn't.
I think with IPFS it will become a bit defacto to trust IPNS rather than IPFS directly. Not only are hashes potentially dangerous, but they're simply a terrible UX. A parallel would be like downloading `555.555.555.555/foo.pdf` - you have no idea if that's kiddy porn or not, it's effectively a random hash. Don't download it.
A domain (like that IPNS is aiming to provide, i believe) would be more akin to `https://trusted-site.com/foo.pdf`. Long term, i don't think anyone should be using hashes directly. But that's just my 2c, we'll see how it plays out.
Moving towards IPNS namespaces would probably be a great start.
Example content sites like the below one (found in another comment) are a disaster just waiting to happen:
https://ipfs.io/ipfs/QmU5XsVwvJfTcCwqkK1SmTqDmXWSQWaTa7ZcVLY...
This brings us back to my original point. Even with trusted IPNS namespaces, IPFS needs to protect its users. If nothing else IPFS should have some kind of content policy engine that warns or blocks the user from unintentionally leaving safe namespaces and/or retrieving random hashes.
P.S. 555.555.555.555 isn't really a great example IP :)
I chose it because it made me think of the old 90s 555.555.5555 movie phones, haha.
How is it a technical problem? Current web technologies allow decentralised web (except for maybe root name servers). Everyone can host their own content, control their own servers, basically everything below your hostname. The implementation has led down a centralised path.
Sure, but choosing another implementation is.. a technical choice, is it not? Are you saying that if i choose to implement a distributed method it's not technical? What is my choice then, political?
Because i have no political motives.. purely technical. I want less data choking the pipes. Which is all IPFS is ultimately doing. Seems pretty technical (instead of social/political, atleast) to me.
Am i missing what you were conveying?
There are multiple flaws in your reasoning: for one, the web was also a technical solution to a social problem; also, IPFS is someone's hard work aimed at fixing the web we've got.
I'd agree that some social issues cannot be solved by technology, but many have been.
E.g., without looking at the information age: in London before the Clean Air Act thousands people literally died of the smog, but the CAA was made possible only by increased availability of electricity and gas heating.
My point is that replacing a complex technical system with a different technical system only reshuffles the set of problems that will need solving. The social and political problems that made the web what it is today won't disappear due to a redesign.
But there are some things that mirroring and content addressing would be perfect for. Replacement for the current script and files CDN for example. Package/software repos, firmware downloads, news sites, etc. Anything accessed by lots of people and not updated every second.
And there's also the location context. If you live on the west coast US, maybe it doesn't matter. But if half of the web traffic could move to ipfs, Australia for example should get an amazing speed increase by unblocking the big pipes.
The solution that I see, is transitioning from social media, where people use some centralized service to "socialize", to social infrastructure, where people run their own servers and connect to the servers of their friends making a real social network. IPFS may be a step in this direction.
The problem with things like IPFS, is that they require political backing or economical incentive to really spread, otherwise they are most likely just going to remain a nice demo for a few technical people.
So IMHO technology needs to go hand in hand with economical or political incentive, but how is an open question.
And here i was just listening to Adam Curtis talk about his latest creation, Hypernormalisation, where he touched on the issue of thinking one can solve social issues with engineering.
I cannot even host a server on my residential service without violating the ToS agreement. Even if I did, there is the problem of not enough IP addresses so my IP is dynamic. This is solved with dynamic dns, etc but is another technical hurdle to overcome. And then there is NAT creating yet another layer to hosting your own server. And I won't even go into security.
These are all solvable, but to say there is little to do with the technical design ignores all of the problems that led us to where we are today.
There is merit in doing the technical work to make a decentralized paradigm easier, but the lack of an economic model is the tougher of the two problems.
One is discoverability. It's tough to find a bunch of scattered systems all over the place. That's a problem Facebook, Reddit, and HN address.
Another is identity. Tracking who's doing what (and what their permissions/authorities are) over a bunch of sites is ... a pain. I'm still mulling over a comment a few days back on HN that a user had 770 different password-based identities in their accounts-management storage (personal).
Search (related to the first) is a third -- spiders suck a lot of bandwidth. Unless there's some way to distribute search or allow nodes to self-report search elements (which will probably require some form of auditing).
And there's administration. It's really easy create systems any idiot can use, but then, any idiot will, and DDoS Brian Krebs and Dyn. Bulletproof administration is a real pain point.
I think an important thing is to give everyone a say in how these large computer networks affect their lives. How to do that in the context of a broken political system isn't clear to me at all.
The idea behind decentralized architecture is: instead of trying to find a better way to agree on one thing, how about we assume from the start that different people will want different things? What do we actually need to agree on?
In the old days we had to agree on everything, because it was technologically infeasible to coordinate plans more than a few times per year. If you need to move bodies to communicate, democracy is what happens.
But we live in a new time where messaging is close to free, so we don't have to agree on everything ahead of time. In a totally decentralized world, we wouldn't have to agree on anything ahead of time. I would meet you in the forest and our respective AIs would go to work helping us quickly and safely negotiate an entire legal framework and set of treaties governing our interactions.
I don't think we will ever get there, I think it will always be a mixture of decentralized and centralized norms. But right now the decentralized architecture is brand new, so it has a huge headroom for growth, so it just makes more sense putting effort into it.
I imagine that our AI companions in the forest would just play hyperdimensional space chess with one another, or talk shop about how best to make paper clips, and leave us in the same position we are now. They'll have their own cares and woes.
I don't know if in 2016 I'm a big believer in democracy, but I do believe in community, particularly now that everyone regardless of technical ability is using the web.
That said, I think you make a very good point about variety and trying multiple avenues at once.
And I absolutely don't consider it a programming problem. You'll notice I said they will help us negotiate, not negotiate on our behalf. It is a design challenge, which makes it partly a social problem and partly and engineering problem.
I'm slowly realising a fundamental truth of economics: whatever it is you're making cheaper, you're going to have one hell of a lot more of.
And as you increase the quantity, you'll start bumping into limiting factors elsewhere. E.g., cheaper transport => far more congestion. Cheaper communications => more advertising. Cheaper storage => vastly more surveillance and monitoring. Cheaper telecoms => vastly more phone solicitations and scams.
There's the question of what people really need to access -- and here I think it's key to go back to Maslow's Hierarchy. And to acknowledge our human limitations of information capacity per day. Several sources I've seen (Stephen Wolfram, Walt Mossberg) suggest about 150 - 300 email messages/day, and something less than even a cursory glance at 800 comments (The New York Times's comments moderation team). How do you provide a manageable and significant set of information to people?
I've also started noting that our-so-called discussion systems themselves (Slashdot, Facebook, Reddit, even HN) are pretty poor at self-supporting useful user feedback. Almost as if that's not their true function.
Rather than the system getting less reliable exponentially as it scales up, it gets more reliable exponentially as it scales up. https://www.youtube.com/watch?v=gqGEMQveoqg&t=1667
Integrity and trust are properties of the data; not of the way that you obtain βit. https://www.youtube.com/watch?v=gqGEMQveoqg&t=3006
There's no routing. You get rid of all of the routing chatter. You get rid of all of the routing brittleness. https://www.youtube.com/watch?v=yLGzGK4c-ws&t=5071
We wanted to turn around the incentive structure where right now senders have a lot of power and receivers have basically nothing, they have to eat what they're fed. https://www.youtube.com/watch?v=Yth7O6yeZRE&t=23890
It's possible to make home servers easy enough to use they're effectively plug and play. I've got my own ideas of how this can be done, others have different ideas, but the goal of easy home server infrastructure is the same. Once you have that, it becomes painless to take part in IPFS or similar.
Will it? The device I had in mind would plug directly into a router, occupying two LAN ports for connectivity, and one USB port for power (USB ports are increasingly common on routers these days, even the free ones ISPs give out). In addition, IPv6 removes the need for NAT and port forwarding. The device could even come with a default DNS name setup, so it could be literally plug and play.
> "Secondly, it is not clear if there is an acceptable solution to security issues."
You build the security into the device, e.g. firewalls and process isolation. You could also design the device so that flashing new firmware required a physical button on the device to be pressed to enable this feature for a short period of time, limiting the window of opportunity for the device to be infected with malware.
> "Auto updates could be part of the answer, but it seems that human intervention would still be needed from time to time and that imply an effort of the user to keep informed and aware of such operations."
Information about security updates could be done via email or SMS, which are both easy enough for mass market users. You would enter these details at the point of purchasing the device, so you'd have nothing extra to setup once you had it. If you had to update your contact details, this would be easy enough to set via the home server GUI.
That the current web is centralized has little to do with its technical design, and everything to do with economic and structural incentives that have made it that way.
It's tempting to say "start afresh", but we'll just be trading our current problems for a new set of problems IPFS introduces. It's a law of nature that problems are always conserved.
I would rather we do the hard work of fixing the web we've got, in particular the hard issue of how to re-decentralize it.