Skip to content

Commit 5a5e3b4

Browse files
committed
Mention batched updates in multi-hop-locks
1 parent 01062bf commit 5a5e3b4

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

md/multi-hop-locks.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,18 @@ With scriptless script multi-hop locks it is possible to do AMP in a similarly t
9696
The payer sets up multiple routes to the payee using uncorrelated locks such that any partial payment claimed by the payee reveals the proof of payment (`z`) to the payer.
9797
Because the payee doesn't want to give up the PoP for just a partial payment, she waits until all routes to her are fully established and claims the all partial payments at once.
9898

99+
Batched updates
100+
---
101+
In the description of the multi-hop lock flow above we assumed that adding an HTLC output is immediately followed by a signatures from the right hop.
102+
However, [BOLT #2](https://github.com/lightningnetwork/lightning-rfc/blob/206084c9399abcfacdc95800acc27ebc5ca40b0c/02-peer-protocol.md#normal-operation) specifies that multiple updates (from both sides) can occur before a signature is exchanged.
103+
MuSig-based multi-hop locks can handle this similarly:
104+
Each update is accompanied by a public nonce to create a signature of the transaction including the update.
105+
Either left or right hop can conclude the batching phase by replying to the latest update with their public nonce and a partial signature.
106+
107+
An adversary may not choose the latest update to reply to but instead selects a different `(public nonce, transaction)`-pair from the victim's updates.
108+
This is not vulnerable to an attack similar to the [late message Wagner's attack](https://medium.com/blockstream/insecure-shortcuts-in-musig-2ad0d38a97da) because the adversary should not be able to trick the victim into signing a transaction with a different nonce.
109+
Instead, the victim's nonce is tied to a specific transaction which prevents the attacker from choosing a message for signing after seeing the victim's nonce.
110+
99111
Resources
100112
---
101113

0 commit comments

Comments
 (0)