Commit 9e33dd6
committed
Verify the holder provided valid witnesses and uses SIGHASH_ALL
LDK checks the following:
* Each input spends an output that is one of P2WPKH, P2WSH, or P2TR.
These were already checked by LDK when the inputs to be contributed
were provided.
* All signatures use the `SIGHASH_ALL` sighash type.
* P2WPKH and P2TR key path spends are valid (verifies signatures)
NOTE:
* When checking P2WSH spends, LDK tries to decode 70-72 byte witness
elements as ECDSA signatures with a sighash flag. If the internal
DER-decoding fails, then LDK just assumes it wasn't a signature and
carries with checks. If the element can be decoded as an ECDSA
signature, the the sighash flag must be `SIGHASH_ALL`.
* When checking P2TR script-path spends, LDK assumes all elements of
exactly 65 bytes with the last byte matching any valid sighash flag
byte are schnorr signatures and checks that the sighash type is
`SIGHASH_ALL`. If the last byte is not any valid sighash flag, the
element is assumed not to be a signature and is ignored. Elements of
64 bytes are not checked because if they were schnorr signatures then
they would implicitly be `SIGHASH_DEFAULT` which is an alias of
`SIGHASH_ALL`.1 parent b5fb407 commit 9e33dd6
File tree
3 files changed
+549
-25
lines changed- lightning/src/ln
3 files changed
+549
-25
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7737 | 7737 | | |
7738 | 7738 | | |
7739 | 7739 | | |
| 7740 | + | |
| 7741 | + | |
7740 | 7742 | | |
7741 | 7743 | | |
7742 | 7744 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5900 | 5900 | | |
5901 | 5901 | | |
5902 | 5902 | | |
5903 | | - | |
5904 | | - | |
5905 | | - | |
5906 | | - | |
5907 | | - | |
5908 | | - | |
5909 | | - | |
| 5903 | + | |
| 5904 | + | |
| 5905 | + | |
| 5906 | + | |
| 5907 | + | |
| 5908 | + | |
| 5909 | + | |
| 5910 | + | |
| 5911 | + | |
| 5912 | + | |
| 5913 | + | |
| 5914 | + | |
| 5915 | + | |
| 5916 | + | |
| 5917 | + | |
| 5918 | + | |
| 5919 | + | |
| 5920 | + | |
| 5921 | + | |
| 5922 | + | |
5910 | 5923 | | |
5911 | 5924 | | |
5912 | 5925 | | |
5913 | 5926 | | |
5914 | 5927 | | |
5915 | | - | |
| 5928 | + | |
5916 | 5929 | | |
5917 | 5930 | | |
5918 | 5931 | | |
| |||
0 commit comments