Anonymous IPFS, Filecoin or whatever protocol in fact

Copying a bit what I already sent to Protocol Labs and wrote on github, thanks to move this to the right category if this is not the relevant one, I am restricted to two links apparently so please forgive the format

Please see this discussion: https://github.com/ipfs/ipfs/issues/439 that summarizes the proposal

This works also for piping non nodejs/js modules (for example bitcoin), please see the general documentation here (maybe good to start by reading that one first): https://github.com/Ayms/node-Tor#forking-node-tor (technical one is here: github com Ayms node-Tor tree master docs)

As stated in the above thread it is not a remake of the Tor network and should not be misunderstood with it, this is an implementation of the Tor protocol inside nodes and browsers that can be customized according to the needs/level of security required (peer discovery, number of hops, rdv points or direct p2p, etc) not following necessarilly the centralized Tor network principles

Next to come is elliptic crypto and WebRTC

And then next can be to design and integrate the IPFS anonymous system using node-Tor (proposed name: IPTSā€¦)

And/or whatever protocol, to give an example any protocol implements somewhere in a central place something like:

socket is a network socket
socket.on(ā€˜dataā€™,//process data)
socket.send=//send data

to pipe with node-Tor, just modify by something like:

substitute the network socket by whatever object you like, it remains compatible with the rest of the code
piping(socket)
socket._write_b=//process data
socket.send=function(data) {this._stream_f.push(data)} //will send data to the tor protocol
socket.pipe(node_Tor)

You can chain pipes of course

This is simple (a bit simplified here, usually there is a handshake and/or other things, the pipe method handles events, but you see how it works and the changes are really a few lines of code), what is not is the specific design to use the Tor protocol according to the projects, here IPFS

3 Likes

Follow up, please see a more detailed proposal to possibly integrate node-Tor to ipfs/libp2p here:

Due to the specifics of the libp2p iterable pipe method it is not as straight forward as writen above but would not be very complicate either

Comments/suggestions welcome (I donā€™t pretend to master libp2p code for now so maybe better ideas can be suggested)

1 Like

From reading the Github issue, itā€™s not clear to me that what you provide actually does provide any relevant privacy gurantees for IPFS.

It seems that as @Stebalien wrote Tor alone wouldnā€™t provide privacy given that the transport layer isnā€™t the only thing that leaks data.

You basically say that Stebalien is wrong but donā€™t explain why.

I donā€™t know if you read everything, I am not saying that @stebalien is wrong, he is right, THE full solution does not exist right now but most likely there will be a Tor protocol layer in there, this is what I am saying here: https://github.com/ipfs/ipfs/issues/439#issuecomment-599474477

Maybe take a look at http://www.peersm.com/Convergence-2020.pdf :

"This proposal is a complete redesign of our initial Convergence proposal from 2015

ā€¦

The initial Convergence proposal was written based on the observation that we must invent one network/system per need if we want to evade big data centralization and protect privacy/anonymity: to browse, to chat, to email, to exchange files, to do social networking or cooperative work, to do crypto currency, to protect the users from their connected objects, to handle peer identities.

So it did envision the support of any type of applications and protocols on top of a secure anonymization system, inside browsers and servers

The first part is very exactly what IPFS did, including the crypto currency concept in our proposal to sustain the network (Filecoin)

But IPFS is not at all designed for privacy, the IPFS team knows that they will have to address the issue but itā€™s not even part of their roadmap

ā€¦"

You have provided no reasoning for why you believe that most likely there will be a Tor protocol layer.

The Tor protocol has the problem that it forces every node in the network to route data for other participants. Thatā€™s not desireable for a mobile device and plenty of other devices.

It would be better to have the ability for the mobile device to be able to pay some small sum of cryptocurrency and be able to query with the similar performance then it can query IPFS in a non-anonymous manner.
Doing this via a crypto-currency has the side-benefit that itā€™s a way to fund the development.

Who are you to question what I am proposing? Please provide some links, apparently you are used to jump into discussions for no reasons, neither added value, neither required technical knowledge

P2P networks force peers to route data for others, thatā€™s the trivial behavior and the intent of p2p systems, and to sustain themselves there must be some incentive of course

What you are saying is obvious without adding anything in the discussion, mobiles do the same as peers

This subject is important, donā€™t troll it

Asking people ā€œwho are you to question meā€ seems to be trolling. Iā€™m not the person doing that.

Itā€™s more costly to route data for others for mobiles and as such itā€™s worthwhile to do less rerouting of data on mobiles.

If what Iā€™m saying is obvious then why are you proposes to use the Tor system which is not one where peers exchange currency for their services to each other?

Letā€™s keep the discussion polite, factual and on point, please.

I am not proposing the ā€œTor systemā€, I am proposing the Tor protocol adapted to the use where you can add other layers (like payment)

You are concentrating on mobiles, indeed if your mobile routes data for others and just spends all of your data credit for others, then itā€™s not very good for you

Maybe you should highlight in more details what you have in mind, because in the context of such p2p systems we donā€™t have only mobiles, data can be relayed by others (browsers, desktop clients, servers, etc), mobiles are not very likely today to exchange data between each other alone but will evolve toward this, you can also add a currency payment for those that are sustaining the network (like Filecoin for the related use), and people should be able to opt in/out for this, again the proposal is a generic/universal anonymity layer that must be customized according to the needs and security requirements

If you have better ideas how to do this, then please let everybody know, in any case a p2p system and/or an anonymous one necessarilly implies that others are routing data for you and how to reward them in all situations still remains unknown (this subject was clearly in my 2015 Convergence proposal, that would be great if you know how to do this because even Filecoin still does not)