Banks use a public key cryptosystem to provide virtual currency. The bank maintains a number of private keys representing different amounts of money. To withdraw kCr1 from a bank Alice chooses a large random number, which she signs, together with a message requesting the withdraw, with the private key corresponding to her account with the bank. The bank uses her pseudonym's public key to verify the origin of the request. It then signs the random number with its 'worth kCr1' private key, returns it to Alice with a similarly signed receipt and debits her account. Alice then modifies the note with a second 'blinding transform'. This is a transform that completely hides the serial number of the note, but in such a way as to reveal it if the note is spent twice.
If Alice then wishes to spend this virtual kCr1 note at Bob's shop she gives him the number corresponding to the virtual note. Bob uses the bank's set of public key to verify the note's origin and value, then returns it to the bank, which reverifies its signature, checks that the random number had been issued and credits Bob's account. The bank sends a deposit receipt to Bob and he gives a receipt for the purchase to Alice.
This system has a number of important advantages over previous systems of currency:
The future of Ad Astra