Changeset 82 for trunk/standards

Show
Ignore:
Timestamp:
02/04/08 22:22:28 (4 years ago)
Author:
ocmathew
Message:

Fix typos & remove decided questions from protocol. Change COINS->COIN. Remove items from TODO

Location:
trunk/standards
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/standards/TODO

    r20 r82  
    77protocol-containers.txt 
    88======================= 
    9 Certificates (Currency, Mints, DSDB) (IS?) 
    109 
    1110algorithms.txt 
     
    1615protocol.txt 
    1716============ 
    18 Sort out certificate stuff 
    1917Define encryption padding 
    20 Refine protocol to prevent issuers from having to store payment 
    21         Done. Need to add handshake to decide if the mint will store value  
    2218Add default transaction_id handling (Both parties agreeing to a transaction_id) 
    23 Does transaction_id need to expire if it isn't seen for a few hours/days? (since it's a two-party agreement....) 
    2419Add hello/versioning/protocol handshaking 
    2520Add generic error message 
    26 Add way to contact DSDB (Not necessarily IS contact) 
    27  
    2821 
    2922 
  • trunk/standards/protocol.txt

    r80 r82  
    2727     issuer public master key     = base64(pM) 
    2828      
    29      issuer                       = Hash(pM) 
     29     issuer                       = base64(hash(pM)) 
    3030     base64(sig(sM,hash(content part))) 
    3131   } 
    3232 
    3333   (question: is the "short currency identifier" needed?) 
    34    (question: "not use after", "random collision free serial"?) 
    35    (future: add additionial signatures, e.g. from wallet software vendors) 
     34   (question: "not use after") 
     35   (future: add additionial signatures, e.g. from wallet software vendors (set up in containers already)) 
    3636 
    3737* issuer publishes CDD at "currency identifier" URL 
     
    4141 
    4242  { 
    43     key identifier      = base64(id(pP)) 
     43    key identifier      = base64(hash(pP)) 
    4444    currency identifier = http://opencent.net/OpenCent 
    4545    denomination        = denomination 
     
    4949    public key          = base64(pP) 
    5050 
    51     issuer              = Hash(pM) 
     51    issuer              = base64(hash(pM)) 
    5252    base64(sig(sM, hash(content part))) 
    5353  } 
     
    5555   
    5656  Questions: 
    57   * Time format:  YYYYMMDDHHMMSS  20071211144111 or SecondsSinceEpoch or ISO 8601? 
    58   * id() = sha256()? 
    59   * CDD? 
     57  * CDD? (What does this question mean?) 
    6058 
    6159* issuer creates DSDB keypair (pD,sD) 
    6260 
    6361  { 
    64     key identifier   = base64(id(pD)) 
     62    key identifier   = base64(hash(pD)) 
    6563    not_before       = TIME(...) 
    6664    not_after        = TIME(...) 
     
    6866    public key       = base64(pD) 
    6967 
    70     issuer           = Hash(pM) 
     68    issuer           = base64(hash(pM)) 
    7169    signature        = base64(sig(sM, hash(content part))) 
    7270 
    73     signer           = Hash(pM) 
     71    signer           = base64(hash(pM)) 
    7472    signature        = base64(sig(sM, hash(content part))) 
    7573  }    
     
    178176  ElseIf minting is done just-in-time, IS answers 
    179177 
    180     TRANSFER_TOKEN_ACCEPT( transaction_id, message, list_of_singed_blinds) 
     178    TRANSFER_TOKEN_ACCEPT( transaction_id, message, list_of_signed_blinds) 
    181179 
    182180  Else IS queues blind to the mint and tells wallet to wait 
     
    208206     
    209207  (question: what about key expiration while request is in mining queue) 
     208  (oierw thinks: as long as the key is valid for minting when the request is made, we are good) 
    210209 
    211210  or passes signed blinds to wallet Bob, must preserve order 
     
    280279      - parse blanks for necessary minting key ids 
    281280      - start session with authenticated issuer service (IS) (secured and authenticated by transport layer, e.g. SSL) 
    282         - create transaction id (two-party secret agreement (collision free)) 
    283           Possible example with https. 
    284             USE_HTTPS_SESSIONID 
    285             YES|NO 
    286281        - get all missing minting key certs (MINTING_KEY_FETCH_KEYID) 
    287         - IS sends key certs or rejects a key id (unknown, outdated) (MINTING_KEY_PASS/FAIL_MINTING_KEY_FAILURE) 
     282        - IS sends key certs or rejects a key id (unknown, outdated) (MINTING_KEY_PASS/FAILURE) 
    288283        - lock list of encrypted coin serial numbers at IS (DSDB)  
    289             LOCK_COINS_REQUEST( DSDB_key_key_id, transaction_id, 
    290                                 list( (key_identifier1, encrypted_serial1), ... ) ) 
     284            LOCK_COIN_REQUEST( DSDB_key_key_id, transaction_id, 
     285                               list( (key_identifier1, encrypted_serial1), ... ) ) 
    291286 
    292287        - IS either accepts with locking time or rejects with list of rejected serials + reason (locked, spent)  
    293288            If all coins lock: 
    294                LOCK_COINS_ACCEPT(transaction_id, lock_expires) 
     289               LOCK_COIN_ACCEPT(transaction_id, lock_expires) 
    295290            If some coins cannot lock, no coins are locked. 
    296                LOCK_COINS_FAILURE(transaction_id, list( (key_identifier1, encrypted_serial1, "Reason1"), ...)) 
     291               LOCK_COIN_FAILURE(transaction_id, list( (key_identifier1, encrypted_serial1, "Reason1"), ...)) 
    297292 
    298293                     Reasons: 
     
    316311 
    317312      Note: After BLANK_ACCEPT, a BLANK_REJECT(emptylist, "Reason) can be given to abort the transaction until 
    318             COINS_SPEND is sent 
     313            COIN_SPEND is sent 
    319314             
    320315* Wallet Alice sends coins to Wallet Bob (this time including their clear serial and signature) 
    321316   
    322     COINS_SPEND( list(coin1, ...) ) 
     317    COIN_SPEND( list(coin1, ...) ) 
    323318 
    324319* Wallet Bob checks that the coins match the blanks and that signatures are valid 
     
    326321* Wallet Bob accepts transaction or rejects with reason (unknown, invalid) for each rejected coin 
    327322 
    328      COINS_REJECT( list( (coin1, "Reason1") ) ) 
    329      COINS_REJECT( emptylist, "Reason") 
    330  
    331      COINS_ACCEPT 
     323     COIN_REJECT( list( (coin1, "Reason1") ) ) 
     324     COIN_REJECT( emptylist, "Reason") 
     325 
     326     COIN_ACCEPT 
    332327 
    333328* Wallet Bob terminates session with Wallet Alice 
     
    340335     
    341336    * in case of reject in the checking phase delete the blanks, otherwise 
    342         UNLOCK_COINS_REQUEST(transaction_id) 
     337        UNLOCK_COIN_REQUEST(transaction_id) 
    343338 
    344339    * Wallet Bob sends buy request (blanks + coins) 
     
    361356#7 Redeeming Coins  
    362357 
    363 * Wallet locks serials at IS (see above LOCK_COINS) 
     358* Wallet locks serials at IS (see above LOCK_COIN) 
    364359 
    365360* Wallet sends coins + target to IS [was: REDEEM_COINS_REQUEST]