The Digital Cash System

 

One of the keys to today economy is the ability to buy and sell goods while still maintaining anonymity. This can be exemplified by cash purchases. When an individual use cash to buy a good what they are doing is assuring the seller that the good will be paid for, not with there own identity, but with the identity of the bills issuer. These means that it is not necessary to trust the buyer, or even know who they are only who is the currency issuer.

 

As we move into the digital age we need to be able have the features in the forms of currency. Credit cards and wire transfers while easy are not anonymous, enter Digital Cash. Digital cash is a system that allows for electronic money exchange while still maintaining anonymity. Additionally there are provisions against fraud from either the buyer, the merchant, the bank, or a third party.

 

How is this accomplished? Through a series of modular exponentiations a coin is created. Inside of this coin is housed many pieces of information, but not a buyers identity as to maintain anonymity. However there is the bank identity in the coin so that a merchant can validate that they will receive payment from the bank.

 

The Software

 

The software that I have constructed is a simple tool intended to be used to explore the first aspects of a digital cash system. You are allowed to set all of the initial values for the encryptions and then withdraw coins from the bank and spend them at two merchants. You are allowed to try and ‘double spend’ coins but this will initiate fraud protection.

 

The software was written on a Sun Workstation but it should compile on multiple machines since the source code only uses ansi-c functions. There is also an executable linked below with the sources code if that is preferred.

 

SOURCE CODE

 

EXECUTABLE

 

If you have any questions please contact me at heer@ece.orst.edu