-
Notifications
You must be signed in to change notification settings - Fork 0
Description
This issue tracks two BOLT 12 payer-proof spec questions that came up while implementing lightningdevkit/rust-lightning#4297.
1. missing_hashes example appears to omit one hash
For the selective-disclosure example with TLVs:
0omitted10included20omitted30omitted40included50omitted60omitted
The example in BOLT PR 1295 appears to imply 3 entries in missing_hashes, but tree reconstruction in rust-lightning requires 4:
- hash for TLV
0 - hash for the omitted branch covering TLVs
20and30 - hash for TLV
50 - hash for TLV
60
Question: is the spec example incomplete, or is the implementation's tree interpretation wrong?
Relevant rust-lightning review thread:
2. omitted_tlvs trailing-marker rule conflicts with the example
The normative text says omitted_tlvs MUST NOT contain more than one number larger than the largest included non-signature TLV.
However, the same example uses markers [11, 12, 41, 42], and both 41 and 42 are larger than the largest included TLV 40.
Question: should a minimized trailing run after the final included TLV be considered valid, with the text updated accordingly? Or should the example be changed?
Relevant rust-lightning review thread:
Desired outcome
- Confirm the intended interpretation for both cases.
- Update the example and/or normative text in BOLT PR 1295 so implementations converge on the same behavior.