Hi again everyone,

I want to dive into a little bit more detail about how a fractal addressing
space might provide consistency without taking a major hit to performance.

Based on the system I described in the previous post, I want to talk about
how fractals might be combined with small world routing. There are
basically 2 possibilities that I see:

1) A strict fractal lattice is obtained via Metropolis-Hastings MCMC. Each
fractal generation continues swapping locations in our (0,1) space with
Sandberg's original acceptance function until a small world network is
created. This means search performance turns into Log base2 (n) + log^2(n)
on average.

2) A small world fractal lattice is obtained via Metropolis-Hastings MCMC.
If we know a proportion of how many long range links each node *should*
have, this approach may still resist Pitch Black. I am still experimenting
with this possibility.

When a node joins the darknet(I am not considering any opennet cases), we
may simply decide to choose a location in a generation that fits best with
our fractal neighborhood. At that point we may pick a location within that
fractal generation at random and swap until we have our desired
distribution of neighbors.

I would like to release more information about scalability but this work is
still being reviewed. It looks promising at the moment.

Unfortunately I had less time to write this than I had originally
anticipated. I will make my best effort to continue posting an informal
explanation but I will be occupied for the next 5 days or so. I will
attempt to release a draft of the paper to the list by the end of the week.

Thanks again.

On Fri, Jun 3, 2016 at 6:41 PM, Michael Grube <michael.gr...@gmail.com>
wrote:

> Hi everyone,
>
> Before you read this, I am writing the results more fomally in a paper.
> I'll be using some informal language and making some assumptions about your
> knowledge in this post. I really just wanted to get the concepts out there
> in case I'm hit by a bus or something.
>
> I wanted to share some experiments I've been doing. I think they may have
> interesting applications for Freenet, especially in terms of scalability,
> churn and the pitch black attack.
>
> Pitch Black is a severe problem for darknet routing. The heart of the
> exploit is that we have no way to check our neighbor's honesty about who
> their friends are. There have been some valiant attempts to solve this
> problem including an interesting attempt to abandon swapping altogether and
> use local markov chains. A problem with this is that the distribution of
> the keyspace responsibility becomes uneven and so we can naturally expect
> data loss.
>
> What if the addressing space were fractal? If our space becomes fractal,
> we have a large(theoretically infinite) number of discrete buckets that we
> can partition our space into. The self-similar property of all fractals
> also means that we should have a local way to check the distribution of our
> neighbors while maintaining a global structure. If a swap is proposed, we
> should simply be able to ask if it brings our neighborhood closer or
> further away from a fractal neighbor distribution. It also turns out that
> greedy routing in a fractal can achieve small world performance
> <http://arxiv.org/pdf/cond-mat/0612326v1.pdf> if we want to go that
> route.
>
> In my example, I will be using the complement of the cantor set, which is
> also a binary tree. This is not a coincidence - I'd like to demonstrate
> that using a fractal addressing system can still allow us to keep decent
> performance.
>
> Let's map our keyspace with the complement of the cantor set. This means
> that instead of removing 1/3rd of the space at every iteration, we will
> fill space instead. Iteration 1 is 1/3rd of the keyspace, iteration 2 is
> (1/6) and so on.  We now have a 2-dimensional address for every location in
> the network - the generation of the fractal that a position corresponds to
> and the value between (0,1).
>
> To make this easier to parse, here are some examples of node locations:
> (0.359465966, 1)
> (0.740859445, 2)
> (0.981788632, 9)
>
> The thought behind this is that if every node assumes a position in a
> fractally addressed space, there can be an expected local distribution of
> neighbors with respect to a given generation. So how do we calculate the
> fit of our neighborhood against the the fit of a proposed configuration?
>
> For a strict fractal lattice, we want the distribution of our neighbors to
> be:
>
> Fd -The fractal iteration distance -  1/3d where d is distance between
> generations
> Gn - The global probability of that neighbor, 1/3n where n is the
> generation our neighbor belongs to
> Gs - The global probability of us being in our generation 1/3s where s is
> our generation
>
> We calculate what our local distribution *should* be for a neighbor in
> some generation by using:
>
> (Fd*Gn)/Gs
>
> We can then ask our neighbors for the location of their neighbors, which
> gives us a picture of our neighborhood. Since an attacker knows who our
> friends are, but not necessarily our friends friends, it is hard for them
> to manipulate us into accepting an arbitrary position in the fractal
> dimension.
>
> I will write a second post tomorrow explaining these concepts in greater
> detail and include some graphs and code.
>
> Thanks and bye for now.
>
>
_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to