Published on: 2017-01-25T21:27:52+00:00
In a conversation between Rusty Russell and Fabrice Drouin, changes to the HTLC output script in Bitcoin's Lightning Network were discussed. They proposed using a multisig 2-of-3 with `localkey`, `remotekey`, and `revocationkey` for the Offered HTLC Output script. This script allows funds to be claimed without waiting for HTLC timeout refunds and can be spent with different combinations of keys. The witness script can also be used to spend the output with the payment preimage and the remote and local keys, with the remote key after a delay.The proposed changes for commitment transactions in the Lightning Network are being discussed outside of GitHub to reach a wider audience. The first change under consideration is making the to-remote output P2WPKH instead of P2PKH to save bytes. The second proposed change is making commitment transaction outputs directly spendable by the penalty transaction, eliminating the need for the revocation key with HTLC-success or HTLC-timeout transactions. These proposed changes have been included in the discussion on GitHub.Implementing these changes would simplify BOLT2 and reduce potential bottlenecks in the system by eliminating the need to generate and send signatures. However, there are still complexities involved in handling offered htlcs and received htlcs. The solution proposed is to use a multisig 2-of-3 with localkey, remotekey, and revocationkey for the Offered HTLC Output script. Similarly, the Received HTLC Output script uses an additional IF branch and can be spent with different combinations of keys.One concern with implementing these changes is that the weight of the commitment tx may increase by about 6%. While optimizing for the smallest possible on-chain footprint is important, the tradeoffs and implications of these changes will need to be thoroughly discussed before any decisions are made.
Updated on: 2023-07-31T19:15:31.604054+00:00