The first Proof-of-Stake algorithm (PoSv1) was created by Sunny King in 2013 with Peercoin and was quickly adopted by many other coins. For awarding blocks and staking rewards, PoSv1 relied on a user’s coin holdings multiplied by the time their coins had remained unspent on the blockchain (“Coin Age”). The product of a user’s coin holdings and their respective “Coin Age” is known as “weight.” The higher a user’s “weight” the greater the chance they had of being selected to earn a block and therefore to earn a staking reward. Once selected, the user completed the block including transactions contained in the block and sent it to the network for inclusion into the overall distributed ledger. PoSv1 had unforeseen vulnerabilities due to the fact that it did not encourage users to stay connected to the blockchain network because coins gained “weight” whether connected to the network or not. If the number of connected users became low and one user was able to gain a majority of the network’s weight, they could fork the network in an attack and double-spend assets that didn’t exist. Numerous 51% Attacks have occurred on PoSv1 blockchains.
In 2014, the Proof-of-Stake Version 2 algorithm (PoSv2) was created by Pavel Vasin for Blackcoin and removed PoSv1’s “Coin Age” vulnerability and introduced considerations for transaction “depth” in the blockchain rather than block timestamps to determine the age of coin transactions and a random component in awarding blocks and staking rewards. Meaning, “Coin Age” and “weight” no longer existed and block awards were now based on a user being connected to the network so they could be randomly selected based on matured coin transactions. The deeper those transactions were in the blockchain (the more blocks created since the block containing their transaction was created) increased their odds of being selected for a new block and staking award.
Proof-of-Stake Version 3 Enhanced (PoSv3e) provides incremental security improvements over PoSv2 for “short-range” block-time and iterative attacks. Like PoSv2, PoSv3e does not rely on “coin age” or “weight” for determining which users earn a block and staking reward. PoSv3e encourages users to stay connected to the network because if they don’t they cannot earn a block or reward that’s based partially on transaction depth and partially being randomly selected. For Electra Protocol, once a single transaction containing coins has matured and remained unspent for 12 hours, that transaction is eligible to be selected to earn a block and therefore a staking reward.
Once selected for a block and reward, a user’s reward is determined by a separate calculation specific to Electra Protocol. Currently the reward is set at 3% annually.
Staking Reward = ((3% * # Coins in the Transaction Selected) * (Days Unspent) / 365).
· Transactions that occur when coins are moved and unspent thereafter are what developers call UTXO’s (Unspent Transaction Outputs). Because transaction inputs can be faked, it’s more secure to look at transactions that have already been verified on the blockchain and are available for future transactions (spending).
· Sending coins to the same address or wallet in stages or incrementally will create multiple UTXO’s.
· To earn a staking reward, wallets must remain unlocked.
· “Days Unspent” are the number of days the transaction was staked or unspent and cannot exceed 30 days to encourage users to remain connected to the network.