2020 was quite an eventful year for Bitcoin, with major companies like GreyScale, Microstrategy & Tesla investing huge sums of money in Bitcoin to financial giants like Paypal, Mastercard extending their product suite to incorporate bitcoin and other currency.
Plus, bitcoin is currently seeing a bull run that is taking it to new all-time highs.
Despite the wide media coverage, one thing that seems to be getting overlooked is the developments that are happening in the bitcoin space.
2020 did not just see a rise in mainstream adoption but also saw major developments and upgrades to improve bitcoin technology. All thanks to the dedicated team of bitcoin developers who are continually working to further improve bitcoin.
Let's have a look at some of the major developments in bitcoin technology in 2020 and what is expected to come in 2021…
Developments in Bitcoin Technology — 2020
Lightning Network, a second layer built on top of the bitcoin protocol allows for faster, cheaper, and more private payments saw a lot of action in 2020.
Lightning network saw implementation from c-lightning (Blockstream), Eclair (ACINQ), LND (Lightning Labs), and Rust Lightning plus multiple other projects that are building on top of the protocol.
One of the key developments within the Lightning Network in 2020 has been Watchtowers, which makes the protocol more secure.
One of Lightning Networks' drawbacks is that it made it possible for users to cheat and claim more funds than actually allocated to them. The partner user can stop this from happening but it requires continued monitoring of the bitcoin blockchain.
To avoid this, Watchtower was implemented which allows channel monitoring to be outsourced to impartial observers.
The development cycle of Watchtowers:
- February: Alpha release of the dedicated Watchtower implementation Eye of Satoshi.
- May: C-Lightning rolled out support for Eye of Satoshi in May.
- July: Version 1 of Eye of Satoshi
Other notable Lightning Network Developments:
- Anchor Outputs: Ensures users can claim funds from a channel unilaterally despite discrepancies in on-chain fees.
- Multipath payments: Lets users make Lightning payments in smaller chunks
- Juggernaut: Lightning Network-native messaging application
- Faraday: Channel management tool
Increased Privacy: PayJoin and CoinSwap
PayJoin and CoinSwap are two protocols that were designed to increase the privacy of bitcoin transactions.
Currently, bitcoin transactions are not exactly private they are pseudo-anonymous, meaning with a little tracking they can be traced back to the user.
With PayJoin, or Pay to EndPoint [P2EP], the user sends funds to themselves while also receiving funds from the actual receiver. This tricks anyone tracking the funds to think that all the funds belong to the same person when in fact that is not the case.
Implementations of PayJoin:
- Bustabit: an online gambling game
- BTCPay: A popular payment processor that allows users to accept PayJoin transactions from compatible wallets.
- Bitcoin Wallets: Wasabi, Join Market, Blue Wallet, Sparrow, Samourai
CoinSwap, was first introduced in 2013, by Bitcoin Core contributor Gregory Maxwell that allowed users to exchange coins without needing to trust each other.
The technique allowed users to perform bitcoin transactions that cannot be tracked to their transaction history.
Taproot is supposed to be a major upgrade to the bitcoin protocol which would bring about huge improvements to the bitcoin’s scalability, fungibility, & privacy.
Taproot would essentially make smart contracts look like regular bitcoin transactions.
Taproot uses an algorithm known as a Schnorr signature, a powerful signature scheme that links the private key, public key, and signature together.
This would greatly benefit multi-signature transactions that need individual signatures to validate. With Schnorr, all of these can be combined into one single signature and broadcasted onto the blockchain.
This will greatly reduce the transaction size giving room for more transactions on the block and increase privacy.
Taproots activation has been a topic of discussion for the past couple of months and various activation and consensus mechanisms are being tested.
With multiple exchanges and bitcoin wallets getting hacked and people losing their money, this update will make storing bitcoins more secure.
Bitcoin Vaults are a type of smart contract that will require bitcoin transactions several confirmations and a time delay to actually be spent.
This will time for the potential victim to reverse the transaction and get back the stolen bitcoins.
Smart Contracts — DLC
This update, designed for smart contracts, will bring about a change in how they operate when they rely on external data [data that does not live on the blockchain].
This external data is provided to smart contracts via external sources called Oracles.
Let’s say that two users have partaken in a contract and once a particular condition is met the “winner” gets the fund. If either of the users refuses to cooperate then the oracle can step in and conclude the transaction.
This method has 3 potential drawbacks:
- Oracle needs to be trusted
- Privacy is compromised as an external source is added
- Not scalable
This is where DLC enters the picture,
With DLC, oracles involvement in the smart contract is minimized. Now the oracle broadcasts the signature that corresponds to the outcome of the event.
Meaning, one signature if the first user wins and another signature if the second user wins.
And, the smart contract lets the winner use this published signature to claim the funds.
A Miniscript-based scripting language for Bitcoin contracts, MINSC would greatly simplify the creation of bitcoin transactions.
Script is a programming language designed for bitcoin that specifies the conditions that must be met to spend the coins in the next transactions. It is a particularly challenging language to work with and work has been done to simplify it.
Blockstream researchers Andrew Poelstra, Pieter Wuille, and Sanket Kanjalkar designed a “stripped down” version of Script, called Miniscript.
Bitcoin developer Nadav Ivgi in 2020 developed another new programming language called MINSC, which is built on the work done by the Blockstream researchers who developed Miniscript.
So the evolution of this language goes something like this:
Script -> Miniscript -> MINSC
MINSC is still a work in progress.
The Road Ahead …
The following updates are part of the next 0.21.1 release
wallet: Private Key Disabled
This feature will add an update to the bitcoin wallets through which users will not be able to send transaction(s) from their wallet if the private key is disabled.
From a technical standpoint, the two functions
sendmany are used to create and commit a transaction in a wallet. Once this feature is live, these functions would no longer be operational when the private key is disabled or absent in a bitcoin wallet.
This is a much-needed update to the present bitcoin algorithm that operates the bitcoin wallets as private keys are essential to validate a transaction broadcasted onto the blockchain.
rpc: Multiple Fee Rate Request
This update would bring about a change to the fee rate selection process that happens during the coin selection. It would essentially avoid coin selection from failing.
Fee rates are needed multiple times [fee rate for the transaction itself, the discard fee rate, and long-term fee rate] during the coin selection process. Fetching them each time can lead to a race condition that where 2 values that should be the same are actually different.
Example of such a case:
During the function
CreateTransactionInternal, after inputs are chosen the new transaction fee is calculated with the newly fetched fee rates.
pick_new_inputs == false, the loop will go again with the assumption that the fee for the transaction remains the same, however, because the fee rate is fetched again, it is possible that the fee rates are actually different and this causes coin selection to fail.
Instead of fetching the fee rate each time it is needed, with this new patch, it will be selected once before running the
CreateTransactionInternal function and stored in
CoinSelectionParams, and used whenever needed during the function lifetime.
This would avoid the race condition from according and guarantee that the values remain the same.
A new version of Bech32 address format
Bech32 is a bitcoin address that is compatible with segwit [Segregated Witness]. It is commonly known as “bc1” or addresses that start with “bc1…”.
Recently a problem was discovered in bech32 address to commit to future updates, thus a new address format was proposed, called Bech32m.
It is expected that Bech32m will support Taproot and all future segwit based script updates.