Donate $25 for two DVDs of the Cryptome collection of files from June 1996 to the present

Natsios Young Architects


4 September 2010


Open Transactions Digital Cash Library

Fellow Traveller sends:

WHAT IS “Open Transactions” ?

— It’s a solid, easy-to-use, CRYPTO and DIGITAL CASH LIBRARY.

— Including a working SERVER, API, and test CLIENT…

— It’s OPEN SOURCE, and encapsulates a COMPLETE PROTOCOL for transactions.

— Featuring:

…………….UNTRACEABLE DIGITAL CASH (real blinded tokens.)

…………….SECURE NUMBERED ACCOUNTS (“account” == PGP key.)

…………….TRIPLE-SIGNED RECEIPTS

…………….BASKET CURRENCIES

…………….ANYONE AN ISSUER

…………….SIGNED XML CONTRACTS

…………….MANY DIGITAL INSTRUMENTS: transfers, cheques, cash, vouchers…

— Comes with Makefiles and project files for Windows, Mac OS X and LINUX.

— Object-oriented, and written in C++ using OpenSSL.

— With a high-level API in C++ as well as Java (JNI interface)

— (JNI Interface available to Ruby and Python developers via JRuby and Jython.)

Source code: http://github.com/FellowTraveler/Open-Transactions

Wiki: http://github.com/FellowTraveler/Open-Transactions/wiki

FAQ: http://github.com/FellowTraveler/Open-Transactions/wiki/FAQ

Sample cash note: http://github.com/FellowTraveler/Open-Transactions/wiki/Sample-Cash

For a broad overview, the software features:

— UNTRACEABLE DIGITAL CASH: Fully implemented! Cash withdrawals of any asset type, using Lucre. (Ben Laurie’s implementation of Wagner’s variant on Chaumian blinding.) Once cash is withdrawn, the server has no way of tracking it or linking it back to its next deposit.

REPEAT: Digital Bearer Certificates—with denominations, mints, expiring tokens, spent token database, the works—fully-operational and ready to integrate with your mixnets, your digital gold currency (or silver), your anonymous network nodes, your bittorrent clients, your remailers, your secure voip apps, your nym servers, your snazzy, new, file-sharing client, and your censorship-resistant, distributed data store. This is what you have been waiting for! Real, open-source, digital cash.

As well as…

— ANONYMOUS, NUMBERED ACCOUNTS, secured by public key cryptography. Your PGP key is your account, and the hash of it is your User ID. No other information is stored. Each user can create an unlimited number of asset accounts, of any type, each with its own randomly-generated ID. As long as you connect over Tor and take other similar precautions, there’s no way to connect any of those accounts to you. (See PKTP and DMT for examples of this concept.) You can also create as many User IDs as you wish, each with its own key, and with your wallet software managing all your user IDs and asset accounts across multiple transaction servers and multiple asset types.

— It’s like PGP FOR MONEY. The idea is to build this so that it supports many cash algorithms, not just Lucre. I’d like to add Chaum’s version, Brands’ version, etc. So that, just like PGP, the software should support as many of the top algorithms as possible, and make it easy to swap them out when necessary.

— TRIPLE-SIGNED RECEIPTS for account-to-account transfers. This allows the client and server to agree on balances while simultaneously not storing any transaction history. (Client may choose to store his own transaction history.) No money can ever be transferred or withdrawn without an authorizing signature from the account owner. See Bill St. Clair’s excellent Trubanc for an example of this.

— ANYONE AN ISSUER. Any user can design and issue his own currency: Simply upload the currency contract to any server. Anyone else with a copy of that contract can open an asset account in the new currency type. The currency contract is just an XML file with your digital signature on it. Hashing that file produces the currency ID, which is therefore unique and consistent across all servers. It’s impossible to change any details of the contract, including the URL, the signature, or the public key, without entirely changing the contract’s ID. To those in the know, this means that Open Transactions supports the ‘Ricardian Contract’.

— BASKET CURRENCIES. Open Transactions can distribute a single currency across MULTIPLE ISSUERS. How is this possible? Users can define “basket” currencies, which the server treats the same as any other currency, but which, behind the scenes, are each simply a list of 5, 10, or 100 OTHER currency contracts. The issuance is delegated to a basket of other currencies. Users can easily define baskets, open accounts based on basket types, and exchange in and out of these basket currencies using the client software. Baskets are an important example of the distribution of risk that I believe is necessary to make digital cash unstoppable online.

— DISTRIBUTION OF RISK ACROSS MULTIPLE TRANSACTION SERVERS, IN MULTIPLE JURISDICTIONS. The wallet software can store an entire list of transaction servers. Every new server contract that you import to the wallet puts a new server on the list. There will be many such servers, run by multiple entities and run in multiple jurisdictions. Many will run openly and with full access to their local court system. Others will run on anonymous networks. Users will be able to individually choose a server for a certain transaction — or even distribute their assets transparently across a list of different servers.

— DISTRIBUTED ACCOUNTS. Your wallet software could display a single asset account to you, which it is actually distributing across a list of 10 or 100 servers behind the scenes, using the open transactions protocol. Of course, you choose the servers, the number, the algorithm, etc… and it’s a trust market. In the future, this software will eventually merge into the next generation of anonymous networks. You can be a part of it.

— SEPARATION OF POWERS. The entities operating the servers are not actually issuing any currencies. Meanwhile the Issuers are not operating any transaction servers. Neither one of them is performing exchanges in or out of the normal banking system, since those services are handled by exchange providers in the various local jurisdictions (all separate entities.) This provides a lot more legal legitimacy and protection to all of the entities involved. Meanwhile all risk is distributed. The issuers distribute their risk across multiple storage companies, and the users distribute their risk across multiple issuers (using basket currencies) and across multiple transaction servers (via their wallet software.)

The idea of separation of powers was first highlighted to me by Loom where there are many different issuers on a single server. This led me to explore further along the idea of separating and distributing risk across multiple issuers, and multiple servers — which is what led to the development of Open Transactions.

This product includes software developed by Ben Laurie for use in the Lucre project.