Ragequit vs Assurance Contracts

from https://github.com/MolochVentures/moloch

How can the decentralized blockchain help solve a collective action problem? Two options that have been considered are known as ragequit and assurance contacts. How to they compare?

To begin, let me introduce one of the most famous problems in game theory: the prisoner’s dilemma. In this hypothetical problem, two criminals have committed a crime together. They both were caught. If neither of them confesses, the flimsy evidence against them will only be sufficient to charge them with a lesser crime, say, 1 year in prison. If one confesses, he will get off without a sentence and the other will be given 3 years in prison. If they both confess, however, they will both be given 2 years.

If we judge by the total number of years served, the best overall result is if neither confesses. However, each individual has an incentive to confess. Thus, if the prisoner’s can’t commit to some form of collective action, they will each confess and the result will be 2 years for each.

Let’s first consider a vanilla commitment mechanism. Each prisoner has the option of putting a written confession on the blockchain in a smart contract named COMMIT. If they put it in, they can’t ever take it out. Also, assume they can’t make a confession without taking their statement out of the box.

Since we are talking about the blockchain here, let’s assume the prisoners can’t physically force each other to commit their confessions. Unfortunately, without a physical enforcement mechanism the incentives haven’t really changed. The decision whether to put your confession in the box has the same underlying incentives as the underlying problem, so neither prisoner will choose to commit.

One of the most common coordination mechanisms in the blockchain world is called ragequit. Basically, people put money together, but if someone doesn’t like the result of a vote they can take their money out before it is spent. Here is a description of a voting mechanism that includes ragequit:

The ragequit mechanism of Moloch lowers the coordination cost even more. It ensures that if you, a member, really don’t like a proposal you can exit with your funds before the proposal goes through. This lowers the coordination cost closer to ‘0’.

In the prisoner hypothetical, each prisoner has the option of putting their confession in a contract named MOLOCH. Each person can see the other confessions in the contract, but they can only take their own confession out. When the time comes to decide, they have the option of ragequit.

Unfortunately, ragequit does not actually commit either of the prisoners. It is still in each of their individual best interest to remove their confession when the time comes. In other words, like the vanilla commitment mechanism, a coordination mechanism based on ragequit doesn’t actually change the underlying incentives. Thus, it can’t solve the prisoner’s dilemma.

Ragequit might lower the cost of coordination to zero, but unfortunately it also lowers the benefit of coordination to zero. In our hypothetical example, it does precisely nothing.

This is not to say ragequit has no uses. Once people have put their money in, there may be some kind of psychological influence going on. But at the end of the day, to the extent ragequit works, it works because it relies on people being irrational. For example, it can work if people treat confessions in the box as a sunk cost.

Now let’s consider an alternative to ragequit called an assurance contract. In an assurance contract, each prisoner has the option of putting their confession into a contract named ASSURE. They can only take it out of the box if the other person doesn’t put theirs in.

So what do the incentives look like? We already know that if a prisoner doesn’t put their confession in they will get 2 years in prison. If they do put it in, they will get either 1 year (if the other person commits, too) or 2 years (if the other person doesn’t commit). Since there is a chance to get a reduced sentence, and really no risk (they can take it back if the other person doesn’t commit) ASSURE actually does change the incentives. Given our setup, it solves the prisoner’s dilemma.

Kickstarter is probably the most famous example of an assurance contract design. In Kickstarter, a project sets a fundraising goal, and people make pledges using a credit card. Their cards are only charged if the goal is met.

To see how this might work on the chain, let’s now consider a more concrete example. Gitcoin is a DAO that makes grants to people working on various projects that could be useful to the blockchain community. Gitcoin is based on the Moloch model, including the ragequit function. That is, they raise a bunch of money, and then vote on who to give grants to. After they decide to make a grant, people have the option to quit.

An alternative to the current model based on Assurance would be to decide on the grant target in advance, and then start collecting money. People who want to support the project put money in a contract, and if the target amount isn’t reached within a threshold time period they can take their money back out. If enough money is raised, the money is transferred to the target.

It’s not always the case that we know in advance the level of commitment needed to fund a project. However, in some cases we might have an idea of a minimum amount to make something viable. Consider the case of the Constitution DAO. In that example, the organizers of the DAO knew approximately how much they would need to make a viable bid to purchase the constitution, and they raised almost $50 million, without any kind of assurance contract or any other guarantee. Still, their bid failed and they (tried, at least) to return the money.

Assurance contracts work best when you know a minimum amount of cooperation necessary to achieve an objective, i.e., when you have a knowable minimum viable project (MVP). This is the case in the prisoner’s dilemma, where each prisoner knows in advance that they need the cooperation or precisely one other person. So when you do have some concept of an MVP, blockchain-based assurance contracts should be one of the primary tools in the collective-action toolbox.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Patent Attorney, Crypto Enthusiast, Father of two daughters