Discussion:
newbie mnet questions...
Zooko
2004-07-11 14:19:48 UTC
Permalink
1. There are so many P2P algorithms, can you convince
me that Mnet is the one I should focus on?? Python
is my first love so that is one positive already.
Kademlia, Freenet, eMule, BitTorrent are other potential
P2P systems one could possibly add anonymity too.
Please convince me I should focus on Mnet instead.
I'm not sure that you should focus on Mnet, but I'll tell you what I
know.

The things you list above are in different categories.

Kademlia is a DHT, which is really just one component of a system
rather than a complete system in itself. Kademlia is used in eMule,
which is a file-sharing application. BitTorrent is "p2p ftp" -- it is
a file transfer protocol that transfers a file from a single, central
server, to a potentially large number of clients. Freenet is a
decentralized storage system, so it is the only one you listed that is
in the same category as Mnet.

Two other open source systems that you might be interested in are The
Circle (written in Python) and GNUnet (written in C).

The Circle:
http://thecircle.org.au/

GNUnet
http://www.ovmj.org/GNUnet/

All four of Freenet, The Circle, GNUnet, and Mnet are several years old
and have active developer communities. (Note: the Mnet developers have
been passive for the last two months, but I expect that to change.)
2. I was told Freenet is stalled because it's algorithm
doesn't really work.
Personally, I think that the basic Freenet concept of achieving
anonymity by combining forwarding with routing (with the filesystem) is
flawed. In my opinion, even if Freenet's latest design (NGrouting with
erasure coding) can be made to perform well, the anonymity achieved
will still be minimal -- i.e. it will provide anonymity only against
very limited attackers.

Mnet does not attempt to provide anonymity. As I've said, I think it
would be a mistake to attempt to do that in the same layer as routing
and the filesystem. It could be provided in a lower layer in one of
two ways:

