Oracle Module
Citizen tasks ecosystem validators to serve as the oracles. It is the responsibility of Citizen validators to, on a per-block basis, maintain a price feed for whitelisted assets. Every VoteInterval
, a period of blocktime specified by the DAO, validators must commit a value for the exchange rates of whitelisted assets. At the end of each VoteInterval
, the mean value of the set of validator commits is obtained and used as the TruePrice
for each asset type.
The set of validators whose committed price is within a ConfidenceBand
of the obtained TruePrice
receive a bonus reward of CSTK, called the OracleBonus
. This ConfidenceBand is set to .25%, and can be changed by the DAO. Validators whose proposed price falls outside of the ErrorBand
will be slashed. The ErrorBand
is set to 2.50%, and can be changed by the DAO. The quantity of CSTK that will be slashed from validators whose proposed values fall outside of the ErrorBand
from the TruePrice
is called the ErrorPenalty
, and is set to .05%. The ErrorPenalty can be changed by the DAO.
The entire quantity of CSTK that is slashed from validators under the ErrorPenalty
is used to fund the OracleBonus
. The OracleBonus
is entirely funded by the ErrorPenalty
, rather than new token emissions. Effectively, imprecise validators are punished and disincentivized, while precise validators are rewarded and incentivized. Under the ErrorPenalty
and OracleBonus
, the stake of validators will shift to the most precise of the cohort at the turn of every VoteInterval
.
Last updated