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:
- 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.
- 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.
- 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.
- 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:
- poll your giftfile record - Each giftpool runs a server which publishes various records and allows users to make transactions. Giftpool servers implement an open specification called the giftpool protocol, which is built on open standards such as HTTP and XML. You use a software client to poll the giftpool server for your giftfile's record, which will appear once the first allocation is made to your giftfile. The giftfile record includes information such as total allocation amount received.
- poll your user record - When a giftpool server encounters the very first giftfile certificate created by you, in addition to creating the giftfile record, it will create your user account. You may poll the record of your account to discover the total allocations made to all of your giftfiles, among other data.
- allocate to other giftfiles - Once your user account gains some privilege by way of incoming allocations to your giftfiles, you may reallocate those funds to other giftfiles. For example, you might contribute a percentage of your giftfile's received funds to other giftfiles on which your work depends or derives. Or perhaps you are making an allocation to some unrelated software that you find useful. This is the most effective use of your incoming allocations, since transactions within the giftfile system are frictionless, and because you avoid tax consequences. Allocation requests are made to your giftpool by way of the giftpool protocol. You simply feed a giftfile certificate and amount you wish to allocate to suitable client software.
- request a grant of collected funds - The sum of allocations to your giftfiles, assuming it has become large enough to warrant transfer, can be remitted to you as cash. The maximum amount you can request will be less than the total allocations received by your giftfiles by some fixed amount, typically less than 1 USD. This friction covers the giftpool's costs, both direct (such as printing and mailing your check) and indirect (such as computer servers, internet bandwidth, and staff). Again, grant requests are transacted through the giftpool protocol by suitable client software. So that the money can be sent you, you'll have to provide more information about yourself, typically your name and mailing address. Be aware that giftpool grants may need to be declared on your taxes.
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 http://giftfile.org/.
$LastChangedDate: 2004-05-16 11:11:53 -0400 (Sun, 16 May 2004) $