Byzantine buzz on chain.



Decentralized networks are considered to be a reliable medium for managing trust-sensitive

information. But how do we know that this bizarre encrypted blockchain is more trustworthy

then a centralized server?

Because obviously centralized servers are faster and cheaper to operate.



To cut a long story short, we pay for the whole blockchain network to reach a consensus

about the legitimacy of our transactions. A centralized server is running software which

decides whether the transaction is legit or not.



However, on top of this there is always an administrator whom can intervene. He or she can

alter the transactions outcome.

These administrators are human beings and as we all know, human beings arent always the

most secure elements of a system, since they aren`t black or white.

Every single node of the network is operated by a human administrator, but the whole of the

blockchain doesnt have anybody watching over it.



So, since the administrators can alter the outcome of the transaction and have the final say

there must be some anti-cheat system build in right? Especially since they receive big

incentives for doing exactly this. Right?



The blockchain was designed with the above problem in mind. Computer scientists and

decision theorists even tackled this problem long before the existence of the blockchain, since

its a common problem of any distributed system in which any part can give a wrong output,

but the system as a whole still behaves like its functioning properly in every other respect.



This kind of problem is named "Byzantine generals problem". Decision theorists are

apparently good at naming problems and coming up with fancy stories.

The fable goes like this this:



The army of Byzantine is laying a siege on a town. The generals are about to decide whether

they will attack, or whether they will hold their ground. The decision has to be well-

coordinated. If the army attacks at the same time and as a group they will likely win. If they

hold their ground together... well... at least nothing terrible will happen.



But, if some generals attack while other hold their ground, then those who will attack will be

overwhelmed, which is a disaster for the whole empire, since it will result in a big loss.



For some reason there is no such thing as an armys HQ, where all general can gather f.e. to

make decisions. Therefore the generals have to vote by mail.



Each general will send a mail to all other generals with their decision whether to attack or

not. However, to complicate the process even more, it quickly turned out that there are

traitors among the generals.



To confuse the generals, the traitors decided to send them random votes, so some will attack

while others hold their ground.



Long story short, if the amount otraitors are less then one third, the generals can use a

simple voting procedure to figure out their stance. The voting does include some smart tricks

to prevent the duplication of votes (like mailing each other votes they receive from other

generals) and to figure out who the traitors are.



The migration of this mathematical solution into code is called the "Byzantine consensus

algorithm".



However, the actual implementation of the Byzantine consensus algorithm within distributed

networks has some more nuances.



For example, imagine you are Satoshi Nakamoto and are designing worlds first blockchain.

You just implemented the Byzantine consensus algorithm into your software for the Bitcoin

network. Next you will be facing the following issue:



The more computers you have within your network, the more computing power.

The more computing power your network has, the faster it will mine new Bitcoins as a

reward for participating the computation.



How does one avoid this state, when all the limited amount of Bitcoins has been mined and

there is no more incentive to join the network as a miner? The answer to this issue was what

we nowadays call "Proof of Work" consensus

.

Interpreting Proof of Work in terms of the Byzantine consensus problem, would look like

this: Imagine that anyone can become a Byzantine general. Now, that would make a messy army

for sure, wouldnt it?



So, instead of this, it got decided that for one to become a general one has to pass some test.

After the participant passes the test, he becomes a general and can vote for strategic

movements. The more generals there are, the more complicated the test becomes.

A general always keeps on learning, so in order for him to stay in position he has a returning

test he needs to pass.



The salary of the general now depends on how good he is performing at the test in

comparison to the other generals.



Because of the amount of time put into preparation and actually participating in the tests, the

poor generals almost have got no spare time. But the spare time they do have left they spend

on mailing and military action.



Now, the good news is that the Byzantine Empire has gotten smarter generals whom are a lot

harder to fool. Since they became smarter they will more easily detect cheaters, so if you

cheat you almost instantly get kicked out.



Besides the humiliation of being fired as a general, you also wasted tons of time preparing

and participating in the tests.



However, the flip side of this is that the generals are now too busy preparing and participating

in those constantly returning tests, so only a tiny fraction of their mental capacity can be

actually devoted to doing strategic planning.



The above metaphor is the exact state of the Bitcoin blockchain. The biggest part of the

network resources has been devoted to do the "Proof of Work" hash factorisation instead of...

well.... actually processing transactions.



And because of this the network is stuck at a miserable 7 transactions per second.

Computational resources that are spent doing Proof of Work calculations turned out to be a

complete waste of valuable energy.



So, its obvious we need to find another way to manage our generals. What about the good

old shareholders voting?



Sure, lets give it a try! So, now the rules are as follows:



1. The generals dont waste time studying and participating in tests. There are no tests to

become a general nor are there any tests to remain one.



2. Everyone who is rich enough can become a general. No tests, money is power

3. You want to bring out your vote? Sure! Just attach some money to along that vote of

yours and you will be heard! This we call a "stake".



4. The value of your vote is proportional to your stake value. So your importance is

measured by the amount of money you own.



5. If the one who counts the votes decided that you are a fraud, you lose all your money.



6. And finally, you can focus on going to war!



The above solution is what the Ethereum network will implement in their future updates and

everyone will live happily ever after that.



Oh... wait... Except that when we talk about computers with near instantaneous

communication then we dont actually want to wait for every single computer to agree on a

block right? We could just dynamically switch network resources between sending new

emails and counting the votes to filter out all misalignment? Right?



Well, thats a topic for another day. And spoiler alert: this is the reason why SilentNotary

decided to make its own platform which will use directed acyclyc graph (DAG), witnessed by

delegated proof-of-stake consensus instead of blockchains.



