ipfs-inactive / faq

[ARCHIVED] DEPRECATED, please use https://discuss.ipfs.io! Frequently Asked Questions
164 stars 11 forks source link

editing/deletion of content and power dynamics #156

Closed aronayne closed 7 years ago

aronayne commented 8 years ago

Reading the available ifps commands : https://ipfs.io/docs/commands/ ipfs does not appear to support deletion or editing of existing content that have been added to ifps ?

aronayne commented 8 years ago

I think section '3.7 IPNS: Naming and Mutable State' of ipfs paper https://ipfs.io/ipfs/QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX/ipfs.draft3.pdf answers this question : "Objects are permanent".

So in effect objects added to ipfs cannot be deleted or edited. If an edit is required the file(s) must be edited locally and re-uploaded to ipfs, generating a new hash value for the file(s).

RichardLitt commented 8 years ago

So in effect objects added to ipfs cannot be deleted or edited. If an edit is required the file(s) must be edited locally and re-uploaded to ipfs, generating a new hash value for the file(s).

Yes, I believe you are correct.

jbenet commented 8 years ago

The computational model is functional data structures. Meaning nothing is edited, only new entities are created, and some unneeded old ones are garbage collected. On Tue, Aug 9, 2016 at 14:26 Richard Littauer notifications@github.com wrote:

So in effect objects added to ipfs cannot be deleted or edited. If an edit is required the file(s) must be edited locally and re-uploaded to ipfs, generating a new hash value for the file(s).

Yes, I believe you are correct.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ipfs/faq/issues/156#issuecomment-238645292, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIcoQun27huIT41N6ZR-N5wNzOwszJxks5qeMZGgaJpZM4Jf6CG .

aronayne commented 8 years ago

thanks @jbenet . Does this hold true : "To be clear, though: it is possible for data to be deleted from the network. For example, if you add a file and then immediately unpin it and then garbage collect it before anyone has a chance to get it from you, it will be effectively deleted." ?comment made by eminence at https://github.com/ipfs/faq/issues/9

RichardLitt commented 8 years ago

Yes, that does. If no node is holding the file, it is not on the network.

jbenet commented 8 years ago

Yep, that's right

skaag commented 8 years ago

So how do you deal with someone storing illegal contents? Especially contents that could put human life at risk? For example someone leaks a file with the names of all secret agents of all countries/agencies on the planet, and if that file falls into the wrong hands, people could actually die. How does the network deal with this?

Ghoughpteighbteau commented 8 years ago

@skaag There will be deny lists that people can subscribe to, to clear out content.

https://github.com/ipfs/faq/issues/36#issuecomment-140567411

skaag commented 8 years ago

Thanks for the quick response, and thank you for linking to #36 because I see now that someone there already mentioned IPFS will have a problem with the law.

Thing is that any blockchain based system will have the same problem as IPFS, which is a very serious problem and could cause the technology to become illegal down the road when people start to really abuse the technology (and we know humans will always abuse something, if they can).

Ghoughpteighbteau commented 8 years ago

IPFS isn't part of the block chain technologies, though it uses a more generalized version of the data structure we see in block chains called a Merkal DAG. However, like block chain protocols, IPFS is a decentralized protocol. A larger subset of protocols, and decentralized systems all have the same property: No central point of control.

Some personal philosophy here:

The only way I know to force someone to do something, is to threaten them, or bribe them. The carrot and the stick, right?

IPFS is a decentralized technology. Then who to bribe with the carrot? Who to threaten with the stick?

This problem cannot be "absolutely" fixed. No technology that exists under the banner of "Decentralized" could ever have this problem fixed. Maybe that means it's doomed?

Personally, I hope not!

jbenet commented 8 years ago

There a ton of technical reasons why IPFS works the way it works. In particular, there are fundamental ties to how information propagates across physical mediums. IPFS brings distributed computing closer to what actually happens in physical reality, and the distributed model of IP (removing the centralizing effects of HTTP). So whether it is IPFS or some other system, eventually apps within computers will communicate locally, unobstructed, and will make decisions (locally, unobstructed) about what to send, to whom, and why. The same way computers themselves already communicate.

It is also the case that you misunderstand-- by default, in our implementations of the IPFS protocol, IPFS nodes never download anything unless you explicitly tell them to. There has to be intent from the user. This is by design. And this is just like a web browser today. Thinking ipfs puts you at greater risk than a web browser means you haven't understood how the system works, so please, look around, all these information you're missing is already in this repository. Furthermore, IPFS puts you at lower risk, because it gives you secure links-- you ONLY get what you meant to get-- nothing else. This is not true today with web browsers on HTTP because any intermediary can serve you malicious content against your will and have you execute it. HTTP is strictly more dangerous in the ways you describe. (eg any page you visit may be intercepted by a malicious actor, or merely changed by the original actor, to secretly be loading malicious javascript, to be part of a botnet, or help distribute bad files).

