Exchanging Corda cash states for traditional cash

后端 未结 1 508
孤独总比滥情好
孤独总比滥情好 2021-01-03 14:35

Suppose you\'re representing cash on the Corda ledger using cash states. How does a network participant exchange their cash states for traditional cash?

1条回答
  •  礼貌的吻别
    2021-01-03 14:41

    Firstly, we need to explain how cash states are created on the ledger initially. The mechanism is for an issuing bank to set aside a cash deposit in the traditional banking system, and issue itself cash states of an equal amount and currency on the ledger using a Cash.Issue transaction.

    The issued cash states can then be transferred between parties on the ledger via Cash.Move transactions. It is not necessary to reflect these movements of on-ledger cash states in any way in the traditional banking system.

    Suppose Alice eventually wants to redeem some of her on-ledger cash states for cash in the traditional banking system. How does she achieve this?

    • She creates a Cash.Exit transaction. This transaction consumes the existing cash state as an input, without creating a corresponding output cash state. This transaction requires a signature from Alice, the issuing bank and the associated notary
    • Alice signs the transaction
    • The issuing bank checks that Alice actually owns the cash states she is trying to exit. It does so by requesting the chains of provenance (i.e. the transaction chains) for each of Alice's cash states, and checking that all the transactions and their associated digital signatures are valid
    • The issuing bank signs the transaction
    • The notary signs the transaction (if the cash states in the transaction have not already been spent)
    • The issuing bank deducts the amount of the cash state from the deposit it set aside when originally issuing cash onto the ledger, and makes a "traditional" payment (BACS, CHAPS, Faster Payments, etc.) for the same amount of cash to the bank account of the party who initiated the Cash.Exit transaction
      • Information about which account to pay the cash into could be conveyed in the Cash.Exit command (we will need to add a field for this in the future), or the bank could maintain an internal database mapping node identities to bank accounts

    0 讨论(0)
提交回复
热议问题