libp2p / specs

Technical specifications for the libp2p networking stack
https://libp2p.io
1.56k stars 273 forks source link

Add Censorship Resistance to the road map. #513

Closed TheRook closed 1 year ago

TheRook commented 1 year ago

Freedom of information is a fundamental human right, and anyone who is blocking libp2p or Kademlia is violating all of our rights - because we cannot hear them speak. Unfortunately, a growing percentage of the internet's users are unable to access the Kademlia network as fallout from blocking IPFS.

In many ways all of Kademlia is a victim of IPFS's success. By trying to stop files from being shared on IPFS, governments an ISPs also block apps built on libp2p. Without being reactive and making it possible for all users to access Kademlia we risk a fragmented internet - but a fragmented humanity.

This is separate "spy proofing" or dealing with PRISM style easdropping. Tor is also filtered by china's great firewall, and they outsource their censorship resistance to the Snowflake project. libp2p doesn't need a tunnel like Tor to bypass IP address filtering used at the edge. A system like IPFS's delegate routers could be used to find new and unfiltered entry-points into the Kademlia network.

marten-seemann commented 1 year ago

It's already on the roadmap: A spyproof libp2p

I don't see us picking this up any time soon, unless we have some clear goal (and associated metrics!) to optimize for though.

TheRook commented 1 year ago

You must have never experienced a content filter. Tor is no way shape or form a solution, and apps built on your platform are being forced to find a solution without you.

marten-seemann commented 1 year ago

I‘m not sure what you’re asking for. Circumventing the Great Firewall is a massive endeavor, and will most likely result in an endless cat-and-mouse game.

As you’ve noticed yourself, there are tools specifically dedicated to overcome censorship (such as, but not limited to, Tor), and even they only occasionally and temporarily succeed.

I don’t see how you expect the libp2p team to succeed where all the others have failed - while at the same time tackling all the higher priority issues that are also in our roadmap.

That said, with the recent addition of WebTransport and WebRTC you now have two more connectivity option which look like regular HTTP/3 or video conferencing traffic, respectively, to an on-path observer. You might be able to achieve at least partial connectivity using those.

TheRook commented 1 year ago

Regardless of your country of origin, the United Nations has given us 30 articles which detail our human rights. The right to privacy is article 12, and we have software projects like Tor which are a tunnel that aid in privacy.

Article 19 is the freedom of access to information, and these human rights have really nothing in common with nation state espionage. Spies are employed by nation states don't need to use libp2p, I know because I work in the industry. I suggest removing spying from your roadmap, because it doesn't make any sense to add features that aid in espionage into libp2p and by suggesting that you do so - you may call the wrong attention. The roadmap should be clear that libp2p is for everyone, and focus more on the rights to privacy (article 12) and the freedom of information (article 19).

Does libp2p's current roadmap reflect the changing technical landscape that is preventing a growing segment of the internet from connecting?

Lets take a look. Ok, OpenBazzar has been dead since 2019, it died 4 years ago and you are linking to it in a roadmap - a future focused document... Tor? is filtered in China - but how does Tor bypass the great firewall? Ah, they use Snowflake and Tor's snowflake is not all that unlike IPFS's delegate routers. This could be explored.

I don’t see how you expect the libp2p team to succeed where all the others have failed - while at the same time tackling all the higher priority issues that are also in our roadmap.

Ah! Now it all it makes sense. You don't realize that your project posses the single greatest asset in combating the problem - you have nodes with entry points. libp2p is in a unique space to make the wall a little shorter.

No human rights violation happens in a vacuum, it takes the inaction of good people for bad people to do bad things. By not making human rights priority, then you are alienating the engineers who have elegant solutions to the growing problems that your project and your users face.

But more over, by aligning yourself with common fundraising efforts like the - UN SDGs #4 and #16 you can help raise funds for your project to peruse difficult problems. There are people that donate their time and money simply because it makes the world a better place. A good roadmap will help garner support for a project. We should celebrate that libp2p has become a public utility and an engine of change.

TheRook commented 1 year ago

@marten-seemann There is no reason not to allow people to do good work. If your team doesn't have the expertise to confront a problem that your community faces then a good leader will find the resources that they need to solve the problem at hand.

Saying that human rights isn't an issue worthy of a github ticket or that our rights aren't worth fighting for - is alarming.