Consensus

The consensus protocol is the dynamic method through which blockchain systems reach an agreement and make decisions. Symbol utilizes an innovative mechanism called the Proof-of-Stake Plus, a modified version of the popular Proof-of-Stake (PoS) protocol.

In a basic Proof of Stake consensus algorithm, the formation of a subsequent block in a blockchain is stochastically assigned to a coin-holding stakeholder of the blockchain weighed by a combination of factors relating to the stakeholders’ wealth. The PoS+ protocol also considers accounts’ stakes, but it is designed to promote the ecosystem’s health by rewarding participants based on their activity.

Factors

The algorithm considers the following factors to improve the ecosystem’s health perspective:

  • Stake: The total amount of the harvesting mosaic owned. Owners with larger balances have the incentive to see the ecosystem flourish.
  • Transactions: The total amount of fees paid by an account. Being an active account in the network is encouraged.
  • Nodes: The number of times an account is a beneficiary of a block. The network incentivizes active accounts running nodes for securing the network.

All high-value accounts receive an importance score based on these three factors that determines the probability to harvest a block.

Scores

The network calculates the following sub scores for all high-value accounts for each factor:

  • Stake Score (S`): Percentage of the effective balance of all high value accounts at time P.
  • Transaction Score (T`): Percentage of total transaction fees among all high-value accounts in period P-1 to P.
  • Node Score (N`): Percentage of total beneficiaries among all blocks in period P-1 to P.

Constants

Each network can define custom consensus algorithm constants.

Constant Value Description
a 0.05 Network wide contribution of activity score.
p 10000 Constants to tune phasing out of activity score.
t 0.8 Transaction score multiplier.
n 0.2 Node score multiplier.

Calculation

The importance can be calculated for each account in the following manner:

\[(1 - a) * (S') + a * || p / (S') * (t * (T') + n * (N')) ||\]

The combination of Transaction Score and Node Score has a multiplier effect when Stake Score is low. Conversely, the multiplier effect is insignificant when Stake Score is high.

Continue: Harvesting.