Skip to content

Commit c414e9c

Browse files
committed
LNPBP-81: additions to the draft
1 parent 942bf53 commit c414e9c

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Criteria for a LNP/BP specification proposal:
9999
| 63 | Smart contracts | Prometheus+: prometheus over LN with tokenized RGB reputation | Standard | Planned |
100100
| 64-79 | *Reserved* | *For the future use by lightning network protocol extensions* | | |
101101
| [80] | Cryptography | Merkle mountain ranges | Standard | Final |
102-
| 81 | Cryptography | Tagged merkle trees for client-side-validation | Standard | Draft |
102+
| [81] | Cryptography | Tagged merkle trees for client-side-validation | Standard | Draft |
103103
| 82 | Cryptography | OpenTimestamps bitcoin transaction commitments | Standard | Final |
104104
| 83 | Cryptography | OpenTimestamps proof construction & verification | Standard | Final |
105105
| 83 | Cryptography | OpenTimestamps proof serialization | Standard | Final |

SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
* [LNPBP-1: Public keys](lnpbp-0001.md)
88
* [LNPBP-2: Script](lnpbp-0002.md)
99
* [LNPBP-3: Tx output](lnpbp-0003.md)
10+
* [LNPBP-81: Tagged Merkle trees](lnpbp-0081.md)
1011
* [LNPBP-4: Multi-protocol](lnpbp-0004.md)
1112
* [LNPBP-6: PayTweak](lnpbp-0006.md)
1213
* [LNPBP-12: TapRet](lnpbp-0012.md)
1314
* [LNPBP-8: Single-use-seals](lnpbp-0008.md)
1415
* [LNPBP-10: TxO seals](lnpbp-0010.md)
15-
* [LNPBP-81: Tagged Merkle trees](lnpbp-0081.md)
1616

1717
## Bitcoin Protocol
1818

lnpbp-0081.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ Based on bitcoin merklization with following modifications:
4545

4646
## Specification
4747

48+
Merkle node is represented by a single SHA256 hash over the following data,
49+
serialized as a byte stream without any separators:
50+
- branch type (byte)
51+
- tag (128-bit number)
52+
- depth (byte)
53+
- width (4 bytes, little-endian)
54+
- child node 1 (32 bytes)
55+
- child node 2 (32 bytes)
56+
57+
If one or both of the child nodes are absent, a constant consisting of 16 `0xFF`
58+
bytes is used.
59+
60+
The root is produced via `CommitmentId` procedure
61+
4862
## Compatibility
4963

5064
## Rationale

0 commit comments

Comments
 (0)