Commit b45913a
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 c7e91d3 commit b45913a
File tree
3 files changed
+550
-32
lines changed- lightning/src/ln
3 files changed
+550
-32
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7603 | 7603 | | |
7604 | 7604 | | |
7605 | 7605 | | |
7606 | | - | |
7607 | | - | |
7608 | | - | |
7609 | | - | |
7610 | | - | |
| 7606 | + | |
| 7607 | + | |
| 7608 | + | |
| 7609 | + | |
| 7610 | + | |
| 7611 | + | |
7611 | 7612 | | |
7612 | 7613 | | |
7613 | 7614 | | |
| |||
7616 | 7617 | | |
7617 | 7618 | | |
7618 | 7619 | | |
7619 | | - | |
7620 | 7620 | | |
| 7621 | + | |
7621 | 7622 | | |
7622 | 7623 | | |
7623 | 7624 | | |
7624 | 7625 | | |
7625 | 7626 | | |
7626 | | - | |
| 7627 | + | |
| 7628 | + | |
| 7629 | + | |
| 7630 | + | |
| 7631 | + | |
| 7632 | + | |
| 7633 | + | |
| 7634 | + | |
7627 | 7635 | | |
7628 | 7636 | | |
7629 | 7637 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5899 | 5899 | | |
5900 | 5900 | | |
5901 | 5901 | | |
5902 | | - | |
5903 | | - | |
5904 | | - | |
5905 | | - | |
5906 | | - | |
5907 | | - | |
5908 | | - | |
| 5902 | + | |
| 5903 | + | |
| 5904 | + | |
| 5905 | + | |
| 5906 | + | |
| 5907 | + | |
| 5908 | + | |
| 5909 | + | |
| 5910 | + | |
| 5911 | + | |
| 5912 | + | |
| 5913 | + | |
| 5914 | + | |
| 5915 | + | |
| 5916 | + | |
| 5917 | + | |
| 5918 | + | |
| 5919 | + | |
| 5920 | + | |
| 5921 | + | |
5909 | 5922 | | |
5910 | 5923 | | |
5911 | 5924 | | |
5912 | 5925 | | |
5913 | 5926 | | |
5914 | | - | |
| 5927 | + | |
5915 | 5928 | | |
5916 | 5929 | | |
5917 | 5930 | | |
| |||
0 commit comments