Free Software Hacker's Introduction to the Giftfile System

You're busy, and there are many other things out there competing for your attention, so here is the thirty second pitch:

The giftfile system enables producers and supporters of computer files containing nonproprietary intellectual works to participate in a gift economy. Tax deductible lump donations, made to nonprofit intermediaries, can be allocated to these files in an automated and efficient manner, supporting transactions as little as .01 USD.

Yes, "nonproprietary intellectual works" includes free software. No, to use the system, you don't have to go to some web site and register. The system is decentralized, built on open standards, and does not depend on any for-profit entity.

If you're still reading, that's great. To give a brief overview of how things work from the perspective of a free software producer, here is a typical pattern for placing your packaged work, called a giftfile, into the system:

  1. choose a giftpool - A giftpool is a nonprofit entity that will collect the money allocated towards your giftfile, and distribute the funds to you on request, or allow you to reallocate the funds to other giftfiles. Giftpools are selected on merits such as locale, efficiency, reliability, and policy. Efficiency is defined as the ratio of funds distributed to donations accepted, which is always less than one because these entities consume money to sustain their operations. Right now there is only one giftpool in existence, so there is not much of a decision to make.

  2. upload your PGP key to the giftpool's keyserver - You do have a PGP key, right? The giftfile system relies on the OpenPGP standard for its authentication and security. Currently, the system maintains a keyserver network that is separate from the commonly recognized public keyservers.

  3. create a giftfile certificate for your packaged work - The giftfile certificate is metadata about your file, digitally signed by you. Giftfile certificates are defined by an open specification, and free software tools exist to create and query them. A certificate is created using your package file as input. This implies that the certificate is something that lives outside your normal .tgz or .zip package, much the same way that a cryptographic hash or digital signature file would.

  4. distribute your work - The giftfile system does not distribute content, so you are free to distribute your work as normal. Distribute the certificate file along with your package, just as you might do with an .asc or .sig file if you follow best practices for secure software distribution. In the future, a new file format may be defined which wraps the original packaged work, adding the giftfile certificate.

With that, your package would become part of the giftfile system. Note that the first two items are normally only done the first time you use the system, and may be skipped for subsequent giftfiles. You'll also note that creating and distributing the giftfile does not require any interaction with the giftpool. In fact, the giftpool will never know about your giftfile unless someone decides to allocate money toward it. This reflects the decentralized design of the system.

On the other side of the system, supporters donate cash to a giftpool in return for the privilege to allocate the giftpool's funds toward the giftfiles of their choice. Ignoring the details of how that happens for now, here are some typical uses of the giftfile system once your giftfile has been added:

Those are the basics of being a producer of giftfiles. To complete the picture, other participants in the giftfile system make allocations to giftfiles as described above, yet do not produce giftfiles themselves. The way they gain privilege to make allocations is by donating cash to a giftpool. Such donations are tax deductible, because giftpools are nonprofit entities chartered to fund nonproprietary works.

There are many properties of the giftfile system, some quite subtle, that combine to make all of this possible. One is that the content of a giftfile must adhere to the Giftfile Project's definition of a nonproprietary intellectual work, which ensures that the public is free to fully benefit from the giftfile. If the work is not in the public domain, it must at least be under one of the licenses supported by the Giftfile Project. Yes, both BSD and GPL software licenses are included.

Another important property of the system is that giftpools are not providing a payment service, nor are they banks. When someone sends cash to a giftpool, they are not making a payment in order to use a specific work, but rather funding a public charity chartered with promoting nonproprietary works. The giftpool gives the donor corresponding privilege to allocate the giftpool's funds to specific giftfiles. However, any donations received by a giftpool are under its ownership and, ultimately, its discretion.

Finally, thinking beyond just free software, the giftfile system was defined such as to enable a gift economy supporting all types of nonproprietary works which can be stored in a file, including free music and literature.

For more information about the Giftfile Project, visit

$LastChangedDate: 2004-05-16 11:11:53 -0400 (Sun, 16 May 2004) $