Mixing bitcoin using Whirpool can achieve anonymity. Here are a few tools to help maintain that privacy benefit when spending.
Considerations should be made when spending Whirlpool unspent transaction outputs (UTXOs) so that the anonymity benefits of mixing your bitcoin are kept intact. There are transaction tools that help you spend your post-mix bitcoin in a way that maintains anonymity, each tool offers different techniques and it’s important to understand the differences so that you can always use the right tool for the job.
This article will explore some basic concepts related to the wallet structure around Whirlpool and demonstrate the post-mix spending tools built into Samourai Wallet and Sparrow Wallet.
Although this article focuses on using these tools from the post-mix wallet, they can be used from the other wallets as well.
Basic Bitcoin Wallet Structure
In both Samourai Wallet and Sparrow Wallet, the Whirlpool implementation is such that there is a four wallet structure used. These four wallets are all managed by your wallet software in the background, and from the user’s perspective, you can navigate between wallets seamlessly.
Structuring the wallets in such a way is important so that your UTXOs remain sequestered from each other, this way your UTXOs follow a logical path through the different stages along their way to the post-mix stage and arrive there without any deterministic links to prior transaction history.
Both Samourai Wallet and Sparrow Wallet have support for the following address formats:
Pay-to-Public-Key-Hash (P2PKH) addresses that look like “17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ,” also referred to as “legacy.” Pay-to-Script-Hash (P2SH) addresses that look like “3EEJFjZURxShNr2AoJtbfcvCB749yzP7LP,” also referred to as “nested SegWit.”Pay-to-Witness-Public-Key-Hash (P2WPKH) addresses that look like “bc1qqmmc3s46efrdq0jglhf8l8jg0xw37exgne6q3k,” also referred to as “native SegWit” or “Bech32.”Pay-to-Taproot (P2TR) addresses that look like “bc1p0004nx9sh2qkvd7nzrkffx4xe5wacl8ya9yv5gtqkasatqrtgpaqrrcdg7,” also referred to as “Taproot.” Samourai Wallet has support to spend to these addresses, Sparrow Wallet has support to spend to and receive to these addresses. Testnet Pay-to-Witness-Public-Key-Hash (P2WPKH) addresses that look like “tb1qqakszcjex7zvjg7slarps5mpdngwlwsc5ll8v7,” these are only for testing and retain no value.
Having support for all of these address types does not mean that they all work with Whirlpool. Whirlpool only works with P2WPKH addresses on both Bitcoin’s mainnet and testnet. Therefore the pre-mix, post-mix and bad-bank wallets described below all handle receiving P2WPKH addresses only and can spend to P2PKH, P2SH, P2WPKH or P2TR addresses.
The wallet software uses different derivation paths to achieve the separate wallets. Derivation paths use different numbers to represent different details about the key path: “m / purpose’ / coin_type’ / identity’.” In the example below, the deposit wallet can handle a variety of address types, hence the “m/44’m/49′