There is no commentSelect some text and then click Comment, or simply add a comment to this page from below to start a discussion.
Definitions
There are miners and questions , each with a respective cutoff time . For any pair , a miner submits a time series of forecasts with , a list of time points (depending on the question) preceding the cutoff . If a miner does not submit a forecast, we denote their submission by .
Let be the score of a given prediction when the question resolves to (with indicating that the underlying event occurred and otherwise).
Peer Score
For a set of miners, the peer score on a question at time step takes the following form: where denotes the geometric mean of the predictions of all miners except at time step .
In order to prevent instabilities, we clip the miners' predictions. Indeed, otherwise one confident and wrong prediction—e.g., submitting when the question resolves to —would result in a score of , effectively eliminating the miner. We clip the predictions to the interval .
To incentivize full coverage, we adopt the following rule:
Weights
We associate a weight to each submission, depending on its time . We choose exponentially decreasing weights based on the intuition that predicting gets exponentially harder as one goes back in time. Denote
We divide the time segment into intervals defined by the endpoints , where and . For each interval (currently of equal length, e.g., 4 hours), we set the weight with increasing from to .
Averaging per Window
Each is in fact the arithmetic average of the miner's predictions within a given time window . That is,
Weighted Average
Given our weights and the miner's time series , we compute the following time-weighted average for each miner:
Moving Average and Extremisation
We build a moving average where the sum is taken over the last questions (with chosen as the average number of questions a miner would receive during the immunity period).
We then extremise this moving average to reward better predictors and to filter out miners who, on average, do not contribute any signal:
The weight of the miner is then given by the normalised value:
New Miners
When a miner registers at time on the subnet, they will submit predictions for questions that opened at a time . In such cases, we assign the new miner a score of , which corresponds to the baseline (i.e., when a miner is neither contributing new information compared to the aggregate nor being penalized). We also assign them a score of for questions in the moving average that resolved before the miner registered.
Definitions
There are miners and questions with respective cutoff times . For any a miner submits a time series of forecasts ranging over a list of time points depending on the question and preceding the cutoff . If a miner does not submit a forecast we denote his submission by .
Let be the score of a given prediction if the question resolved to with value if the underlying event occurred and otherwise.
Peer score
For a set of miners the peer score on a question and time step takes the following form:
where is the geometric mean of the predictions of all the miners except for the time step .
In order to prevent instabilities we clip the miners predictions. Indeed otherwise one confident and wrong prediction, e.g sending while the question resolves to , would result in a score of de facto eliminating the miner. We clip the predictions to .
In order to incentivise full coverage we have the following rule:
Weights
We associate a weight to each depending on the time of the submission .
We choose exponentially decreasing weights along the intuition that predicting gets exponentially harder as one goes back in time. Denote .
We divide the time segment into intervals of equal length (currently 4 hours). Then for the interval we set the weight where and and where increases from to .
Averaging per window
Each is in fact the arithmetic average of the miner's predictions in a given time window i.e
Weighted average
Given our weights () and the miner's time series we compute the following time weighted average for each miner:
Moving average and extremisation
We build a moving average where ranges over the last questions. The parameter is chosen to be the average number of questions a miner would get during the immunity period.
We finally extremise this moving average to reward more better predictors and filter our miners which on average do not contribute any signal.
The weight of the miner is then the normalised value:
New miners
When a miner registers at a time on the subnet they will send predictions for questions that already opened at a time . When this happens we give the new miner a score of which corresponds to the baseline, i.e when a miner is neither bringing new information compared to the aggregate nor is penalized. We will also give them a score of on the questions in the moving average which resolved before the miner registered.