As per usual, folks were sending interesting news in he Bitcoin Podcast slack. This oned happened to catch my eye as it's an update I've been waiting for; Bitcoin is getting two major improvements in historic code update from Decrypt. I immediately said we would talk about this in the upcomming The Bitcoin Podcast episode roundtable. But first, I'd wanted to take some notes and jot down a few things so that I can share what these technologies are, what they potentially mean, and the remaining road ahead for those that don't listen the podcast, but are still interested.
As per usual
For those who would like to listen to our converation about this on The Bitcoin podcast, here’s the episode:
I’m also trying to write more (hence this website / blog / resource / whatever).
What happened?
For those that don’t know, the Bitcoin ecosystem has been working on some protocol level improvements that drastically expand the capabilities of the system. On October 15th, 2020, a pull request was merged into the Bitcoin Core codebase which adds a bunch of new features which have been under review for quite a long time. Namely, Schnorr signatures
What do those words mean?
Many have already asked me what these different changes are, so I’m going to try and conceptually explain them at a high level:
Schnorr Signatures
To start, I did a Hashing It Out Interview with Andrew Poelstra about a year ago that described Schnorr signatures
Currently, the Bitcoin protocol uses digital signatures to sign messages. The algorithm used to do this is ECDSA, specifically for keypairs on the secp256k1 curve
For instance, if you’d like to send a transaction that requires multiple UTXOs, you would previously have to include every signature of each UXTO included in the message (this is very common occurance as HD wallets are standard practice). The Schnorr algorithm turns all of those signatures into a single signature.
Taproot
Taproot is an improvement on a different technology called Merkelized Abstract Syntax Tree
or MAST. In short, a MAST allows you to stack Bitcoin scripts into a Merkle tree, expanding the possibile things a Bitcoin txn is capable of doing
Tapscript
Tapscript is a short name for referring to the updates required to the validation process in Bitcoin. Taproot is an update to the Bitcoin script language. More specifically, it aims at including the previously mentioned technologie available so that Bitcoin is capable of velidating transactions that use them.
What happens next?
So this post is all about the fact that the code has been incorporated into the main client codebase, but that isn’t the end of the story. In order for these technologies to actually be used in Bitcoin, the community will have to go through some activation mechanism.
Some thoughts on the repercussions
text TBD