Changeset 142 for trunk/standards

Show
Ignore:
Timestamp:
02/28/08 20:57:50 (4 years ago)
Author:
ocnils
Message:

Replaced "coin" with "token" except for "OpenCoin?" and "COIN_SPEND"

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/standards/protocol.txt

    r141 r142  
    2828   - licence of this document? 
    2929   - "Introduction" 
    30    - replace "coin" with "token" 
     30   - replace "COIN_SPEND" with "TRANSFER_TOKEN" 
    3131   - decide whether the protocol atoms are tokens or lists of tokens 
    3232   - throw out reduntant "TRANSFER_TOKEN" explanatoins 
     
    4343      3.3.5."TRANSFER_TOKEN": A generic wallet-issuer request 
    4444      3.4.  Wallet send minting request to issuer   
    45       3.5.  Wallet gets coin back 
    46       3.6.  Wallet to Wallet 
    47       3.7.  Redeeming Coins  
     45      3.5.  Wallet gets token back 
     46      3.6.  Wallet to wallet 
     47      3.7.  Redeeming tokens 
    4848   4. References 
    4949 
     
    9595    not_before          = TIME(...) 
    9696    key_not_after       = TIME(...) 
    97     coin_not_after      = TIME(...) 
     97    token_not_after      = TIME(...) 
    9898    public key          = base64(pP) 
    9999 
     
    1621623.3.5 "TRANSFER_TOKEN": A generic wallet-issuer request 
    163163 
    164 The atom for this transaction is a list of coins - if one of the coins /blanks 
     164The atom for this transaction is a list of tokens - if one of the tokens /blanks 
    165165fail, the whole transaction fails. 
    166166 
     
    171171 
    172172   TRANSFER_TOKEN_REQUEST( transaction_id, list_of_options, target, \ 
    173                             list_of_blinds, list_of_coins ) 
     173                            list_of_blinds, list_of_tokens ) 
    174174     
    175175   XXX list of blinds -> list of (blinds + denomination key/id) 
     
    182182  * option may contain variable=value pairs like "JITM=mandatory". 
    183183  * target  
    184     * value(list_of_blinds) = value(list_of_coins): empty 
    185     * value(list_of_blinds) > value(list_of_coins): payment reference 
    186     * value(list_of_blinds) < value(list_of_coins): account reference 
     184    * value(list_of_blinds) = value(list_of_tokens): empty 
     185    * value(list_of_blinds) > value(list_of_tokens): payment reference 
     186    * value(list_of_blinds) < value(list_of_tokens): account reference 
    187187 
    188188  For now, only 'pure' transactions are allowed, so one of these must  
    189189  be empty: 
    190   * target        : coin exchange (value(list_of_blinds) = value(list_of_coins)) 
    191   * list_of_coins : mint request 
     190  * target        : token exchange (value(list_of_blinds) = value(list_of_tokens)) 
     191  * list_of_tokens : mint request 
    192192  * list_of_blinds: redemption 
    193193 
    194   If at least one of the blinds or coins is rejected, the issuer answers 
     194  If at least one of the blinds or tokens is rejected, the issuer answers 
    195195 
    196196    TRANSFER_TOKEN_REJECT( transaction_id, reason, 
    197197                           list( (blind1.key_id, reason1), ... ), \ 
    198                            list( (coin1.key_id,  reason1), ... )  ) 
     198                           list( (token1.key_id,  reason1), ... )  ) 
    199199 
    200200  where "reason" may be some general failure like "500 minting not available". 
     
    241241 
    242242  In case of delayed minting, mint processes request (signs blind with key_id) 
    243   some time later and passes "signed blind"="blind coin" back to IS  
    244  
    245  
    246 3.5 Wallet gets coin back 
     243  some time later and passes "signed blind"="blind token" back to IS  
     244 
     245 
     2463.5 Wallet gets token back 
    247247 
    248248* Wallet asks issuer service [was: FETCH_MINTED_REQUEST] 
     
    273273  (optional: if yes, inform issuer that he may delete the request) 
    274274 
    275 * Wallet unblinds signed blind and yields coin  (or reblinds) 
    276  
    277  
    278 3.6 Wallet to Wallet 
    279  
    280 Alice - sends a coin 
    281 Bob   - receives the coin 
     275* Wallet unblinds signed blind and yields token  (or reblinds) 
     276 
     277 
     2783.6 Wallet to wallet 
     279 
     280Alice - sends a token 
     281Bob   - receives the token 
    282282 
    283283Note:  
     
    288288  * Wallet Alice locates Wallet Bob and sets up (secure) connection 
    289289  * Alice knows how much to send and tells her Wallet 
    290   * Wallet Alice calculates a splitting of sum into coins (units) 
    291     and reates a list of coins to send 
     290  * Wallet Alice calculates a splitting of sum into tokens (units) 
     291    and reates a list of tokens to send 
    292292  * Wallet Alice and Wallet Bob are synchronized to UTC (within some small  
    293293    margin of error) 
     
    305305 
    306306 
    307 * Wallet Alice sends coins to Wallet Bob (this time including their clear  
     307* Wallet Alice sends tokens to Wallet Bob (this time including their clear  
    308308  serial and signature) 
    309309   
    310     A:      COIN_SPEND( transaction_id, list(coin1, ...) ) 
     310    A:      COIN_SPEND( transaction_id, list(token1, ...) ) 
    311311 
    312312 
     
    318318  them: 
    319319 
    320     B:      COIN_REJECT( transaction_id, list( (coinN, "ReasonN") ) ) 
     320    B:      COIN_REJECT( transaction_id, list( (tokenN, "ReasonN") ) ) 
    321321        or  COIN_REJECT( transaction_id, emptylist, "Reason") 
    322322        or  COIN_ACCEPT( transaction_id ) 
     
    331331 
    332332 
    333 3.7 Redeeming Coins  
    334  
    335 * Wallet sends coins + target to IS 
     3333.7 Redeeming tokens  
     334 
     335* Wallet sends tokens + target to IS 
    336336 
    337337    W:  TRANSFER_TOKEN_REQUEST( 
    338             transaction_id, list_of_options, target, (empty list), list_of_coins  
     338            transaction_id, list_of_options, target, (empty list), list_of_tokens  
    339339        ) 
    340340 
     
    347347 
    348348* IS checks if tokens and target are valid 
    349     - if minting keys are still valid (XXX coin has not expired) 
     349    - if minting keys are still valid (XXX token has not expired) 
    350350    - if serial is still valid (against DSDB) 
    351351    - if signature is valid 
    352352 
    353   If not, IS rejects with reason (key id unknown, coin outdated, coin spent,  
    354   signature invalid) per coin or sweeping 
     353  If not, IS rejects with reason (key id unknown, token outdated, token spent,  
     354  signature invalid) per token or sweeping 
    355355 
    356356    IS: TRANSFER_TOKEN_REJECT(  
    357             transaction_id, reason, (empty list), list( (coin1.key_id,  reason1), ... )  ) 
     357            transaction_id, reason, (empty list), list( (token1.key_id,  reason1), ... )  ) 
    358358        ) 
    359359