[Avalanche Consensus | Avalanche Dev Docs](https://docs.avax.network/learn/avalanche/avalanche-consensus)
Subsampling for voting - adopt the preference of the majority
# Snowball
Building block of Avalanche Consensus
Params: n = number of participants, k = sample size, $\alpha$ = quorum size, $\beta$ = decision threshold >= 1
Go through rounds of getting queries and waiting for a quorum for the same response $\beta$ times in a row
As quorum size increase, safety threshold increases and liveness threshold decreases
This means that the network can tolerate more byzantine nodes and remain safe - all nodes will eventually agree whether something is accepted or rejected
[[Liveness threshold]] is the number of malicious participants that can be tolerated before the protocol is unable to make progress
Avalanche uses k=20 $\alpha$ = 14, $\beta$ = 20
As beta increases, safety increases and liveness threshold decreases
It's called snowball because of the cascading effect of the queries and quorums
A DAG is a partial ordering of things
Avalanche uses a DAG rather than a linear chain to store data