-lucre version 0.8.1 README --------------------------- This is version 0.8.1 of -lucre (We pronounce it ``dash lucre''; you can pronounce it however you like), the Unofficial Cypherpunks Release of Ecash (or ``Coderpunks'', if you want). As the ``-l'' indicates, this is a C library that implements the protocols of DigiCash's ecash (version 1.8.5, the kind used by Mark Twain Bank, not EUnet). This is an ALPHA release. That is, future release may not even adhere to the same API. This library was developed for, and is provided for, research purposes; adjust your expectations of support accordingly. As far as we know, -lucre will only work on Unix-style machines; it is unlikely that we will release a Windows or Mac version. -lucre provides all of the basic things you would like (payment requests, payments, deposits, withdrawals, opening accounts). The format of the wallet is somewhat different from that of DigiCash's standard client, so it would probably be tough to use both that and -lucre with the same MT bank account (maybe not, though; we haven't tried). Most of the information used to produce this program came from information published on the net, and from analysis of the output of a logging packet forwarder. The rest was experimentation. Because these are not ``official'' sources, some things may be incorrect. Use at your own risk; there is always the possibility, when using ecash, that your money will vanish into the bowels of the network. To use this code, you will need the SSLeay package, which you can get from ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-0.5.2a.tar.gz, and the Berkeley db package, which you can get from ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz. Note especially that the use of SSLeay is subject to restrictions in some countries, including the US. Also, as distributed, this package does _not_ do blinding of withdrawn coins, as that process is patented by Dr. David Chaum. If you manage to license the patent, or if you fall under the ``Experimental Use Exception'' (in the US, and possibly other places), it's up to you to add in the blinding code yourself. In any case, and especially if you plan to use ecash for commercial purposes, we would recommend that you contact competent legal counsel. Note that DigiCash publishes an ``official'' library for ecash, though (at time of writing) it is much higher-level, and without source available. If that library would suit your needs, you are probably better off using it instead of -lucre. This library is _not_ in the public domain. Currently, you may not modify it, redistribute it, or distribute any program linked to it (dynamically or staticly), without our explicit permission (signed by the public key below). This restriction is a reflection of the ALPHA version of the library; it is likely that future versions will have more lenient licensing agreements. Some things we would like to put in future versions: o Resending aborted withdrawals: the code to do this is in there, but the bank seems to think the repeated withdrawal message is a new withdrawal [We lost $0.23 learning this... :-( ]. We'll look into this further. o An interface into resending and cancelling payments: all of the right info is currently being stored in the databases; only convenient functions to actually do the work are needed. o Make the function names more parallel: currently, some are like ``wallet_open'' and some are like ``free_msg'' (we're talking about verb-object order, here). This isn't a big deal, especially if you have lucre.h in front of you. o Put in better differentiation of error conditions, and more logging. o More complete client-to-client communications. Right now it is limited to payment requests and payments. We are, of course, open to suggestions [and ecash donations! :-) ]. You can reach us, the development team for -lucre, at either of the addresses below (in fact, use both, as the nym servers seem to be flaky). Better yet, there is a mailing list to discuss the library; send mail to majordomo@c2.org with body "subscribe dev-lucre" to subscribe. Type bits/keyID Date User ID pub 1024/E9E2AC75 1996/06/13 Development team for -lucre Key fingerprint = 63 94 0D F7 D9 6F 2D E5 08 0F EE 19 CB 6B A9 17 sig E9E2AC75 Development team for -lucre Development team for -lucre sig E9E2AC75 Development team for -lucre -----BEGIN PGP PUBLIC KEY BLOCK----- Version: 2.6.2 mQCNAzHANI0AAAEEANYAvtkmYoH/Mav1A8fuwm+ZsDD4t3NY7nYd6zBKkepLLHWd Ue1Wnyr3mFHcrQBbJshwOJOCCUvYwDHST1TOqssaK/vAVavvubD8kRam+SET04b/ 477krJbCycnbBJ5FSugR4kKKs3S3BkrFWIJaBVTSzsocp+eGrrpcpsjp4qx1AAUR tDBEZXZlbG9wbWVudCB0ZWFtIGZvciAtbHVjcmUgPGx1Y3JlQGFscGhhLmMyLm9y Zz6JAJUDBRAxwDTfulymyOnirHUBAeqmBACfy2V57n/kAWMaUT5cFjW/C9ErL9JD 2ej5xr2vXNsYqXVIGGAc1ZNWIRKdxIp5fs+eBwf6mPRcwHe62a50hp9nTmhNnNCr HLLr6g4KkIgNslYtIma+U7ojysAWrcU0Ng8dse8bheO6OiXPoBVI+stp9Uijl60f tTOCPEP9ldY34LQyRGV2ZWxvcG1lbnQgdGVhbSBmb3IgLWx1Y3JlIDxsdWNyZUBu eW0uanB1bml4LmNvbT6JAJUDBRAxxegrulymyOnirHUBAb+MBADErPAtQdo4X8UU 8uGrFsDvSIfzRVgaz+HarEB1PNW5gsEiw9xhHizT6cKM0L9F7BCJWye2jHDm8DSP a5GdQNEmg+siFOw7+97hELqOzJsOjTBrF+mZ5flEeGQJHKub1D5hRChIqI/bwa5A 6e8AKbLB+mfaO2hfXJtnlroUx9foTg== =GvP2 -----END PGP PUBLIC KEY BLOCK-----