1996-06-20 - -lucre 0.8.1: ecash library for Unix available (with source, no blinding)

Header Data

From: lucre@alpha.c2.org
To: cypherpunks@toad.com
Message Hash: 23287d54f658dfdefbef11207af036f0e83fe34585c46a7ae42e4ca9a63dbad1
Message ID: <199606192133.OAA22813@infinity.c2.org>
Reply To: N/A
UTC Datetime: 1996-06-20 08:04:48 UTC
Raw Date: Thu, 20 Jun 1996 16:04:48 +0800

Raw message

From: lucre@alpha.c2.org
Date: Thu, 20 Jun 1996 16:04:48 +0800
To: cypherpunks@toad.com
Subject: -lucre 0.8.1: ecash library for Unix available (with source, no blinding)
Message-ID: <199606192133.OAA22813@infinity.c2.org>
MIME-Version: 1.0
Content-Type: text/plain


-----BEGIN PGP SIGNED MESSAGE-----

We are pleased to announce the 0.8.1 ALPHA release of -lucre, a C library
which implements the protocols of ecash(tm).  This library was developed for
research purposes, so source is available, but to avoid patent issues,
blinding of coins is not currently supported.  Please read the README
(appended below) for more detailed information.

You can currently get -lucre by anonymous ftp to csclub.uwaterloo.ca, in the
directory /pub/-lucre.

If you need to reach us, the development team for -lucre, you can try
<lucre@alpha.c2.org>.  Our public key is in the README, below.  There is
also a mailing list set up for discussing the library.  To subscribe,
send email to <majordomo@c2.org> with a message (_not subject_) of
"subscribe dev-lucre".

We are providing this library so that people can study how ecash works,
and possibly come up with innovative ways of incorporating ecash into
existing systems.  Paying for remailers, for example, is a topic that
seems to come up again and again on some mailing lists.  Hopefully, it
will also encourage more people to open an account with Mark Twain Bank;
the more people who are using ecash, and the more shops that accept ecash,
the better the system will be.  We believe in open systems, not "security
through obscurity", or the "trust me" model of security, and so we saw
a full-source release to be important.

The distribution comes with the library itself, as well as a very simple
ecash client.  The client should be usable to accept or pay ecash (or, if
you discover it doesn't fit your needs, you can change it yourself), but,
of course, you don't get the anonymity offered by the patented blinding
feature of ecash.

The README is attached below; please read it, as it contains more useful
information about the use of this library.


- -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 Web, Usenet, and various mailing lists, and
from analysis of the output of a logging packet forwarder.  The rest was
obtained from talking to various people, and from simple 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 <lucre@alpha.c2.org>
          Key fingerprint =  63 94 0D F7 D9 6F 2D E5  08 0F EE 19 CB 6B A9 17 
sig       E9E2AC75             Development team for -lucre <lucre@alpha.c2.org>
                              Development team for -lucre <lucre@nym.jpunix.com>
sig       E9E2AC75             Development team for -lucre <lucre@alpha.c2.org>


- -----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-----


-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBMchcGbpcpsjp4qx1AQEVrQQArRPfJgQQq7rRgIl5mBoS5Ju2Hq4aR7u3
mV90yLTHpQq8mC59O2NCxtJzRqfnA9sASVWDZWFudwmzwj6V6f6Kwxb8i8PO4EZ0
28A+BBf+jtpDNG2bsTYxEbIxQM1eE+GuUjSatbW0sYW3J3df7YeYyQAVU/7b2dni
+BLOnD4tqvw=
=Jozg
-----END PGP SIGNATURE-----





Thread