Show
Ignore:
Timestamp:
03/15/08 18:03:05 (4 years ago)
Author:
ocnils
Message:

Added "1.3 General Layout of the OpenCoin? protocol" to introduction

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/standards/protocol.txt

    r209 r212  
    3838   - add mandatory trusted channel (Bluetooth, TLS) 
    3939   - reformat this into RFC-XML 
     40   - add warning on differences to scientific notation 
    4041 
    4142 
     
    7980* Spending 
    8081    A payer sends the token to a payee. The payee verifies that the token is 
    81     valid according to the issuer's rules (format, data, signature, ...) and 
    82     checks it against the issuer's double spending database (DSDB). He tells 
    83     the payer if he accepts the token. 
     82    valid according to the issuer's rules (format, data, signature, ...). In 
     83    the standard online case, he also checks it against the issuer's double  
     84    spending database (DSDB). He tells the payer if he accepts the token. 
    8485 
    8586* Redemption 
     
    8990    in exchange for the token (like a payment). 
    9091 
    91 Spending and redemption are actually entwined to one simultanious operation. 
     92In the standard case of online payment, spending and redemption are actually  
     93entwined to one simultanious operation. 
    9294 
    9395Tokens include a reference to this protocol, a reference to the issuer, a  
    94 denomination and a random serial. The minting key used to sign the token is 
    95 deticated to mint exclusivly tokens of this denomination. 
     96denomination, a random serial and the mint's signature over this data. The 
     97minting key used to sign the token is deticated to mint exclusivly tokens  
     98of this denomination. 
    9699 
    97100This protocol is designed such that tokens are unforgable and untracable: 
     
    100103  Without knowledge of the issuer's private minting keys, no combination of  
    101104  payers and payees can successfully redeem tokens of a total denomination  
    102   higher than the total denomination of tokens minted by the issuer for them. 
    103  
    104   Particularly, no one (except the issuer) can produce N+1 valid tokens from 
    105   N valid tokens ('one-more-forgery'). 
     105  higher than the total denomination of tokens minted by the issuer for them.  
     106  In Particular, no one (except the issuer) can produce N+1 valid tokens  
     107  from N valid tokens ('one-more-forgery'). 
    106108 
    107109* Untraceability 
     
    1181201.3 General Layout of the OpenCoin protocol 
    119121 
    120 [ToDo] 
     122The OpenCoin protocol typically involves three parties: the issuer, a sender/ 
     123payer (Alice) and a receiver/payee (Bob). We call the OpenCoin user agents of  
     124payer and payee 'wallets'. The issuer consists of four parts: 
     125* The 'master key holder' (MHK) generates and keeps the master key pair  
     126  and signes and publishes the 'currency description document' (CDD) and  
     127  all the certificates. 
     128* The mint generates and keeps the minting keys and signes blinds. 
     129* The 'double spending database' (DSDB) keeps track of the serials of  
     130  tokens which got redeemed. 
     131* The 'issuer service' (IS) is the public interface of the issuer on the 
     132  internet. 
     133 
     134The participants send each other messages in request/response pairs. The  
     135universal scheme is this: 
     136 
     137     * session initiation * 
     138 
     139   -- [ HANDSHAKE, DATA ] --> 
     140  <-- [ HANDSHAKE, null ] -- 
     141 
     142   -- [ REQUEST_1, DATA ] --> 
     143  <-- [ RESPONSE_1,DATA ] -- 
     144 
     145   -- [ REQUEST_2, DATA ] --> 
     146  <-- [ RESPONSE_2,DATA ] -- 
     147 
     148   -- [ CONTINUE,  null ] --> 
     149  <-- [ CONTINUE,  null ] -- 
     150 
     151          * pause * 
     152 
     153   -- [ REQUEST_3, DATA ] --> 
     154  <-- [ RESPONSE_3,DATA ] -- 
     155 
     156   -- [ REQUEST_4, DATA ] --> 
     157  <-- [ RESPONSE_4,DATA ] -- 
     158 
     159   -- [ GOODBYE,   null ] --> 
     160  <-- [ GOODBYE,   null ] -- 
     161 
     162     * session termination * 
     163 
     164The standard case involves three sessions: 
     165 
     166   Payer Alice  --[minting]--------------------------------->  Issuer 
     167   Payer Alice  --[spending]-->  Payee Bob  --[redemption]-->  Issuer 
     168 
     169the latter two usually happening at the same time ('online case'). 
    121170 
    122171