Legacy vs SegWit
You finally received your Ballet wallet in the mail and ready to open it up!
As you admire the neat, simple packaging, you tear right through it in eagerness to hold the pristine Ballet wallet. It’s sturdy and robust, the way a bitcoin should feel if it ever were in physical form.
You then download the Ballet Crypto app to start interacting with your bitcoins and all of a sudden get stumped as to why there are two bitcoin addresses. What’s the difference? Why do you have two different BTC addresses? Is one used for different kinds of bitcoins? Will I lose my bitcoins if I deposit some to the strange looking address? Which one to use?! Arggghhhh!!!!
Do not fear, regardless of which BTC address you use to deposit BTC in the app, you will still have access to both.
So then why are there two?
History behind the Legacy address, but don’t think of them as being antiquated
Bitcoin addresses originally for the longest time have taken on the form of a Base58 encoded representation of the hashed public key starting with the number ‘1’.
Example of a Legacy address: 19wvSPHc6NgTbv4KveyCiw7VZnYKTvGsgX
The reason why it starts with a ‘1’ all the time is due to the version prefix that is prepended to the front of the hashed public key before encoding it in Base58. The version prefix, in bitcoin’s case is 0x00 for mainnet, and 0x6f for testnet.
Using Base58 encoded addresses has allowed spending and receiving bitcoins a lot more easier compared to using the actual public keys which can be as large as 65 bytes. Therefore, Base58 encoded public addresses have made public keys more readable, shorter, and secure. And it has decreased the byte size from as large as 65 bytes to 20 bytes. There is also a checksum added reducing the chances of mistakes when typing in public addresses into wallet applications.
Here comes the new and improved: SegWit
Explaining SegWit and everything that went into getting it implemented into the Bitcoin code base is a university course in itself. Without getting too deep into the weeds, SegWit was a soft-fork, or backward-compatible upgrade activated on the Bitcoin network in August of 2017. SegWit, which stands for ‘segregated witness’, gave way to an increase in effective block sizes, transaction malleability fix, versioning for upgrade paths, quadratic hashing fix, and offline wallet fee calculation security. Most importantly, it’s given way to the Lightning Network and the upcoming Taproot upgrade.
But in order for SegWit to become a reality, a new scripting smart contract needed to be implemented, Pay to Witness Pubkey Hash (p2wpkh). This had to alter the address format to use Bech32, defined in BIP0173. These new addresses start with a ‘bc1’ and are more efficient in byte size, transaction fees, as well saving on block space.
As mentioned earlier, a large fixture of SegWit is solving the transaction malleability issue. This is achieved by emptying the ScriptSig field and placing that data into another field called the witness field, which in this case is placed in the coinbase transaction data. For p2wpkh, the signature and pubkey, which are the two items in the ScriptSig field, get moved to the witness field.
Example of a SegWit address: bc1q5puk3ht0aj85n8u0v8yatc7zd54k6e8296f8q3
Considering that these have been becoming increasingly more common amongst wallet providers, we have also enabled the ability to use both address formats within the Ballet Crypto app. When you navigate to your bitcoins associated with your physical Ballet wallet, you will be able to see both formats available to use. But of course, only one type of address can be used on the top of the actual physical Ballet wallet.
For those who are not aware of the differences between the Legacy and SegWit addresses can be caught off guard when opening the Ballet Crypto App and navigating through to their bitcoin holdings. But do not fret, as long as you have access to your wallet through the app, you will have access to your bitcoins regardless if they were deposited to your Legacy or SegWit formatted addresses.
But in the context of usage and adoption, according to an earlier analysis put out by an analyst at Chaincode Labs, only about 12% of transaction inputs use the bech32 SegWit format (shown in chart above), which is an average better for fees. The Ballet Crypto app is set up in a way where your SegWit address is used as the change address after sending out bitcoins. This way fees will be cheaper for users the next time they transact again through the app.
So in the context of the banner image of this article, think of the Legacy addresses as the Lamborghini Countach, one of the original and classic models from the past. Whereas the SegWit addresses are the newer version 2022 Lamborghini Countach LPI 800-4, faster and more powerful than its predecessor. You can take this analogy with a grain of salt but you get the idea.