To blockchain and beyond
By now you have figured out the PoW and PoS consensus protocols from the previous article on Byzantine consensus. The pinnacle of the consensus efficiency was the Byzantine Proof of Stake. A decentralized system running Byzantine PoS is fast and efficient because the system resources are spent only on transactions validations. To get a recap here is an algorithm of a single cycle on a node of the decentralized network that is running Byzantine PoS:
- Stack all transactions incoming at this node.
- Send your transactions to all other network participants.
- Receive transactions from all other network participants.
- Calculate if those transactions are consistent.
- Validate the consistent part.
- If we agree with the network on what transactions are consistent then pack all the transactions from this cycle into a single block and sign it.
- Vote to penalize everyone else who tried to sign inconsistent transactions.
- Repeat.
Every cycle of this Byzantine PoS voting produces a block of transactions that network has agreed upon. The entire history of the agreed transactions in the decentralized network could be viewed as a continuous chain of such blocks. The blockchain.
But is here a room for improvement left? If we don’t have wait for entire system to solve it’s PoW puzzles then… Why do we need blocks at all?
We can reduce the size of a block to a single transaction and trace if it gets confirmed by everyone on the network.
To make this system more cheat-proof we can select the confirmation nodes at random from the network. Thus it doesn’t matters how clustered are the network nodes that could try to go against the consensus.
Now instead of a chain with transaction blocks we have something more like a constant stream of individual transactions, each of them going through the entire network by a random path. Graphically it looks like a river of the tree branches.
Mathematically this object is called Directed Acyclic Graph (DAG). These objects has it’s own math areas devoted to them that is called graph topology. DAG-decentralized are similar to blockchain in a way they function but technically they are not blockchain since they have no blocks.
The better known examples of DAG networks are IOTA, Byteball bytes, Hashgraph. These systems have their transactions per second rate in range of several thousands transactions per second and they don’t cost an arm and a leg to operate.
SNTR team tried to use them for our purpose of building a data verification DAPP. But they always lacked something to meet our needs. Either they had no smart contracts by design or those smart contracts had a poor implementation so anything running those was too unstable.
It was so frustrating we eventually remembered that our core team consists of top tier developers with math background that are quite capable to create own lunapark with blackjack and… DAG platform with properly functioning smart contracts. And we did just that.