From 570b82f21889e121fb54e02f59b93f36cc28d401 Mon Sep 17 00:00:00 2001 From: Bastien Teinturier <31281497+t-bast@users.noreply.github.com> Date: Mon, 13 Dec 2021 17:57:47 +0100 Subject: [PATCH] Add taproot transaction updates (#16) Details how Taproot can be leveraged to improve lightning transactions. PTLCs require some changes to the protocol, they cannot be trivially added because they require a new pre-signed transaction. This changes forces us to add half a round trip, which is probably acceptable. Many thanks to @ajtowns for many of the ideas presented here. --- README.md | 1 + img/taproot-lightning-txs.jpg | Bin 0 -> 81354 bytes taproot-updates.md | 525 ++++++++++++++++++++++++++++++++++ 3 files changed, 526 insertions(+) create mode 100644 img/taproot-lightning-txs.jpg create mode 100644 taproot-updates.md diff --git a/README.md b/README.md index 3ba7936..80cf7cc 100644 --- a/README.md +++ b/README.md @@ -7,5 +7,6 @@ A collection of some in-depth articles about the Lightning Network: * [Pinning attacks](./pinning-attacks.md) * [Sphinx onion encryption: from Zero to Hero](./sphinx.md) * [Schnorr Wizardry](./schnorr.md) +* [When Taproot?](./taproot-updates.md) * [Spamming the Lightning Network](./spam-prevention.md) * [Feature flags: from Zero to Hero](./feature-flags.md) diff --git a/img/taproot-lightning-txs.jpg b/img/taproot-lightning-txs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b5ca99f4ea52b6ecf07dbce0c8761ac1728f0bbe GIT binary patch literal 81354 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 uMBnMc_Stk!CCw@{)j_eO6qq6FJ1y", + "sequence": 2500123456 + } + ], + "vout": [ + { + "value": 0.5, + "output_type": "to_local", + "scriptPubKey": { + "internal_pubkey": " + # funds go to the remote node with the revocation key + musig2(,) + ", + "tapleaf": " + # or back to us after a relative delay () + + OP_CHECKSIGVERIFY + + OP_CHECKSEQUENCEVERIFY + " + } + }, + { + "value": 0.3, + "output_type": "to_remote", + "scriptPubKey": { + "internal_pubkey": "", + "tapleaf": " + # funds go back to the other channel participant after 1 block + + OP_CHECKSIGVERIFY + 1 OP_CHECKSEQUENCEVERIFY + " + } + }, + { + "value": 0.00000330, + "output_type": "local_anchor", + "scriptPubKey": { + "internal_pubkey": "", + "tapleaf": " + # after a relative timelock of 16 blocks, anyone can claim this tiny amount + # once the to_local output has been spent, revealing the local_delayedpubkey + OP_16 OP_CHECKSEQUENCEVERIFY + " + } + }, + { + "value": 0.00000330, + "output_type": "remote_anchor", + "scriptPubKey": { + "internal_pubkey": "", + "tapleaf": " + # after a relative timelock of 16 blocks, anyone can claim this tiny amount + # once the to_remote output has been spent, revealing the remote_pubkey + OP_16 OP_CHECKSEQUENCEVERIFY + " + } + }, + { + "value": 0.05, + "output_type": "offered_htlc", + "scriptPubKey": { + "internal_pubkey": " + # funds go to the remote node with the revocation key + musig2(,) + ", + "tapleaf_1": " + # funds go back to us via a second-stage HTLC-timeout transaction (which contains an absolute delay) + # NB: we also need the remote signature, which prevents us from unilaterally changing the HTLC-timeout transaction + OP_CHECKSIGVERIFY OP_CHECKSIG + 1 OP_CHECKSEQUENCEVERIFY + ", + "tapleaf_2": " + # funds go to the remote node if it has the payment preimage. + OP_HASH160 OP_EQUALVERIFY + + OP_CHECKSIGVERIFY + 1 OP_CHECKSEQUENCEVERIFY + " + } + }, + { + "value": 0.08, + "output_type": "received_htlc", + "scriptPubKey": { + "internal_pubkey": " + # funds go to the remote node with the revocation key + musig2(,) + ", + "tapleaf_1": " + # funds go to us via a second-stage HTLC-success transaction once we have the payment preimage + # NB: we also need the remote signature, which prevents us from unilaterally changing the HTLC-success transaction + OP_HASH160 OP_EQUALVERIFY + OP_CHECKSIGVERIFY OP_CHECKSIG + 1 OP_CHECKSEQUENCEVERIFY + ", + "tapleaf_2": " + # funds go to the remote node after an absolute delay (timeout) + + OP_CHECKSIGVERIFY + + OP_CHECKLOCKTIMEVERIFY + 1 OP_CHECKSEQUENCEVERIFY + " + } + }, + ] +} +``` + +You should notice that the public keys used in the anchor outputs have changed. +We were previously using the `local_funding_pubkey` and `remote_funding_pubkey` because since they +were revealed in the witness of the funding input, it let anyone watching the blockchain claim +these outputs after 16 blocks to avoid bloating the utxo set. +But with Musig2 the individual funding public keys are never revealed, so we need to use other +public keys that may be revealed when outputs of the commitment transaction are spent. + +A taproot HTLC-success transaction looks like: + +```text +{ + "version": 2, + "locktime": 0, + "vin": [ + { + "txid": "...", + "vout": 42, + "scriptSig": " ", + "sequence": 0 + } + ], + "vout": [ + { + "value": 0.04, + "scriptPubKey": { + "internal_pubkey": " + # funds go to the remote node with the revocation key + musig2(,) + ", + "tapleaf": " + # or back to us after a relative delay () + + OP_CHECKSIGVERIFY + + OP_CHECKSEQUENCEVERIFY + " + } + } + ] +} +``` + +A taproot HTLC-timeout transaction looks like: + +```text +{ + "version": 2, + "locktime": , + "vin": [ + { + "txid": "...", + "vout": 42, + "scriptSig": " ", + "sequence": 0 + } + ], + "vout": [ + { + "value": 0.04, + "scriptPubKey": { + "internal_pubkey": " + # funds go to the remote node with the revocation key + musig2(,) + ", + "tapleaf": " + # or back to us after a relative delay () + + OP_CHECKSIGVERIFY + + OP_CHECKSEQUENCEVERIFY + " + } + } + ] +} +``` + +Do note that the changes described in this section only make sense to do if we're able to integrate +PTLCs without radically changing the transaction format. We will explore that in the next section. + +## Point Time-Locked Contracts + +Once lightning transactions use taproot, we'd like to add support for PTLCs (Point Time Locked +Contracts) in addition to HTLCs (Hash Time Locked Contracts). +PTLCs can only be used when the whole route supports them, which means we'll have to keep +supporting HTLCs until the majority of the network has been updated. + +The main benefit of PTLCs is payment decorrelation: instead of using the same secret for each hop +in the route (`payment_hash` for HTLCs) we can use different secrets for each hop, which provides +much better privacy. + +We can use [scriptless scripts multi-hop locks](https://github.com/ElementsProject/scriptless-scripts/blob/master/md/multi-hop-locks.md) +to allow routing PTLCs across multiple hops. + +Conceptually, what we would like to do when offering a PTLC is to add an output with the following +structure (or something similar) to our commitment transaction: + +```text +{ + "internal_pubkey": " + # funds go to the remote node with the revocation key + musig2(,) + ", + "tapleaf_1": " + # funds go back to us via a second-stage PTLC-timeout transaction (which contains an absolute delay) + # NB: we need the remote signature, which prevents us from unilaterally changing the PTLC-timeout transaction + OP_CHECKSIGVERIFY OP_CHECKSIG + 1 OP_CHECKSEQUENCEVERIFY + ", + "tapleaf_2": " + # funds go to the remote node via a second-stage Claim-PTLC-success transaction by completing an adaptor sig, revealing the payment secret + # NB: we don't use musig2 here because it would force local and remote signatures to use the same sighash flags + OP_CHECKSIGVERIFY OP_CHECKSIG + 1 OP_CHECKSEQUENCEVERIFY + " +} +``` + +But this introduces a fundamental change compared to HTLCs: the receiver cannot directly claim the +PTLC from our commitment transaction once they have the secret. Instead, we need to introduce a +second-stage transaction that must be pre-signed. + +First of all, let's explain why this fundamental change is necessary. + +With HTLCs, the secret (payment preimage) could be revealed by the receiver in the spending script +of the HTLC output. Once the HTLC was spent, the sender could simply look at the signature script +to learn the secret and propagate it upstream. + +With PTLCs, the secret is a private key. The way it is revealed is a two steps process: + +1. the sender provides an adaptor signature based on the payment point +2. the receiver completes the adaptor signature (using the payment secret) to spend the output + +With both the adaptor signature and the complete signature, the sender can extract the secret. +We can see a few problems emerge from that two steps process: + +* more signatures need to be exchanged, because each peer needs to send signatures for 2nd-stage + transactions that let the remote peer claim PTLCs from the local commitment +* claiming successful PTLCs from the remote peer's commitment now requires using RBF and sighash + flags similar to anchor outputs HTLC transactions (`sighash_single | sighash_anyonecanpay` trick) +* before signing a commitment update, peers must obtain from their counterpary adaptor signatures + for their pending received PTLCs in the future remote commitment + +Let's now detail a strawman, high-level proposal that enables PTLCs. + +First of all, have a look at the [existing transaction structure](./lightning-txs.md#anchor-outputs). +We simply add two new types of outputs to the commit tx (PTLC offered / PTLC received): + +```ascii ++------------+ +| funding tx | ++------------+ + | + | +------------------------+ + +------->| commit tx B | + +------------------------+ + | | | | | | | | + | | | | | | | | A's main output + | | | | | | | +-----------------> to A after a 1-block relative delay + | | | | | | | + | | | | | | | +---> to B after relative delay + | | | | | | | B's main output | + | | | | | | +-----------------+ + | | | | | | | + | | | | | | +---> to A with revocation key + | | | | | | + | | | | | | A's anchor output + | | | | | +--------------------> to A immediately (or anyone after 16-block relative delay) + | | | | | + | | | | | B's anchor output + | | | | +-----------------------> to B immediately (or anyone after 16-block relative delay) + | | | | + | | | | (B's RBF inputs) ---+ + | | | | | +---> to B after relative delay + | | | | +---->+-----------------+ | + | | | | +---------->| HTLC-timeout tx |------------+ + | | | | HTLC offered by B | +-----------------+ | + | | | +-------------------+ (after timeout + 1-block delay) +---> to A with revocation key + | | | | + | | | +---> to A with payment preimage after a 1-block relative delay + | | | | + | | | +---> to A with revocation key + | | | + | | | (B's RBF inputs) ---+ + | | | | +---> to B after relative delay + | | | +---->+-----------------+ | + | | | +------------>| HTLC-success tx |----------------+ + | | | HTLC received by B | +-----------------+ | + | | +--------------------+ (with payment preimage + 1-block delay) +---> to A with revocation key + | | | + | | +---> to A after timeout (absolute delay + 1-block relative delay) + | | | + | | +---> to A with revocation key + | | + | | (B's RBF inputs) ---+ + | | | +---> to B after relative delay + | | +---->+-----------------+ | + | | +------------>| PTLC-timeout tx |-------------+ + | | PTLC offered by B | +-----------------+ | + | +-------------------+ (after timeout + 1-block delay) +---> to A with revocation key + | | + | | (A's RBF inputs) ---+ + | | | + | | +---->+-----------------------+ + | +-------------------------->| Claim-PTLC-success tx |--------------> to A + | | +-----------------------+ + | | (with payment secret + 1-block delay) + | | + | +---> to A with revocation key + | + | (B's RBF inputs) ---+ + | | +---> to B after relative delay + | +---->+-----------------+ | + | +---------->| PTLC-success tx |----------------+ + | PTLC received by B | +-----------------+ | + +--------------------+ (with payment secret + 1-block delay) +---> to A with revocation key + | + +---> to A after timeout (absolute delay + 1-block relative delay) + | + +---> to A with revocation key +``` + +You should notice that the two PTLC outputs are very similar to the HTLC ones. +The only difference is the introduction of the `claim-ptlc-success` transaction. +This `claim-ptlc-success` transaction directly pays to the remote peer (no delay, no revocation). + +The current protocol for updating commitments is: + +```text + Alice Bob + | commitment_signed | + |------------------------>| + | revoke_and_ack | + |<------------------------| + | commitment_signed | + |<------------------------| + | revoke_and_ack | + |------------------------>| + +Alice -> Bob: commitment_signed + channel id + signature for Bob to spend funding tx + sigs for Bob to spend HTLCs from his next commitment + +Bob -> Alice: revoke_and_ack + channel id + reveal previous commitment secret + next commitment point + +Bob -> Alice: commitment_signed + channel id + signature for Alice to spend funding tx + sigs for Alice to spend HTLCs from her next commitment + +Alice -> Bob: revoke_and_ack + channel id + reveal previous commitment secret + next commitment point +``` + +The main difficulty introduced by the `claim-ptlc-success` transaction is that Alice needs to +obtain adaptor signatures from Bob before she can send her `commitment_signed`. Let's detail why. + +Let's assume that there is currently a pending PTLC paying Alice in both commitments. What happens +if Alice sends `commitment_signed` to Bob? + +Bob now has a new version of his commitment transaction, that he can broadcast. But Alice is unable +to spend her PTLC output from this transaction, because she doesn't have Bob's signature for the +new corresponding `claim-ptlc-success` (even if she obtains the payment secret). + +This can be fixed by changing the protocol: + +```text + Alice Bob + | commitment_proposed | + |------------------------>| + | commitment_proposed | + |<------------------------| + | commitment_signed | + |<------------------------| + | revoke_and_ack | + |------------------------>| + | commitment_signed | + |------------------------>| + | revoke_and_ack | + |<------------------------| + +Alice -> Bob: commitment_proposed + channel id + adaptor sigs for PTLCs to Bob in Alice's next commitment (claim-ptlc-success) + musig nonces for Alice's signature on Alice's next commitment + +Bob -> Alice: commitment_proposed + channel id + adaptor sigs for PTLCs to Alice in Bob's next commitment (claim-ptlc-success) + musig nonces for Bob's signature on Bob's next commitment + +Bob -> Alice: commitment_signed + channel id + musig nonces for Bob's signature on Alice's next commitment + Bob's signature on Alice's next commitment + sigs for Alice to spend HTLCs and PTLCs from her next commitment + +Alice -> Bob: revoke_and_ack + channel id + reveal previous commitment secret + next commitment point + +Alice -> Bob: commitment_signed + channel id + musig nonces for Alice's signature on Bob's next commitment + Alice's signature on Bob's next commitment + sigs for Bob to spend HTLCs and PTLCs from his next commitment + +Bob -> Alice: revoke_and_ack + channel id + reveal previous commitment secret + next commitment point +``` + +The `commitment_signed` and `revoke_and_ack` are mostly unchanged, the only difference is that the +ptlc signatures in `commitment_signed` are now adaptor signatures for PTLC-success transactions. + +This change adds half a round-trip compared to the previous protocol, and changes which peer signs +a new commitment first (with the previous protocol, Alice was signing first, but now it's Bob who +signs first to save half another round-trip). + +## Further changes + +We could wait for [Eltoo](https://blockstream.com/eltoo.pdf) before doing any kind of change that +fundamentally updates the transaction structure and update protocol. +However Eltoo requires a bitcoin soft-fork, so there is no guarantee that it will ever be possible. + +Alternatively, `ajtowns` proposed a new transaction format design on the mailing list in his +[lightning over taproot with PTLCs post](https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-October/003278.html). + +This proposal deserves its own article, which will be written once we have a first set of taproot +updates deployed on the network. + +## Resources + +* [BIP 341: Taproot](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) +* [Scriptless Scripts Multi-Hop Locks](https://github.com/ElementsProject/scriptless-scripts/blob/master/md/multi-hop-locks.md) +* [Eltoo](https://blockstream.com/eltoo.pdf) +* [ajtowns lightning-dev post](https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-October/003278.html) +* [t-bast lightning-dev post](https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-December/003377.html)