Introduction to VIVA, part 6 : A Game of Chains


Can loyalty, reputation, power and greed be used to produce Byzantine Fault Tolerance?

@dantheman has made some fascinating posts on consensus and designing the blockchain like an MMO.

The problem that is being overlooked is that these design techniques he mentions work well for small groups i.e. Multiplayer, but not large groups, MMO (massively multiplayer).

I posted an earlier response discussing the technical aspects of how MMOs are built, but didn't really dig into the "why any of it" was relevant.
The reason it's relevant is because blockchains play an MMO game already, well call this "A Game of Chains".

What @dantheman is refering to as "game state", is nothing of the sort.
It's "world state", i.e. the collection of information, i.e. events and rules, required in order to arrive at what the correct "next step" ought to be for the world as a whole, instead of the individual player.

The more mission critical this "world state" is to the outcome of the game overall, the more guarantees you need as to the accuracy of the events, including their order and the rules in effect at the time those events occured.

But to understand why we all play this game, we need to look at the specific rules of the game your favorite blockchain is trying to play by and examine them more closely.

I'm going to use Game of Thrones references because it's a popular enough show and many of the people reading this are already going to be familiar with the temperaments of the various characters to understand what I'm talking about hopefully.

The problem of consensus is best known by the title of a white paper from the 1980s entitled "The Byzantine Generals Problem".
It's so well known, that "Byzantine Fault" and "Byzantine Fault Tolerance", are synonyms for issues related to consensus problems in a system that must come to consensus or suffer a severe fault. This is one of only a handful of math problems for which there is a mathematical proof that no mathematical solution is possible.

I'll present the general case of it here.

A number of Byzantine Generals have separately surrounded a heavily fortified city and must make a decision as to whether to attack in the morning or retreat.

  1. They can only communicate via messengers and there is a non-zero probability that some messengers may not arrive.

  2. There is a non-zero probability that one or more generals has turned traitor and will send out a message to attack, but instead retreat or vice versa.

  3. There is a non-zero probability that one or more messengers may have turned traitor and substituted their own message for that of their General, or some variation of the "fake message" problem.

  4. The sacking of this city MUST be a collective effort.

  5. If any one general fails to attack, the outcome is an almost 100% guaranteed defeat for the remainder of the army that does attack. all hell breaks loose and everything falls apart

It's immediately obvious to the observant reader that this is a problem of consensus, all must agree to act in unison or all lose.

Blockchains were in fact derived as a solution to this Byzantine Generals problem.


It became appearant in the mid 1980s that problem 3 is easily solved by cryptographic methods. Every General can encrypt their message with the public key of the other Generals and sign it with their own private key. This is called "secret box" encryption and is the same thing as "delivered under seal".

So let's cast the various blockchain solutions in the light of BFT and explore their implications.

The first solution was the one proferred by Bitcoin and the most obvious... Fire the Generals!
Under this solution, there are in fact no generals. Instead there are drones following a very strict set of rules.
So long as each drone is running the same ruleset, they can query their neighbor on the sequence of events leading up to the current world state and their order. As long as each drone is running the exact same software, feature for feature, bug for bug, they will all arrive at the same conclusion.

In otherwords, every General is just a messenger and every messenger is a General, in an army of one.

Now the problem here arises that occasionally someone will issue a software update. This software update will cause updated nodes to apply a different set of rules to the same events. These updated drones, will now make a different decision than other drones.

The value of the system is only there if a super majority decide upon the same "next step".

The Bitcoin solution has always been "51% majority rules". But the fact is, this wreaks chaos of it's own because you now have 2 armies acting independently and they are no longer a single unified army. The larger the updated group, the more havoc this causes and at 51% you stand a very real chance of substantial loss since you have roughly half the group saying attack! and half calling retreat!
Furthermore each member is going to do it's own thing according to the rules of it's programming, updated or otherwise.

