WTF Is Fast Finalty?
author: sg.icon
Relevant read:
Overview
The goal of fast finality is the instant finality between shopers and merchants without compromising Plasma Cashflow security guarantee.
end-user to end-user payment is also covered in the same system because the fast finality is based on Plasma transaction.
So, end-user don't recognize "open channel" action. Only the initial deposit is required for setup.
yuriko.icon question: can you somehow apply Fast Finality also to depost/exit action?
syuhei.icon FF contract on plasma and payment channel are both realized by (recipient's) locked fund. But the fund on FF contract was never consumed in the correct transaction. In my current thought, plasma with FF contract is one of the way of optimized hub payment channel.
Procedure
First of all, FF process begins with sending TxNetto(unsignedTx) to the operator. And operator will publish that Tx with her signature. (Can be called compensationWitness or "Agreement of compensation")
https://gyazo.com/ae6b75083d7c1981e32b885793fff2c4
Sender(Shoper) subscribe that message, and send normal transaction.
The operator will include that Tx into childchain block.
The operator will publish that Tx in order to share operator&sender signed Tx to merchant.
This is normal Plasma Tx and so it requires some waiting time as same as "childchain blocktime + enough rootchain confs".
Receiver(Merchant) subscribes the Tx which is signed by operator&sender.
This is like a check of bank. You can withdraw that amount anytime from Ethereum L1 contract.
So, without waiting confirmation, Merchant is able to convince he certainly received some money.
We call this ticket compensationWitness
Contract
This FF contract must have a plenty amount of locked collateral. The operator must prepare for this fund. The estimated amount of collateral is to be possible maximal damage which operator can make within childchain blocktime.
compensationWitness is to be invalidated (can't make use of alternative of money) when ---
1) Succeeded: The corresponding merkle root of a childchain block of the normalTx is to be commited to L1 Plasma contract and wait for enough confs
In other words, if corresponding normalTx isn't included, compensationWitness is valid for withdrawal compensation.
2) Failed: The bandwidth balance of merchant is fewer than Tx amount.
So, the person who accepts compensationWitness as a payment method, must check one's bandwidth balance on his wallet background.
Whichever 1) or 2) scenario happens, Merchant and Shoper are able to agree on whether they exchange service and payment, or not.
Links
SDK wallet.sendFastTransferToMerchant API link parallel normal Tx (This will be on merchant wallet side in the future)link Bandwidth-NFT verifier must be here
This arrived compensationWitness must be reflected on account balance
p2p payment is just normal Plasma Tx.