Block Reference
MULTISIG
Signature Family
TYPE 0x0002 · SIGNATURE FAMILY

MULTISIG

M-of-N threshold signature verification. Multiple pubkey commitments are locked in conditions with a threshold. The witness provides N pubkeys and M valid signatures to satisfy the block.

Signature Non-Invertible
MULTISIG M-of-N SIG 1 SIG 2 ... At least M of N signatures must be valid Pubkeys resolved via SHA-256 commitment match
FieldData TypeSizeSideDescription
threshold NUMERIC 1-4 B Conditions Required number of valid signatures (M)
pubkey[0..N] PUBKEY 32-33 B each Witness All N public keys (x-only 32B or compressed 33B)
signature[0..M] SIGNATURE 64-65 B each Witness M valid signatures corresponding to M distinct pubkeys
scheme SCHEME 1 B Witness (opt) Optional PQ signature scheme identifier for post-quantum routing

Public keys folded into Merkle leaf via merkle_pub_key (PubkeyCountForBlock = N). No key fields in conditions.

Conditions side (example 2-of-3):

0x0002 0 4 NUMERIC · 3B COMMIT · 32B COMMIT · 32B COMMIT · 32B = 111 bytes

Witness side (example 2-of-3):

0x0002 0 5 PK · 32B PK · 32B PK · 32B SIG · 64B SIG · 64B = 238 bytes
Total (conditions + witness, 2-of-3) 351 bytes

Wire size scales linearly: N pubkey commits in conditions + N pubkeys + M signatures in witness.

1. Read threshold M from NUMERIC field. If M < 1 or M > N → ERROR
2. Verify each witness PUBKEY against Merkle leaf (merkle_pub_key). If any key fails verification → UNSATISFIED
3. For each SIGNATURE, try each unused pubkey. On valid match, increment valid_count and mark pubkey used.
4. If valid_count ≥ M → SATISFIED. Otherwise → UNSATISFIED
ConditionResult
Missing NUMERIC field or Merkle leaf pubkey count mismatchERROR
Threshold M < 1 or M > NERROR
Fewer than N pubkeys in witnessERROR
Merkle leaf verification fails for any keyUNSATISFIED
Fewer than M valid signaturesUNSATISFIED
M or more valid signatures from distinct keysSATISFIED
Conditions (scriptPubKey, 2-of-3 example)
{
  "type": "MULTISIG",
  "inverted": false,
  "fields": [
    { "type": "NUMERIC", "value": 2 },
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "PUBKEY", "hex": "03def2...33 bytes" },
    { "type": "PUBKEY", "hex": "02789a...33 bytes" }
  ]
}
Witness (input, 2-of-3 example)
{
  "type": "MULTISIG",
  "inverted": false,
  "fields": [
    { "type": "PUBKEY", "hex": "02abc1...33 bytes" },
    { "type": "PUBKEY", "hex": "03def2...33 bytes" },
    { "type": "PUBKEY", "hex": "02789a...33 bytes" },
    { "type": "SIGNATURE", "hex": "30440...64 bytes" },
    { "type": "SIGNATURE", "hex": "e5f71...64 bytes" }
  ]
}
Multi-Party Escrow
A 2-of-3 MULTISIG where buyer, seller, and arbitrator each hold a key. Any two parties can release funds, enabling trustless escrow with dispute resolution.
Corporate Treasury
Organizational funds protected by M-of-N threshold policy. Requires multiple officers to authorize spending, preventing single-point-of-compromise theft.
Backup Key Schemes
A 1-of-3 setup where the primary key, a hardware wallet backup, and a social recovery key can each independently spend. Prevents permanent loss from any single key compromise or loss.
← SIG ADAPTOR_SIG →