IPFS also plans to support denylists, as described above, which will allow subnetworks of peers to come together and agree upon sets of content that they'd wish to censor. Censorship may be necessary in some contexts (eg a code of conduct, cp, etc), and therefore nodes should be free to engage in it if they wish to. This is -- again -- optional. IPFS is freedom tech.

On the political philosophy side (but leaving my personal views out of it),if anything, IPFS favors individual and group choice, or panarchracy, without forcing the entire network to operate in any one way. Separately, it actually turns out that you cannot uphold freedom of speech without also empowering people to be bad actors. By definition freedom of speech is the willingness to let others speak their mind freely, without censorship. Many believe this is fundamental to ethical and progressive human society, and there's plenty of evidence for it. But note this is also enough to allow individuals to communicate and coordinate malicious acts against everyone. So you really have to choose one of two -- centralized censorship or decentralized freedom. These two are attraction wells and anything in between will turn into one or the other because of the power dynamics. You may be able to find a temporary equilibrium somewhere between, but usually new powers and new technology perturbs the space enough to dislodge or destroy those equilibria. Technology, in particular cryptography, accelerates this attraction dramatically, and functions almost like annealing (making local optima very hard to stay in). Obviously the former (centralized censorship) is way too dangerous, thanks to existing and historical oppressive regimes. The second (decentralized freedom) is also dangerous, due to malicious and technically powerful small groups being able to coordinate bad acts against everyone. But we think the latter is much less dangerous than the former. (Let alone promoting all the rights and ethically good things).

In the end though-- any kind of technical decision leading to the former will just be compiled out and reworked, so -- political philosophy aside -- there is only one option for the future of information distribution: unobstructed peer-to-peer communication. It already works this way on the internet (IP), the web (HTTP, IPFS, ...), it has been working this way since we acquired language, and since DNA started replicating.

jbenet commented 8 years ago

This issue has veered dramatically off topic, so I'd err on the side of closing it. It is not my intention to start a political philosophy discussion -- but rather only to articulate the design space and why IPFS falls in a particular set of decisions. If the issue gets more off topic, i'll just close it, or rename it.

Also, many of the questions asked here keep coming up. The answers are laid out all around here, in this repository. Please search to find them. Thanks.

RichardLitt commented 8 years ago

Thanks for the discussion, here. This is good stuff to have down.

I am going to keep this open because the original question has been answered. If anyone has any comments about that particularly question - not including the conversation after - please post them here. If you have any questions about @jbenet's conversation above, please search through the repo and try to find a more relevant issue. Consider this discussion closed to that thread of conversation, please. Thank you.

skaag commented 8 years ago

I did not mean to create a flame war, in fact I came here to learn. I believe in creating tech that "goes with the flow", which means it needs to take into account the human factor. As we've seen throughout history, people have done some crazy stuff in the past.

I am personally very worried about Blockchain technology because it is possible to store extremely offensive information in there. Information/Data that, should it be put to a vote, the vast majority of participants would like to see it removed. I understand the immense strength in immutability, but I also believe there's great danger in it, and if such scenarios are not handled, future governments or even groups of people might decide to outlaw/ban the technology.

I merely came here to learn about how IPFS handled/approached this difficult issue. I am grateful for all of your answers.

cheershendtco commented 8 years ago

So in effect objects added to ipfs cannot be deleted or edited. If an edit is required the file(s) must be edited locally and re-uploaded to ipfs, generating a new hash value for the file(s).

If I have uploaded files with my PC, and how to manager these files with other PCs? Thanks

RichardLitt commented 8 years ago

@skaag Thanks; apologies if we come off as harsh. This is a very serious topic for us, and we've discussed it elsewhere.

@cheershendtco That's a different question. Let's answer that in #169.

rddaz2013 commented 7 years ago

If i publish content , for my local node the hashes are pinned , right? Now a other node somehow download my content...it has now the hash and the local data? but that data is not pinned...after a time this "cache" is deleted (GC).

If the hashes are pin'ed' that data is downloaded and as long the local node did not delete the pin , never deleted?

Kubuxu commented 7 years ago

Yes.

flyingzumwalt commented 7 years ago

This issue was moved to https://discuss.ipfs.io/t/editing-deletion-of-content-and-power-dynamics/407