The real problem here is sometimes even good intentions go awry, especially in software.

So "Proof of Work" = "Army of White Walkers"

To address this problem "Proof of Stake" coins were created.

Where Bitcoin eliminates Generals entirely opting instead for "an army of one", "Proof of Stake" says...

"The general with the most gold makes the final decision."

The problem with this is that there is no guarantee that the general with the most gold is going to operate in the best interests of the empire.
In fact what we find is that Proof of Stake coins are plagued with issues because rational people tend to act in their own best interests.
Proof of Stake when it works, only does so because the best interests of the largest stakeholders usually do align with those of the empire.
In the case of disagreement the person with the most gold assumes the role of Supreme Commander.


So "Proof of Stake" = "He who has the gold makes the rules"

@dantheman created DPOS or Distributed Proof of Stake which is a subset of Proof of Stake and designed to solve most of the problems with PoS. My opinion is that this is a good balance if you're going to go with something related to stake.

Under DPOS, each General's decision is weighted based on a couple of factors.

First and foremost among them is "what are the assets of the lord of the realm they represent" and second is "when did their decision last become the primary decision everyone followed" and thirdly "did the outcome of said decision meet with approval by the fiscal majority of the real lords paramount?"

This system of DPOS has been successful because as you can see there are many more checks and balances than in standard PoS. Also real consensus is after the fact determined and at any given point only a single General has command of the entire army.
Just like in PoS, we have a "Supreme Command of the Theater of Battle", but to keep him honest we all take turns being supreme commander.

DPOS is superior to POS in so many ways, for instance, in a coin with a truly fair distribution, the peasants and even the soldiers can elect a leader who represents their best intrests and pull their support on a moments notice.

The real problem is that money is not an egalitarian construct, it is a tool of empowerment and control and those who seek a little power will generally stop at nothing to obtain more.

Allow me to explain...

Where DPOS and POS both fall down is that neither of them bother to account for the long time player who has a final "end game" state in mind from the beginning.

As the coin of the realm falls into the hands of more and more peasants, it naturally loses value because the supply has increased and the rarity has decreased. It's percieved utility per unit drops and therefore the price one must pay to obtain this coin also drops.

War is hell and realms frequently must mint and sell more coin in order to pay the bills, because unfed soldiers are reluctant soldiers and peasants who have to stand in breadlines will gladly open the gate for the enemy as long as it looks like he's bringing bread. Whether or not he's also coming to take your head.

Humans are complex creatures, so this happens a lot, but not always...

All of this means that anyone who relies on the price of the coin to make decisions is at the mercy, more or less of not only the price of coins, but the whims and dictates of those who hold the coin and holders of a coin will eventually want to see their investment repaid one way or the other.

This isn't even accounting for psychopaths who want to play a whole different game.
One where they can burn the world just so they can be king of the ash.

Ok then so what is the correct solution to the Byzantine General's Problem?
Mathematically this has been proven to be an unsolvable problem.

But that's because mathematicians and computers, suck at strategy in a real war and any soldier or sailor fresh out of bootcamp can give you the correct answer, so here it is.

If this were a real war...

If communications were down and you're in a position of prime authority and leading real men to battle where they might die if the other half of the army doesn't join in. This means you are in a position where you stand a good chance of losing because you can't communicate reliably with the other half of that army.

The other general is actually irrelevant in this context only the forces under his control matter.
And that's what these various blockchain solutions have determined already.
The bulk of differences boil down to "How do you select for Supreme Commander?".

In the real world, you hold fast until communications are restored with a high degree of certainty and if there is any doubt, you both retreat and live to fight another day.

You don't win a war by dying for your cause. You win a war by making the other guy die for his. -- George S. Patton

So are there other solutions?
You bet! But the best solution is just not to be in a situation where lack of consensus produces a "game fault".

