From @jbenet on Sun Apr 26 2015 01:37:36 GMT+0000 (UTC)
Many of the use cases of IPFS demand a high performance transport and do not require anonymity or privacy. And yes, there are some cases that do-- for those, special transports and routing systems are how similar guarantees could be achieved. but most IPFS nodes will not operate that way.
Other important semantic differences include:
- IPFS does not mandate that nodes store content they do not explicitly request. (protocols/apps layered on top of ipfs could, like filecoin.io or a “Paper-like” offline cache)
- In some (simplest) configurations of transport + routing, IPFS nodes connect directly to exchange objects.
- IPFS is a high performance, general purpose authenticated datastructure transport, not just a posix file transport.
- IPFS has SFS-based PKI naming
- IPFS has a bittorrent-inspired data exchange
- IPFS has pluggable transport and routing systems
- IPFS has a large plumbing tool-chain like git, and many application/service modules.
- A main use case of IPFS is to be used as a database.
Think of IPFS as being compared to HTTP.
general note on anonymity
Also, it should be noted that the IPFS protocol itself does not prevent anonymity at all, and a version of IPFS with careful choice of transports (e.g. tor, and not point-to-point tcp/udp links) + routing system (e.g. not the global dht) can achieve anonymity guarantees. But this is an endeavor unto itself worth doing very carefully. We will be guiding design for this in time, but this is not our focus at the moment.
What this might look like is to use things like TOR as only transports, use ephemeral node keypairs (ids generated every run, or per connection).
There will be much more to say about anonymity with ipfs – and different ways of achieving it – but for now please do not count on the go-ipfs to provide any guarantees!