Game Theory, Assurance Contracts, and Crowdfunding with Bitcoin

Posted on April 28, 2014

One of my majors in college was international politics, and among the course requirements were a number of classes on game theory. It was one of the most interesting parts of my coursework, but I am sure I wouldn’t have believed it if I’d been told that a few years later I’d be spending an afternoon, of my own volition, writing about using the Bitcoin protocol to create assurance contracts.

The free rider problem in game theory posits that there are situations in which the creation of a public good (for example, building a road) will provide utility to a group of people and leave everyone better off. However, if there is no way of excluding those who did not contribute, many will make the rational decision to not pay and yet still reap the benefits of others’ contributions. In some cases this means that the public good will not be created, and utility is lower for everyone. Assurance contracts represent a way of solving the issue by ensuring that people actually contribute. In one of these binding contracts, a group of people agrees to fund a certain public good when a financial threshold is met. If the project is fully funded, the public good is provided, and if it is not, then the money is returned to those who pledged it.

Another interesting twist is the ability to create dominant assurance contracts. In game theory, a dominant strategy is one that is the best course of action regardless of what the other actors in a scenario do. In an assurance contract situation, a dominant strategy would involve having the entrepreneur agree to pay a certain amount of money back to the contributors in the event the project wasn’t funded. Although this increases the risk for the entrepreneur, it also increases the probability the project will be funded. For the potential contributors, this setup ensures a win-win situation, where funding the project is always the best strategy – they either get the  good, or their money back plus some. I won’t go into great depth about creating dominant assurance contracts with Bitcoin here, but if you’re interested here’s a solid explanation. 

The binding nature of the assurance contract dictates that there must actually be someone enforcing it. This has historically been a third party like a government, a mediator, an escrow service, etc. Reliance on a  third party can be problematic in a number of ways, among which the fact that there’s not necessarily a way to ensure they will operate fairly. In international scenarios involving multiple countries trusting one another, there’s no greater power who can offer that assurance. (The UN was supposed to offer this, but sadly it holds very little real power – consider that in 2010 for instance, only 13 of 193 countries paid their dues on time, and the US itself owed roughly $1.2 billion in arrears.) In situations like this, having an independent arbiter would be key — and better yet one that is not corruptible and technology rather than human-based. Enter the Bitcoin protocol.

The basis of crowdfunding platforms like Kickstarter and Indiegogo is the same – they operate as the third party who collects funds from backers and then releases money to the project creator when the threshold is met. With Bitcoin, the need for a third party is removed and the process can be handled by the technology.

Here’s how it would work:

  1. Alice, an entrepreneur, decides to fundraise for the launch of her new product. She announces that the good will be produced if she can raise 100 BTC, and opens up contributions to anyone. She also creates a new address.
  2.  Everyone who wants to contribute creates a new transaction that spends whatever amount they are pledging to the address Alice provided. They don’t broadcast the transaction. There are a few key differences from a regular transaction: A) Contributors can’t have any change. If they don’t have an address with an output of the right amount, they can create a new one by spending money to one of their own addresses. B) The input script signature is signed with SIGHASH_ALL | SIGHASH_ANYONECANPAY. C) The output value is set to 100 BTC, which is the funding threshold set by Alice.
  3. The transaction is uploaded to Alice’s server, which saves it to disk. It keeps a count of how many bitcoins have been pledged.
  4. When the funding threshold is met, the server merges the individual transactions into a single new one with only one output. That output is then spendable to the address Alice created, and the inputs are collected from the contributors.  Earlier, the transaction was not valid and couldn’t be completed, because the inputs did not match the output. When total contributions reach the 100 BTC threshold, inputs match outputs, and the transaction becomes valid.
  5.  The final transaction is broadcast to the network, sending the contributions to Alice’s address.

The Bitcoin protocol has several properties which make it perfect for crowdfunding and render the above steps possible.

  • The fact that the transaction is not valid if inputs do not match output means that Alice cannot spend the bitcoins she receives until the threshold is met. This ensures that contributors can send her a pledge safely, knowing that it can only be spent when the total project is funded.
  • SIGHASH_ALL means that every part of the transaction is signed with the exception of the input scripts. This is important as it allows the inputs to change (as occurs every time a new contribution is added) without breaking the transaction. If the outputs change, however, the transaction does break. SIGHASH_ANYONECANPAY is an additional modifier that means the signature only covers the input it’s found in – the other inputs are not signed and thus can be anything.

