Commit Reveal 3.0
Commit Reveal 3.0 will launch in December 2024.
What is Commit Reveal?
Commit Reveal is designed to stop weight copying validators. See Weight Copying
For subnets that support Commit Reveal, all weights submitted by validators will be encrypted for a number of epochs. The weights will only be revealed and used for Yuma Consensus upon decryption. If a validator is weight copying, the are only able to access stale data. This will lower their score, making weight copying less lucrative.
Setting Up Commit Reveal
Subnet owners have two new Subnet Hyperparameters:
commit_reveal_weights_interval 1 1
commit_reveal_weights_enabled False False
Enabling and setting the number of intervals will turn on Commit Reveal for the subnet. Interval denotes the number of tempos until the weights will be revealed. If set to 3, the weights will be revealed in three tempos, at the start of the tempo.
Setting Weights
Validators do nothing different post Commit Reveal. The chain nodes establish if Commit Reveal is turned on. If CR is on, the submitted weights are hashed and placed on chain. After commit_reveal_weights_interval
epochs have elapsed, the hashes are compared, and if they match, the weights are decrypted.
Miner ramifications
If you make changes to your miner, the resulting scores will be delayed by several epochs:
New Miner
Epoch 1: Start a miner, evaluated by all the miners.
Epoch 2: Validators place initial weights
Epoch 2 + commit_reveal_weights_interval
: your initial weight appears.
Miner crashes
Epoch x: Miner crashes. Stops responding to validator requests
Epoch x+1: Validators begin lowering your score
(intervening epochs - scores continue to drop precipitously)
Epoch x+1+ commit_reveal_weights_interval
: you start seeing dropped scores
Miners should not be using validator scores to determine if their miners are active. With Commit Reveal, deregistration is almost guaranteed.
Updated 3 days ago