1. The "one-hop privacy" approach, which means implementing an
anonymous routing system in EGTP (Mnet's communications layer).

2. Using an anonymous routing system that someone else has developed,
such as MixMinion or Tor:

MixMinion:
http://www.mixminion.net/

Tor:
http://www.freehaven.net/tor/

I favor the latter approach. MixMinion is my favorite, as it is
written in Python and provides stronger anonymity than Tor does (at a
cost in performance and complication...)
I'm a little scared because Mnet
also says their algorithm is an example of "emergent
behavior". This to me hints of complicated artificial
intelligence ideas that aren't really practical. I could
be wrong. I think Kademlia looks like it's algorithm is
solid so I wonder why Mnet is better and worth my time.
I want to be convinced.
The design of Mnet v0.7 is simpler than that of Mnet v0.6. I described
it in 4 minutes at PET workshop:

http://lists.mnetproject.org/pipermail/mnet-devel/2004-May/003407.html
3. Is it easy to pick up??? Easy docs and commented code, etc.?
We have tried to make it easy to pick up. We've spent a lot of effort
cleaning and documenting the source code, etc. Please try to pick it
up, and post to this list about anything which slows you down. I.e.,
please post to the list if the web pages or documentation are
incomplete or incorrect, etc.
Christian Seberino, Ph.D.
SPAWAR Systems Center San Diego
Are you investigating anonymous decentralized storage systems as part
of your work at SPAWAR?

Regards,

Zooko
Kyle Hasselbacher
2004-07-12 03:58:33 UTC
Permalink
Post by Zooko
2. Using an anonymous routing system that someone else has developed,
http://www.mixminion.net/
Does MixMinion do more than just email?
- --
Kyle Hasselbacher Down with protests!
kyle-gmWMwUh+***@public.gmane.org
Zooko
2004-07-14 13:29:06 UTC
Permalink
Post by Kyle Hasselbacher
Does MixMinion do more than just email?
Yes. I worked with Nick Mathewson on simplifying the MixMinion API so
that it would be more convenient for other Python code to use it as a
transport layer.

Just to show you what I'm talking about, I'll attach the last version
that I sent to Nick, but be aware that the API that Nick eventually
decides to support will be rather different from this one. Also I'll
Cc: him.

Nick: please see this thread: [1] for context.

Regards,

Zooko

[1]
http://lists.mnetproject.org/pipermail/mnet-devel/2004-July/003429.html
icepick
2004-07-13 15:59:45 UTC
Permalink
Post by Kyle Hasselbacher
Post by Zooko
2. Using an anonymous routing system that someone else has developed,
http://www.mixminion.net/
Does MixMinion do more than just email?
When one mixminion node talks to another it doesn't use SMTP, but rather
a MixMinion Transport Protocol (MMTP). I don't know for sure what it
adds beyond link encryption and padding.

If you had a middleman server (e.g. doesn't except mail directly,
doesn't deliver mail directly) your node would only talk MMTP to the
rest of the world, so you could say you don't do email at all.

Email's are just big packets anyway :).

My problem with Mnet-over-Mixminion is the FEC algo that we use. The
largest message you can have in a Mixminion net is 2kb (I think). To
reply to that you have to use a Single Use Reply Block that's around 2k.
Using the current FEC (or any other FEC not covered by the Low Rate
FEC patent) will making fitting a file of a large size will be a mega
CPU intensive operation. (I'm hoping I have that wrong.)

icepick
s***@public.gmane.org
2004-07-14 00:00:52 UTC
Permalink
Zooko

Thanks for your email and info. My interest in anonymous
P2P is not related to my day job for the Navy... rather I'm
just a fan of Python, open source and freedom. I think
an anonymous P2P system is a useful & interesting project.

I was happy to hear about so many nice anonymous P2P projects
in addition to Freenet. Circle and GNUnet look very interesting
in addition to Mnet.

I think I would tend to agree with you that anonymity is
probably best solved at a separate layer that doesn't
muck up other architectural aspects.

Why does Freenet get all the press if Circle and GNUnet perform
essentially the same service??? How mature are Circle and GNUnet
and easy to pick up relative to Mnet??? I would imagine we
want the best one to get better and take over the world to avoid
duplication of effort. Do any of these other P2Ps have design
flaws like Freenet?? Which is the winner is the best design, best
documentation category???

Thanks again,

Chris
Post by Zooko
1. There are so many P2P algorithms, can you convince
me that Mnet is the one I should focus on?? Python
is my first love so that is one positive already.
Kademlia, Freenet, eMule, BitTorrent are other potential
P2P systems one could possibly add anonymity too.
Please convince me I should focus on Mnet instead.
I'm not sure that you should focus on Mnet, but I'll tell you what I
know.
The things you list above are in different categories.
Kademlia is a DHT, which is really just one component of a system
rather than a complete system in itself. Kademlia is used in eMule,
which is a file-sharing application. BitTorrent is "p2p ftp" -- it is
a file transfer protocol that transfers a file from a single, central
server, to a potentially large number of clients. Freenet is a
decentralized storage system, so it is the only one you listed that is
in the same category as Mnet.
Two other open source systems that you might be interested in are The
Circle (written in Python) and GNUnet (written in C).
http://thecircle.org.au/
GNUnet
http://www.ovmj.org/GNUnet/
All four of Freenet, The Circle, GNUnet, and Mnet are several years old
and have active developer communities. (Note: the Mnet developers have
been passive for the last two months, but I expect that to change.)
2. I was told Freenet is stalled because it's algorithm
doesn't really work.
Personally, I think that the basic Freenet concept of achieving
anonymity by combining forwarding with routing (with the filesystem) is
flawed. In my opinion, even if Freenet's latest design (NGrouting with
erasure coding) can be made to perform well, the anonymity achieved
will still be minimal -- i.e. it will provide anonymity only against
very limited attackers.
Mnet does not attempt to provide anonymity. As I've said, I think it
would be a mistake to attempt to do that in the same layer as routing
and the filesystem. It could be provided in a lower layer in one of
1. The "one-hop privacy" approach, which means implementing an
anonymous routing system in EGTP (Mnet's communications layer).
2. Using an anonymous routing system that someone else has developed,
http://www.mixminion.net/
http://www.freehaven.net/tor/
I favor the latter approach. MixMinion is my favorite, as it is
written in Python and provides stronger anonymity than Tor does (at a
cost in performance and complication...)
I'm a little scared because Mnet
also says their algorithm is an example of "emergent
behavior". This to me hints of complicated artificial
intelligence ideas that aren't really practical. I could
be wrong. I think Kademlia looks like it's algorithm is
solid so I wonder why Mnet is better and worth my time.
I want to be convinced.
The design of Mnet v0.7 is simpler than that of Mnet v0.6. I described
http://lists.mnetproject.org/pipermail/mnet-devel/2004-May/003407.html
3. Is it easy to pick up??? Easy docs and commented code, etc.?
We have tried to make it easy to pick up. We've spent a lot of effort
cleaning and documenting the source code, etc. Please try to pick it
up, and post to this list about anything which slows you down. I.e.,
please post to the list if the web pages or documentation are
incomplete or incorrect, etc.
Christian Seberino, Ph.D.
SPAWAR Systems Center San Diego
Are you investigating anonymous decentralized storage systems as part
of your work at SPAWAR?
Regards,
Zooko
_______________________________________________
Mnet-devel mailing list
http://lists.mnetproject.org/mailman/listinfo/mnet-devel
--
Chris

_______________________________________

Christian Seberino, Ph.D.
SPAWAR Systems Center San Diego
Code 2872
49258 Mills Street, Room 158
San Diego, CA 92152-5385
U.S.A.

Phone: (619) 553-9973
Fax : (619) 553-6521
Email: seberino-***@public.gmane.org
_______________________________________
Zooko
2004-07-14 14:20:15 UTC
Permalink
Dear p2p-hackers:

Someone wrote to the mnet-devel mailing list and wanted to know how
Mnet compared to similar open source p2p systems, because he wanted to
work on one of them. You can read the <a
href="http://lists.mnetproject.org/pipermail/mnet-devel/2004-July/
003429.html"> thread so far </a> in which Kademlia, eDonkey, and
BitTorrent are dismissed and GNUnet, Circle, MixMinion, and Tor
introduced.

In writing the following response, I thought it was of sufficiently
general interest that I should Cc: it to p2p-hackers.
Post by s***@public.gmane.org
Why does Freenet get all the press if Circle and GNUnet perform
essentially the same service???
Beats me. I guess nowadays it doesn't, anymore. Anyway, it isn't
exactly the same service. Circle doesn't offer anonymity, for example.
(Although <a href="http://thecircle.org.au/about.html"> the Circle web
page </a> confusingly tells me that it offers anonymous "news" but not
anonymous "file-sharing".)
Post by s***@public.gmane.org
How mature are Circle and GNUnet
and easy to pick up relative to Mnet???
I would say all four are similarly "mature". Freenet and Mnet are the
oldest (both began in 1999 or so, if you count Mnet's ancestor Mojo
Nation), but the newer GNUnet and Circle probably benefited from
starting with newer ideas and a fresh codebase.

Mnet v0.7 has newer, simpler ideas and a fresh codebase relative to
Mnet v0.6, which had simpler ideas and a fresh codebase relative to
Mojo Nation. :-)

I think you should try picking up one or more of these projects and
then report back about how easy or hard it was to pick up, or other
observations you have. Trying it out is probably a better way to
decide which you like than talking about it is.

There are some important architectural differences. Mnet is
(currently) strictly a "publish/download" model of shared decentralized
storage, as is Freenet. GNUnet offers the option of "file-sharing" in
which you can store your own file on your own hard drive and also make
it available to peers. I don't know about Circle. There are lots of
other differences too, of course.
Post by s***@public.gmane.org
I would imagine we
want the best one to get better and take over the world to avoid
duplication of effort. Do any of these other P2Ps have design
flaws like Freenet?? Which is the winner is the best design, best
documentation category???
I rather disagree. These four projects are exploring different parts
of the design space. Any one of them is quite likely to fail (or at
least to lose a lot of time) by attempting to colonize parts of the
design space that turn out to be inhospitable. Also, these various
parts of the design space might prove to be good for some uses but bad
for other uses. Finally, inasmuch as these are all public, Free
Software and non-patented projects, they can learn from one another's
successes and failures. I say the more independent explorers the
better! Happily, there are a lot of them. I'm sure there are at least
half a dozen other similar projects which I don't even know about.

Also, open source projects that are primarily exploratory probably
don't scale up well to very many developers. For example, I perceive
that Freenet has suffered more than it has benefited from its
popularity among would-be helpers. In the entire four year history of
Mojo-Nation-then-Mnet as an open source, volunteer project, we've had
eight people who have contributed lots of work over a long period of
time, plus fourteen people who have contributed enough work to be
credited in <a href="http://mnetproject.org/repos/mnet/CREDITS"> the
CREDITS file </a>, plus uncounted hundreds of people who offered
suggestions, criticism, or encouragement.


Anyway, I'm quite confident that having an argument about which Free
Software decentralized filesystem(ish) project is best would waste a
lot of time and energy and would result in all projects progressing
more slowly rather than any project progressing faster.


Regards,

Zooko
Ian Clarke
2004-07-15 08:35:50 UTC
Permalink
Do any of these other P2Ps have design flaws like Freenet??
I am not sure what flaws he is referring to, but our biggest problem
right now is due to more requests being pumped into the network than the
network can handle, which I suspect would be a problem for almost any
network irrespective of its routing algorithm.

We have a pretty new and IMHO innovative solution to this problem called
"rate limiting", but we are still tinkering with it to get it right. We
may have just fixed a serious bug in this so the next few days will be
instructive. If it works I will probably be doing at talk on it at
DEFCON next month.

Either way, I think the problems Freenet is facing right now are
actually problems that would be faced by any data insertion and
retrieval P2P network when people start to develop third-party clients
that pump requests into the network in an aggressive manner. Hopefully
others will be able to benefit from the lessons we are learning should
they run into similar problems (as I suspect many will).

Ian.
Greg Bildson
2004-07-15 14:31:08 UTC
Permalink
We spent a year dealing with those "spammy client" issues on Gnutella. Most
of the offenders ended up dying an early death after we devised both
specific and general mechanisms for dealing with offenders. Having a
rapidly evolving protocol helps to some extent.

Thanks
-greg

-----Original Message-----
From: p2p-hackers-bounces-***@public.gmane.org [mailto:p2p-hackers-bounces-***@public.gmane.org]On
Behalf Of Ian Clarke
Sent: Thursday, July 15, 2004 4:36 AM
To: Peer-to-peer development.
Cc: development of Mnet
Subject: Re: [p2p-hackers] Freenet, Mnet, GNUnet, Circle
Do any of these other P2Ps have design flaws like Freenet??
I am not sure what flaws he is referring to, but our biggest problem
right now is due to more requests being pumped into the network than the
network can handle, which I suspect would be a problem for almost any
network irrespective of its routing algorithm.

We have a pretty new and IMHO innovative solution to this problem called
"rate limiting", but we are still tinkering with it to get it right. We
may have just fixed a serious bug in this so the next few days will be
instructive. If it works I will probably be doing at talk on it at
DEFCON next month.

Either way, I think the problems Freenet is facing right now are
actually problems that would be faced by any data insertion and
retrieval P2P network when people start to develop third-party clients
that pump requests into the network in an aggressive manner. Hopefully
others will be able to benefit from the lessons we are learning should
they run into similar problems (as I suspect many will).

Ian.
_______________________________________________
p2p-hackers mailing list
p2p-hackers-***@public.gmane.org
http://zgp.org/mailman/listinfo/p2p-hackers
_______________________________________________
Here is a web page listing P2P Conferences:
http://www.neurogrid.net/twiki/bin/view/Main/PeerToPeerConferences
Ian Clarke
2004-07-15 14:57:55 UTC
Permalink
Post by Greg Bildson
We spent a year dealing with those "spammy client" issues on Gnutella. Most
of the offenders ended up dying an early death after we devised both
specific and general mechanisms for dealing with offenders. Having a
rapidly evolving protocol helps to some extent.
I am curious as to what the general mechanisms were. Clearly, it would
have been easy enough for us to hardcode some limits in a user's freenet
node to prevent them from spamming the network, but since they have
access to the source code, they could easily remove these. We wanted a
network-wide solution that would remove the incentive to spam the
network but that didn't rely on a user being policed by code that they
are free to modify.

Ian.
Greg Bildson
2004-07-15 15:37:05 UTC
Permalink
Well, I expect that the queries that Gnutella experienced were somewhat
unique in that our changes could not be applied to your situation. Our
searches were a mixture of keyword searches and SHA1 hash searches. The
major problem we had was caused by clients that would automatically requery
for more sources of a file. Few developers could see a problem from
requerying but in practice we found that any more than one requery per hour
total per client would cause massive network traffic.

Our initial approach to reducing the problem for LimeWire users was to group
LimeWire clients together in the network and thus somewhat shield ourselves.
This worked to some extent but still the majority of traffic appeared to be
requeries.

Given that requerying is not the primary function of the network, we had
great freedom in taking draconian action. We observed that requerying was
either done using SHA1 searches or by almost the entire file name of a file.
Gnutella's primary interest was in allowing user typed queries to travel
through the network, so we eventually just started blocking all queries that
we did not feel a user would type.

I'll leave the details to your imagination but for a long time this was an
extremely successful approach. The problem was reduced further with our
introduction of dynamic querying which basically did away with unconstrained
(other than TTL) broadcast queries. Only after obliterating the bad actors
did we allow SHA1 searches back on the network.

We continue to try and enforce a policy of no automatic requerying on the
network including in our own client.

Thanks
-greg

-----Original Message-----
From: p2p-hackers-bounces-***@public.gmane.org [mailto:p2p-hackers-bounces-***@public.gmane.org]On
Behalf Of Ian Clarke
Sent: Thursday, July 15, 2004 10:58 AM
To: Peer-to-peer development.
Cc: development of Mnet
Subject: Re: [p2p-hackers] Freenet, Mnet, GNUnet, Circle
Post by Greg Bildson
We spent a year dealing with those "spammy client" issues on Gnutella.
Most
Post by Greg Bildson
of the offenders ended up dying an early death after we devised both
specific and general mechanisms for dealing with offenders. Having a
rapidly evolving protocol helps to some extent.
I am curious as to what the general mechanisms were. Clearly, it would
have been easy enough for us to hardcode some limits in a user's freenet
node to prevent them from spamming the network, but since they have
access to the source code, they could easily remove these. We wanted a
network-wide solution that would remove the incentive to spam the
network but that didn't rely on a user being policed by code that they
are free to modify.

Ian.
_______________________________________________
p2p-hackers mailing list
p2p-hackers-***@public.gmane.org
http://zgp.org/mailman/listinfo/p2p-hackers
_______________________________________________
Here is a web page listing P2P Conferences:
http://www.neurogrid.net/twiki/bin/view/Main/PeerToPeerConferences
Ian Clarke
2004-07-16 13:02:45 UTC
Permalink
Post by Greg Bildson
Well, I expect that the queries that Gnutella experienced were somewhat
unique in that our changes could not be applied to your situation.
Yeah, we do have a somewhat analogous mechanism whereby nodes will
effective cache failures in a "failure table" - so if you route a
request that subsequently fails, and you receive another request for the
same key within a certain time limit (30 minutes IIRC) then that request
would fail immediately.

This wasn't so much intended as a way to prevent abuse (although it did)
as a way to try to make queries fail more quickly, which benefits the
requester as well as the network as a whole.

In practice, however, we found that duplicate requests for the same key
did not occur frequently enough for this mechanism to have a significant
effect.

Ian.
s***@public.gmane.org
2004-09-26 05:38:10 UTC
Permalink
Post by Zooko
Personally, I think that the basic Freenet concept of achieving
anonymity by combining forwarding with routing (with the filesystem) is
flawed. In my opinion, even if Freenet's latest design (NGrouting with
erasure coding) can be made to perform well, the anonymity achieved
will still be minimal -- i.e. it will provide anonymity only against
very limited attackers.
Mnet does not attempt to provide anonymity. As I've said, I think it
would be a mistake to attempt to do that in the same layer as routing
and the filesystem. It could be provided in a lower layer in one of
1. The "one-hop privacy" approach, which means implementing an
anonymous routing system in EGTP (Mnet's communications layer).
2. Using an anonymous routing system that someone else has developed,
Zooko

I've been thinking more about p2p systems and our conversation.
Correct me if I'm wrong but it seems like Freenet is
the only project I know of that is doing the
original job of trying to provide a censor proof/attack proof/
anonymous p2p system.

I agree with your idea that MixMinion is potentially
a great way to add anonymity to a p2p system. However, I think
Freenet goes a few steps farther in that in addition to not knowing
who the authors are, they try to prevent you from even knowing *where*
something is stored. Who cares? If a system *only* provided anonymity it would
still be censorable if someone could find out where objectionable
content was stored and attack it somehow.

In this sense, I'm thinking Freenet is in a class all it's own.
Everything else seems like "just another file sharing system".
I could be wrong but to me Freenet now is looking like the p2p system
to work on. I would appreciate hearing your opinions on these matters.

Thoughts?
Zooko Wilcox-O'Hearn
2004-09-26 11:26:15 UTC
Permalink
I'm going to reply but send my reply to the p2p-hackers mailing list.
--Z
Post by s***@public.gmane.org
Post by Zooko
Personally, I think that the basic Freenet concept of achieving
anonymity by combining forwarding with routing (with the filesystem) is
flawed. In my opinion, even if Freenet's latest design (NGrouting with
erasure coding) can be made to perform well, the anonymity achieved
will still be minimal -- i.e. it will provide anonymity only against
very limited attackers.
Mnet does not attempt to provide anonymity. As I've said, I think it
would be a mistake to attempt to do that in the same layer as routing
and the filesystem. It could be provided in a lower layer in one of
1. The "one-hop privacy" approach, which means implementing an
anonymous routing system in EGTP (Mnet's communications layer).
2. Using an anonymous routing system that someone else has developed,
Zooko
I've been thinking more about p2p systems and our conversation.
Correct me if I'm wrong but it seems like Freenet is
the only project I know of that is doing the
original job of trying to provide a censor proof/attack proof/
anonymous p2p system.
I agree with your idea that MixMinion is potentially
a great way to add anonymity to a p2p system. However, I think
Freenet goes a few steps farther in that in addition to not knowing
who the authors are, they try to prevent you from even knowing *where*
something is stored. Who cares? If a system *only* provided anonymity it would
still be censorable if someone could find out where objectionable
content was stored and attack it somehow.
In this sense, I'm thinking Freenet is in a class all it's own.
Everything else seems like "just another file sharing system".
I could be wrong but to me Freenet now is looking like the p2p system
to work on. I would appreciate hearing your opinions on these matters.
Thoughts?
Arno Waschk
2004-09-26 11:37:18 UTC
Permalink
zooko, could you cc: this list as well? Thanks, Arno
I'm going to reply but send my reply to the p2p-hackers mailing list. --Z
<snip>
Post by s***@public.gmane.org
Zooko
I've been thinking more about p2p systems and our conversation.
Correct me if I'm wrong but it seems like Freenet is
the only project I know of that is doing the
original job of trying to provide a censor proof/attack proof/
anonymous p2p system.
I agree with your idea that MixMinion is potentially
a great way to add anonymity to a p2p system. However, I think
Freenet goes a few steps farther in that in addition to not knowing
who the authors are, they try to prevent you from even knowing *where*
something is stored. Who cares? If a system *only* provided anonymity it would
still be censorable if someone could find out where objectionable
content was stored and attack it somehow.
In this sense, I'm thinking Freenet is in a class all it's own.
Everything else seems like "just another file sharing system".
I could be wrong but to me Freenet now is looking like the p2p system
to work on. I would appreciate hearing your opinions on these matters.
Thoughts?
_______________________________________________
Mnet-devel mailing list
http://lists.mnetproject.org/mailman/listinfo/mnet-devel
--
http://www.arnowaschk.de
Zooko Wilcox-O'Hearn
2004-09-26 12:04:11 UTC
Permalink
I'm going to move this discussion from mnet-devel to p2p-hackers, even
though p2p-hackers has grown to 724 subscribers and it is intimidating
to disturb the peace of so many e-mail addresses. Because what is this
the list for, then, if it is so big, and so full of prestigious
researchers, that no one dare post to it? --Zooko
Post by s***@public.gmane.org
Post by Zooko
Personally, I think that the basic Freenet concept of achieving
anonymity by combining forwarding with routing (with the filesystem)
is flawed. In my opinion, even if Freenet's latest design (NGrouting
with erasure coding) can be made to perform well, the anonymity
achieved will still be minimal -- i.e. it will provide anonymity only
against very limited attackers.
Mnet does not attempt to provide anonymity. As I've said, I think it
would be a mistake to attempt to do that in the same layer as routing
and the filesystem. It could be provided in a lower layer in one of
1. The "one-hop privacy" approach, which means implementing an
anonymous routing system in EGTP (Mnet's communications layer).
2. Using an anonymous routing system that someone else has developed,
Zooko
I've been thinking more about p2p systems and our conversation.
Correct me if I'm wrong but it seems like Freenet is
the only project I know of that is doing the
original job of trying to provide a censor proof/attack proof/
anonymous p2p system.
I agree with your idea that MixMinion is potentially
a great way to add anonymity to a p2p system. However, I think
Freenet goes a few steps farther in that in addition to not knowing
who the authors are, they try to prevent you from even knowing *where*
something is stored. Who cares? If a system *only* provided anonymity
it would still be censorable if someone could find out where
objectionable content was stored and attack it somehow.
In this sense, I'm thinking Freenet is in a class all it's own.
Everything else seems like "just another file sharing system".
I could be wrong but to me Freenet now is looking like the p2p system
to work on. I would appreciate hearing your opinions on these matters.
seberino:

This is a good question! (By which I mean: I have to actually think in
order to answer this one.)

I'm thinking about the difference between "censorship resistance" and
"anonymity".

Mnet current attempts censorship resistance without anonymity. An
attacker who wants to delete a file from Mnet needs to overcomes the
erasure coding and the tendency of nodes to replicate data blocks.

Freenet also includes those two defenses, plus it attempts to hide the
identity of the server from the attacker.

MixMinion provides two kinds of anonymity: sender anonymity and
recipient anonymity. They are very different, because if you are going
to send a message to an anonymous recipient, you must first acquire a
cryptographic blob that enables your message to route to him without
enabling you to track him down. That's tricky! But MixMinion does a
pretty good job of it, while paying a price in increased complexity,
latency, and rates of packet loss.

In a hypothetical Mnet+MixMinion (which I'll call "M+MM") if the Mnet
nodes used recipient-anonymity then they would have the same kind of
protection that Freenode nodes have except that their anonymity would
be stronger (see below) and their communications less efficient.

Why would M+MM nodes have stronger recipient-anonymity than Freenet
nodes have? At the risk of over-simplifying, MixMinion is designed to
withstand an attacker with more points of attack, and at lower levels
of the network protocol stack. Freenet is designed to provide
anonymity against an attacker who runs Freenet nodes. MixMinion is
designed to provide anonymity against an attacker who runs many of the
IP routers than your nodes use for their Internet service (in addition
to running MixMinion nodes)

The reason that such an attacker can penetrate the recipient-anonymity
of Freenet is that he can do traffic analysis -- he can observe the
timing and patterns of messages that pass among Freenet nodes, even if
he doesn't know the contents of most of them. For example, if there is
an attacker who has packet sniffers on the right IP routers, then he
can inject a request for a file into the Freenet network by sending the
request to Freenet node 1. Then he simply watches and sees what
happens next. If Freenet node 1 sends a message back containing the
file, without having exchanged messages with anyone else in the
interim, then he knows for certain that Freenet node 1 is storing a
copy of that file. If Freenet node 1 instead sends a message to
Freenet node 2, then he has to see what Freenet node 2 does.

Anonymity researchers have developed extensive understanding of how
such traffic analysis attacks can strip away the anonymity from mixes
such as Freenet, even when those mixes use sophisticated and expensive
countermeasures which Freenet currently does not. [1]


So I think the bottom line on the question of integration versus
layering of censorship resistance is that the Freenet concept of
"anonymity as censorship resistance" can be understood as
"recipient-anonymity for the servers that store data and respond to
requests for that data". That feature could be implemented with a
separate anonymity layer as long as the anonymity layer offers
recipient-anonymity.


I would love to know if I've missed anything important in that analysis.


Even if you, seberino, still think that Freenet's integrated
filesystem/anonymity/censorship-resistance layer is the way to go, that
doesn't mean Freenet is the only current project that you can work on.
Freenet has inspired several similar projects such as AntsP2P and Mute
[2]. I haven't looked into them and know little other than that they
are new and are somewhat inspired by Freenet. There is also, of
course, GNUnet [3]. It is not new, and it does integrate anonymity,
censorship resistance, and file-system. There are also the other
systems that we have discussed before. If you've investigated some of
them and want to report on what you've learned I would love to hear it.


This is not to say that you shouldn't work on Freenet! Of course you
should. Freenet is a good project.


Regards,

Zooko

[1] http://www.freehaven.net/anonbib/
[2] http://www.infoanarchy.org/story/2004/9/23/185140/280
[3] http://www.ovmj.org/GNUnet/

Loading...