
The last few months have seemingly been particularly fruitful when it comes to development activity surrounding second-layer Bitcoin technologies, with recent news pointing towards great progress for both the Liquid[1] and Lightning networks[2]. However, recent activity from prominent Bitcoin developer Pieter Wuille looks towards a set of changes to an area of the core Bitcoin protocol, namely the signature scheme. Wuille submitted a draft BIP (Bitcoin Improvement Proposal) last month outlining a proposed specification for a Schnorr signature scheme, with a view towards its eventual utilisation within the Bitcoin codebase. After some years since first being discussed, this is the first of many steps in actually moving towards adding Schnorr signatures to Bitcoin. This was made possible by the segregated witness upgrade which was completed last year, or more specifically the script versioning capabilities enabled by the changes.[3]
Schnorr signatures were developed by Claus P Schnorr and subsequently protected by U.S. Patent 4,995,082 up until late 2008. As a result of the patent, Schnorr signatures had not been standardised or widely used in open-source crypto libraries at the time of Bitcoin’s inception. The signing algorithm used in Bitcoin is ECDSA (Elliptic Curve Digital Signature Algorithm), and although Schnorr was believed by some to be a more elegant signature solution with a simple mathematical proof when Bitcoin was first established, it’s protected status resulted in far greater adoption and standardisation of ECDSA across the computer science world when Bitcoin was being developed by Satoshi Nakamoto.[4]
The BIP outlines a specification for 64-byte Schnorr signatures with the elliptic curve parameters: secp256k1. This is the same elliptic curve parameters that are currently used in Bitcoin with the ECDSA signatures. Schnorr signatures offer a number of benefits which indicate that