Function X: April Hash Out
In this issue of Hash Out, we will dive more into the full node’s role as validator and what’s entailed in being a validator, including the duty, tokenomics and rewards.
What is a full node (validator)?
Nodes validate blockchain transactions that are written on the ledger. Full nodes are sometimes called validators as they validate transactions on the chain. You may also review Function X’s February Hash Out which discusses the various nodes.
Why should I be a validator?
By being a validator, you can take part in network governance work, which ensures the stability and health of the blockchain ecosystem. You will also receive FX tokens each time you participate in governance work, specifically the block creation process.
How can I be a validator?
There are two ways to be a validator. One way is to do code-level setup via the upcoming Function X Github repository. The other is a code-free way via our Function X Cloud. We expect the latter to launch first.
How much FX tokens are allocated for validators?
In the first year, a total of 31,557,600 FX tokens are allocated for validators, these include both self-delegated tokens by validators themselves and delegated tokens by delegators.
Note 1: Based on the Function X concept paper, 157,788,000 FX tokens are allocated for all types of services in the first year (This assumes we manage to achieve one block generated in 1 second and 5 FX allocated per block. 365.25 (d)*24(hr)*60 (mins)*60 (sec)*5 (FX) =157,788,000 FX). The services include Infrastructure, Developer, Nodes, Financial Service Providers and others. The total supply increase for the first year is 41.67% which amounts to 157,788,000 FX.
Note 2: The growth rate of FX tokens decreases over fifteen years.
Note 3: Node includes validator and participating delegator.
If I do not wish to be a validator, how do I delegate my tokens?
If you do not wish to be a validator, you can delegate your FX tokens to a validator, that is, you act as a “delegator”. You may delegate your FX tokens to the validator of your choice in several ways, including via XWallet.
We will discuss more about the delegators’ role in the May Hash Out.
What is the minimum amount of FX required to be a validator?
The designation of 100,000 tokens was largely community driven, based on the FX Node discussion in the Reddit forum. Feel free to enter into that discussion in Reddit.
What is the maximum amount of FX allowed to be a validator?
A maximum stake amount is set to prevent a monopoly, but a fair value should also be given to permit a validator who is strong and that the community wants to support through staking their tokens with that particular validator. Please share your thoughts in the Function X’s Reddit forum on what you believe should be the optimal maximum token amount for a validator.
How many validators are needed to confirm each block?
The number will likely rise over the long run, as the network grows based on consensus.
If only 50 validators are chosen each time, how are validators rewarded?
Validators that are involved in block creation get an equal share of the block reward FX tokens. In each block creation process there are 50 participating validators.
Does a validator have a higher probability to be chosen if they have double the tokens?
Yes, in the case of excess validators (i.e., more than 50).
If there are more than 50 validators and only 50 are chosen, having more tokens means that your probability of being chosen is greater. However, each validator will get the same amount of FX tokens if they are chosen among the 50 validators in a block creation, regardless of the number of FX tokens a validator has. We believe the law of supply and demand will create an optimal number of FX tokens per validator.
It is a progressive system in which there is an equilibrium point. When the minimum amount of 100,000 FX tokens is required to be a validator, additional tokens staked allow a validator to have a greater chance of being chosen. The system will tend towards a point of equilibrium in a way that validators will discover what is the maximum amount of tokens that it is optimal to hold.
What will happen if we don’t reach the 50 required validators?
The participating validators will share the rewards. For example, if only 25 validators are available their reward will be doubled compared to a pool of 50 validators.
What is the block generation time?
On average, it takes between 1 to 5 seconds to generate a new block.
How many FX tokens are generated in a new block?
Between 5–25 FX tokens in a block.
What is the newly created FX allocation like?
Based on the diagram below, 5 tokens are generated each second on the blockchain and are distributed to different stakeholders. Below shows the tokens created per second each year, as well as allocation for nodes (validators/delegators).
How many FX tokens are reserved for participating validators in a new block?
1 token is reserved for validators/delegators each second. Hence, each block will have between 1–5 tokens reserved for validators/delegators depending on the block speed.
What if I am not among the validators chosen in a block creation?
You do not get any FX tokens.
A block can be created every 1 to 5 seconds. Validators are rewarded if they are selected in the block creation. Based on probability and given a long enough time, say 365 days, all validators will have an equal opportunity to get chosen and therefore have an opportunity to receive roughly an equal amount of FX token rewards.
What are the Total Reward Rate and Total Reward Value?
Before we dive into the examples below, it will be helpful to familiarize ourselves with the following concepts:
- Total Reward Rate - tokens rewarded (in percentage)versus staked tokens.
- Total Reward Value - tokens rewarded versus server staked tokens.
One thing worth noting is that there is no “prepaid sunk cost” for being a validator on the Function X Cloud. You do not need to pay first before starting as a validator in the Function X Cloud. You only need to stake tokens which you can get back when you choose to stop the service. You will need to pay server costs, but these are “pay-as-you-use”, which allows you to use the reward from acting as a validator to pay for the server costs.
Example 1: What is the possible monthly reward for a validator in a fifty validator ecosystem?
Scenario: In a 50 validator ecosystem, let’s see what the Total Reward is as a validator operating in this environment.
Monthly return for validator before server cost : 31,557,600 FX / 50 validator / 12 months = 52,596 FX
Monthly server cost of running a validator: USD 2,500 = 50,000 FX(equivalent)
Monthly total reward value: (52,596–50,000) FX = 2,596 FX (USD129.780 equivalent)
Monthly total reward rate: (52,596–50,000) / staked 100,000 FX = 2.596%
The Function X Cloud server cost is pay-per-use and includes the hardware and bandwidth costs. It is reflected on the Function X Cloud dashboard. USD2,500(equivalent to 50,000 FX at USD 0.05/token). In other words, after paying the monthly server cost at month’s end, the Total Reward Value is calculated against the staked tokens.
Validators can choose to turn on or off services on the Function X Cloud whenever they want. They can withdraw the staked and rewarded tokens if a validator chooses to stop providing the services. In the example above, if the validator chooses to stop providing the services, he/she can withdraw 102,596 FX tokens, of which 100,000 FX tokens belongs to the initial staked tokens.
Note 1: The USD equivalent amount of Total Reward Value may change based on FX price changes.
Note 2: Currently the examples are based on USD 0.05/token. For examples of token price changes, look at the examples below.
Example 2: What is the possible annual reward for a validator in a fifty validator ecosystem?
Scenario: Similar to example 1, but at an annual rate (non-compounding).
Annual non-compounding return for validator : 31,557,600 FX / 50 validator = 631,152 FX
Annual cost of running a validator: USD 30,000= 600,000 FX(equivalent)
Annual total reward value: 631,152 –600,000 FX = 31,152 FX (USD 1557.6 equivalent USD)
Annual total reward rate: (631,152 –600,000) / staked 100,000 FX = 31.152%
When a validator provides a service for a whole year, s/he will be able to receive 31,152 FX tokens from the validation services after paying out server costs of USD 30,000 (equivalent 600,000 FX). Therefore, if s/he chooses to withdraw the service upon a year, s/he will be able to take out a net 131,152 tokens (including the original staked 100,000 tokens).
Example 3: What is the possible monthly reward for a validator given FX price changes?
Scenario: Similar to example 1 but this time we are factoring in the FX price fluctuation.
Factoring in the FX price fluctuation, validators will consider the risk:reward to run validators.
As displayed in the diagram, the tokens rewarded are always constant at 52,596 FX while the server cost in USD is also fixed at USD2,500, but the FX tokens needed to pay out the server cost will fluctuate based on FX price change. See “Server cost (token)” column.
The current break-even point is at USD 0.048 USD/token for validator based on the monthly server cost of USD2,500. If the price drops below that, the total earned monthly from governance work will not be enough to cover the server cost. In this case, Function X foundation will subsidise the server cost so that it will remain a profitable venture performing validation work.
In the event of FX token price drops, Function X foundation may choose to subsidize the server cost fees of Function X Cloud to help validator to continue provide quality services.
In the event of FX tokens price increase, validators will be benefiting significantly, as seen in the diagram.
Note: as mentioned, server cost is pay-per-use and charged monthly. This will help validators factor in risk:reward on a monthly basis, and decide whether to ramp up or close a validator service.
Example 4: What is the possible annual reward for a validator given FX price changes?
Scenario: Similar to example 3, but at an annual rate (non-compounding) in a 50 validator ecosystem.
When a validator provides a service for a whole year, s/he will be able to receive a Total Reward Value of FX tokens from the validation services. The Total Reward Value will vary, because if the FX price drops s/he will need more FX tokens to pay for the server cost. Likewise, if the price increases, the amount of FX tokens needed to pay for the server cost will be less, therefore increasing the payout. As we have stated, Function X foundation might choose to step in to lower (or increase) the server cost if we deem necessary.
When a validator chooses to close a service and withdraw their Total Reward Value out, they can also withdraw their staked tokens. In this case that would mean an additional 100,000 FX tokens on top of the Total Reward Value that can be withdrawn.
Example 5: What is the possible monthly reward for a validator if the staked tokens requirement increases?
Scenario: As the ecosystem grows, it would be an impediment for validators to increase the staked tokens for a healthier ecosystem. Validators should, of course, still be able to profit from providing services. Here are the possibilities.
Monthly return for validator before server cost : 31,557,600 FX / 50 validators / 12 months = 52,596 FX
Monthly server cost of running a validator: USD2,500 = 50,000 FX(equivalent)
Monthly total reward value: (52,596–50,000) FX = 2,596 FX (USD129.80 equivalent)
Monthly total reward rate if the staked tokens are 100,000: (52,596–50,000)/ staked 100,000 FX = 2.596%
Monthly total reward rate if the staked tokens are 600,000: (52,596–50,000)/ staked 600,000 FX = 0.4327%
As you can see, the Monthly Reward Rate drops to 0.4327% if the required staked tokens are increased to 600,000 FX. Despite this, the total tokens rewarded is still the same at 2,596 FX tokens.
Therefore it is important to know that a drop in Total Reward Rate does not translate to a drop in rewarded token amounts. Instead, it implies that you will now need to stake more tokens to get the same amount of rewarded tokens.
Example 6: What is the possible annual (non-compounded) reward for a validator in the event the tokens requirement increases?
Scenario: Similar to the example above, but counted annually.
Based on the examples, does it mean that the minimum staked tokens will be adjusted?
Yes, the minimum requirement will be adjusted from time to time.
In fact, it is likely that as the ecosystem grows the minimum staked tokens will likely grow based on community participation.
What commission rates should validators charge for staked tokens?
Validators can charge a commission rate should they accept delegated tokens since they have validators setup cost.
The rate charged is dependent on each individual validator. In May’s Hash Out, we will discuss more about delegators as well as the validators roll in promoting delegation work.
What are the validator setup costs?
In addition to staking 100,000 FX tokens, a Function X validator requires server setup and professional maintenance of the network. We expect the annual costs of server setup and maintenance to be approximately USD 30,000 — including server, bandwidth and others.
Server setup cost is paid monthly equating to USD 2,500 after 30 days of usage hence there is no need to pre-pay USD 30,000 when setting up in the Function X Cloud.
Why is the server cost so expensive?
Compared to similar pBFT model consensus blockchain’s cost such as this, and this. We believe the cost is the average. Upon running the testnet and token price change, Function X foundation may choose to subsidize the server cost to maintain profitability.
What are the slashing (penalty) conditions?
If a validator misbehaves (eg: double spend) or goes offline for too long, their delegated stake will be partially slashed. We are still in the midst of determining the slashing penalty, for more discussion we welcome you to discuss this on Function X’s Reddit.
Do validators need to self-delegate tokens?
We feel that validator need to self-delegate at least tokens. In other words, a validator cannot run a validator without having token himself. This is not fully decided yet and we welcome discussion on Function X’s Reddit.
Is there a lockup period?
Yes. The lockup period for validator and delegators are similar, it is 21 days for the withdrawal request. This is to prevent bad actors (worse is take over attempts) from flooding in or out of the ecosystem.
What happens if certain rules is deemed unfeasible?
In a consensus environment, 66.7% of validators can vote to change the rules.
Some of the questions before the mainnet launch are:
- Should there be maximum tokens per validator? Why and how much?
- Slashing discussing, what if a validator misbehaves, how and how much should we slash?
- Should there be self-delegation requirements for validator? If yes, what’s the percentage?
- Lockup period: should there be a lockup period to prevent bad behaviors?
- Security: what are the bounty and tests involved?
- Self-run validator: how to self-run a validator if we don’t want to host it on the Function X Cloud.
Thank you for reading April Hash Out. As the launch of the public testnet is around the corner, we look forward to sharing more exciting updates and progress.
Article Contribution: Danny Lim, Pitt Huang, Indra Winarta, Pedro Sanchez.
Suggestions by: Ruben Irazu (Aravan), Dr. Yos Ginting, David Ben Kay, Sylvia Falbesoner, Eduard Stere, Glenn P., Peko Wan, Soohan Han, Andreas Harpas.