MASTERING-BITCOIN ยท Interactive Practice | Unit 9 ยท Video 3
| Formula | Name | Description |
|---|---|---|
| Schnorr signature scalar | Signer with private key , nonce , challenge | |
| Verification equation | Confirms knowledge of | |
| Key aggregation | Combined private key (kept secret) | |
| Signature aggregation | Sum of partial signatures | |
| Challenge | Hash of aggregate nonce, key, message |
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 โ always.
(All scalars are reduced modulo the group order . We use 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 โ it cannot distinguish a Schnorr signature made by one signer from one made by a million.
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 instead of . The naive sum then collapses โ Bob alone controls the aggregate.
โ interactive visualization โ coming to this page format soon
Reflect: When malicious Bob publishes , the aggregate becomes . 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.
A t-of-k threshold signature lets any of signers produce a valid signature, even if the others are offline. The on-chain output looks identical to a -of- aggregate.
Adjust and , 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 -of- 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.
Question 1
Alice has private key and Bob has private key . They run a Schnorr two-party signing protocol. Alice picks nonce , Bob picks nonce , and the challenge is .
What is the combined signature scalar ?
(Recall: and . Values are small enough that no modular reduction is needed.)
โ Correct! , , and .
โ Not quite. Make sure you compute both partials ( and ) and sum them. Don't forget that the challenge multiplies the private key in each partial.
Solution:
Compute each partial signature:
Sum the partials:
We can verify with the aggregate form: , , so . The two computations agree โ linearity holds.
Question 2
In a naive Schnorr multisig, Alice publishes her public key 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 makes the aggregate , 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 , gives ?
Solution:
Bob wants the aggregate (the naive sum of public keys) to equal only his own key . If he publishes , then the aggregate becomes:
Alice's contribution cancels out. Bob alone holds the corresponding private key , 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.
Solution:
A correctly executed threshold signature looks identical to a single Schnorr signature on-chain. The verifier checks the standard equation against the aggregate public key โ and that is all the chain reveals.
The verifier learns:
The verifier does not learn:
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?
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:
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