TCR with Depreciative Stake Model

In standard TCR, applicants stake a fixed min_deposit amount of tokens to propose an entry to the list. By making the min_deposit a decreasing function of the amount of time that an entry is listed, we mitigate the risk of applicant losing more stake than the listing’s value. It also encourages more applications since the listings cost less overall. We call this Depreciative Stake Model.

An example curve depicting min_deposit as a decreasing function over time (generated with Wolfram|Alpha)

To demonstrate a simple use case of depreciative stake model, we choose the following formula for the stake curve:

Now, let’s apply the curve to the daily crypto news example. With the new min_deposit model, Bob would still be staking 1,000 CHT at the time of application. A day after his news being listed, Bob will be able to withdraw 100 CHT from his initial deposit with the rest still locked up as stake. After seven days, Bob only has to stake 300 CHT onward to stay listed.

In the case that Bob hasn’t withdrawn his stake, let’s suppose Alice wants to challenge Bob’s listing at day 3. She would be staking 700 CHT to match with Bob’s min_deposit at that moment. If she wins, only 700 CHT from Bob's stake would be distributed to Alice and voters. The remaining 300 CHT belongs to Bob.

With this new min_deposit model, the longer Bob's news is in TCR, the less risk he takes of losing his staked tokens.

Why is this Model Better?

From applicant perspective, the opportunity cost of staking tokens at any given time should never exceed the utility of the entry being included in the TCR. For example, if Bob believes there is a 10% chance that his listing will be challenged and rejected, for him to maintain the listing at day 3, he has to value that being listed is worth more than 70 CHT (10% * 700 CHT, the expected value that Bob will lose his stake).

In standard TCR, to maintain the inequality mentioned with a fixed stake, the probability of the news being rejected must decrease over time as the utility decreases. It is improbable since the readers hardly receive any utility from old news, and thus the token holders would have little incentive to keep the old listings in the TCR.

On the contrary, by modelling the stake to decrease over time, we can balance the inequality by adjusting the stake based on the change in utility and rejection rate.

Curve Shape and Parameterization

As the change in rejection rate and utility (page view, click-through-rate) over listing time should be publicly available, the community should be able to accurately model the curve for min_deposit to suit its curation model. For example, one can choose to implement the following curve based on historical data:

Without further experimentation though, it would be difficult to pinpoint the exact curve that applies for general use cases. For the starter, we will be testing linearly-declined curve, a generalized version of the curve used in the example above, described in the formula below:

Community determines initial_deposit , terminal_deposit , and t_decay_period parameters through community voting.

Back to Solidity World

We finish this article by discussing a possible concrete implementation of the depreciative stake model on Solidity. The implementation can be done by adding a view method that returns the current min_deposit of a given entry at the time of function evaluation. With that in place, any computation that requires min_deposit simply refers to the result of the function, as opposed to using a predefined constant value. Using Band Protocol's Equation library, any arbitrary decay function of min_deposit can be added to a TCR contract only with a few lines of code!

Band Protocol is also using this model to power the upcoming release of CoinHatcher! Our in-progress implementation of TCR with depreciative stake model is available for inspection here.