A brief look at distributed ledgers,consensus protocols and Zenon Network
Distributed systems have been a subject of interest both in computer science and the real world,they have been built and studied for the past 50 years,thanks to men like Leslie Lamport and Barbara Liskov for the pioneering work around distributed consensus. Since the birth of Bitcoin in 2008,the interest around the subject of distributed ledgers have tremendously increased,many other inventions have been brought up,every day new cryptocurrencies and blockchain projects are been announced, with many claiming higher transaction outputs.
In this article,we give a simple introduction to distributed ledgers,their underlying properties,some projects doing well so far and how they Zenon Network leverages the strengths and weaknesses of some DLTs to build a network that is scalable,decentralized and secure.
It’s a network that has two tokens,it also has two layers. We will be going through
what are distributed ledgers,the different kinds of distributed ledgers,how Zenon improves on current designs,
*** Chico Crypto on how blockchain projects fake tps***
Fraudulent bot trading on exchanges,Bots used to game daily transactions on sites like blocktivity, Bots used to game sites like dappradar,volume numbers on apps used to justify traction,Fake “partnerships” used to create illusion of big business buy in,Bot like apps, Apps pushing transactions to the blockchain in the background,
What are distributed ledgers?
What are distributed ledgers?
We will need to decouple the compound term, Distributed ledger into two seperate word “Distributed” and “Ledgers”.
A ledger is simply a system of records,something has actually happened and we log it in,distributed ledgers are ledgers that are not stored in one central place,it’s not just with one party,in case anything happens,you can still access the data on the ledger because it is stored with with different people.
Another property with distributed systems is the property of fault tolerance,if the system is attacked,can this system continue running?
How many nodes can be offline due to malicious and non malicious behaviours and the system will still be running. If 1/3 of the network,due to crash.
Crash failures these are failures that are not malicious in themselves,
Byzantine failures : these are failures of the .. because there is a ulterior motive of the participant,an attacker can actually in such a way that it will cause the system to pose false message,an attacker can attack a system such that it will corrupt other nodes to give false messages.
There are three categories of distributed ledgers,we have public ledgers like bitcoin,ethereum,we have private ledgers and also hybrid ledgers(like consortium).
Bitcoin is the most popular blockchain,how does bitcoin solve the double spend problem?
The double spending problem is one of the things that happens with files online,for example if you send a copy of a file to somebody,the person can copy that document and send to other people,even if you are saying: Hey,… that person said yes I will not send it to another person but how do you know that this document has not been sent to another person,that is what we call the double spending problem.
So for a network to be very feasible,it has to solve the double spend problem and bitcoin solves it by actually enabling people in the network called miners to solve a cryptographic puzzle,if you are able to demystify this puzzle and say well I have come up with an answer,then you can actually say that you have solved the double spend problem,there is something called mining which everybody knows about.
What consists a bitcoin account?
A bitcoin account consists of just two things which is called the public key infrastructure,so if you are very vast of.. meaning there is a part that is visible to every person of the network and there is a part that is just visible to the owner of the account.
So public key infrastructure has to do with systems that has to do that enables one to be able to sign and send messages(in this case coins),so lets take for example,you could receive messages through your public key and you will be able to sign messages through your private key,the messages could differ,it could be money,it could be anything.
What consists of a bitcoin transaction?
We have the input,the output and the metadata(the hash and other additional data) but Ethereum came in and there was an evolution of DLT,smart contracts that were conceived by Nick Szabo were given life by Ethereum,
What are smart contracts?
They are basically contracts that can execute by themselves,bitcoin supports simple turing incomplete contracts but ethereum contracts are deterministic(what that means is that you can have the confidence to say that as long as there are no bugs or runtime errors,this code will give a predetermined output) and verifiable(so you can actually come back to a previous computation and say lets verify what actually happened in the network as regards computing the smart contract).
There are the pros and cons of smart contracts,if the contracts are poorly coded as we have seen with many smart contracts,it could cause a lot of damages like loss of funds and lots more.
Types of ledgers
it’s is often confusing for many people to differentiate between a distributed ledger and a blockchain,
A blockchain is just a subset of a distributed ledger,is like saying that there is a continent and we have a a nation inside the continent,you can say California is the USA,it’s just a subset of the united states.
So lets start with blockchains
What makes blockchains truly blockchains is that ,there is something called blocks and there is something called merkle trees,
A block is a unit that can actually house transactions,lets take for example that we have different kind of transactions that can actually happen in a network,we can actually group them together,these groups is we call it blocks,so lets take for example and say if a transaction happens,from X — Y timeframe,put them in one unit and call it block,we determine how many transactions can go into a block(block size),what time it will take to process such transactions(block time).
… blocks are units of transactions per time …
A merkle tree is another,.. is a kind of data structure,that you can be able to reference what happened at one point to another. So what that means is that we take these blocks,we do some computation on it,it produces a hash that is random and we can take that hash and we link it to another block and the list goes on and on.
For a blockchain,you take a block and you put the hash,you chain to another(link it to another),
A blockchain follows the principle of the longest chain,because there is a race to compute the nonce of a particular transaction,different miners could actually come up with the nonce and to actually compensate those who submitted first and to prevent double or multiple rewards,it goes with the longest chain principle.
The miner who has the longest chain,will be the one whose transactions whose transactions will be be added in the network,
With the blockchain comes the issue of the block size and block time,we talk about the issue of sacrificing tps and all that,in a blockchain,every miner will have to compete for a single transaction per time. It’s not like sharding.
The next distributed ledger is called the DAG(Directed Acyclic Graph),what that means is that unlike the blockchain,that has a linear data structure, DAGs uses a data structure that is modelled after those of block trees and graphs.
So as you can see from this image,it is not linear.
We want to use IOTA for example,if a transaction happens in the iota network,for that transaction to be confirmed,the user has to confirm two previous transactions.
Other implementations of DAG can be seen in Byteball,Avalanche,Hashgraph
Holochain : Holochain has been in development since 2018 and even earlier,it combines concepts like distributed hash tables,git and bittorent.
It takes an agent centric approach to distributed ledger as against a data centric approach in blockchains.
If we go back to blockchains for example is all about data,while holochain talks about nodes,the nodes in the network do not compete for transaction,it does not replicate data across nodes,it divides and distributes data across different nodes and establishes access to data that is only useful for a particular node,it will only task and request data from nodes that has anything to do with the data.
Block lattice : It uses account chain,it is like saying every user in the network is a blockchain.
If we come back to blockchain for example,this is a user,
Because each user can update their state independently,it’s very very fast.
The account chains can grow concurrently,
So what is Zenon,if you look at all these distributed ledger technologies,it combines a DAG(for the consensus layer) and a block lattice(for storing transactional data).
**At the core of distributed ledgers is an algorithmic process known as consensus
“Consensus is how do we arrive at a conclusion”
How do we say something is actually valid and remain valid.
So consensus has to do with how do different parties with possibly different interests arrive at a conclusion,there has to be predefined rules,you can now evaluate how efficient a consensus algorithm is based on security and performance.
For security(we talk about resistance,
Adversary(if there are byzantine nodes),and that is where you talk about fault tolerance,how tolerant is the network to byzantine nodes,how does it deal with sybil attacks(sybil resistance)a person could take a whole network,a person can corrupt other nodes with false identities and how do we prevent such kind of attacks,accountability and non repudiation(You use timestamps and cryptographic signatures),DoS(denial of service attacks) can we deny a user from accessing the network or a potential node from accessing the network,Censorship attacks : can we stop someone from accessing the network,
How do we define performance,we define performance in terms of throughput(how many transactions can it handle per second),scalability(will the entrance of more nodes result in better performance),fault tolerance(how long can a network hold in the presence of crash due to malicious and non malicious actions),latency(what time does it take to finalize a transaction).
Proof of Work
It has to do with trying to solve a cryptographic puzzle,it involves heavy computation,there is the centralization of the mining,it consumes too much energy,it takes massive capital to start up. It’s slow.
Proof of Stake : It replaces the heavy computation that has to do with PoW with a staked based consensus,one’s ability to confirm transactions is no more dependent on how much computational power you have but how much skin you have in the game.
The first successful implementation of PoS is PeerCoin,Ethereum is currently trying to transition to PoS and staking seems the buzzing term of the current ecosystem,if you have a naive implementation of it could results in problems like nothing at stake attack,coin age accumulation,cartel formation attacks,
There are other variant of PoS consensus like with delegated Proof of Stake,we could have fixed or dynamic committee of leaders unlike in PoS where it is based on how much stake you have in the network,the more you are likely to be drawn among those who can validate a block,to evade or decrease such competition,it appoints delegates.
EOS uses 21 leaders, Lisk uses 101 leaders,Tezos and others chooses them randomly.
Proof of activity(PoW + PoS),Proof of Importance(NEM),Proof of Capacity in Burstcoin,Proof of retrievability,Proof of Elapsed Time and other form of consensus.
We have the likes of those which improves on byzantine fault tolerance(Zilliqa for example has an hybrid of it,it uses proof of work for identity establishment and BFT for consensus committee), Tendermint Protocol that combines(PoS + BFT), NEO(dBFT).
The next form of consensus is virtual voting,it has to do with messages,it sees transactions as messages,if anything happens in the network,a node acknowledges awareness and receipt by telling it to other nodes,it called gossips,a node receives a transaction and it informs other nodes about what it receive and the information relating to that transaction and this second node tells others.
In Hedera Hashgraph,it is called gossip about gossip,it implements
What is Zenon using?
It employs a virtual voting scheme,what are some of the nodes within the network
Nodes in Zenon Network
Trusting nodes : They are basically lightweight,they require mininal resources,it stores data,it could be a pruned version of it,(store transactional data and monitor user accounts)
Trustless nodes :They are similar to pillar nodes,
Pillar nodes : They are involved in consensus,they also help in relaying traffic between other pillar nodes.
It requires 15000 ZNN tokens,
It implements a virtual voting scheme based on Proof of Stake,this different nodes in the network has different functionalities,
Transactions are grouped in consensus rounds called Epoch,in every epoch each of the node that participants in the … compute a proof of work, .. marked by a special transaction,which is then sent through the network, …. after receiving the finishing proof of work link,the supermajority nodes enter into the next epoch and marks this with a particular transaction.
This is a transaction,they are grouped into what we call Epoch,we have to compute the nonce value of that particular transaction,we compute the proof of work of it and we say,this is what we have done so far,we submit it and it continues with the next epoch,
Another thing is that Zenon Ledger,it uses the block lattice for storing data,virtual voting
Proof of work links
…. in this place,the transactions has been created,let say this is the result that came with computing,the epoch and we add it to another epoch and the list continues,
Conditions for PoW links
Only sentinel nodes can participate,they can only participate through valid private keys,only one private key can participate per time(uniqueness),a minimum overall weight.
… like your banks,you have relationship managers(sentinel nodes)
How does transaction works in Zenon
1. The user initiates a transaction
2. The transaction is broadcasted to the other nodes in the network
3. Sentinel nodes will have to prove that they have received this transaction using Pow Links
4. The sentinel node relays the transaction to other sentinel nodes
5. Other sentinel nodes do the same computation(PoW)
6. The process continues until it means a specific weight threshold
7. Once this is achieved,it will send the transaction to a consensus node that is chosen at random,
8. After the consensus node has validated it,it will serve as a standard to discriminate against double spend.
If you initiate a transaction in the bank,there are cashiers in the bank,these cashiers will take your transaction and process it
They are basically… virtual machines are computers that can emulate an actual computer,unikernels are minimalistic forms of virtual machines,unikernels are standalone versions of a whole virtual machines,Trusted Execution,
Just like you have an android emulator,
Possible attacks against the system
For transaction fees
Pay for gas on Zapps
MicroWorkz ID : MW ID: #mw542