Liquid Alpha
ConsensusDynamic bond EMA coefficient that varies per validator-miner pair based on weight-consensus distance.
Liquid Alpha Mechanism
Liquid Alpha
- Epoch processing when LiquidAlphaOn is enabled for the subnet
Click items to navigate to their reference pages.
The Big Picture
Liquid Alpha is a refinement to Yuma Consensus that rewards consistency. Instead of all validators having the same bond accumulation rate, those who agree with consensus accumulate bonds faster (higher alpha) and earn more dividends. Outlier validators accumulate slower — they can still set different weights, but they build less dividend power doing so.
Why This Matters
Liquid alpha directly affects validator earnings. Validators aligned with consensus earn dividends faster because their bonds grow more quickly. Understanding this helps optimize weight strategies.
Example Scenario
Suppose AlphaLow=0.70 and AlphaHigh=0.90 (defaults). Validator V sets weight 0.5 for miner M, and consensus for M is 0.5. Distance = 0, sigmoid → high (~0.99) → alpha ≈ 0.90 (fast accumulation). Validator W sets weight 0.9 for miner M. Distance = 0.4, sigmoid → low (~0.01) → alpha ≈ 0.70 (slow accumulation). V builds bonds ~1.3× faster than W for this miner.
Common Questions
- Does liquid alpha punish honest disagreement?
- It slows bond growth, not eliminates it. A validator who genuinely believes a miner deserves different weights can still set them — they just accumulate bonds more slowly.
- Can a subnet turn this off?
- Yes, the LiquidAlphaOn parameter can be disabled by the subnet owner. Without it, all bonds use the same fixed alpha.
Use Cases
- Understanding validator dividend dynamics
- Optimizing weight strategies for bond growth
- Evaluating consensus alignment across validators
- Building validator performance dashboards
Liquid Alpha enhances the bond EMA in Yuma Consensus by making the smoothing coefficient (alpha) dynamic rather than fixed. Validators whose weights are close to consensus get a higher alpha — meaning their bonds accumulate faster. Validators with outlier weights get a lower alpha, slowing their bond growth.
This creates a "soft penalty" for non-consensus behavior while allowing legitimate disagreement. The alpha value is computed per validator-miner pair using a sigmoid function interpolating between AlphaLow and AlphaHigh.
Triggers
- Epoch processing when LiquidAlphaOn is enabled for the subnet
Inputs (4)
| Item | Type | Role |
|---|---|---|
| LiquidAlphaOn SubtensorModule | storage | Whether liquid alpha is enabled for this subnet |
| AlphaValues SubtensorModule | storage | Alpha high/low bounds for consensus-aligned vs outlier validators |
| Consensus SubtensorModule | storage | Consensus weights from weighted median |
| Bonds SubtensorModule | storage | Current bond matrix to apply EMA to |
Outputs (1)
| Item | Type | Role |
|---|---|---|
| Bonds SubtensorModule | storage | Updated bonds with variable-alpha EMA |
Source Files
pallets/subtensor/src/epoch/run_epoch.rs pallets/subtensor/src/epoch/math.rs Formulas
Liquid Alpha Sigmoid
Computes per-pair alpha using a sigmoid function based on directional weight-consensus and bond-weight distance.
diff_buy = clamp(weight[i][j] - consensus[j], 0, 1) diff_sell = clamp(bond[i][j] - weight[i][j], 0, 1) combined_diff = diff_buy if weight >= bond, else diff_sell sigmoid_value = 1 / (1 + exp(steepness / -100 * (combined_diff - 0.5))) alpha[i][j] = alpha_low + sigmoid_value * (alpha_high - alpha_low)
TypeScript: computeLiquidAlpha() in yuma-formulas.ts