Following the release of Part Two of our PSN 101 series which focused on staking and earning rewards on Fusion’s Payable Stage Network, this article addresses the process for validating blocks, the ticketing system and the auto buy ticketing process for Fusion’s PSN. This article is split into two sections, Section A provides background on consensus algorithms to assist in explaining Section B which addresses the concepts of ticketing and lottery.
Avoiding Catastrophic Failure: The Byzantine General’s Problem
To understand Fusion’s Proof of Stake model (PoS) it is important to have some foundational understanding of consensus algorithms, why they exist and how they work. The place to start is with the Byzantine General’s Problem.
The Byzantine Generals Problem is a useful analogy for explaining the classic security quandary faced by distributed computer systems:
The Byzantine army encircles a city intended for capture. The area around the city is large and so the army is organized into small camps which are each governed by a General. The Generals communicate via messengers who run between the camps. The army is trying to choose between two courses of action, attack or retreat. So long as the army acts in unison the outcome of either action will be successful. Problematically, there are Generals who are bad actors and messengers who cannot be trusted to communicate accurately. If success is determined by the army performing the same action, in unison, how do you ensure unanimous participation?
A few options immediately spring to mind — economically incentivize voting for the majority action or punish actors who vote against the majority action. What other ideas can you think of?
The Byzantine General’s Problem describes a complex security issue faced by distributed systems that seek to make unanimous decisions in a broad network of individual actors that cannot be trusted. In a distributed system like the Bitcoin network, the network’s imperative is to maintain an accurate ledger of transactions. Blockchain systems are governed by a set of rules that determine whether a course of action can be proceeded with, more specifically, whether the next block of data can be added to the chain. The rule in the bitcoin network is as follows: if a majority (51%) of network participants agree on the accuracy of a block then consensus is achieved, and the block is added to the chain.
The most notable consensus mechanism is Proof of Work (PoW) which is the incumbent algorithm used to secure the Bitcoin and Ethereum networks.
Proof of Work
Proof of Work (PoW) is the most well-known and thoroughly tested of the consensus protocols and is the consensus algorithm used to secure the bitcoin network. In PoW systems, all participating network nodes, known as miners, expend time (on average 10 mins per block on the Bitcoin network) and computing power (that is expensive to produce) in competition to solve a cryptographic puzzle. The miner that solves the puzzle first, presents the next block to the network for verification and if successful, earns a reward as compensation. Interestingly, the verification process is extremely simple whilst the puzzle-solving process used to select the node eligible to present the next block is highly taxing (by design). In a PoW system, the probability of mining a block is directly proportional to the quantity of computational power contributed by a miner. Because miners have contributed CapEx (mining rig) and OpEx (electricity and real estate costs) into validating transaction blocks, we can trust them to broadcast the truth: A miner can only be successful in earning a reward if he allocates his resources to mining the correct chain, therefore he is economically incentivized to broadcast the truth. What’s more, there is a financial disincentive to mining a malicious fork of the main chain because it would simply be a wasted resource.
A common criticism of PoW consensus is that it is inefficient and costly. The computational energy spent by miners in competition to solve a cryptographic puzzle every time a new block is validated, adds no intrinsic value to the network (beyond selecting which miner will validate the next block) and has no positive externalities. Indeed, that is largely the point, forcing the expenditure of a costly resource for the sake of creating a deterrent against voting for a malicious fork. PoW systems also favor large mining companies whose economy of scale benefits and cheaper electricity costs prevent smaller participants from competing effectively. As a result, the Bitcoin network has become highly centralized with more than 2/3rds of the worlds mining power emerging from China, and a significant portion of the total hashing power in the hands of a few large companies. Centralization increases the risk of a failure in the bitcoin network, if a few large mining companies collude to achieve 51% of the networks hashing power then they could potentially rewrite the history of the Bitcoin ledger as they see fit.
This is a simplification of the PoW model and there is an incredible amount to learn from the PoW consensus mechanism that has propelled the bitcoin network to where it is today. Because of the points discussed above, some members of the blockchain community have explored alternative consensus mechanisms to PoW, most notably, Proof of Stake (PoS).
Proof of Stake
Proof of Stake (PoS) emerged as a potential solution to the efficiency, security and scaling issues persistent in the Bitcoin and Ethereum PoW-based models. PoS proposes that the resource used to determine the validator of a block should be the cryptocurrency itself rather than computational power like in the bitcoin network. Simplistically, the idea is that if in an individual possesses native coins in a chain (a stake in the network), they have an interest in maintaining the accuracy of the ledger and we can trust them to broadcast the truth. The validator of a new block is chosen deterministically based on the quantity of coins/tickets held by a participant (this will be explored later). Transaction fees are awarded to the validator of a block.
There are certainly appealing properties of PoS systems when compared with PoW:
- Energy efficient — no highly energy taxing competition to solve cryptographic puzzles to determine validators.
- No technology arms race or mining pools.
- No requirement to have expensive hardware. Staking nodes can be run on consumer grade software.
- Reduced risk of 51% attack — Obtaining more than 51% of the network requires immense capital, controlling 51% of the circulating token supply.
- Scaling benefits
- Greater decentralization
Equality in Consensus Algorithms
A routine criticism levelled against PoS systems is that it creates a scenario of inequality where the rich get richer. Consider that a validator is chosen proportionally based on the number of coins/tickets he possesses, more validations would indicate more fees earned as staking reward. This argument is fallacious because it doesn’t address the inequity of the incumbent PoW system. In fact, one could argue that PoW mining is less egalitarian given the economies of scale, location-based energy price differential etc. that benefit large mining companies. The cost of 1 unit of energy for an individual miner is more than the cost of 1 unit of energy for a large mining company whereas 1 coin = 1 coin regardless of total holdings in a PoS network.
Ticket Purchasing and Lottery Selection Explained
Part Two of our PSN 101 series acts as a primer to the section below.
Understanding in detail how the ticketing and lottery system works in a PoS model is not mandatory to participate. The Fusion wallet interface makes it incredibly easy to stake and the ticket and lottery process will mainly happen behind the scenes. Staking on Fusion will be as easy as ‘set it and forget it’ but if you want to understand the finer details, please read on.
To Participate in Staking:
Staking is the process for using your PSN tokens to pack and validate blocks which earns rewards. When your PSN is staked, it means you’ve purchased a “ticket” to enter the pool of other candidates who are competing for the selection in a lottery. The winning ticket in the lottery is chosen to pack and validate the next transaction block on the network and earns a reward if successful. Participation requires two steps:
Step 1: Token holders need to set up a node. No node, no computing power to validate a block.
Step 2: Using your P-FSN test tokens, buy “lottery” tickets to give your node the opportunity to validate a block and earn rewards. The cost of one ticket is 200 time-locked P-FSN tokens.
How the “lottery” Works
Once a ticket is purchased, it enters the lottery to pack and validate the next block. The ticket remains in the candidate pool until it is picked. This means that if your ticket is not picked for a block it automatically enters the lottery to compete to validate the following block 15 seconds later (and so on) until it is picked.
- If your ticket is not picked within 30 days, the staked 200 P-FSN are returned to your wallet and you will need to purchase a new ticket to participate.
- If your ticket is picked to validate a block, then the 200 P-FSN used for staking will be returned to your wallet immediately with an additional reward of 2.5 P-FSN (and later 0.625 ERC-20 FSN bonus reward).
Buying Tickets and Lottery FAQs
Q. Can a user purchase more than one ticket?
A. A user is able to buy as many tickets he is able to purchase, however the only limitation is the ability to purchase one additional ticket every 15 seconds (after every new block). This functionality stops overloading and the ability for the “whales” to outright buy a block if they have enough P-FSN tokens to stake.
Q. Does having more tickets increase your chance of being selected to validate the next block?
A. Yes, a person who has 2 tickets competing in the lottery has more chance than a person who has 1 ticket competing in the lottery.
Q. How can you have more than 1 ticket competing in the lottery if you can only buy 1 additional ticket per block?
A. A user buys one ticket in ‘Block 1’ and is not selected, then a user buys an additional ticket in ‘Block 2’ and so will have two tickets competing in the lottery in ‘Block 2’ (and so on).
Q. Does staking guarantee income? What happens if none of my tickets are selected?
A. Technically there is no ‘guarantees” in earning rewards from staking. It’s a matter of probability. The probability of one ticket being picked is the same as the probability of another ticket being picked, so the expected return per ticket is constant. There are formulas that will help calculate the expected return of a ticket once the network is up and running. It is also important to note that the term ‘guarantee’ is misleading because just like if you throw a coin 10,000 times there is no ‘guarantee’ that you will ever land on tails, the probability is so low that it’s generally ignored.
Q. How much can I expect to earn from staking?
A. Anybody can estimate expected staking rewards. The unknown metric that influences the rate of return from staking is the quantity of users that participate by purchasing tickets. There will be 5,760 blocks forged every day with a 2.5 P-FSN and 0.625 ERC-20 FSN reward distributed per block.
Q. DJ mentioned that the longer a ticket sits in the lottery pool the greater it’s chance of being picked compared with a new ticket that enters the lottery pool.
A. This is a complex and technical question that a user can investigate in-depth when the code is made publicly available on GitHub. Simplistically, a tickets probability of being picked is impacted by the length of time it has been sitting in the lottery pool. For example, a ticket that has been in the pool for 10 days has a slightly greater chance of being picked compared to a ticket that has been in the lottery pool for 9 days, that has a slightly better chance of being picked than a ticket that has been sitting in the lottery pool only since the previous block 15 seconds ago. This impact is small, and the algorithm used to determine the probability of a ticket being picked is complex. Once the code is released, it’s possible to deconstruct the process.
Q. Do ticket purchasers have to buy each ticket manually?
A. No, Fusion has developed an Auto-Buy Ticket WebApp that will enable users to set parameters for automatically repurchasing tickets.
Q. How does the “Auto Buy” Ticket process work?
A. A user accesses the Auto-buy Ticket from a web browser and sets the parameters according to his interests. A user can purchase as many tickets as he wants so long as he has the relevant quantity of P-FSN in his wallet. The user has the option to auto-buy tickets that expire or win the lottery, and also resubmit staking rewards to purchase new tickets.
Q. Is the “Auto-Buy” ticket functionality accessible through the Fusion PSN wallet?
A. The Auto-Buy Ticket function will be executed from a WebApp, Fusion will supply the link in the Fusion PSN wallet, the process will be simple and intuitive.
Q. Is there an alert for when my ticket is selected?
A. At this stage there is no built-in alert for when a ticket is selected in the lottery.
Q. If my ticket is selected and my P-FSN is returned to my wallet, do I have to manually buy another ticket with those returned tokens or do they automatically get used to buy another ticket?
A. The auto-buy ticket function enables returned funds to be automatically used to purchase new tickets.
Q. How do I lend my P-FSN tokens to someone who wants to stake?
A. A P-FSN holder can transfer time-locked P-FSN to another user or use the quantum swap function to exchange time-locked P-FSN in return for some FSN ERC-20 tokens.
The start of the PSN kicks off at Ethereum block 6,868,000. This block is quickly approaching! Don’t miss your chance to participate and earn FSN ERC-20 tokens! Make sure to have your FSN tokens in a wallet where you control the private keys before the 6,868,000th block to receive your P-FSN test tokens. For more information visit: Fusion.org, The Official Fusion Telegram Channel