Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: alkor on January 31, 2011, 06:14:11 PM



Title: F2F bitcoin network
Post by: alkor on January 31, 2011, 06:14:11 PM
The current p2p implementation of Bitcoin makes its users easily identifiable, as they broadcast their IP addresses to all peers on the network, including nodes set up with the intent to monitor the network and persecute its users.

With this in mind, one may want to disable connections to untrusted third parties, and allow connections only to a few trusted friends. This is the concept of a friend-to-friend (F2F) network (vs a P2P network), and it is described on Wikipedia http://en.wikipedia.org/wiki/Friend-to-friend (http://en.wikipedia.org/wiki/Friend-to-friend) in great detail. It has been already implemented in various file sharing programs such as http://anomos.info/wp/ (http://anomos.info/wp/), http://www.turtle4privacy.org/new/ (http://www.turtle4privacy.org/new/), etc

In such a setup the edges of graph of the Bitcoin network will actually represent physical relationships between the participants in the real world, and the network overall will be much harder to disrupt by  brute-force attacks. Even if a malicious third party takes over 51% of the computing power, their blockchain will be rejected by the trust-based f2f network. However, the drawback of this approach is that it would be much harder to build the network initially as more work is required to identify and add friends, whereas with the p2p approach the user just installs the program and is ready to go.

For a stronger bitcoin infrastructure it will be beneficial to keep both the P2P protocol because of its ease of use, and add an F2F protocol because of its resilience. To that end, it is important to decouple the core of bitcoin from the implementation details of the communication protocol.

If problems arise with the p2p approach, one should be able to easily switch to the f2f backend, and connect only to a trusted circle of friends. In case of an emergency law allowing  the government to turn off the entire internet completely (like in Egypt right now), then an offline communcation protocol should be put in place, where the user should be able to do off-line transport by transferring packets on flash drives between computers, or via the mail. Although significantly slower, the bitcoin network will still continue to function.

So, are there any plans to decouple the communication protocol from the implementation of bitcoin? Maybe different communication protocols should be handled as plugins that one could easily install or disable depending on his anonymity needs?


Title: Re: F2F bitcoin network
Post by: MacRohard on January 31, 2011, 06:31:24 PM
The current p2p implementation of Bitcoin makes its users easily identifiable, as they broadcast their IP addresses to all peers on the network, including nodes set up with the intent to monitor the network and persecute its users.

With this in mind, one may want to disable connections to untrusted third parties, and allow connections only to a few trusted friends. This is the concept of a friend-to-friend (F2F) network (vs a P2P network), and it is described on Wikipedia http://en.wikipedia.org/wiki/Friend-to-friend (http://en.wikipedia.org/wiki/Friend-to-friend) in great detail. It has been already implemented in various file sharing programs such as http://anomos.info/wp/ (http://anomos.info/wp/), http://www.turtle4privacy.org/new/ (http://www.turtle4privacy.org/new/), etc

In such a setup the edges of graph of the Bitcoin network will actually represent physical relationships between the participants in the real world, and the network overall will be much harder to disrupt by  brute-force attacks. Even if a malicious third party takes over 51% of the computing power, their blockchain will be rejected by the trust-based f2f network. However, the drawback of this approach is that it would be much harder to build the network initially as more work is required to identify and add friends, whereas with the p2p approach the user just installs the program and is ready to go.

For a stronger bitcoin infrastructure it will be beneficial to keep both the P2P protocol because of its ease of use, and add an F2F protocol because of its resilience. To that end, it is important to decouple the core of bitcoin from the implementation details of the communication protocol.

If problems arise with the p2p approach, one should be able to easily switch to the f2f backend, and connect only to a trusted circle of friends. In case of an emergency law allowing  the government to turn off the entire internet completely (like in Egypt right now), then an offline communcation protocol should be put in place, where the user should be able to do off-line transport by transferring packets on flash drives between computers, or via the mail. Although significantly slower, the bitcoin network will still continue to function.

So, are there any plans to decouple the communication protocol from the implementation of bitcoin? Maybe different communication protocols should be handled as plugins that one could easily install or disable depending on his anonymity needs?

I think might be quite interesting is if bitcoin could communicate using other protocols.. in particular something like XMPP might be quite handy. Perhaps there could be a few well known XMPP addresses that clients could boostrap with.. it would also be harder for governments to block without alot of collateral damage against other non-bitcoin XMPP traffic. You could have a bitcoin client where the only connection is an outbound TCP to google talk for example.


Title: Re: F2F bitcoin network
Post by: kwukduck on January 31, 2011, 07:44:25 PM
Users are identifyable by IP (or not? proxy..), transactions don't have to be that.


Title: Re: F2F bitcoin network
Post by: Gavin Andresen on February 01, 2011, 05:51:08 PM
You can setup your own f2f bitcoin network using the -connect option, connecting only to friends.

One of those friends must be connected to the rest of the bitcoin world, of course.

Experimenting with sending transactions and blocks over XMPP or some other network is a great idea-- go for it!  It shouldn't be hard to create a "bitcoin bridge" that relays traffic on the main bitcoin network to/from another network.