Proof of Importance
Proof-of-Importance (PoI) is the name of the block chain consensus algorithm used by NEM. Each account is assigned an importance score that proxies its aggregate importance to the NEM economy. Accounts with higher importance scores have higher probabilities of harvesting a block (see section 5: Blocks and the block chain). Because all transactions are publicly available in NEM, the transaction graph of the NEM economy can be calculated exactly. The topology of the transaction graph can be used as an input into the importance of an account. The insight that the transaction graph can be used for elucidating the importance of an account is the key innovation of Proof-of-Importance. The NEM block chain platform allows all transactions to be transparently viewed. This information about value transfers between accounts can be used to determine a rating for the importance of accounts. The intuition that not all nodes in a graph have the same salience, or importance, is not new. The literature in the graph theory community is well established for computing the importance of nodes in graphs in the areas of search, social networks, street networks, and neuroscience, among others. Building off of this intuition, one of NEM’s core innovations is to use graph theoretic measures as a fundamental input into block chain consensus. The outlink matrix that defines the transaction graph is centrally important and used in the PoI calculation.
To be eligible for entering the importance calculation, an account must have at least 10,000 vested XEM. All accounts owning more than 10,000 vested XEM have a non-zero importance score. With a supply of 8,999,999,999 XEM, the theoretical maximum number of accounts with non-zero importance is 899,999. In practice, the number of actual accounts with non-zero importance is not expected to approach the theoretical max due to inequalities in held XEM and also the temporal costs associated with vesting. If NEM becomes very popular, a threshold of 10,000 vested XEM could be undesirable. If necessary, this number could be updated in the future via a hard fork, which is the same procedure for adjusting transaction fees and other parameters related to harvesting.
Suppose the PoI calculation is done at height h. Accounts that have a vested balance of at least 10,000 XEM at height h are eligible to be part of the PoI calculation. For those accounts, NEM collects all transfer transactions that satisfy the following conditions:
- Transferred at least 1,000 XEM.
- Happened within the last 43,200 blocks (approximately 30 days).
- Recipient is eligible to be part of the PoI calculation too.
and uses a formula to determine which are the most important, and calculate PoI based on that.