|Kurzgeschichten - Lieder - RPG||über mich||Links - Gedichte - krude Ideen|
I set up a wiki for ideas on anonymizing Gnutella. Please look here: AnoGnut.
I see a way to anonymize Gnutella without changing too much (hopefully).
I think when abandoning some bandwidth isn't so great a problem because only a small part of the people share you could use the freeloaders bandwidth for routing downloads.
The concept reduces the reliability a bit, but introduces gradual anonymity.
Only leafs would share.
The UPs would not give out the IP of the leaf for a given query reply, but their own IP and a name or tag for the leaf which has the file.
The UP of the searcher would also only give its IP and a local ID-Tag for the reply.
The file would then be routed from one leaf to the other over two UPs. No uploader and no downloader would see the source-IP anymore, and no single UP would know the IP of both the Uploader and the Downloader.
If The UPs would remember an IP and the tag for it for a certain amount of time (longer than the cache, because the cache of other might (if I understand it correctly) still contain the code).
This way you could also (re?)introduce name-tags for the Users which would also have a meaning.
Maybe later it would even be possible to search for a certain name instead of an IP, and to relocate known hosts and buddies in this way (if both chose to use a recognizable and sufficiently long string as name), without ever learning about the IP, btw.
With encryption added to the transmissions, Gnutella would become really safe to use again.
But the downside is wasted bandwidth.
To optimize you could say, that people who share much, wouldn't become UP, and that UPs wouldn't share, seperating content-providers from network-upkeep, but giving freeloaders a task to do.
Or you could say, that UPs only answer to a search query with files of their leafs, and only their connected UPs would give query replies for the files, but not the UP which has the files.
Another possibility is not to use UPs as proxies, but to use leaves. As such, every leaf and UP would know some proxying nodes, over which the traffic could be routed. Best would be to use freeloaders for this purpose.