What is OUR solution to the byzantine generals problem?

I attach a question that someone ask in burbuja forum:

To gain the status of “Vault” my node will have to provide storage space, but … calculation? for what? What kind of calculation? and most importantly How can they check the other nodes of the network in a reliable way that I made such calculations ?.
My node can start making those calculations and stop at any time. How the network exceeds the problem of Byzantine generals when consensus which nodes have failed to provide “estimates” and which nodes still do ?. as far as i know the only solution to the bizantines general problem is with a blockchain.
So, did you create a second solution or are you working on it yet?.

He wants the alogorithms if the problem it is already solved or the whitepaper if it is in progress.

CC: @dirvine


I would start with the whitepaper…

1 Like

Not calculations (or at least that’s not the hard part), but routing data. There will be a continuous stream of GET request arriving at your vault for the chunks you were assigned to store and serve by other nodes of the network. Serving these GET requests is your “proof of resource”. You have to keep up delivering this proof to be able to farm SafeCoin and to take part in the decision making proces of your vault’s “close group”.


so if you read the white paper I assume, you should be able to give an ELI5… :stuck_out_tongue:

as far as i understand the solution is based on a hierarchical system of 4 nodes, so if 50% of the nodes do not agree, then that group goes up to a higher level group of where it is one of the 4 nodes. i think that continues on for some amount of groups and sub groups.

but i could be wrong, that is how i heard someone explain it…

1 Like

nope…I need someone to ELI5 the white paper to me…lmao!..I have no idea what it says, just know there is lots of technical stuff in there that may be helpful! Way past my pay grade though!


For the byzantine generals problem one of the solutions is to have message signatures that cannot be forged. SAFE uses signatures that cannot be forged, so consensus can be reached by the data manager group that the vault succeeded or fail in retrieving successfully the chunk,

Read the paper quoted above for more detail.

EDIT: I wasn’t replying to prophetx, but the OP

1 Like

From the article by David Irvine Safecoin, why it’s safe and what it means for us all

Safecoin is a cryptographically secured digital asset. This sounds like a small issue, but in fact it is far from a small thing. One thing bitcoin was able to do was to find ways around the Byzantine Generals problem.

This same problem is solved in the SAFE network. Unlike bitcoin though this is not a ledger type single piece of information copied multiple times for safety. This is a fully decentralised approach. This has several advantages.

Many of the bitcoin technologies rely on adding to the blockchain and using it as proof of something or evidence of an event. These things in SAFE are non transferable digital assets. There can be billions of these systems at very little cost, certainly not bloat.

This gets interesting now.

We can have transferable assets and non transferable assets. So we can have auditable events locked in the network and transactions locked in the network with ‘network atomicity’. This means that with some clever work by app developers we can emulate almost every system imaginable, including contracts and laws etc. Add this to the capabilities of SAFE already and we can see what the future holds!


Ah, thanks, I understand now how Maidsafe solves the Byzantine Generals problem: by signed receipts of which only the latest needs to be kept. Like Open Transactions.

I wonder if someone might give me the TLDR on how Maidsafe prevents double-spend? Open Transactions does it by a vote of n out of m servers in a pool of independent (indeed, competitive) OT servers.

It’s network atomic. So you own coin Y and want to transfer to me. I ask network for coin Y, it says you own it. Ok we have a deal. Then you send to me and the group Y all see your signed update to make me the owner. When that completes (they all have seen it) I can ask again and will be returned Y safecoin as me as current owner. So cool.

However, you then try to double spend. So you also make a deal with John who does same as me. You send two messages to group Y, one making me owner and one making John owner. Group Y get these very close together. Some think I own it, some think John owns it. If there is no QUORUM then it does not accumulate and is in fact lost. the hacker losses and rightly so.

So the double spend attempt results in loss of that coin, but at no time did John or I even think we owned it.

Hope that helps.


@dirvine Thanks for your answer. It’s cool, indeed.

So it’s a vote, and the voting group are unknown to each other, so the only possible attack is to take over a sufficient majority of the whole network.


Here is the double spend problem being discussed in the recent interview with @ioptio

This host does a great job recapping how it is solved. (At 22:30ish, I set the link to start there. :slight_smile: )

1 Like

Is there a precise reference for all this process?

I understand that “reaching a QUORUM” is equivalent to solving the generals problem which is the original question in this thread.


The quorum etc. is discussed in many rfc’s particularly safecoin related. It is also discussed in some depth in my blog (metaquestions.me) in the later articles. Also in code itself in routing (where it all happens). It’s a bit of reading though, but should make sense quickly. Basically it’s a min number of nodes in agreement in a group.


This may be a wildly unlikely and unfeasible scenario, and if so please let me know, but what would happen if an attacker with infinite resources, who intended to disrupt the network, were to somehow accumulate a majority of SAFEcoins, and do this very double spend scheme, with the sole intention of destroying the SAFEcoins in circulation? What could the possible implications of this be?

Feel free to call me an idiot if I’ve missed something glaringly obvious. :slight_smile:

My understanding is the coins would be recycled on some sort of schedule so they would never completely disappear…I too may be incorrect though… :slight_smile:

This sounds like the coin is not destroyed, but in fact becomes without an owner.

I have not got that far in the rfc

1 Like

Then “reaching a QUORUM” implies the solution of the Byzantine’s general problem? Don’t you think it will be academically worth writting up a self-contained proof of this fact and publish it in a top peer-review journal?

I understand that in these problems the details are fundamental. Again, is there a precise paper where the transactions of Safecoins are described in complete detail?

1 Like

There is a paper describing this, although I think the implementation has been simplified to remove the transaction managers, so it may not be the definitive “proof” you might be hoping for. I don’t have time to dig it out, but there are links to papers in the wiki and at http://maidsafe.net [edit: links removed see @dirvine comment below]. Please let us know how you get on.

That is right, so when it cannot reach QUORUM it cannot stay alive through churn. So effectively it recycles. It would not be available to overwrite until a few churn events have happened. The group members may thing something is there but cannot agree what it is. The would not be able to convince new group members (through churn) of the owner and the new group members would not accumulate (accept) the coin. So as the group is changed over time the coin moves from in disagreement to gone (recycled)


We already have some papers published through peer review. This will happen and there is a student who writes these up and publishes them as part of his doctorate. I think we should link all of these in the WIKI and point folk there. They did used to be linked in our old site so we can revive them.

Peer review papers for publication can take a great many months though. so it’s a balance of getting the network out, running the project and having papers published. It is also best of others publish papers, not us or me personally.

Safecoin has not made it to any papers, but the process handling data has and safecoin is a peice of data. I am sure all this will happen, I would love to have taken a few years to get that done, but sometimes it’s better to build and demonstrate the culmination of ideas. Then papers are much simpler to write with a working system to demo them.