Lightning payment channels are established by two parties Alice and Bob paying into a 2-of-2 multisignature address. Concurrently, they create two "exit-transactions", one for each participant which pay out the current allotment of the payment channel, txAliceExit_1
and txBobExit_1
. These exit transactions lock the fund of the executing party for some blocks.
When a payment is performed between Alice and Bob, they update the balance, create two new "exit-transactions", txAliceExit_2
and txBobExit_2
.
To invalidate the previous "exit-transactions" each party gives the counterparty another transaction that builds on the previous exit transaction by spending the party's output to the counterparty if the old "exit-transaction" were broadcast to the network, txAliceExit_1-TakeAll
and txBobExit_1-TakeAll
. I.e. if Bob executes txBobExit_1
the funds are time-locked for a little bit, meanwhile txAliceExit_1-TakeAll
would become valid and Alice could take them before he can spend them.