Plasma Debit: Arbitrary-denomination payments in Plasma Cash

I wonder if transactions that involve multiple coins (i.e. atomic swap {a-b, v+b} {c+b, v-b}) need to only be included in plasma blocks when the receiver is offline. If the receiver is online, they could technically create a consensus {operator, receiver} signed update on their coin slot that reflects the swap. In this case the sender can be sure the funds will be received if they witness the state update {c+b, v-b} signed by the receiver and operator rather than witness {a-b, v+b} {c+b, v-b} committed in a plasma block to the parent chain.

If the receiver is offline then the operator needs to commit the balance update {a-b, v+b},{c+b, v-b} so that the receiver may claim that state transition in a plasma exit. The offline participant may come back online and negotiate a consensus update with the operator for that slot that reflects the update to now allow for a quick exit.

To clarify, a sent TX is only considered valid if after the initiator (sender) signs the update to their slot, and the operator either includes {a-b, v+b} {c+b, v-b} in a plasma block or the set {Sender, Operator, Receiver} can sign updates in consensus that update their slots without a plasma chain checkpoint. The process for doing this would look like following.

  1. Sender initiates state update by sending sender_sig({a-b, v+b, sequence}) and intended receiver to the operator.
  2. Operator calls the receiver to create receiver_sig({c+b, v-b}, sequence}) in an attempt to get a consensus update for the transfer.
    2a. The operator does not hear from the receiver in some time delta, they will then throw away the senders (initiator) message and commit operator_sig({a-b, v+b} {c+b, v-b}) to the parent chain.
    2b. The operator receives response receiver_sig({c+b, v-b}, sequence}) within time delta, signs it with operator_sig({c+b, v-b}, sequence}) and then sends this to the transaction originator as proof that their transaction completed along with the consensus signed update of their slot operator_sig({a-b, v+b} , sequence}).
  3. Transaction considered irreversible.
1 Like