**One thing to be aware of is that the transaction isn’t actually spent until the total threshold is met, so contributors have to be careful not to forget about it and accidentally spend the same transaction twice.

Applying the Bitcoin protocol to assurance contracts and crowdfunding allows us to abstract to technology what could be a very manual process of collecting funds. It removes the roadblock of finding a shared, trusted third party arbiter, which can be particularly difficult – if not impossible – in tense international scenarios, and undesirable in other cases as well. The most incredible thing about it is the enormous range of instances in which it can be used – literally from raising money for a third grade field trip to accepting international contributions to build a refugee camp in a war-torn region. I’d say that’s some legitimate added value — not bad for fake internet money!


33 Replies to "Game Theory, Assurance Contracts, and Crowdfunding with Bitcoin"

  • Zooko Wilcox-OHearn
    April 28, 2014 (11:19 am)
    Reply

    > One thing to be aware of is that the transaction isn’t actually spent until the total threshold is met, so contributors have to be careful not to forget about it and accidentally spend the same transaction twice.

    This means that the scheme doesn’t offer perfect enforcement of the funder’s commitment. There is a race condition in which a funder can attempt to take their pledge back just before the deal is finalized.

    The “Dominant” variant helps with that problem, by making it profitable for the funder to leave their pledge in *when* the fund-raising drive fails, but it doesn’t help with that problem when the fund-raising drive succeeds.

    Anyway, thanks for the blog post! It helped me understand better these proposals for implementing such things in a Special-Point-of-Vulnerability-free way in Bitcoin!

    • earonesty
      May 23, 2014 (3:03 pm)
      Reply

      You can, of course, immediately detect when contributor takes their pledge back. The tracking for this really needs to be built into the reference client so that a list of “pledges” can be maintained.

  • 博弈论,担保契约与比特币众筹 | 三个硬币
    May 7, 2014 (12:42 am)
    Reply

    […] 来源:http://www.ariannasimpson.com/game-theory-assurance-contracts […]

  • 博弈论,担保契约与比特币众筹 | 巴比特
    May 7, 2014 (10:46 am)
    Reply

    […] 来源:http://www.ariannasimpson.com/game-theory-assurance-contracts […]

  • waddle duck
    May 8, 2014 (10:05 pm)
    Reply

    do you have any thoughts on http://www.virtex.com? It is launching soon and seems to look like a good platform.

  • Chris
    May 9, 2014 (7:06 am)
    Reply

    If a lot of people want to donate, can Alice collect 120 bitcoins without going back to all spenders to revise their pledge?

  • Vinumeris | Lighthouse
    May 17, 2014 (5:41 am)
    Reply

    […] can sometimes help break the deadlock and ensure the public good gets built. Arianna Simpson has a more in depth writeup of assurance contracts on her blog, which I […]

  • Elwar
    May 20, 2014 (6:55 am)
    Reply

    I have implemented Dominant Assurance contracts at http://www.bitpools.com
    Check it out, I hope to get some good practical knowledge on putting it into practice on several projects and tweak it from there.

  • Hristo
    May 21, 2014 (4:48 pm)
    Reply

    What stops Alice to collect all the money anytime by raising the needed amount herself? Doesn’t this break the assurance?

    • arianna
      May 21, 2014 (4:52 pm)
      Reply

      Well, technically nothing. But what’s the point of raising money via crowdfunding if you pay for it yourself anyway? The same issue also applies to Kickstarter, or any other method of crowdfunding.

      • Hristo
        May 22, 2014 (1:00 am)
        Reply

        The problem is, you can pay 50% for example, and break the promise to collect the funds only if the target is reached. But this is the whole point of assurance contracts, and if this is possible, they are no different than simple donation funds, right? With kickstarter, this is easier to prevent, as payments are not anonymous, and the company will not release the money if you do this.

  • 灯塔——比特币众筹项目 | 巴比特
    May 23, 2014 (12:06 am)
    Reply

    […] 以上我所提及到的各种功能中,有一个和别的不太一样,“担保契约”( assurance contracts)(最近常被称为“众筹”),众筹,即不同的人相互协作,为公共物品进行共同融资——公共物品,就是那些一旦被完成就能造福所有人的东西,但是个人力量太过薄弱,没有办法支付所有费用。传统教科书上用“灯塔”(lighthouse)来解释众筹的概念:从海上更清楚地看到岸的位置,能使所有水手受益,但是没有一个水手能够凭个人力量支付这笔费用。而灯塔一旦建成,能看见岸边的人必然不只有当初花钱建造灯塔的那位水手。一个更加现代的例子当数点对点基础架构(peer to peer infrastructure)。“如果别人同意把他们的钱放在里面,那么我也同意把钱放进去。”这样一来,就集合了众人的抵押保证。担保契约有时能帮助打破僵局,并确保公共物品得以建立。我建议大家可以去看下Arianna Simpson的博客(译文:博弈论,担保契约与比特币众筹),里面对担保契约有更深入的介绍。 […]

  • 比特币众筹项目:灯塔 | 三个硬币
    May 23, 2014 (1:13 am)
    Reply

    […] 以上我所提及到的各种功能中,有一个和别的不太一样,“担保契约”( assurance contracts)(最近常被称为“众筹”),众筹,即不同的人相互协作,为公共物品进行共同融资——公共物品,就是那些一旦被完成就能造福所有人的东西,但是个人力量太过薄弱,没有办法支付所有费用。传统教科书上用“灯塔”(lighthouse)来解释众筹的概念:从海上更清楚地看到岸的位置,能使所有水手受益,但是没有一个水手能够凭个人力量支付这笔费用。而灯塔一旦建成,能看见岸边的人必然不只有当初花钱建造灯塔的那位水手。一个更加现代的例子当数点对点基础架构(peer to peer infrastructure)。“如果别人同意把他们的钱放在里面,那么我也同意把钱放进去。”这样一来,就集合了众人的抵押保证。担保契约有时能帮助打破僵局,并确保公共物品得以建立。我建议大家可以去看下Arianna Simpson的博客(译文:博弈论,担保契约与比特币众筹),里面对担保契约有更深入的介绍。 […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | TechCrunch
    May 23, 2014 (6:28 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | daily1.com
    May 23, 2014 (6:36 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | GRAPHUCKER
    May 23, 2014 (7:03 am)
    Reply

    […] If you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Virtual Mining Bitcoin News » Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin
    May 23, 2014 (7:15 am)
    Reply

    […] If you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | Web Tech News | Free technology news with the latest investments, gear, industry and copyright news
    May 23, 2014 (7:17 am)
    Reply

    […] If you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • NewsSprocket | Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin
    May 23, 2014 (7:20 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | infoscape.com
    May 23, 2014 (7:22 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | webguide.net
    May 23, 2014 (7:23 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | geekville.com
    May 23, 2014 (7:26 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | crawlDirectorycom
    May 23, 2014 (7:28 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Newsite – Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin
    May 23, 2014 (7:32 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | iyaan.info
    May 23, 2014 (10:25 am)
    Reply

    […] If you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Bitcoin | Pearltrees
    May 23, 2014 (11:38 am)
    Reply

    […] Game Theory, Assurance Contract and Crowdfunding via Bitcoin […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin – TechCrunch | iVentures.me
    May 23, 2014 (1:26 pm)
    Reply

    […] If you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Lighthouse:基于比特币的众筹平台 | 23Seed
    May 24, 2014 (3:09 am)
    Reply

    […] Lighthouse能够成功运行的原因是比特币协议可以支持保证协议,也就是我们现在所说的众筹。如果你对这方面的细节感兴趣的话,你可以阅读阿丽安娜·辛普森(Arianna Simpson)的博客文章。 […]

  • Lighthouse Is A Crowdfunding Platform Built On Top Of Bitcoin | Sharing Interesting Stuff, Updates News & Free Tips
    May 24, 2014 (5:01 am)
    Reply

    […] you are interested in the details of how bitcoin does that, you should read Arianna Simpson’s blog post on the […]

  • Game Theory, Assurance Contract and Crowdfundin...
    May 26, 2014 (2:38 pm)
    Reply

    […] How the bitcoin protocol can be used to improve crowdfunding, assurance contracts, and solve problems in game theory.  […]

  • Lighthouse:基于比特币的众筹平台 - 科技辣
    May 27, 2014 (11:42 pm)
    Reply

    […] Lighthouse能够成功运行的原因是比特币协议可以支持保证协议,也就是我们现在所说的众筹。如果你对这方面的细节感兴趣的话,你可以阅读阿丽安娜·辛普森(Arianna Simpson)的博客文章。 […]

  • Cryptocurrency in the news #15 | Great Wall of Numbers
    May 28, 2014 (9:20 pm)
    Reply

    […] Game Theory, Assurance Contracts, and Crowdfunding with Bitcoin by Arianna Simpson […]


Leave a Reply