Skip to content
This repository was archived by the owner on Dec 5, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

- [The Protocol](nested/TheProtocol2.md)

- [Taonomics](tokenomics.md)
- [Taonomics](Taonomics.md)

# Tutorials

Expand Down
63 changes: 26 additions & 37 deletions src/Taonomics.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,54 +6,41 @@ Tao is the token for Bittensor and gatekeeps access, representing bandwidth to t



# Emission Split
**Emission Split**: Each subnetwork \\(h\\) receives a set percentage \\(E_h\\) of total emission \\(E=\sum_h E_h\\).
Servers and Validators evenly split emissions per block, with the most emissions issued to the best-performing Servers and largest Validators.

Servers and Validators evenly split emissions per block, with the most emissions issued to the best-performing Servers.
**Weights**: Each Validator \\(i\\) evaluates the relative utility of each Server \\(j\\), and sets weights \\(\sum_jW_{ij}=1\\) on-chain, signed with the Validator hotkey. A relatively high weight indicates relatively high Server utility.

**Prerank**: Server rank \\(R_j\\) is the sum of weighted stake set on \\(j\\), before consensus. A high rank indicates that majority stake agrees on relatively high utility of a Server.
\\[P_j = \sum_i S_i \cdot W_{ij}\\]

# Validation and B (Bonds)
**Consensus**: On-chain consensus then calculates stake-based median weight \\(C_j\\) for each Server \\(j\\), which is the maximum weight supported by at least \\(\kappa\\)-majority stake, so that stake sum (as ratio of total active stake) of active Validators setting at least consensus weight is \\(\kappa\\) (typically \\(\kappa=0.5\\)).
\\[C_j = \max w:\quad \kappa \le \sum_i S_i \cdot \left( w \le W_{ij} \right)\\]
<img src="images/consensus_plots.pdf">

The Validators determine the proportion of emissions received by each Server in the network. Validators, responsible for validating the action of Servers, assign rankings to Servers based on their performance. In doing so, Validators accumulate bonded relationships in the Servers they rank. Unlike traditional bonding, our bonding is defined by:
**Validator Trust**: Clip weights above consensus to penalize overweighting, the sum of consensus-clipped weight is then Validator trust \\(V_i\\), which is the weighting power remaining after consensus (initially starts with 100% power). High Validator trust means it is typically setting weights in agreement with majority stake.
\\[V_i = \sum_j\min\left( W_{ij}, C_j \right)\\]

\\[ {\Delta}{B}={W}*{S} \\]
**Server Incentive**: Server rank \\(R_j\\) is the sum of weighted stake set on \\(j\\), which is also the Server incentive ratio \\(I_j\\). Better performing Servers get relatively higher rank and incentive.
\\[I_j = R_j = \sum_i S_i \cdot \min\left( W_{ij}, C_j \right)\\]

In this way, peers accumulate bonds in the peers they rank, thus ’bonding’ themselves to those that they are connected to.
**Server Trust**: The ratio of Server \\(j\\) rank \\(R_j\\) to its prerank \\(P_j\\) is the trust \\(T_j\\) in the initial weights set on the Server. High Server trust indicates that mostly trusted Validators set weights on it.
\\[T_j = \frac{R_j}{P_j}\\]

\\[ {\Delta}B_{t+1}={B_t}+{W}*{S} \\]
**Validator Bonds**: Validators accumulate bonded relationships \\(B_{ij}\\) in the Servers they rank, adding \\(\Delta B_{ij} = S_i \cdot \min \left( W_{ij}, C_j \right)\\) (normalized across Validators) via exponential moving average at each epoch \\(t\\) (typically \\(\alpha=0.1\\)).
\\[B_{ij}^{(t)} = \alpha \Delta B_{ij} + (1-\alpha) B_{ij}^{(t-1)} \\]

Validators attempting to form a cabal or collude with other Validators will see the size of their bonds diminish. This attack is only possible if the cabal holds more than 50% of the Validation stake in the network. Servers that have yet to reach Consensus recieve exponentially fewer emissions than those that have.
**Validator Reward**: Validators receive a portion (typically 50%) of the incentive of bonded Servers as reward \\(D_i\\) for setting weights in consensus.
\\[D_i = \sum_j B_{ij} \cdot I_j\\]

**Emission**: Neurons can simultaneously act as Server and Validator, and generally its emission comprises Server incentive \\(I_i/2\\) and Validator reward \\(D_i/2\\), since it is granting half incentive to its bondholders and gains half incentive from those Servers it is bonded to.
\\[E_i = \left(I_i + D_i\right)\left/2\right.\\]

**Consensus Guarantees**: Unfairly high self-weight set by minority-stake cabals gets clipped at consensus and removes significant voting power. Optimal cabal attacks aim to set self-weights that maximize honest self-weight (utility) required for retaining majority stake. Subtensor implements on-chain consensus and verifies its guarantees via integration tests. It also maps guarantees for given weight standard deviations by simulating large networks and optimizing cabal attacks.

# T (Trust)

Trust is the measurement of the number of non-zero rankings Servers receive from Validators.



# C (Conensus)

Consensus is defined using a continuous sigmoid function. This sigmoid produces threshold-like scaling, which rewards connected and well-performing Servers and punishes the non-trusted.

\\[ {C}={σ}({\rho}({T^T}*{S}-{0.5})) \\]


Servers who have reached ‘Consensus’ are peers with non-zero rankings from more than 50% of the Validation stake in the network.

\\[ ({T^T}*{S})>{0.5} \\]



# I (Incentive) + Emissions

As Servers attain more weight in the network they increase their inflation exponentially up to 0.5

\\[ {I}={R}*{C} \\]

Using the bond matrix, the chain distributes Incentive scores to ensure that each Server receives a fixed proportion of emission in line with their performance in the network.

\\[{\Delta}S=0.5B^T*I+0.5I \\]
<img src="images/consensus_guarantees.pdf">

We assume majority stake is honest and sets accurate weights on the entire network, while minority stake can form a cabal that colludes to maximize its emission by setting high self-weight. Weights standard deviation is the extent of natural deviation due to sampling noise of validators measuring server performance, where each validator sets a different weight on a given server. Higher weight deviation increases the major utility requirement, since noise weakens the consensus. However, weights standard deviation is typically less than 40%, and if at least 60% stake is honest and controls 73% utility then it can still retain its stake, since it will receive at least 60% of emissions.

**KEY**
---
Expand All @@ -67,6 +54,8 @@ R = Rank

S = Stake

T = Trust
T = Server Trust

V = Validator Trust

W = Weight
Binary file added src/images/consensus_guarantees.pdf
Binary file not shown.
Binary file added src/images/consensus_plots.pdf
Binary file not shown.