5

When two channel participants open a channel or update it, they exchange commitment transactions. Each of these commitment transactions allows one party to unilaterally close the channel. The commitment transactions are asymmetric in that they lock the closing party's funds when broadcast, i.e. Alice's commitment transaction locks Alice's funds, Bob's ...


3

c-lightning doesn't store old versions of the commitment transaction, exactly in order to avoid accidentally cheating. If you compiled with DEVELOPER=1 you can however call lightning-cli dev-sign-last-tx {peer-id} and it'll spit out the fully signed commitment transaction (that's why dev-* commands are dangerous and should not be used if you don't know ...


3

If you look at git blame of BOLT 03 you can track the sentence regarding the locktime down to this commit: https://github.com/lightningnetwork/lightning-rfc/commit/f1eaa2544665c9b85a2fd95be9c83dad45888982 luckily the author gave a good explanation in the commitment message in git of why the 0x20 was introduced for the upper 8 bits in the locktime field (I ...


3

Yes that is correct. Bob's revocation secret is used as an insurance policy for Alice. If she loses it, Bob will be able to act maliciously and get away with it. However, I want to add two things: At least in c-lightning, there is the HSM secret. This serves as a 256-bit seed for an HD wallet from which all key pairs (for Commitment Txs as well as for ...


3

What is the script of the output script of the state block (the block that starts the channel)? The output script of the funding transaction is a P2WSH output where the witness script is a 2-of-2 multisig. Because it is P2WSH, you cannot see this script. This locks in the amount because the output with that script has a specific amount (the amount the ...


2

So the question is: are commitment transactions between two nodes revoked through hashlocks or through private keys exchange? Either way will work, but hashlocks are simpler. They're described in section 4 of the paper you linked. In a private key exchange-based system, you need to store every breach remedy transaction, (about 250 bytes) but in a hashlock ...


2

Only if the state changes fees are negotiated (and for mutual closing the channel) so in case the onchain fees change and the channel is not used for a long time just send a fake payment hash to adapt to onchain fees. Regarding 2 and 3. Nothing Alice can do. She just has to wait until the traffic on chain decreases. There are some ideas to include a dust ...


1

Why isn't the signature for the entire commitment transaction enough? Because the htlc_signature field contains the signature for the HTLC transactions spending from the htlc output(s) (either received or offered) of the commitment transaction. To expand a bit, some paths of the HTLCs scripts (timeout for an offered htlc output and success for a received ...


1

An optimization is to use elliptic curve trickery and thus construct something similar to pay2contract scheme. I believe this way you still have to store all old values or am I mistaken? The elliptic curve trickery you mentioned is elliptic-curve multiplication. And yes, you need to store all old values. In BOLT-03, under Key Derivation, it gives three ...


1

If you look at https://blockstream.info/address/bc1qdv0fk4c73fem89s708pzdny8q25d7k5nrckckp87c8alwaw803fq3mqrpz you will see that there are two transactions. The first one https://blockstream.info/tx/943f18e17aa2ba716f2d13785268a1bd6b25c39d2718f3b4785559a5eeaba883 is the funding TX to open the payment channel included in block 587093 (at least according to ...


1

As you have said yourself, CSV is relative to when the transaction appears in the blockchain, while CLTV is absolute. They just have different meanings, which are useful for different things: The RSMC timeout is meant to only start when someone pushes a commitment tx to the blockchain. So it needs to be relative. The HTLC timeout, on the other hand, is ...


1

When a HTLC is created, a new commitment transaction is created. The HTLC is an additional output (script) in this new commitment transaction, in addition to the RSMC and “regular” outputs, and represents the amount that is pending “routing confirmation”. When the HTLC is cleared, another commitment transaction is created, absorbing the HTLC output amount ...


Only top voted, non community-wiki answers of a minimum length are eligible