Going back to @dantheman's original assertions, that the blockchain should be a stream of events and that consensus should not be part of the world state.
This is partially correct, but not the whole picture. The way you solve this is to have multiple channels dealing in various event types each with their own specific ruleset. The various channels come together into streams, these streams apply the "aggregate" of the ruleset with some degree of fudge factor.
Streams come together into "world state snapshots" at a periodic interval.
Each client only needs then to query for the current world state snapshot.

It's the difference between looking at a recently updated map with everything labeled and trying to examine the ground yourself with a ruler and a magnifying glass.

The world changes too quickly for any one person to know the precise details of every grain of sand.

But this presents a problem for money. Money isn't a war in fact it's the opposite of a war, in order for money to work as money it has to have a high degree of both consensus and accuracy and what we're finding is that rapid consensus negates accuracy and vice versa and this problem worsens the more actors you need to account for.

The solution then is to not make everything about money. But when you do have money at stake, slow down, be precise when actual money of any significant quantity is moving, and introduce a concept of "counter signing", where a party with enormous resources (relative to the transaction) guarantees the transaction until consensus can be reached.

But if you're going to go that route, why not just have the parties with enormous resources settle in bulk between themselves at a much slower rate, say once a week?

The point of even being sovereign is that others recognize that your word is good because it is backed by the good faith and credit of the entire nation you captain. This becomes even stronger when the entire network, i.e. world, backs every claim you make simply by your seal. A system like that can work well because if a claim cannot be covered, the network mints enough to cover it and covers it regardless, perhaps setting a severe future penalty that must be paid before the sovereign can make further claims?

This is the power of what we call "Proof of Authority", it's what's present in VIVA. This authority is de juris mutual assent to settlement between the various parties based on the pledge of one set of assets against a whole other set.

If one party falls out of consensus the other parties automatically assume the non-consenting party's assets and liabilities so that end users are unaffected. Nothing is lost in this scenario, and a worst case event results in bankruptcy of the crown that issued the uncovered notes, rendering it feeble and powerless until debts are repaid and the party brought back into consensus.

VIVA exists because we treat money, not like a movie, nor a war nor or a game. It's not a math puzzle to be solved nor even "an interesting computing challenge".

Instead money is a mutual business concern and the value of the coin of the realm is what is paramount.
Despite lack of anything really resembling PoS. The value of this coin is directly related to real world metrics. How much moved and for what price, at what times, between whom and for what reasons?

Our system is one that cuts out the pain points of useless governments, middlemen bankers, financiers and others that add no value to the system.

Instead, our businesses maintain high speed networks between each other using a protocol designed specifically for speed and flexibility, while recipients and senders can attach to any on ramp globally and be 100% guaranteed that the word of the person sending funds is as good as gold because their word is also the network's word. No chargebacks, no double spends, no BS.

Our model is one of a dynamic, flexible, highly energetic system. One where energy naturally flows from places of high pressure to places of low pressure, always seeking equilibrium and doing useful work in the process.

In otherwords, it's an engine!

Each participant plays a distinct role and the engine is able to respond on demand to price changes by increasing or decreasing the energy in the system whether in a specific location or globally. Price and Supply are used like accelerator and break pedals.

This is similar to stepping on the gas peddle to climb a hill and laying off the gas and even applying the breaks in order to bring the entire vehicle and most importantly it's occupants, safely to their desired destination. This destination is what we define as consensus and it's the result of a lot of bits and pieces all working together. Not just the gas, but all the moving components that go into it's construction.

By modeling energy as an energetic system performing work and using it to represent money we get to the core of what money really is.

Real money is the power to make your will felt in the real world and get to the destination you want to be, here in the real world!

Welcome Future Crown Holders...
Part 1
Part 2
Part 3
Part 4
Part 5

If you want to talk with others who feel the same way, feel free to join us at chat.vivaco.in


As always this post is 100% Steem Powered!

H2
H3
H4
3 columns
2 columns
1 column
50 Comments