LNP-BP / LNPBPs

LNP/BP standards for bitcoin layer 2 & 3 protocols
https://standards.lnp-bp.org
202 stars 39 forks source link

Protocol Nits and issues for LNPBP-3 #42

Closed rajarshimaitra closed 3 years ago

rajarshimaitra commented 4 years ago

Suggested Nits:

Add to this number a previously-agreed values of s and c, or, if c was not defined, use 0 for c value by default. This will give a commitment-factor x = a + s + c. Since s and c is a 8-bit numbers and a is a 32-bit number, the result MUST BE a 64-bit number, which will prevent any possible number overflows. to -> Add to this number a previously-agreed values of s and c, (if c was not defined, use 0 or the default value). This will give a commitment-factor x = a + s + c. Since s and c are 8-bit number and a is a 32-bit number, as a result max(x) wil be a 48-bit number which can be represented in a 64 bit integer without causing integer overflow.

Possible deviation from Impl.

Compute d as d = x mod n. The d will represent a number of transaction output which MUST contain a cryptographic commitment. All other transaction outputs under this protocol MUST NOT contain cryptographic commitments.

Let me know if I am missing something, but as per the implementation here, d is the transaction index, not the number of outputs. https://github.com/LNP-BP/rust-lnpbp/blob/2f6fee732417aad5c71fcd0120ed0db4b1e61061/src/bp/dbc/tx.rs#L35-L38 possible restructure of the statement

Compute d as d = x mod n. The d will represent the index of the output which MUST contain a cryptographic commitment. All other transaction outputs under this protocol MUST NOT contain any cryptographic commitments.