Conditional donations to fund software development

Posted 16 Nov 2002 at 03:28 UTC by pfh Share This

Funding the development of free software is a problem. While it is usually to the benefit of the community for free software to be written, the cost of development often outweighs the benefit to any one user of the software.

In this article, I propose a method of overcoming this problem using a system of conditional donations, so that a group of users can cooperate to fund software development without the need for altruism: this is a system that should make sense even to penny pinching bastards! The outcome of a small scale test of the system is also described.

These ideas emerged from discussions in the Melbourne University Information Economics group.

A conditional donation is a donation in which the amount of money donated depends on the outcome of the entire funding round. For example

"I will donate $1 in every $100 raised, up to a maximum donation of $1000"

Conditional donation allows a donator to eliminate the risk involved in donating to a project by ensuring sufficient development occurs to repay their investment. Another advantage of conditional donations is that a small donation can have a large effect on the outcome by inducing other contributors to donate more. This encourages fresh donations.

The Rational Street Performer Protocol

We formalize the idea of conditional donations by describing a protocol, the Rational Street Performer Protocol (RSPP), which is intended as a refinement of Kelsey and Schneier's Street Performer Protocol.

In RSPP donations are collected in rounds. The intention is for a series of rounds to fund a project in an ongoing manner. Over the course of these rounds, donators will refine the conditions for their donations, hopefully converging towards an equilibreum.

In each round, conditional pledges are sought. These take the form

"For each dollar raised over $X, I will contribute $1 for each $Y raised, up to a maximum donation of $Z."

More complex donations can be constructed from multiple pledges of the form above. The only real restriction on donations is that they be a continuous function of the total amount raised.

Once the pledges have been collected, it is possible to find the maximum amount that may be raised consistent with all pledges. This is a rather circular idea -- the total amount raised depends on how much each donator donatates, and the amount each donator donates depends on the total amount raised. There will nevertheless be an optimal solution.

RSPP has several advantages as a system for raising funds:

  • A donator can eliminate risk from their donation by ensuring that sufficient funds are raised to lead to creation of software that more than pays back their own donation.

  • Since a fresh donation can lead to other donators donating more, a modest donation can have a large effect on the total raised. This encourages fresh donations. (one can estimate the effect of a donation by calculating the effect it would have had in previous rounds)

RSPP in practice

A small test of RSPP was performed, to raise money to advertise "The Circle". The Circle is a P2P application, and users of the Circle would benefit from more people using it -- more files to download, more people to talk to, more gossip. This therefore seemed a reasonable test of RSPP.

In total, ten people pledged donations to advertise the Circle. An interesting result of this was that the conditions of everyone who contributed were fully met -- everyone who pledged payed the full amount they were willing to contribute. In total, $AU270 was raised.

From this result, it seems that everyone who pledged underestimated the total that would be raised. This is a psychological effect that RSPP can help overcome. Confident of a successful outcome, people can donate more freely.


Software Completion Bonds, posted 16 Nov 2002 at 04:42 UTC by mbrubeck » (Journeyer)

Another method for open-source funding methods is described in The Wall Street Performer Protocol. This article describes a system of software completion bonds based on Ronnie Horesh's social policy bonds.

Essentially, donors place funds in escrow accounts and issue bonds on a market. The bonds come with a specification for a free software project; the holder of a bond will receive its monetary value if the specification is ever fulfilled by any free software project (as judged by some third party specified when the bond is issued).

Free software creators can fund their work by purchasing bonds and then working to complete the specification and receive the full value. Or they may partially complete the specification, raising the bonds' market value, and then sell the bonds to other interested parties. If multiple groups hold bonds for the same project, it is in both parties' interests to cooperate rather than compete, unlike in CoSource-style "bounty" funding.

The Rational Street Performer Protocol encourages users of free software to cooperate in fund-raising without the need for altruism. Software completion bonds attack the other side of the problem, allowing the recipients of those funds to cooperate without the need for altruism. The two ideas are not exclusive: RSPP gives a method for raising funds, and WSPP gives a method for disbursing them. RSPP could be used to raise money for software completion bonds.

Speculators and the WSPP, posted 17 Nov 2002 at 09:00 UTC by kbob » (Master)

The thing I've never understood about the Wall Street Performer Protocol (catchy name, BTW) is, what's to prevent speculators buying the bonds on the expectation that someone else will do the work.

For example, let's say project P is proposed and funded. I have no interest in working on project P, but I can buy series P bonds. Others, who DO want to work on P also buy the bonds, write the code, complete the spec, and cash in. I cash in too, even though I didn't do a lick of work. If I have the cash, I can take a small position in many projects and get a payout on some percentage of them, and maybe make a lot of money. If enough speculators do this, actual developers will hold a minority of the shares, and the price of software has to be grossly inflated to compensate. (Or, the developers work for peanuts.)

Other problems: pay not related to work. Two developers, Alice and Bob, (it must be a crypto project) agree to work on project C. Bob buys a bond so he'll be paid. Alice has more cash, so she buys 10 bonds. Then they work on the project. Alice and Bob both work hard, and Project C is completed. Bob earns $10,000. But Alice earns $100,000. Bob is annoyed. (In this case, Alice represents one part developer and nine parts speculator.

There's also an unfair situation if Alice and Bob each buy one bond, but Bob does most/all of the work.

I don't see how the WSPP can address these inequities.

K<bob>

WSPP and speculators, posted 17 Nov 2002 at 18:16 UTC by mbrubeck » (Journeyer)

I have some issues with the speculation problem also. The Social Policy Bonds paper addresses it briefly (in the discussion of "active" versus "passive" investors), but I didn't find it very convincing. However, here are some arguments:

  • A developer who lacks cash but makes a convincing business plan could take out a loan to purchase bonds. Bob, with a well-laid plan for a large amount of work, will be able to obtain more funds than Alice who has a partial or poorly-written plan.
  • By buying up bonds, speculators raise the market value of bonds already held by active investors. The speculators' votes of confidence raise the net worth of the active investors, who can now raise more cash by selling some bonds.
  • If I buy bonds in a project, it's now in my self-interest to further the project's goals (as long as I can do so for less cost than the expected benefit). Therefore speculators are likely to aid development out of pure self-interest.
  • If speculation were so widespread that it reduced the incentives available to active developers, it would begin diluting the value of the bonds and turning away speculators. This creates a built-in cap on speculation.
Like I said, I'm still not completely convinced. But then again, I never really understood how stock market economies manage to function at all. I suppose speculation would exist in a social or software bond market just as it does in the stock markets, with similar effects.

Is there software for this?, posted 24 Nov 2002 at 04:40 UTC by MichaelCrawford » (Master)

I'm thinking I might try using the Rational Street Performer Protocol to allow me to get paid for copylefting the technical articles I write. I'd write many more articles than I currently do if I didn't have to take time out from paying work to write them.

Is there software I can run as a web application to collect pledges?

Also, I'd like to do a survey of my readers to get their input before I try something like this. Do you know of some software (hopefully easy to configure) that I could install on a web server to do a survey with? Not a simple poll, but with multiple questions and some questions with freeform text input. I guess I'll go check freshmeat next.

I discuss this at greater length in my diary.

No web interface yet, but here is a round calculator, posted 24 Nov 2002 at 22:36 UTC by pfh » (Master)

There's no web interface yet, but here is a round calculator: rspp.py.

The ideal would be a site that automates the whole process: setting up a round, collecting pledges, sending out requests when the round is complete, examining the results of previous rounds (including things like how much would a donation of $X have changed the result).

Anyone with some spare time? (once it was set up, it would of course be self funding ;-) )

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page