MASTERING-BITCOIN ยท Interactive Practice | Unit 9 ยท Video 3

One Signature, Many Signers: Schnorr Multisig and Threshold Signing

IKey Formulas

Formula Name Description
s=k+cโ‹…xs = k + c \cdot x Schnorr signature scalar Signer with private key xx, nonce kk, challenge cc
sG=kG+cโ‹…xGsG = kG + c \cdot xG Verification equation Confirms knowledge of xx
x=y+zx = y + z Key aggregation Combined private key (kept secret)
s=sA+sB=(a+b)+c(y+z)s = s_A + s_B = (a+b) + c(y+z) Signature aggregation Sum of partial signatures
c=H(kGโ€‰โˆฅโ€‰xGโ€‰โˆฅโ€‰m)c = H(kG \,\Vert\, xG \,\Vert\, m) Challenge Hash of aggregate nonce, key, message

IIVisualization 1: The Linearity of Schnorr Signatures

Schnorr signatures aggregate cleanly because every operation is linear. Two signers each produce a partial scalar; those partials simply add to a valid joint signature.

Adjust Alice's and Bob's private keys, their nonces, and the challenge. Watch the partial signatures combine and confirm that sA+sB=k+cโ‹…xs_A + s_B = k + c \cdot x โ€” always.

(All scalars are reduced modulo the group order nn. We use n=23n = 23 for visualization clarity; real Schnorr uses a 256-bit prime order.)

โš™ interactive visualization โ€” coming to this page format soon

Notice: No matter what values you pick for the private keys, nonces, or challenge, the sum of partial signatures always equals the signature computed directly from the aggregate key and aggregate nonce. The blockchain sees only the final pair (kG,s)(kG, s) โ€” it cannot distinguish a Schnorr signature made by one signer from one made by a million.

IIIVisualization 2: The Key Cancellation Attack

Linearity is a gift, but it can be weaponized. If Bob is allowed to choose his public key after seeing Alice's, he can subtract Alice out of the aggregate.

Toggle between honest and malicious Bob. When malicious, Bob declares his public key as zGโˆ’yGzG - yG instead of zGzG. The naive sum then collapses yG+(zGโˆ’yG)=zGyG + (zG - yG) = zG โ€” Bob alone controls the aggregate.

โš™ interactive visualization โ€” coming to this page format soon

Reflect: When malicious Bob publishes zGโˆ’yGzG - yG, the aggregate becomes yG+(zGโˆ’yG)=zGyG + (zG - yG) = zG. Bob alone can sign โ€” Alice was written out of her own multisig.

The fix is commit-then-reveal: every party first publishes a hash of their public key, then reveals the key only after seeing everyone else's commitment. Bob can no longer pick his key in response to Alice's.

IVVisualization 3: Threshold Signing โ€” t-of-k

A t-of-k threshold signature lets any tt of kk signers produce a valid signature, even if the others are offline. The on-chain output looks identical to a kk-of-kk aggregate.

Adjust tt and kk, then choose how many signers are online. Watch when the protocol succeeds โ€” and remember: the chain cannot tell who actually signed.

โš™ interactive visualization โ€” coming to this page format soon

Notice: When the threshold is met, partial signatures combine into a single Schnorr signature โ€” the chain sees no difference between tt-of-kk and a single signer. Accountability is gone.

Beware also the manipulation attack: a malicious participant who runs parallel signing sessions (claiming different members are offline in each) can harvest enough reconstructed shares to sign alone. The mitigation is a broadcast channel where every protocol message is visible to all participants, so inconsistent parallel sessions cannot exist undetected.

VQuiz Questions

Question 1

Alice has private key y=3y = 3 and Bob has private key z=4z = 4. They run a Schnorr two-party signing protocol. Alice picks nonce a=2a = 2, Bob picks nonce b=5b = 5, and the challenge is c=2c = 2.

What is the combined signature scalar s=sA+sBs = s_A + s_B?

(Recall: sA=a+cโ‹…ys_A = a + c \cdot y and sB=b+cโ‹…zs_B = b + c \cdot z. Values are small enough that no modular reduction is needed.)

โœ… Correct! sA=8s_A = 8, sB=13s_B = 13, and sA+sB=21s_A + s_B = 21.

โŒ Not quite. Make sure you compute both partials (sAs_A and sBs_B) and sum them. Don't forget that the challenge cc multiplies the private key in each partial.

Show solution

Solution:

Compute each partial signature:

sA=a+cโ‹…y=2+2โ‹…3=2+6=8s_A = a + c \cdot y = 2 + 2 \cdot 3 = 2 + 6 = 8

sB=b+cโ‹…z=5+2โ‹…4=5+8=13s_B = b + c \cdot z = 5 + 2 \cdot 4 = 5 + 8 = 13

Sum the partials:

s=sA+sB=8+13=21s = s_A + s_B = 8 + 13 = 21

We can verify with the aggregate form: x=y+z=7x = y + z = 7, k=a+b=7k = a + b = 7, so s=k+cโ‹…x=7+2โ‹…7=21s = k + c \cdot x = 7 + 2 \cdot 7 = 21. The two computations agree โ€” linearity holds.

Question 2

In a naive Schnorr multisig, Alice publishes her public key yGyG first. Bob, who is malicious and sees Alice's key before committing, wants to execute a key cancellation attack so that he alone controls the aggregate public key.

What public key should Bob publish?

โœ… Correct! Publishing zGโˆ’yGzG - yG makes the aggregate yG+(zGโˆ’yG)=zGyG + (zG - yG) = zG, cancelling Alice.

โŒ Not quite. The attack exploits linearity: Bob picks his key so that adding it to Alice's leaves only Bob's secret. What value, when added to yGyG, gives zGzG?

Show solution

Solution:

Bob wants the aggregate (the naive sum of public keys) to equal only his own key zGzG. If he publishes zGโˆ’yGzG - yG, then the aggregate becomes:

yG+(zGโˆ’yG)=zGyG + (zG - yG) = zG

Alice's contribution cancels out. Bob alone holds the corresponding private key zz, so he alone can sign โ€” even though Alice still believes she's a co-signer.

Mitigation: A commit-then-reveal step. Every signer first publishes a hash of their public key. Only after all commitments are gathered does each party reveal the actual key. Bob can no longer choose his key in response to Alice's.

Question 3

Three friends, Alice, Bob, and Carol, set up a 2-of-3 threshold signature scheme. They successfully produce a signature on a Bitcoin transaction and broadcast it.

What can a third-party verifier examining the on-chain signature determine?

โœ… Correct! The chain only sees a single Schnorr signature verifying against the aggregate key. Privacy is gained; accountability is lost.

โŒ Not quite. Recall that aggregated signatures look identical to single-signer signatures on-chain โ€” the blockchain has no way to identify individual signers.

Show solution

Solution:

A correctly executed threshold signature looks identical to a single Schnorr signature on-chain. The verifier checks the standard equation sG=kG+cโ‹…xGsG = kG + c \cdot xG against the aggregate public key xGxG โ€” and that is all the chain reveals.

The verifier learns:

  • The signature is valid against the aggregate key.

The verifier does not learn:

  • โŒ How many people signed
  • โŒ Which specific signers participated
  • โŒ Whether it was a threshold scheme at all (vs. a single signer)

This is excellent for privacy: a multisig wallet looks identical to a single-key wallet. But it is also why accountability is lost โ€” there's no on-chain evidence of who authorized the transaction.

Question 4

In threshold signing, Bob mounts the manipulation attack by running parallel signing sessions: in one session he tells Alice that Carol is offline, and in another he tells Carol that Alice is offline. By doing so he reconstructs Alice's and Carol's partial keys and ends up holding all three.

What is the standard mitigation?

โœ… Correct! A shared broadcast channel makes inconsistent parallel sessions impossible to hide.

โŒ Not quite. The attack relies on Bob being able to tell different stories to different signers in private. What protocol property would prevent that?

Show solution

Solution:

The manipulation attack succeeds because Bob can run two inconsistent parallel sessions that the other participants cannot see. The defense is to make every protocol message visible to all participants:

A shared broadcast channel ensures that no two participants can hold contradictory views of who is online. If Bob tries to claim "Carol is offline" to Alice while simultaneously claiming "Alice is offline" to Carol, both inconsistencies become visible and the protocol aborts.

Why the others don't fix it:

  • Deterministic nonces (MuSig-DN) protect against nonce reuse, not against parallel-session manipulation.
  • Commit-then-reveal addresses the key cancellation attack at setup time, not session-level manipulation.
  • Requiring all signers (t = k) defeats the purpose of a threshold scheme โ€” the attack still works against any t < k anyway.

Implementing a reliable broadcast channel over an adversarial network is genuinely hard, and is one of the open engineering challenges in threshold signing.

Solved: 0 / 4