Schnorr Signatures: Bitcoin’s Latest Upgrade

Image for post
Image for post

No one can challenge the breakout growth of Bitcoin. With an estimated 200M users and an almost 150% price increase year on year, the cryptocurrency is the standard bearer for the markets. But is Bitcoin a victim of its own success? In order to remedy questions surrounding network scaling, the community is set to implement Schnorr signatures.

The question of scalability has long been a point of contention between BTC and BCH fans, and one developer thinks that they have the answer. Pieter Wuille, one of the largest contributers to Bitcoin’s software, has proposed introducing a cryptographic measure called “Schnorr signatures”. Wuille is also behind the adoption of Segregated Witness (or SegWit), which raised tensions within the community to a fever pitch in August of 2017.

The controversy was mainly due to a split in opinion over the method of scaling. Some are ‘originalists’, meaning they want to preserve the key characteristics of Bitcoin by minimizing trust in others and ensuring conservative scaling. Others prioritise new users, focusing on user onboarding, low fees, and acceptable security. Despite this, most stakeholders actually agree on the necessary actions to allow reliable scaling; the point of contention is the timing and order of these actions.

From this dispute arose SegWit, which promised to fix a bug preventing scalability innovation. After a year of testing the upgrade has acquired support from developers, users, miners, and businesses, and will be implemented. This implementation in turn allows for Schnorr Signatures, one of the scalability innovations that was previously prevented.

So How Do Schnorr Signatures Work?

In every bitcoin transaction, signature data is required to confirm the transaction. By necessity, these signatures require space within the blockchain. When one address is receiving transactions from multiple addresses, each transaction requires its own signature even if there is just one sender.

Image for post
Image for post

The more signatures that need to be put on the blockchain, the greater the transaction size and therefore the miner fee for verifying. But why should we waste valuable blockspace on copies of the same signature? If all transactions from one source were signed with a single signature, that would reduce fees and increase transaction volume. This is exactly what Schnorr signatures do- they could provide a 25% reduction in storage and bandwidth.

Image for post
Image for post

Schnorr also offers increased privacy as to your transaction security measures. For some safety-conscious users, multiple signatures on a transaction (multi-sig) is a way to increase security. But as with any good security system, you don’t want potential attackers to know this. Don’t worry; Schnorr signatures make your multi-sigs look just like any normal transaction.

Preventing Spam Attacks

While saving blockspace is a major rationale for Schnorr, there’s another increasingly important benefit; preventing spam attacks on the Bitcoin network. In May of 2017, the network saw an enormous spike in transactions initiated by spammers pushing their development agenda. By including as many as a dozen different signatures in each transaction, spammers managed to raise the cost of transactions for weeks. You can see an example of this attack in block #470824.

The ideological motivation behind this attack only makes the weakness more troubling. Happily, Schnorr is here to help. With multiple signatures condensed into one, the price of such an attack by will rise by orders of magnitude. If the attacker does not utilize Schnorr, those that do will still benefit from smaller transaction sizes.

With Schnorr on its way to being implemented, the future for Bitcoin is bright indeed. Increased security, a more robust network, and a userbase that only seems to grow are all positive signs; let’s just hope there isn’t as much arguing this time.

Originally published at on July 19, 2018.

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store