Commit 882c313
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 cd935d0 commit 882c313
File tree
3 files changed
+551
-25
lines changed- lightning/src/ln
3 files changed
+551
-25
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7990 | 7990 | | |
7991 | 7991 | | |
7992 | 7992 | | |
| 7993 | + | |
| 7994 | + | |
7993 | 7995 | | |
7994 | 7996 | | |
7995 | 7997 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5908 | 5908 | | |
5909 | 5909 | | |
5910 | 5910 | | |
5911 | | - | |
5912 | | - | |
5913 | | - | |
5914 | | - | |
5915 | | - | |
5916 | | - | |
5917 | | - | |
| 5911 | + | |
| 5912 | + | |
| 5913 | + | |
| 5914 | + | |
| 5915 | + | |
| 5916 | + | |
| 5917 | + | |
| 5918 | + | |
| 5919 | + | |
| 5920 | + | |
| 5921 | + | |
| 5922 | + | |
| 5923 | + | |
| 5924 | + | |
| 5925 | + | |
| 5926 | + | |
| 5927 | + | |
| 5928 | + | |
| 5929 | + | |
| 5930 | + | |
5918 | 5931 | | |
5919 | 5932 | | |
5920 | 5933 | | |
5921 | 5934 | | |
5922 | 5935 | | |
5923 | | - | |
| 5936 | + | |
5924 | 5937 | | |
5925 | 5938 | | |
5926 | 5939 | | |
| |||
0 commit comments