Bitcoin Schnorr Signatures Explained
Last Updated: 16th February 2019
Named after its inventor, Claus-Peter Schnorr, Schnorr signatures are a method of improving the capacity of the Bitcoin network through the aggregation of signatures required for a Bitcoin transaction. Signatures are a method of proving that a user is indeed the owner of a set of private keys associated with a Bitcoin address, and is thus, authorized to spend those Bitcoins.
However, a signature is not just required for a Bitcoin transaction, a signature is required for every input in a Bitcoin transaction. At a basic level, Bitcoin transactions use outputs from previous transactions as inputs in the construction of a new transaction, with each input requiring its own signature. To illustrate, consider that Alice wants to send Bob 1 bitcoin, however, she knows that a transaction fee of 0.25 bitcoins is required. Such a transaction could have the following inputs:
- Input 1 – 0.25 BTC
- Input 2 – 0.25 BTC
- Input 3 – 0.25 BTC
- Input 4 – 0.25 BTC
- Input 5 – 0.25 BTC
Taking into account the transaction fee of 0.25 BTC, the output of the transaction, i.e. the number of bitcoins Bob would actually receive, would be:
- Output 1 – 0.25 BTC
- Output 2 – 0.25 BTC
- Output 3 – 0.25 BTC
- Output 4 – 0.25 BTC
Bob would therefore receive 1 bitcoin at the end of the transaction.
The inputs used in the construction of the transaction would equal 1 bitcoin, with each input requiring its own digital signature. Because of this, the transaction size is larger, resulting in additional space being taken up in a block. What Schnorr signatures aims to do, however, is aggregate all of the required separate digital signature for each input, into a single digital signature for all of the inputs.
It is estimated that the implementation of Schnorr signatures in every Bitcoin transaction could increase capacity of the Bitcoin network by at least 25%.
Schnorr signatures & multisignature transactions
The space savings in blocks through the aggregation of signature data is even greater when Schnorr signatures are applied to multisignature transactions, where more the digital signature from multiple different people are required to prove the ownership of funds.
For example, consider Amy is in business with Bob and Carol. For spending purposes, they have a multisignature address that requires 2-of-3 signatures. What this means is, out of the 3 individuals, at least 2 signatures are required in order to spend the funds located in the multisignature address.
What Schnorr does in this scenario is combine those multiple signatures into one, therefore saving additional space when the transaction is added to a block. However, this setup still requires the authorization of all the original signatures in order for the transaction to be valid.
Advantages of Schnorr signatures
Advantages of Schnorr signatures include:
- Improved scalability
- Increased privacy
Improved scalability – Due to the savings in signature data via aggregation, the size of a Bitcoin transaction is smaller. This creates more space in a block for additional transactions to be included, thereby increasing the capacity of that block. Therefore, as the Bitcoin network continues to grow, so too does the number of transactions; Schnorr signatures will allow the Bitcoin protocol to better accommodate this increase in demand.
Increased privacy – With respect to multisignature transactions, by requiring only the aggregated signature to prove ownership of funds, this leads to improved security for the individuals participating in the transaction as their own signature is not required. In addition, combined with CoinJoin, a method for Bitcoin transaction compression, the privacy of an individual can also be improved. The use of CoinJoin is more feasible because of the combination of signature data due to Schnorr, therefore, the size of the transaction itself will be smaller.
To conclude, Schnorr signatures are simply the aggregation of signature data required for a Bitcoin transaction. Schnorr offers benefits for both regular transactions, as well as multisignature transactions. Implementation of Schnorr signatures are predicted to result in at least a 25% increase in capacity of the Bitcoin network.
Benefits offered by Schnorr include: improved scalability, as well as increased privacy.