The SAFE Network is a self-configuring and autonomous network designed to manage all our data and communications without any human intervention and without intermediaries. In the past, it has been likened to a cyber brain, complex in nature and requires all component parts to all work in unison to achieve our vision of digital privacy, security and freedom for all.
No need to reinvent the wheel
It has never been our intention to invent everything ourselves, although this has quite often ended up being the case. SAFE Network features like Self Authentication, Self Encryption and Disjoint Sections are testament to that fact. However, we have always worked to reuse or repurpose existing technology if it worked well within the network design. No need to reinvent the wheel if you don’t have to!
In fact, one of the SAFE Network’s fundamental structures is Kademlia, a Distributed Hash Table (DHT) designed by Petar Maymounkov and David Mazières in 2002 that ‘specifies the structure of the network and the exchange of information through node lookups’. Our network design has required us to upgrade the original Kademlia design and introduce Disjoint Sections as mentioned above, but being able to take a design standard and repurpose it saves considerable resource and time.
In order for the network to reach an agreed state and to achieve consensus, members (nodes) of the network vote and democratically agree on a network state. These votes take the form of messages and may determine who has authority to access a file or to store a piece of data for example. Disjoint Sections requires an algorithm that asynchronously accumulates and orders the messages it receives from its members. This has been a challenging issue for our engineers to overcome and has in part required MaidSafe to release so many iterations and test networks (around 25) to this point.
We have spent a lot of time working in this area and have looked at many state of the art ordering algorithms in addition to working on our own. We have found a few that are very promising and could be adapted and one that we feel will work well within the SAFE Network. We believe this to be significant in that it would radically simplify our code, save a lot of development time and minimise the number of future testnets. This would enable us to reach our future milestones (the next of which is Alpha 3) much more rapidly and with much greater confidence as we can focus on the network’s unique features rather than dealing with the complexity of our existing approach which requires us to handle order related issues individually.
Unfortunately the solution we have found conflicts with our own open source ethos and is in fact closed source. We are currently working on a solution to this issue and while this effort is ongoing we will respect the developers license and keep the consensus ordering mechanism closed source and in a private repository as a temporary measure to allow the rest of the team to complete the Alpha 3 features.
We will never launch the Network with code that is closed source — so please be assured this is only a staging point on the road to achieving that result. This is an area that has caused us much internal debate but ultimately we have made the decision that we feel gets us to a full release more quickly. In essence, we believe the prospect of the end result justifies the route — and as the pressure builds across society for a solution to the status quo (as evidenced by the current Facebook/Cambridge Analytica story), our role remains the same as it has ever been — to create a system that is free to everyone to use around the globe in which each individual has the opportunity to gain full control of his or her digital rights.