Supporting Taproot at River
Two weeks ago, the activation parameters for deploying Taproot were met with general consensus, after several months of discussions. Last Monday, a Bitcoin Core release candidate was tagged containing the software for miners to begin signaling for the Taproot soft-fork. At River Financial, we are excited to follow the community and industry in supporting Taproot if it becomes activated.
For a thorough explanation of Taproot technology and network implications, please refer to our River Learn article on the subject.
Alex Leishman and I attended a Schnorr and Taproot Seminar organized by Bitcoin Optech in September 2019, and ever since we have been excited about the potential this technology has for the ecosystem. A core mission at River is to support the best end-user experience Bitcoin has to offer. In our short history, we integrated into the Lightning Network, launched a non-custodial Hardware Wallet Account, and followed best practices like chain-efficiency and good stewardship of the network.
If Taproot is activated, there are several immediate and long-term opportunities and benefits for Bitcoin businesses to adopt this technology. Below are some reasons we are excited for Taproot activation. We hope that sharing these stories will encourage other businesses to consider their own Taproot support.
Our Plan for Taproot
Withdraw to Taproot Addresses
The River team deeply cares about improving the experience for clients to self-custody their bitcoin. Supporting withdrawals to Taproot addresses is part of this commitment. On activation day, we will support withdrawals to SegWit V1 addresses.
There are several reasons for clients to use Taproot as part of their custody solution, including better privacy and cheaper on-chain fees. A major benefit of Taproot is the smaller footprint that is left on-chain when using it.
If a business already supports sending to SegWit, the engineering changes to support Taproot are minimal. The effort required is a small change to the bech32 encoding scheme and following Segwit V1 address validation rules.
Deposit to Taproot Addresses
In a previous blog post we shared that River custodies bitcoin in several wallets with different script semantics. Switching to Pay-to-Taproot (P2TR) scripts for client deposits will bring us significant cost savings.
Every transaction has a fixed overhead of ~11 vbytes. The variable weight for transactions is found in its inputs and outputs. At River, we custody our bitcoin using SegWit outputs Pay-to-Witness-Script-Hash (P2WSH) and Pay-to-Witness-Public-Key-Hash (P2WPKH).
A P2TR output has the same weight as a P2WSH output, but spending P2TR is nearly half the size. During sustained periods of high network fees, this difference is impactful.
A P2WSH wallet spending 100 inputs with 1 output weighs ~10,479 vbytes, while a P2TR doing the same has a weight of ~ 5779 vbytes. That’s 45% savings, without sacrificing security.
Assuming MuSig is production ready, a P2TR will have even greater savings than a large P2WSH multi-signature script. A transaction spending a P2WSH multi-signature input with a 15 signer quorum will cost nearly 500 vbytes, while key aggregation with schnorr keeps the cost at a constant 111 vbytes.
River also uses P2WPKH for handling client withdrawals from our system. Although P2TR is not as competitive against P2WPKH for weight savings, there is a case to be made that the marginal increase in weight is worth the security improvements. A P2TR output would allow River to leverage on-chain security, like multi-signature schemes, in a fee-efficient way.
Lightning Network, Smart Contracts, and More
In the Lightning Network domain, switching to P2TR for channel construction will allow users to close channels for a fraction of the current network fee. Most importantly, there will be no on-chain clues as to which output is a funding output for a channel. A P2TR will look like any other P2TR output and a cooperative close will be indistinguishable from a regular spend.
Hidden inside a Taproot output may be a myriad of spending conditions unknown to the passive onlooker. Either one or none of the spending conditions will be revealed during spending. New financial applications might start to flourish with more complex scripts to empower users. River will be exploring how to expose clients to the benefits of these financial contracts through new Bitcoin products and extending our non-custodial Hardware Wallet Account offering.
Our Next Steps
At River Financial, there is a clear case for supporting both send and receive for Taproot. We will be exploring custody solutions using P2TR and investigating how to expose the usefulness of Taproot to the user through our non-custodial offering.
We have begun to test Bitcoin Core v0.21.1RC and will be following developments as we approach Taproot activation. River is joining others in excitement for this technical improvement to the Bitcoin protocol.