The current gas costs associated with maintaining our recipient registry on Kleros are a significant barrier to entry for new projects and make recipient curation for rounds running on xdai (or anywhere that can’t synchronously query mainnet data) more trustful than they would be on mainnet.
I would like to explore the idea of replacing our Kleros TRC with an oracle-based registry built on Reality.eth.
For those not familiar with Reality.eth, it is an oracle system based on an escalation game. Anyone can ask a question and anyone can attempt resolve a question by depositing a bond and setting the outcome. After the bond is submitted, there is a timeout window (default is 24 hours) in which anyone else can change the outcome by doubling. Each time the answer changes, the bond doubles and the timeout resets. Game theory dictates that the “truth” should be the Schelling point, and that in most cases no escalation will happen because there is a financial disincentive to set the incorrect result.
For a registry based on this, I imagine there being three public functions, addRecipient(address, metadata)
, removeRecipient(address)
, and editRecipient(address, metadata)
, which can be called by anyone. Whenever one of these functions is called, a Reality.eth question is asked to confirm whether or not the the change is valid/conforms to clr.fund’s acceptance/removal criteria.
The address calling the function should fund the initial bond. Once the escalation game has been played and the result is finalized, then anyone should be able to call an updateRegistry()
function to apply the corresponding change to the registry.
Reality.eth is currently deployed on Mainnet, xDai, a handful of public testnets, and could easily deployed to whatever rollup solution we land on.