Author: Marco Argentieri
<144> // 1 day in blocksOP_CHECKSEQUENCEVERIFYOP_DROP<PayerPubKey>OP_CHECKSIGVERIFY<ReceiverPubKey>OP_CHECKSIG
Channel: Refund
<288> // 2 days in blocksOP_CHECKSEQUENCEVERIFYOP_DROPPayerPubKeyOP_CHECKSIG
Open Channel
The payer abandons their VTXO (or UTXO) to participate in the next round, funding the channel; both the payer and receiver register an additional new public key to represent themselves, used only for signing the VTXO tree. The taproot script tree of the channel output will be revealed when spent, and when registering the input, a list of hexadecimal-encoded tapscripts needs to be provided.
message Input { Outpoint outpoint = 1; oneof taproot_tree { string descriptor = 2; Tapscripts tapscripts = 3; }}message Tapscripts { repeated string scripts = 1;}
Initiating Payment
It couldn't be simpler: the payer signs a PSBT and sends it to the receiver. Instant settlement, with no concept of collection limits!
Closing Channel
When closing the channel, the receiver combines the payer's latest signature with their own signature, requesting the service provider to co-sign a redemption transaction, thereby finalizing the channel's closure. This transaction can be settled as a regular VTXO, either through synchronous settlement or in future rounds.
Insights
- The Spillman channel construction is very suitable for the Ark framework.
- Unlike Lightning channels, the risks and overhead of unidirectional channels are significantly lower. Users do not need to backup or stay online to persist channel state.
- Ark VTXO scripting allows off-chain scaling applications beyond single-signature contracts.
(End)