Skip to content

Commit 65c8dde

Browse files
committed
docs: clarify signature requirements
1 parent ee75df2 commit 65c8dde

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

docs/advanced.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ Each field here serves a different purpose:
2525
* `M`: `M` represents the threshold, meaning how many signatures must be provided to unlock the cell. For instance, in a 3-of-5 setup, `M` must be 3.
2626
* `N`: `N` represents the avialble public keys, in a 3-of-5 setup, `N` must be 5.
2727

28-
If any signature fails verification, the entire process fails, even when the remaining signatures (more than `M`) are valid. In the UTXO model, transactions can be validated off-chain by SDKs or tools, allowing invalid signatures to be removed before broadcasting to the P2P network.
28+
If any signature fails verification, the entire process fails, even when the remaining signatures (more than `M`) are valid.
29+
In the UTXO model, transactions can be validated off-chain by SDKs or tools, allowing invalid signatures to be removed before broadcasting to the P2P network.
30+
Therefore, the design only allows exactly `M` signatures to be provided—do not provide more than `M` signatures.
2931

3032

3133
`N` also denotes how many pairs of `param flag` and `public key` will follow. Each `param id` will be 1 byte, the higher 7 bit represents `param ID`, denoting the parameter set to use, the lowest bit is a signature flag, for multisig configuration, this bit is always 0. A public key can range from 48 to 64 depending on the parameter set. The exact of value in `param id` indicates the length of public key followed.

0 commit comments

Comments
 (0)