Payments
info
Credit for this payment protocol goes to Ruben Somsen. You can read more about it here.
The Ark payment protocol is a way to send bitcoin to someone else using a service provider, whom helps coordinating sharing UTXO and provide liquidity. Without covenants, sender and receiver would need to be online at the same time to make a payment, but if we include the receiver in VTXO as co-signer, we delegate the receiver to perform the claim of the VTXO when is ready. This way, the receiver can join a round with the ASP to claim the VTXO, where the VTXO is a self-spend versus the receiver. If all the senders are also receivers, we can cut the requirement of being online to "lock" the VTXO tree.
Timeline
- Alice wants to send bitcoin to Bob: Alice asks the ASP to spend from her VTXO.
- Creating the Shortcut Transaction: Alice and ASP create a new off-chain transaction that allows Bob to get a VTXO in the next round. This transaction has rules:
- Bob and ASP together can claim the VTXO.
- Alice and ASP together can claim the VTXO.
- Alice alone can claim the VTXO after 1 month.
- Alice Forfeits the Old Claim: Alice signs a Forfeit transaction giving up her claim on the old virtual transaction, allowing ASP to claim the bitcoin if the old transaction is ever published.
- Sending the Transaction to Bob: Alice sends the new VTXO to Bob, who can claim the payment by working with ASP.
- If Bob Doesn't Respond: If Bob doesn't respond, Alice can:
- Join the next round herself with ASP.
- Try sending the transaction to another recipient, but this reduces the time lock each time (though this can be managed).
- Proof of Payment: Once Bob performs the claim, ASP can provide proof of payment.
- If ASP Refuses to Cooperate: If ASP refuses to cooperate, Alice can force ASP to act by publishing the new redeem transaction, which will reveal if Bob has completed the claim.