Vitalik Buterin on MaidSafe's consensus mechanism

Yes this is one of the issues we will have when we are so immersed in getting the codebase and launch in a way that is smooth and sleek. We are doing some pretty amazing things in the background right now (visible on github though) which will transform the speed of development, ease of engagement and reduce dramatically the barrier to entry. It means we cannot also be in protracted discussions, regardless of value.

some folk are in a fortunate position it seems to be able to spend inordinate amounts of time in blog’s, reports and investigation. We went through that years back (without the benefit of such a large audience). Every time I for instance engage to explain I lose at least a day and usually closer to a week in mailing list floods.

The best thing is to get the dev work behind us and then show via experiments and measurements how it all works.

The thing most folks do not grasp is that true decentralisation as in an ant colony works like this (in terms of what if 1 ant/group get’s XXX).

  1. A single ant is almost nothing
  2. A single ant can be easily washed away in a raindrop
  3. The kicker is that does not affect the colony
  4. The colony strength is repeatability and following simple rules.

This of it like this, an ant carrying food back to nest, or cleaning nest get’s killed. Does it affect the colony, well yes if you throw a ton of math you can even calculate how much. That does not however kill the colony. Why? This is natures way, wastage etc.

So we build decentralised systems and do not see this essential component. OR so it seems in many cases.

In short, allow your ant to get killed, but (and the big but) do not allow a single ant being killed, compromised or otherwise affect the colony. So in tech talk, if a group get’s killed and your design does not only allow that but use it as a natural step then your design is gonna die.

I very much disagree with math to the n’th degree and the amount of deep deep math investigation with really more complex equations. Nature I am afraid does not work that way but works when you align with it and allow the inevitable to happen and make sure you expect and work with it.

Now this 100% does not mean it’s not great fun (and essential) to investigate what is happening and try and formalise it, we do that. It just means the obvious should be considered and taken care of. Look at our case, say you could kill a group, the network fills that space in immediately!

Say you could control a group, well that is inordinately difficult (say you could control 51% hash power) but theoretically possible (like a beeetle shorting the switch for the nuclear launch :slight_smile: ), buy hey so lets look at it anyway, there is a realm and universe where it will be possible (and we may miss something, i.e. zero day exploit etc.).

So that happens, what is the consequence of controlling a group, you

  1. won’t be able to decrypt data (network nodes cannot)
  2. Cannot create safecoin (needs multiple groups deterministically chained).
  3. Cannot spend safecoin (groups do not have keys capable of signing)
  4. Cannot block access to data (needs again several chained groups)
  5. Cannot change data (it’s mathematically checked via crypto hash)
  6. Cannot alter structured data (groups do not have keys capable of signing)

Anyway lots more, so what can you do. Well vandalism really, potentially cause minor blockage or deny access (perhaps) to some network traffic (which is loosely parallel you cannot get them all). I am sure we all can come up with a ton more, honestly though I am very driven to get released right now (so don’t take this as me ignoring or unable to engage in hugely long deep discussions, we have many many times :wink: ) Also there is the system docs

So seems cool, is it robust, I think so, is it tested, only in lab so not in wild. Is it possible we have something wrong, yes it is and this is why we need code as readable tested and clear as possible.

So a goal is not getting too steeped in any thought experiments (too much, although they are important) and build release and test in the wild. This is what needs happen and the rest can be calculated for as long as we wish. We have folks looking deeper into what we do and it’s far from simple, I am sure we will have more, but the truth is there is an inordinate amount of thought already in SAFE and to try and explain it is almost impossible, so I am driven to show it instead :smiley:

I can almost guarantee though that pretty much any question will have an answer on this forum, our docs, reddit etc. as I know lots of folk will read this and then say “ah what about XXX when YYY does ZZZ etc.” it’s natural to ask, but I really need to concentrate on the dev processes, which are almost completed now, but at wicked pace.

46 Likes