home | articles | links | fun | about
Up to: CS432 Information Security

Offline E-Commerce (12/05/02)

     Customer ---------------------> Merchant
        \                             /
         \  Before                   /  After
          \                         /
           \                       /
            \                     /
             ------- Bank --------

Customer and bank interact before transactions, i.e. establish a credit card account. Bank and merchant interact during/after transaction to make sure that account is legit.

Offline�more anonymity

Cash

  1. Pros: hard to trace, instantaneous, no bank involvement
  2. Cons: Can get lost or stolen, can�t get it back, forgeable, bulky, can only be used in person.

Storing cash as bits:

  1. Obvious approach: �Pay the bearer $1,� signed Bank => �digital coin�
  2. This is copyable

Improvement: give each coin a serial number.

  1. Can detect whether coins are copies
  2. Don�t have privacy�coins can be traced to where you spent it.

To add privacy (untraceability), use blind signatures

Method

To prevent customer from lying about value of coin:

So at this point, we�ve solved the anonymity problem, but we still have to deal with the copying problem.

Bank can�t pinpoint anything (can't tell denomination or serial number)

        X = C1 * R1^e
          = C2 * R2^e
          = Ci * Ri^e    [All R�s are equally likely.  So you can�t pick apart Ci from Ri.]

How to solve copying problem?

Chaum-style e-cash.

This is great because the customer is anonymous unless he cheats!

Key trick:

  1. Customer takes his identity, splits it into 2 halves
  2. Halves are (R, I XOR R). R is random, I is his identity
  3. Create a bit commitment for each half. (def: A variant of digital signatures, used to commit an object, such as a promise or prediction, without revealing that object until later. It is impossible to unobservably violate the protocol, or to modify the object after it has been comitted.)
  4. Seal each half so that customer can unwrap each half
  5. But unwrapping gives back original sealed value

Coin consists of (denomination, serial number, commitments)

  1. Customer prepares 100 coins (blinded)
  2. Bank challenges 99 of them
  3. Bank blindly signs the last coin, customer unblinds
  4. Example: ($20, serial, C1, C2), signed Bank

Spending:

  1. Merchant flips a coin, picks C1 or C2 randomly.
  2. Customer unseals the chosen Ci.
  3. Deposit by merchant: send the bank the coin value, unsealed Ci, and serial #
  4. If the customer double-spends, a 50% probability of unsealing BOTH halves of identity and getting caught
  5. What if 2 merchants deposit the same coin, with the same identity-half unsealed? Can�t tell between double spending or foul play.

Solution: final system

What about passing coins from customer to customer?

Hmm... you'd have to find a way to reissue the coin. Have the bank resign it? Or hold the original giver accountable? Does not seem right. Put a digital signature on TOP of existing one?