Incentive layer query


#1

Assuming the number of full blocks per DS-Epoch is 100 and DS-Committee/Shard size is 100

I understand from the white paper that

the leader of a shard is changed after every successful micro-block and leader of DS-committee is changed after every successful full block

After every DS-Epoch, one new DS node is joined into the DS-Committee and the oldest one is churned out.

Rewards are only distributed to the leader of DS-Committee and the corresponding leader of shards.

Using the above statements, we can see that once a node solves PoW1 and enters in the DS-Committee, then it can become leader (and hence get reward) for 100*50 blocks.

whereas once a node does PoW2 and enters into a shard, it only becomes leader once in that epoch after which she has to again perform PoW2 to enter into a different shard.

Question 1 : Is my understanding correct?
If yes, nodes would be incentivised to always perform PoW1 to earn more rewards?

Question 2 : Let us assume that a node becomes the leader of a shard after initial network sharding during an DS-Epoch.This node would get the reward for the first micro block which would be mined in that shard.
After the first block, what is the incentive for that node to participate in consensus?
Is it the case that the leaders share their rewards among the participating nodes?


#2

Hi,

The whitepaper requires some updating. We made some changes to the protocol since the publication of the whitepaper.

For Question 1/2:

PoW1 and PoW2 are now combined into a single PoW instead, due to security reasons. All nodes will run the same PoW and submit up to 2 PoW solutions.

Testnet Epoch Architecture

At the start of each DS Epoch, all mining candidates will run a single Proof-of-Work (Ethash algorithm) cycle for a 60 seconds window in order to compete to join the Zilliqa network.

  • Nodes that fulfilled the DS_POW_DIFFICULTY parameter will qualify to join as DS nodes.
  • Nodes that fulfilled the POW_DIFFICULTY parameter will qualify to join as shard nodes.

There are a total of 100 TX epochs (each 1-2 min) within each DS Epoch (2-3 hrs). Every 100th TX epoch is known as the Vacuous epoch .

The vacuous epoch is solely for:

  • Distributing the coinbase rewards to all nodes.
  • Processing of the upgrade mechanism (as there are no forks in pBFT).
  • Writing of persistent state storage (updating of the nodes’ levelDB).

During a vacuous epoch, the network does not process any transactions.

Reward Mechanism

In the Zilliqa network, rewards are based on the accepted PoW solutions and the amount of signatures submitted by a node during a DS epoch. PoW solutions and signatures submitted by both shard and DS nodes are both rewarded equally. The rewards are consolidated for an entire DS epoch and only distributed during the vacuous epoch.

Say for example, if there are a total of 2,400 nodes in the Zilliqa network and the COINBASE_REWARD is set at 191780.82 ZILs per DS Epoch, the reward distribution will be:

  • For PoW submissions (base reward for nodes joining Zilliqa network)
191780.82 * 0.25 / 1800 
= 26.636225 ZILs per qualifying PoW submission
  • For pBFT signature submissions (on a first-come-first-serve basis)
191780.82 * 0.70 / (2,400 * 2/3 [Successful signers] * 99 [TX blocks]) 
= 0.847516 ZILs per signature

For Question 2:

Currently, the leader of a shard/DS is chosen randomly among the 600 nodes within the shard/DS. Rewards are distributed based on the amount of signatures contributed by a node during the DS epoch that is valid, instead of being the round robin reward to the leader only.