This post describes a bond which improves the economic security of one-time, out-of-round assignments of Ark VTXOs. These assignments are intended to enable instant opening of small-value just-in-time Lightning channels with inbound liquidity for the user. The bond works by making equivocation in the VTXO assignment provable on-chain usingOP_CHECKSIGFROMSTACK. Each assignment is authorized by a signature over the BIP-341 sighash of the assignment transaction, so conflicting authorization signatures provide exactly the evidence needed for an equivocation proof. UsingOP_CHECKSIGFROMSTACKto prove equivocation in an off-chain protocol may also be useful beyond this application.
For end users, receiving initial Lightning payments is a significant impediment to onboarding into the ecosystem. For LSPs, onboarding requires pricing the risk of channel abandonment into JIT channel support, increasing fees and capital requirements. Ark servers can instead preallocate small-value VTXOs in their transaction trees which they can assign out-of-round (OOR) to open channels just-in-time. This enables instant channel opening without additional on-chain cost for the Ark server, and abandoned channels are automatically swept with the rest of the tree!
Solution (Using CSFS)
I propose that Ark servers post an on-chain “equivocation bond” which can be slashed by providing an “equivocation proof”. The Ark server preallocates VTXOsV_0,V_1, …,V_nto use in this scheme. Each VTXOV_0,V_1, …,V_nmust be assignable by producing a signature with the respective keyK_0,K_1, …,K_n. Every VTXO spending path forV_imust require a signature withK_iwhich fully commits to the spending transaction. Every keyK_iinK_0,K_1, …,K_nis chosen unilaterally by the Ark server, but must be globally unique and single-use to prevent spurious bond slashing. To assign a preallocated VTXO to Alice, Alice and the Ark server agree on an assignment transaction funding a Lightning channel between them. The Ark server signs the assignment transaction with keyK_i, producing a signature over a messageM_a. If the Ark server signs a conflicting assignment transaction assigning the same VTXO to a JIT channel with Bob, this produces a signature withK_iover a second messageM_b.