Balanced Adaptive Relay Network (Getting rid of dedicated servers safely)

Chat systems are in their current implementation mostly implemented with the use of central server systems. In the past the IRC protocol put a real step in the right direction by creating a network of relaying servers. Unfortunately with the large amount of clue-less windows programmers that have come onto the Internet over the span of the past decade, the methods used in chat applications like ICQ etc take us back to the time before IRC.
What this project aims to do is to lay the foundations of a generic layer of relaying p2p nodes that future implementations of chat, game and other now 'central server' based protocols could use to build their services on.

The basic design of this network is based on one important principle:
Central servers put a large strain on the resources needed to 
implement a software system, making the central server principle 
into a bottleneck for progress.
Peer2Peer software tries to address this problem, but unfortunately not in the best way. Most peer2peer applications are not true p2p, that is they still make use of dedicated servers for coordination and/or name resolution. Next to this Peer2Peer software in its current form, and certainly in a 'pure' form has got two important security issues: 'containment' and 'trust model', these two have great interdependencies, and are hardly addressed in any of the current p2p implementations.
Further having each application create and use its own network is also very inefficient.

This project tries to :

P2P and containment

Where with server security you can say 'a server is not a client', and can based on this contain and detect any intruder or worm (For more information on containment please read this text on Worms,DDOS agents and containment) , on p2p networks you can not say this, in fact every server will be a client, at least at a network (l3+l4) level, and what is even worse, on p2p networks the network itself could facilitate things like worm in spreading.
In order to implement some level of containment we need to start thinking differently of p2p.
At this moment the whole p2p concept is mostly implemented completely in single user-space applications containing both server and client capabilities. If you think of the lower layers of p2p networks as an additional L3+L4 layer facilitating the p2p network, than we see that the complete L3+L4 stack, and both the server and the client are implemented in a single application, and this for every p2p application. As we can see clearly see containment can not be implemented on a network level but only on a host level, with current implementations there can be absolutely no effective containment. By defining a containment model based on separate components that depend on the containment possibilities of the operating system that implements an application independent p2p L3+L4 to applications that are either server or client it would be possible to do at least some host based containment of p2p applications, this will never waterproof, but it will make security much tighter than it is now.

Pure P2P trust-model

Next to the containment problem we need to look at the pure-p2p trust-model. The trust model of true p2p is in its essence very difficult, and in fact I realize that I (or for that matter people 10 times smarter than me) might not be able to create a waterproof trust-model not based on a static hierarchy but on a principle of democratic dynamic hierarchies and mutual distrust. However if this problem/challenge can be solved, than this could possibly take away most of the perceived astronomic security issues surrounding p2p.

Three layers of networks

To create the global true-p2p infrastructure we need to differentiate between the different functions of the network, and realize that extended functionality in one big global network could lead to the use of high amounts of resources on some parts of the balanced network. To avoid this we should define 3 types of networks that have by themselves limited functionality, but that together provide the needed functionality without the dangers of resource bottlenecks. Further these three types and their functionality are made part of the containment model thus reducing the security impact of bugs in the implementation. The Global and namespace networks will be partially hierarchical, the maze network will not.

Network design goals

The following design goals apply to all 3 types of networks

Design goals for the hierarchical networks

The global application independent network

The first goal is the creation of a global 'root namespace' network. This network should be without dedicated servers, be redundant, reliable and provide the top namespace that is needed to facilitate the application dependent namespace networks.
For this the following design goals should be reached:

Namespace networks

The 'name-space' networks are each meant to merge into a network that includes each node that is within that name-space within the root network. This network itself has the following basic tasks:

Maze networks

The 'maze' networks are fully mazed network between a small group of nodes (n > 1) that all fall inside of the same sub-name-space.

Layer 4p2p

The 3 network types together can be considered to provide a new layer 3 interface between the different nodes. The networks do not provide sub-node addressing for the inter node communication. For this reason it is essential that this function be implemented somewhere in the design. The exact place for this is still to be determined.

Open protocol

If a open protocol can be constructed that contains all of the concepts and goals as described above, this protocol could facilitate a new p2p layer for use in chat, game and other applications that require the participation of multiple clients, and that normally would require a dedicated server. The use of a single open protocol for this that supports multiple name-spaces could help to create a global application independent p2p network


As for now all I have are these sets of concepts, some unpublished possibly dangerous algorithms and concepts, if you would like to participate in the development of this protocol, the library or more important the creation of the trust model needed for a safe implementation of this protocol, please contact me. I have come to the conclusion that the most important thing we need is a close to watertight true-p2p trust model based on democratic principles and distributed random number generation, before this is realized the publication of draft protocols would be dangerous, and any coordinated work on this for that reason impossible. For this reason I would like to ask anyone who has some knowledge of trust-models to participate in the design of a trust-model that would be suitable for the BARN construct.