ELI5 How AVAX validation works [Avalanche Protocol]

ELI5 How AVAX validation works [Avalanche Protocol]

According to the AVAX token distribution policy, almost 50% of all AVAX in existence will go towards validator rewards (see chart at the top).

Since the Avalanche protocol burns all fees, the only source of inflation in the AVAX ecosystem is the validation reward.

This presents a great opportunity for those who join the AVAX validator network early on. Since competition in AVAX staking is still low, users can make passive income while they participate in the Avalanche validation process.

The good news is Ava Labs has done such a superb job in its Avalanche full node implementation (called Gecko, BTW), that anyone can start their own validation service! For real : it’s very, very simple indeed.

In fact, you can just leave Gecko running without performing any configuration or passing it any special parameters and it’ll gladly validate transactions on its own.

But, if you wish to make money by validating AVAX transactions, you’ll need to take some extra steps in order to ensure you can reap staking rewards.

In this article we give you a beginners’ overview of how AVAX validation works and some general steps so you can get started earning AVAX by validating transactions.

Running an AVAX Node

First things first : regardless of whether you wish to run a validation service, explore the AVAX network or simply send and receive your own transactions, the first step is to get a Gecko node up and running.

Ava Labs’ quickstart tutorial provides better instructions than we could ever hope to give. Please pause this article and go complete the quickstart instructions to the point you’ve staked AVAX and your node is up and running.

The Ava Labs instructions assume you’re using the testnet. Since now you’re using real AVAX, go ahead and skip the faucet part.

Setting an Ideal Validation Period

You may have noticed that in the Ava Labs’ quickstart tutorial, a rather short validation period is suggested (30 days IIRC).

This was because the quickstart tutorial was written for the Denali Incentivized Testnet (ITN) in May 2020. Since the testnet would run for only 30 days, the tutorial suggested this same period.

In the mainnet, validators may wish to remain in the network for a longer or shorter period of time. So what’s the right validation period length? You may be wondering why there’s a validation period at all, at this point? Why not simply let validators enter and leave the network as they please?

First thing to consider is that your staked AVAX will be locked into your validator node for as long as you’re in your validating period.

That’s the main reason why the current version of Avalanche sets a 365 day maximum validation period – so people don’t accidentally lock their funds up forever (e.g. set 10 years instead of 1 because of an accidental extra zero).

The validation period is also necessary because you need to, somehow, establish deadlines for reward payments, governance decisions and other protocol related chores. For instance, validating rewards are only paid at the end of the validating period. The longer the period, the higher the validating rewards.

Every Proof of Stake protocol, be it Tezos, Decred or Cardano, all set reference periods for staking. Let’s take a look at some examples of validating periods in other PoS cryptocurrencies.

Validation Period System Comparison to Cardano, Tezos and Decred

Cardano divides time into epochs. Validators (staking pools) join or leave the network at epoch boundaries. Each epoch is 5 days long. If you wanted to emulate Cardano in Avalanche, it’d be the same as validating 5 days at a time. Only difference is Cardano will auto-renew this contract where as Avalanche requires you to submit a new certificate to the network.

Decred has a much longer validation cycle. Every change in Decred takes up to 90 days. Simulating a Decred period in Avalanche would be equivalent to validating for 3 months at a time. Again, the only difference is having to submit a new cert every 90 days.

Finally, Tezos uses 4096 block cycles. At current parameters, this is equivalent to 2 days, 20 hours and 16 minutes. Validators (Tezos calls them bakers) will only pay out delegator rewards every 4096 blocks. This is a manual process in Tezos – the Bakery owner must manually pay all delegators every 4096 blocks.

As you can see, every Proof of Stake cryptocurrency establishes a minimum period for staking/validation. They just give these periods different names and lengths, but the principle is the same. Future implementations of AVAX wallets might even automate delegation so you don’t have to worry about renewing your stake certificate.

Earning AVAX Validation Rewards

When mining Bitcoin and other Proof of Work cryptocurrencies, uptime is the single most important metric. When miners go down for 15 minutes a day, it could mean a lost block or significant lost rewards in the course of months and years.

