Description of Waves Enterprise Operation Protocol which provides performance advantage relative to other blockchains.
Block — a set of transactions registered in the blockchain signed by the miner and containing a link to the proof of the previous block. Limited to 1MB or 6000 transactions.
Round — a period of time between issuance of key blocks. A floating value is controlled by the consesus algorithm depending on the load on the network, averaging 40 seconds.
Proof of ownership — acquisition of mining right in the PoS consensus.
Node — network host with the Waves Enterprise blockchain application running.
Miner — a node whose address has sufficient balance and a “mining” permission.
Key block — contains no transactions, only service information such as:
- Miner public key — to verify proof of microblocks.
- Amount of miner’s fee for the previous block.
- Miner’s proof.
- Link to previous key block.
Liquid Block — a service term to describe the state of a block before issuing the next key block, i.e. completing its mining.
Microblocks — a service term, sets of transactions applied to the state of blockchain every 5 seconds. Limited to 500 transactions. Each microblock is signed by the miner’s private key.
Waves-NG - developed by Waves Platform based on Bitcoin-NG to increase the throughput of the Waves blockchain based on whose architecture Waves Enterprise is implemented. The idea of the protocol is to create not 1 large block in each round of mining but continuously create microblocks. Small blocks are faster to forward and check.
Mining rounds begin with generation of the key block. The moment of occurrence of each key block and the address of the miner identified in it are determined by consensus, for more details see Consensus. A key block containing no transactions, but only proof, is generated quickly. Further, before the next block is generated, once in 5 seconds microblocks with transactions are generated without proof of a stake which also increases the speed of processing. Each block of the microblock is linked to the previous one. The key block is added to the blockchain as soon as the next miner generates its key block with a link to it.
This approach reduces the time to confirm a transaction compared to other blockchains.
1. Creating a Liquid Block¶
- The mining address is determined by consensus.
- A miner creates and distributes a key block on the network.
- Every 5 seconds, the miner creates and sends out to the network a microblock which contains transactions. It must be linked to the previous microblock or key block.
- The process continues until a new valid key block appears on the network.
2. Miner reward mechanism in Waves-NG¶
The protocol has a provision for financial incentive for participants’ compliance with the rules. The fee from transactions in the block is distributed in the proportion of 40% for miner who created the block and 60% for the miner of the following block. The fee credit transaction is performed after 100 blocks to ensure a trust interval of checks.
Fee distribution diagram
3. Conflict resolution¶
If the miner continues the chain creating two microblocks with the same parent, it is punished by cancellation of income from fees; the one who discovers the fraud receives the miner’s award for the block. Blockchain is a distributed system and each node stores a copy of the state of the entire network. When the next microblock appears, the node applies the received changes to its copy of the state of the network and checks against other nodes of the network. At this point, the transaction inconsistency can be detected.