Changeset 209

Show
Ignore:
Timestamp:
03/15/08 17:32:27 (4 years ago)
Author:
ocnils
Message:

Added "1.1 Object of the OpenCoin? protocol" to introduction

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/standards/protocol.txt

    r208 r209  
    2525ToDo 
    2626 
    27    - licence of this document (GNU FDL, CC, Public Domain)? 
     27   - licence of this document (GNU FDL, CC-BY-SA, Public Domain)? 
    2828   - "Introduction", including scope of protocol 
    2929   - JSON, 7-bit ASCII 
    3030   - define token/certificate format, encryption padding 
     31   - define validity of certificates and tokens 
    3132   - add note on randomness 
    3233   - add PROTOCOL_ERROR 
    3334   - add HANDSHAKE, CONTINUE, GOODBYE; warning that GOODBYE will disappear 
    34    - replace "SPEND_TOKEN_REQUEST" with "SPEND_TOKEN" 
    3535   - throw out reduntant "TRANSFER_TOKEN" explanatoins 
    3636   - add authentication and authorization, at least for "target" 
     
    4343 
    4444   1. Introduction 
     45      1.1  Object of the OpenCoin protocol 
     46      1.2  Limited scope of the OpenCoin protocol 
     47      1.3  General Layout of the OpenCoin protocol 
     48      1.4  Encoding of messages, tokens and certificates 
    4549   2. General guidelines 
    4650   3. The OpenCoin protocol 
     
    58621. Introduction 
    5963 
     641.1 Object of the OpenCoin protocol 
     65 
     66The OpenCoin protocol aims to implement David Chaum's concept of "untraceable  
     67payments" [3]. The general procedure is this: 
     68 
     69* Minting 
     70  * A payer creates a yet unsigned, 'blank' token according to the rules  
     71    published by the issuer. It includes a serial number. 
     72  * He obfuscates this blank, yielding the 'blind'. He send the blind to the 
     73    issuer and request signing with a special minting key. 
     74  * If the issuer's requirements for minting (which may include a payment)  
     75    are met, he signs the payer's  blind with the nominated minting key. 
     76  * The payer fetches the signed blind from the issuer and 'unblinds'. The  
     77    result is a token including a valid signature from the issuer. 
     78 
     79* Spending 
     80    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. 
     84 
     85* Redemption 
     86    The payee sends the token to the issuer. The issuer verifies that the  
     87    token is valid and checks it against his DSDB. If he accepts the token,  
     88    he adds its serial number to the DSDB. He may offer the payee something  
     89    in exchange for the token (like a payment). 
     90 
     91Spending and redemption are actually entwined to one simultanious operation. 
     92 
     93Tokens include a reference to this protocol, a reference to the issuer, a  
     94denomination and a random serial. The minting key used to sign the token is 
     95deticated to mint exclusivly tokens of this denomination. 
     96 
     97This protocol is designed such that tokens are unforgable and untracable: 
     98 
     99* Unforgeability/balance 
     100  Without knowledge of the issuer's private minting keys, no combination of  
     101  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'). 
     106 
     107* Untraceability 
     108  No combination of the issuer and a set of payees are able to correlate  
     109  blinds and tokens of a payer just by looking at them (but maybe by traffic 
     110  analysis). 
     111 
     112 
     1131.2 Limited scope of the OpenCoin protocol 
     114 
    60115[ToDo] 
     116 
     117 
     1181.3 General Layout of the OpenCoin protocol 
     119 
     120[ToDo] 
     121 
     122 
     1231.4 Encoding of messages, tokens and certificates 
     124 
     125[ToDo] 
     126 
    61127 
    62128