Yuma Raowww.bittensor.com
10 Collusion We consider the scenario where a subset of the peers in the network have formed a cabal: A set of colluding peers attempting to maximize their ination without accurately scoring their neighbors. The ght between the honest graph A with stake SA and the disjoint cabal B with stake SB can be determined by the proportion of network stake held by each. The honest graph must attain more ination to maintain its dominance and protect the network IA >> IB. We assume that the proportion of stake in the honest graph is more than that found in the dishonest graph SA > SB and that the chain has used gradient descent such that L < 0. Since all peers in B are disjoint from A, the sum of inward trust (cid:80)n j cj,i to each peer in B is negative such that our loss term RB (TB 0.5) > 0 is positive for this sub-graph. Because L < 0 it must be the case that RA (TA 0.5) > 0: namely, there are peers in the honest sub-graph A who are connected to the majority after scaling vector A.
id: c2c9d06fdf5949a7efe494b5ba7d3227 - page: 8
As the chain progresses, newly minted stake is being emitted at our ination rate in proportion to I = R T . Importantly, the derivative of the incentive function with respect to the stake is positive and super-linear at our inection point between the honest and dishonest graph. Notably, I 2 . In other words, changes in the amount of stake held by each sub-graph reect a non-linear change in their ination at the next iteration. S = 5 Initially, since SA > 0.5 and SB < 0.5 the proportion of stake emitted in sub-graph A exceeds that in sub-graph B, and sub-graph As incentive grows super-linearly compared to B. The result is that the decreases exponentially the cabal must continually add stake to its sub-graph ratio of stake to maintain itself through time.
id: 5ccf7b473716bca866cc263bde4fe0eb - page: 8
SB SA+SB We consider this proportion between the competing graphs under continuous ination. Converting to python code ... tau = 0.1 temp = 10 stake_A = 0.51 stake_B = 0.49 history = [] for block in range(100): total_stake = stake_A + stake_B trust_A = 1/(1 + math.exp(-(stake_A/total_stake 0.5) * temp)) trust_B = 1/(1 + math.exp(-(stake_B/total_stake 0.5) * temp)) ranks_A = stake_A ranks_B = stake_B incentive_A = ranks_A * trust_A incentive_B = ranks_B * trust_B total_incentive = incentive_A + incentive_B total_stake = stake_A + stake_B stake_A += tau * total_stake * incentive_A / total_incentive stake_B += tau * total_stake * incentive_B / total_incentive print (block, stake_B / (stake_A + stake_B)) >> block | size of cabal 0 0.4877323388820201 8
id: 713505d865ee0c065c6e225228880e54 - page: 8
1 0.4849535784321247 2 0.4815511535094221 3 0.477389901500398 4 0.4723093486843246 5 0.46612224574620587 6 0.45861590847737577 7 0.44955887540065376 8 0.43871643745912897 9 0.42587900870651624 10 0.41090548935459825 ... 90 0.0002827251010618101 91 0.00025719653886131316 92 0.0002339730247373799 93 0.000212846436856568 94 0.00019362744329658293 95 0.0001761438058611274 96 0.00016023883697158944 97 0.00014576999582759936 98 0.00013260761127280887 99 0.00012063371993464691
id: c79aab0054cd0e5af111c11af04554e1 - page: 9