Schnorr signatures
Also called: Schnorr signature, BIP340, BIP 340 signatures, Schnorr, secp256k1 Schnorr.
Schnorr signatures are the 64-byte digital signatures standardized in BIP 340 and used by Taproot. They are simpler and more flexible than ECDSA.
Schnorr signatures are a digital signature scheme that Bitcoin added with Taproot. Like ECDSA, they prove that the holder of a private key approved a transaction, but their simpler structure brings several practical advantages.
BIP 340
BIP 340, by Pieter Wuille, Jonas Nick and Tim Ruffing, standardizes Schnorr signatures over the same secp256k1 curve and SHA-256 hash function Bitcoin already used:
- Signatures are a fixed 64 bytes (the x coordinate of a point R plus a number s, 32 bytes each), instead of DER-encoded ECDSA signatures of up to 72 bytes.
- Public keys are 32-byte "x-only" keys rather than 33-byte compressed keys.
- Verification checks s·G = R + e·P, where e = hash(R || P || m). Including the public key P in the hash (key prefixing) protects against related-key attacks, which matters for tweaked keys such as Taproot's.
- Tagged hashes keep this hash separate from every other use of SHA-256 in Bitcoin.
Why Schnorr
BIP 340 lists the benefits: a security proof based on the hardness of the elliptic curve discrete logarithm problem, non-malleable signatures, and linearity. Linearity means keys and signatures can be added together, which makes MuSig2 possible (multisig that looks like a single signature on chain) as well as batch verification, checking many signatures faster than one at a time.
Where they're used
Schnorr signatures are valid in P2TR key-path spends (BIP 341) and inside tapscript (BIP 342). They activated with Taproot at block 709,632 on 14 November 2021. Older output types still use ECDSA. Compare the single-signer standard with its multi-signer extension in BIP 340 vs BIP 327, or read the Taproot guide.