Consensus-based Weights
Summary
This post describes the new Bittensor feature consensus-based weights. This feature is also known as “liquid alpha” in Bittensor Discord threads.
This consensus-based weights feature will be available on the Bittensor testnet (see the Chain release notes for the exact date of the release). With this feature, the dividends to a subnet validator are better correlated to the performance of the subnet miner they are setting the weights on.
This feature is made possible by changing the way the exponential moving average for the subnet validator bonds are calculated.
See also the release note on the consensus-based weights feature here.
Additionally, this feature is designed to amplify the effects of the commit reveal feature that was released recently.
Introduction
In a Bittensor subnet, the subnet validators assess the work of subnet miners, and set the weights on the subnet miners. These weights determine how to distribute the 41% of subnet emissions, i.e., incentives, earned by the subnet miners. As stated in this Bittensor doc,
- 18% of subnet’s emission it goes to the subnet owner.
- 41% goes to subnet validators (this is called dividend).
- 41% goes to the subnet miners (this is called incentive).
This new feature consensus-based weights pertains to the dividends to the subnet validators.
To understand the how and why of the changes brought on by the new feature consensus-based weights, below we present how the dividends for a subnet validator are calculated.
For a full, mathematically rigorous, explanation of the calculation of dividends, see the section on consensus policy in the Subtensor document for technical details.
We compare the weights that each subnet validator sets on each subnet miner, to the average of all subnet validators’ weight settings for that subnet miner. Weights set by an individual subnet validator that are above this average are set to the consensus (average) — a process called clipping.
Clipping is used to discourage selfish behavior by subnet validators. A subnet validator’s weights over all subnet miners are normalized to sum to 1. Hence when a selfish subnet validator sets a high weight on their own subnet miner, hence not in accordance with the consensus, the excess weight will be clipped to the average. This essentially means throwing away the voting power of the subnet validator’s weight from their own dividend calculation. Note that the weights set by subnet validators are themselves weighted by the subnet validator’s stake.
Bonding mechanism
The actual process whereby emission of dividends are determined is controlled by the bonding mechanism. It works like this:
The instantaneous bond-value a subnet validator has on a given subnet miner is simply the stake-weighted clipped consensus value on that subnet miner. The power of the subnet validator bonds becomes clear when we incorporate a weighted moving average into the calculation.
On each epoch the subnet validator bonds are calculated as above, but to that we add the previous epoch’s bond value weighted by a parameter called alpha. See the below equation.

Current alpha setting
Currently (without the new consensus-based weights feature), alpha is a single value equal to 0.9. Hence, we can see by the above equation that at each epoch, 10%, i.e., (1-alpha), of the previous bond value is added.
As presented in the Reward distribution section of the Subtensor document, the subnet validator dividends are calculated by multiplying this bond value by the subnet miner incentives, in a given subnet. Hence we can see that the alpha value plays an important role in how rewards are distributed.
It follows that the longer (in terms of number of epochs) a subnet validator holds a bond on a well-ranked subnet miner, the larger the subnet validator’s bond will grow over time, and the larger would be their proportion of the subnet emissions.
Consensus-based weights
The validator bond is one of the mechanisms by which Bittensor encourages subnet validators to find new subnet miners quickly.
Another mechanism is the recently released the commit reveal feature. The commit reveal feature allows subnet validators to submit their weights as usual, but essentially places them in a sealed envelope for a set number of blocks before opening to reveal the weights for all to see.
The commit reveal feature was developed to discourage subnet validators from copying consensus weights instead of setting weights based on their own independent appraisal of a subnet miner’s value.
Agreement, albeit independently and without collusion, among subnet validators is heavily encouraged. Preventing anyone from seeing the actual consensus for a duration of a number of blocks ensures that the weight copiers will always lag the current consensus value unless the weight copiers (i.e., subnet validators) do the actual and real work of assessing the subnet miners themselves. This is what the commit reveal feature achieves.
With the current update, we are changing the value of alpha in the above equation from being a constant (like 0.9 as noted above) to a value that is based on the current consensus.
By doing this we can increase the rate of bond growth for subnet validators who find new subnet miners early, as well as decrease the rate of growth for subnet validators who are out of consensus — such as the lagged weight copiers.
In the current version of this consensus-based weights feature this change in alpha value occurs behind-the-scenes, i.e., no specific user action is enabled.
Analysis
Consensus-based weighting aims at increasing first mover advantage for the subnet validators, so as to discourage the weight copiers.
This section presents an analysis of how alpha should be thought of, based on the consensus.
Graph 1
Refer to the graph immediately below. The x-axis represents consensus to a subnet miner. The y-axis ranges from (1-alpha_high) to (1-alpha_low). Hence, for alpha_high of 0.9 and alpha_low of 0.7, the y-axis ranges from 0.1 to 0.3.
In high consensus situation: When the consensus to a subnet miner is high (towards the right side of the x-axis), the bonds to those subnet validators who sets weight to this subnet miner would grow slower. This can also be seen from the above bonds equation: In a high consensus situation, lower alpha conntributes smaller weight to the new bond and larger weight to the older bond, thereby leading to a slower averaging of the bonds.
In low consensus situation: Conversely, when the consensus to a subnet miner is low (towards the left side of the x-axis), the bonds to those subnet validators who sets weight to this subnet miner would grow faster. This can be seen in the above equation: In a low consensus situation, higher alpha contributes larger weight to the new bond and smaller weight to the older bond, thereby leading to a faster averaging of the bonds.
Graph 2
To evaluate the effectiveness of consensus-based weighting, we performed the following analysis with two subnet validators and four subnet miners. See the graph immediately below.
The blue line represents the consensus to a miner which increased from 0 to 0.5. Due to the commit reveal interval, any weight copier would only be able to copy the consensus after some time, such that the red line which represents weights from the weight copier which has 5 tempos delay to the blue line.
The purple line represents dividend to the weight copier with consensus-based weighting (CBW) (also called “liquid alpha”) turned ON, and the green line represents dividend to the weight copier without consensus-based weighting (CBW).
We can see in the above graph that with the consensus-based weight, there is an extra disadvantage given to weight copiers with 20% decrease in dividend from 0.007 at the bottom of green line to 0.0055 in the purple line in this extreme case. Please refer to the paper for the understanding of G as the weight copying penalty and H as the amplification of weight copying penalty respectively.
Note that the scale of numbers in the above experiment is for sample only and does not represent real ranges we normally find for the subnets.
Graph 3
In the following example, change in consensus is lower from 0 to 0.1 (y-axis). The purple line soon loses its advantage to the green line when they cross at tempo = 8, as it is faster to gain (or lose) the bond when the consensus low. Nevertheless, it still on average gives more punishment to weight copier.
Graph 4
The following graph gives another perspective in which, when the change in weight is larger, we can induce higher punishment in the dividend G for the weight copier. It also shows that a different alpha low is needed to optimize the difference in dividend (G) when delta changes. Namely, when delta = 0.5, alpha low at 0.2 would yield a higher difference in dividend (G), and when delta = 0.1, alpha low at 0.7 would yield a higher difference in dividend (G).
Graph 5
Following is a graph that shows that with different starting weight and ending weight for the change, different values of alpha low have to be chosen to optimize on the loss of dividend induced on the weight copier.
Thus, subnet owners are advised to choose the value of alpha low and alpha high carefully.
Table
Table below shows how much commit reveal weight (CRW) interval can we save with consensus-based weighting (CBW), such that any weight copier in the subnet can only earn as much dividend as honest validators.
Moreover, any commit reveal weight interval set higher than the specified would result in weight copiers earning less than the honest validators.

Thank you,
Opentensor Team