taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

taler-payment-cycle.rst (1629B)


      1 The Taler payment cycle involves six parties:
      2 (a) customer,
      3 (b) exchange,
      4 (c) merchant,
      5 (d) customer's bank,
      6 (e) exchange's bank,
      7 (f) merchant's bank.
      8 
      9 The exchange is the central entity that mediates the wire transfer of real
     10 currency between (d), (e), (f) by way of *coins*, cryptographically secure
     11 tokens passed between (a), (b), (c).
     12 
     13 There are six steps to a Taler payment cycle.
     14 
     15 In step 1, (a) directs (d) to make real funds available to (b).
     16 
     17 In step 2, (d) does a wire transfer of real funds to (e), fulfilling the
     18 request from step 1.  (b) generates coins corresponding to those real funds;
     19 these are called the *reserve*.
     20 
     21 In step 3, (a) *withdraws* coins, either wholly or partially, from (b).  These
     22 coins are kept in a *wallet* under control of (a).  The coins in the wallet
     23 are unlinkable to the identity of (a) that was revealed during the withdraw
     24 operation.
     25 
     26 In step 4, (a) authorizes payment of coins from the wallet to (c).  This
     27 transfers payment coins from the wallet to (c), and change coins from (b) to
     28 the wallet (unless the payment amount exactly matches the denomination of the
     29 coins in the wallet).
     30 
     31 In step 5, (c) *deposits* coins into (b).  At this point, (b) knows the
     32 identity of (c), but not of (a).  Taler uses cryptography to validate that the
     33 coins are unique and were issued by (b), but (b) cannot determine to whom the
     34 coins were originally issued.
     35 
     36 In step 6, (b) directs (e) to wire transfer real funds corresponding to the
     37 accumulated deposited coins to (f).
     38 
     39 NB: The Taler payment cycle is part of the Taler payment system, which
     40 includes also an auditor component, not described here.