Changeset 6 for trunk/standards

Show
Ignore:
Timestamp:
12/11/07 16:56:35 (4 years ago)
Author:
ocmathew
Message:

Added messaging for Wallet to Wallet. Add DSDB certificate usage (need certiface defination)
Add obfuscated blanks for sending
Add tasks todo.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/standards/protocol.txt

    r5 r6  
    6060* Wallet: fetches current public minting keys for denomination 
    6161 
    62     Wallet:  FETCH_MINITNG_KEY #string(denomination) 
    63     IS:      keycertificate 
     62    Wallet:  FETCH_MINTING_KEY #string(denomination) 
     63    IS:      PASS_MINTING_KEY keycertificate 
    6464 
    6565    (question: base64 response?) 
     
    125125    FETCH_MINTED_BLINDS #base64(request_id) 
    126126 
    127 * Issuer passes signed blind to wallet or rejects (temporarily or finally) 
     127* IS either rejects finally or temporarily 
    128128 
    129129    FETCH_MINTED_FAILED #base64(request_id) "Reason" 
    130     FETCH_MINDED_WAIT   #base64(request_id) "Reason" 
     130    FETCH_MINTED_WAIT   #base64(request_id) "Reason" 
    131131  
    132   Possible failures: "Request ID Unknown", "Request ID expired", "Request ID rejected" 
    133   Possible waits:    "Processing request" 
    134  
    135     (question: what about key expiration while request is in mining queue) 
     132    Possible failures: "Request ID Unknown", "Request ID expired", "Request ID rejected" 
     133    Possible waits:    "Processing request" 
     134 
     135  (question: what about key expiration while request is in mining queue) 
     136 
     137  or passes signed blinds to wallet Bob, must preserve order 
    136138 
    137139    PASS_MINTED_BLINDS #base64(request_id) #hex_string(number_of_blinds) 
     
    139141                 #base64(signature_of_blind2)[\r]\n 
    140142 
    141  
     143  Session terminates 
    142144 
    143145* wallet checks if blind fits request id and if blind was correctly signed.  
     
    159161    creates a list of coins to send 
    160162 
    161 * Wallet Alice sends blanks of coins (without signature!) with the serial 
    162   encrypted for the IS to Wallet Bob  
    163   (Wallet Alice now needs to wait a while) 
    164  
    165      SPEND_COIN #hex_string(number_of_coins) #base64(coin1) #base64(coin2)[\r]\n 
    166  
    167 * Wallet Bob validates the blanks 
    168   - do we have the "currency description document" 
    169   - do we trust the issuer (do we have a valid public key) 
    170   - checks blanks against cdd 
    171  
    172 * If blanks are invalid, the transfer is declined by Wallet Bob 
    173   (later: cdd transfer between wallets) 
    174  
    175 * Wallet Bob shows proposed transfer to Bob 
    176  
    177 * Bob decides whether to  
    178   - accept transfer 
    179   - accept transfer without double spending checking 
    180   - decline transfer 
    181  
     163* Alice fetches DSDB key at IS 
     164 
     165    FETCH_DSDB_KEY 
     166    PASS_DSDB_KEY keycertificate 
     167 
     168* Wallet Alice sends obfuscated blanks (coins without signature and with serial 
     169  encrypted for DSDB) with the serial to Wallet Bob (Wallet Alice now needs to wait a while) 
     170 
     171  { 
     172      standard identifier = http://opencoin.org/OpenCoinProtocol/1.0 
     173      currency identifier = http://opencent.net/OpenCent  
     174      denomination        = denomination 
     175      key identifier      = key_id(signing key) 
     176      serial              = base64(encrypt(ALG,pub-key-of-DSDB, serial)) 
     177  } 
     178 
     179     PRESENT_BLANK #hex_string(number_of_blanks) 
     180       blank1[\r]\n 
     181       blank2[\r]\n 
     182 
     183* Wallet Bob check: 
     184 
     185  * Wallet Bob validates the blanks 
     186    - do we have the "currency description document" 
     187    - do we trust the issuer (do we have a valid public key) 
     188    - checks blanks against cdd 
     189 
     190  * If blanks are invalid, the transfer is declined by Wallet Bob 
     191    (later: cdd transfer between wallets) 
     192 
     193  * Wallet Bob shows proposed transfer to Bob 
     194 
     195  * Bob decides whether to  
     196    - accept transfer 
     197    - accept transfer without double spending checking 
     198    - decline transfer 
     199 
     200      REFUSE_BLANK #hex_string(number_of_failures) 
     201         #base64(ecrypted serial of blank1) "Why did we fail?!?" 
     202         #base64(ecrypted serial of blank2) "Why did we fail?!?"[\r]\n 
     203 
     204      REFUSE_BLANK #hex_string(0) "reason"   
     205 
     206  (Todo: Add reasons) 
    182207 
    183208if DSDB is required (normal case): 
     
    202227* Wallet Alice sends coins to Wallet Bob (this time including their clear serial and signature) 
    203228   
     229    SPEND_COINS 
     230 
    204231* Wallet Bob checks that the coins match the blanks and that signatures are valid 
    205232