Uptime is also vital for AVAX validation. In fact, any Proof of Stake currency requires optimal uptime from its validators,. So much so, in AVAX the uptime metric is actually part of the validating rewards formula!

AVAX rewards are based on proof of uptime and proof of correctness. Another interesting feature is AVAX does not have blocks – only vertices.

Let’s see how this works.

No Blocks

AVAX does not have blocks. It uses a DAG based ledger, so there’s no concept of a block reward in AVAX.

A unit of one or more AVAX transactions is called a vertex.

Each vertex must derive from at least two previously accepted vertices. This way, AVAX forms a DAG, not a single dimensional blockchain. (You may loosely think of a DAG as several blockchains running in parallel.)

Leaderless

Secondly, AVAX vertices are leaderless.

In AVAX, there is no coinbase reward address signaling the ID of the validator who solved a vertex, like Bitcoin does. It also does not have the concept of a slot leader (like Cardano).

AVAX is 100% leaderless.

So, if you don’t know who solved what, how do validating rewards get paid out?!

Glad you asked, because that’s the whole point of this article!

As we hinted before, validators get rewarded based on two metrics that get accumulated over time : proof of uptime and proof of correctness.

Proof of Uptime

The Avalanche network is very dynamic. Nodes may change their opinion (or vote) about a transaction as they trade gossip. As a metastable network, it requires gossip to be traded between nodes in order to reach consensus.

Each time a node interacts with a peer, it stores a sample metric that contains a true/false value and a timestamp. The true/false value indicates whether the peer responded on time and, as you may guess, the timestamp indicates when the interaction took place.

When the staking period is over, nodes know which peers responded on time and which didn’t. Rewards are then split proportionately to the staked amount and uptime.

Note: There is a vote before the staking rewards are approved. See “Reward Vote” section below.

Proof of Correctness

Nodes must produce correct transactions and vertices.

When a node begins to misbehave, other network nodes will ignore its future transmissions and/or include it in some form of ban list.

If the node is banned, then it becomes impossible to attest its uptime. So the system is self-protecting in the sense that foul play gets removed from the network rather quickly.

By eliminating rogue nodes from the network, the protocol rewards correctness.

Reward Vote

When a validator is done with their validation period, it sends a special block to the network called a Proposal Block.

You may be wondering why I’ve called this a block and not a vertex? Well it’s because this transaction actually goes into the P-Chain, not the X-Chain. (As you probably know, the P-Chain is a traditional blockchain.)

When the validation period is through, the Proposal Block is sent to a validator who is still actively validating. This validator will relay the proposal to the entire network.

The network will then decide, using Avalanche consensus, whether the proposing validator should earn the rewards or not.

This is where each voting validator queries their internal state and looks for the uptime records for the validator. If the voting validator then determines that the proposing validator did a good job, it issues a Commit Block. Otherwise it sends out a Reject Block.

By using Avalanche every node then develops its conviction about whether it should Commit or Reject.

Once the Proposal Block is Committed, the proposing validator receives the block rewards and its stake becomes free to be locked again.

Conclusion

This is the overview of what’s involved in becoming a validator in the Avalanche platform. As mentioned in the beginning of this article, there is a significant reward available for validators.

We looked at other cryptocurrencies and, as you may see, Avalanche shares some common traits with different Proof of Stake protocols, but it also introduces some very unique concepts.

Blocks are leaderless. You must do a good job at validating the network continuously in order to earn rewards. It’s not enough to simply mint a block and then turn your validator off.

You must also remain online and active in order to provide proof of uptime and proof of correctness, otherwise other nodes will vote against your reward when your Proposal Block is received.

Almost 50% of all blocks will soon be available to validators in the form of rewards. It’s a great time to learn how to validate so you can join the network and earn some AVAX while helping run Avalanche.

In the following links you can find out more about getting involved in validating the AVAX network.

Links

AVAX Token Dynamics [PDF]

Consensus through Metastability [PDF]

Avalanche Platform [PDF]

Gecko : Avalanche Full Node Implementation

Avalanche (AVAX) Public Sale Info

Why I Am Not Too Worried About Avalanche’s Monetary Distribution

How to Join Avalanche–Denali Release

Comments

Meta