May 20, 2024
Top

How to Maintain Privacy When Spending Bitcoin After Mixing

Mixing at Whirlpool allows you to achieve anonymity when using Bitcoin. And in this post I wanttalk about the tools that will help maintain the level of privacy achieved in mixing while spending.

When spending unspent outputs (UTXO)after whirlpool, care must be taken to maintain the anonymity benefits that were achieved by mixing. And there are tools that make it possible. Each tool offers different methods, and understanding the differences between them is important to make the right choice for each situation.

In this article, I will cover some of the mainconcepts related to the wallet structure around Whirlpool and the post-mix spending tools provided by Samourai Wallet and Sparrow Wallet.

Although similar tools can be implemented in other wallets, in whole or in part.

Navigation:

  • Basic structure of a Bitcoin wallet →
  • Pools and tx0 →
  • Toxic surrender →
  • Whirlpool UTXO →
  • BIP47 and PayNym →
    • Samourai Wallet →
    • Sparrow Wallet →
  • Stowaway →
    • Samourai Wallet →
    • Sparrow Wallet →
  • StonewallX2 →
    • Samourai Wallet →
    • Sparrow Wallet →
  • Stonewall →
    • Samourai Wallet →
    • Sparrow Wallet →
  • Ricochet →
  • Conclusion →

Basic Structure of a Bitcoin Wallet

Both Samourai and Sparrow Wallet for implementationWhirlpool uses a four wallet structure. All these four wallets are managed by your software wallet in the background, and the user can easily switch between them if desired.

This structuring of wallets is important forto keep the UTXOs isolated from each other. In this structure, your UTXOs on their way to the postmix stage go through a logical path in several stages and arrive there without any deterministic connections with the previous transaction history.

Both Samourai and Sparrow Wallet support the following address formats:

  • Pay-to-Public-Key-Hash (P2PKH) look like 17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ; when people talk about “plain”, “regular”, or “legacy” bitcoin addresses, they mean them.
  • Pay-to-Script-Hash (P2SH) are of the form 3EEJFjZURxShNr2AoJtbfcvCB749yzP7LP and are also called nested segwit addresses.
  • Pay-to-Witness-Public-Key-Hash (P2WPKH) are of the form bc1qqmmc3s46efrdq0jglhf8l8jg0xw37exgne6q3k, they are also called "native SegWit" or bech32 addresses.
  • Pay-to-Taproot (P2TR) look likebc1p0004nx9sh2qkvd7nzrkffx4xe5wacl8ya9yv5gtqkasatqrtgpaqrrcdg7, they are also called taproot addresses. Samourai Wallet only supports sending BTC to these addresses, Sparrow Wallet - sending and receiving.
  • Testnet Pay-to-Witness-Public-Key-Hash (P2WPKH) is tb1qqakszcjex7zvjg7slarps5mpdngwlwsc5ll8v7, is for testing only and has no value.

The existence of support for all these types of addresses is notmeans they all work with Whirlpool. Whirlpool only works with P2WPKH addresses, both on the main Bitcoin network and on the testnet. Therefore, the pre-mix, post-mix and bad-bank wallets described below can only receive funds from P2WPKH addresses, and spend on P2PKH, P2SH, P2WPKH or P2TR.

Wallet software uses different derivation pathsfor individual wallets. Derivation paths use different numbers to represent different details about the key path: "m/destination’ /coin_type’ /identifier’". In the example below, the deposit wallet can work with different types of addresses, hence m/44’|m/49’|m/84’|m/47′ for each of the different purposes. Pre-mix, post-mix and bad bank wallets only work with the target m/84′.

</p>
  • Deposit Wallet:this is the wallet you will deposit intobitcoins. The UTXOs in this wallet can be used as inputs for the Whirlpool CoinJoin through what is known as transaction zero (tx0). You can also simply spend bitcoins from this wallet like any other.
  • Pre mix:this is where UTXOs end up after they leavedeposit wallet via tx0. UTXOs don't stay here long, they are just a passing point where UTXOs are registered as available mixing inputs in the Whirlpool CoinJoin. If you don't want to deposit directly into this wallet or spend directly from it, the software's interface makes it easy to manage.
  • Post mix:this is where your UTXOs end up after passing throughWhirlpool CoinJoin. These UTXOs can stay here as long as you want - as long as you want them to continue to be randomly selected as &#171;freeriders&#187; for more free mixing cycles on Whirlpool CoinJoin.
  • bad bank:This is where &#171;toxic surrender&#187; from tx0.

In Samourai Wallet, you can switch from deposit to post-mix wallet by clicking on the Samourai icon in the upper left corner.

In Sparrow Wallet, you can switch between four wallets using the tabs on the far left of the interface.

</p>

Pools and tx0

Whirlpool has four pool sizes:0.5, 0.05, 0.01 and 0.001 BTC. This means that each Whirlpool output will correspond to a specific pool size. When you select UTXOs from your deposit wallet to mix into Whirlpool CoinJoin, they first go through tx0. The results of this tx0 depend on the selected pool size. For example, if you want to pass 10 BTC through Whirlpool, the tx0 results for different pool sizes will be as follows:

Pool 0.5

  • 10.00000000 BTC in
  • 1 UTXO x 0.01750000 BTC - Whirlpool Coordinator Commission
  • 19 x 0.50001000 BTC UTXO for Whirlpool inputs,each with a small additional amount for miner fees. In this example, a mining fee of 1000 sat is used, but this may vary depending on the mempool load and the desired urgency.
  • 1 x 0.48231000 BTC UTXO with &#171;toxic&#187; surrender

Pool 0.05

  • 10.00000000 BTC in
  • 1 UTXO x 0.00175000 BTC - Whirlpool Coordinator Commission
  • 199 x 0.05001000 BTC UTXO for Whirlpool inputs,each with a small additional amount for commissions to miners. Again, here 1000 sat is used as an example, however, the amount of the commission may vary.
  • 1 x 0.04626000 BTC UTXO with &#171;toxic&#187; surrender

Pool 0.01

  • 10.00000000 BTC in
  • 1 UTXO x 0.00050000 BTC - Whirlpool Coordinator Commission
  • 998 x 0.01001000 BTC UTXO for Whirlpool inputs,each with a small additional amount for commissions to miners. Again, here 1000 sat is used as an example, however, the amount of the commission may vary.
  • 1 x 0.00952000 BTC UTXO with &#171;toxic&#187; surrender

Pool 0.001

  • 10.00000000 BTC in
  • 1 UTXO x 0.00005000 BTC - Whirlpool Coordinator Fee
  • 9900 x 0.00101000 BTC UTXO for Whirlpool inputs,each with a small additional amount for commissions to miners. Again, here 1000 sat is used as an example, however, the amount of the commission may vary.
  • 1 x 0.00095000 BTC UTXO with &#171;toxic&#187; surrender

It should be noted that the coordinator’s commissionWhirlpool remains the same no matter how many Bitcoins you mix. That is, whether you mix 1 or 100 BTC, in a pool with a size of, for example, 0.5 BTC, you will pay 0.0175 BTC commission to the coordinator.

Also note that mining fees,included in each UTXO premix can amount to a significant amount if there are many such UTXO premixes. In the 0.001 pool example above, the total miner fees would be 0.099 BTC.

Tx0 is used by both Samourai and Sparrow Wallet. Tx0 is always built in such a way that one or more inputs from your deposit wallet are divided into:

  • Multiple outputs of the same size, these are the UTXO premix, which will later go to the Whirlpool CoinJoin.
  • One exit with Whirlpool coordinator commission.
  • One exit with the remaining change, &#171;toxic change&#187;.

Here is a real example of tx0, where you can see what was in it:

  • one entry for 0.81804189 BTC;
  • 16 equal outputs of 0.0501 BTC;
  • one exit with a Whirlpool coordinator fee of 0.0025 BTC (current fee reduced to 0.00175 BTC);
  • one exit with toxic change for 0.0136981 BTC.

You can view this transaction on KYCP.org.

</p>

Each of the 16 equal outputs will be individuallyselected as input for subsequent mixes in the Whirlpool CoinJoin. Until then, these outputs are temporarily in the pre-mix wallet. When new whirlpool transactions are initiated, the coordinator will look for available inputs such as these. The Whirlpool coordinator enforces strict rules that ensure that no two outputs of the same tx0 or from the same wallet appear in the same Whirlpool CoinJoin transaction. Each of these 16 outputs includes a small amount of additional BTC so that when they are selected as inputs, this surcharge can cover the miner fees for the Whirlpool CoinJoin transaction.

The coordinator will switch randomlybetween creating transactions that have either two new member UTXOs and three remixed UTXOs, or three new and two remixed UTXOs. UTXO of new participants is covered by miners' commissions, and UTXO of &#171;freeriders&#187; always remixed for free. You also only pay the coordinator fee once, after which your UTXOs can remain in the post-mix wallet and be remixed for free for as long as you want to keep them there.

Toxic Surrender

Particular attention should be paid to toxic surrenderfrom tx0. By default, Samourai Wallet will prompt you to mark a UTXO with toxic change as &#171;non-consumable&#187; when initiating tx0. In this case, the wallet will not display this UTXO as available and will exclude it from the displayed balance.

</p>

You can always open the menu with three dots inIn the top right corner of the Samourai Wallet app, select “Show unspent outputs”, scroll to the very bottom and you will find toxic change outputs under “Do Not Spend”. Here you can select the UTXO you are interested in and, if desired, change its status to &#171;Spendable&#187;. It will then show up as part of your deposit wallet balance and become available for spending again.

</p>

In Sparrow Wallet, toxic change after tx0 is automatically sent to the bad bank wallet. You can go to the bad bank tab at any time and spend UTXO from it.

</p>

The problem with toxic surrender is thatthat on-chain it remains linked to the tx0 it came from. And this means that it is also connected with the entire previous transaction history of all inputs of this tx0. This means that if an external observer monitors the movement of bitcoins belonging to an identified network entity, then he will know that this exit with toxic change belongs to this entity. This means that with the help of blockchain analysis heuristics, an external observer can reasonably assume that in future transactions, any bitcoins associated with toxic change also belong to the same entity.

It turns out that by combining UTXO toxic surrenderwith a post-mix UTXO, you will negate all the anonymity gains Whirlpool has achieved. However, due to the structure of the wallet, you will have to really try and do something very strange to combine the exit with toxic change and the exit after the Whirlpool in one transaction.

There is a so-called waterfall technique, whenyou start with the largest pool you can get based on the available UTXOs in your deposit wallet. Then you take the toxic change output and use it separately in the next largest pool, and so on, until you have the lowest possible amount of toxic change left.

Another possible technique, at the time of writingcurrently in development at Samourai Wallet is atomic swaps with Monero. To do this, you will need a separate wallet for Monero - for example, Monerujo - because Samourai Wallet does not plan to implement support for Monero. But in principle, you can build a Bitcoin transaction &#171;trustless&#187; peer-to-peer exchange of BTC for XMR, which will go to your Monero wallet, and your toxic change will go to your counterparty's Bitcoin wallet. After that, you can exchange the received XMR back for bitcoins or simply spend it - it's all in your hands.

Whirlpool UTXO

Moved to tx0 from deposit to pre-mixwallet, your pre-mix UTXOs are ready to be mixed in the Whirlpool CoinJoin. After you initiate tx0, your wallet and Whirlpool coordinator will automatically do everything necessary in the background. Whirlpool CoinJoin transactions have five outputs of the same denomination. An outside observer studying a transaction record in a block explorer cannot with certainty correlate a specific output of a transaction with one or another of its inputs. All five outputs can equally belong to any of the five inputs. This concept is well illustrated in this example on KYCP.org.

</p>

Here is another way to look at the same Whirlpool CoinJoin transaction as a table that summarizes the transfer probabilities between certain inputs and outputs.

</p>

Since all outlets are the same size and withare equally likely to apply to any given input; they have no distinguishing characteristics. This is anonymity - the quality, or state, of indistinguishability in the &#171;crowd&#187;, multitude. Once anonymity is achieved, you want to maintain it so you can continue to spend bitcoins on the public blockchain without revealing details that could be used to reconstruct your previous on-chain transaction history, revealing further information about you.

To learn more about anonymous sets in relation to Whirlpool CoinJoin, I recommend that you refer to this article.

BIP47 and PayNym

BIP47 introduces support for reusable paymentcodes that can be displayed as a static bitcoin address, for example, on a website or shop window. The advantage of such a payment code is that external observers cannot see the transaction history or balance on the payment code, unlike regular bitcoin addresses.

At a high level, details from billing codes,belonging to both participants in the transaction are combined, resulting in an index of addresses known only to these two participants. Thus, anyone who knows the public payment code and connects to it with an on-chain notification transaction will be able to send payments to result addresses that are unique to that particular connection. There is no need for an active server to deliver a fresh address each time, as is the case with a payment server like BTCPay Server.

This is an example of a BIP47 billing code:

“PM8TJK7rnkDXabzmo4ZyxX49JxdLWhbFANDr4eBCwk1shDEs1qDysW5hFCFr6hschwJe4ny7C7GcSnsNPzBYvE6giabxfJyNSrAWRJYCoHMo7iveHned”

It can also be displayed as a QR code:

</p>

PayNym, in turn, is an implementation of BIP47,used by Samourai Wallet and Sparrow Wallet. PayNym is obtained by hashing your payment code to create a unique avatar and name. The avatar and name are intended to make it easier for users to interpret and manage. Samourai Wallet supports the PayNyms directory if you want to explore, find and connect with others: https://paynym.is/. This directory can be used to register your PayNym if you select this from the app during initialization.

</p>

PayNym can be used in several ways.

For example, to make direct payments tosomeone's PayNym by establishing an on-chain connection with them and generating an index of secret addresses. Speaking of non-collaborative payments on PayNym, if you do not make an on-chain notification transaction, then the recipient will not know the address and will not be able to observe your wallets.

This should not be confused with joint transactionsusing PayNym, for which it is enough only for PayNym users to track each other, and not an on-chain transaction with a notification. In other words, if you import someone else's payment code into your wallet and start calculating addresses to send bitcoins to it, then until the on-chain notification transaction is carried out, the recipient will not know which addresses he should watch as senders; if you want recipients to be able to find out and monitor these addresses, you will need to tell recipients your billing code. After the payment code is scanned and the notification on-chain transaction is completed, there is no need for the recipient to participate anymore - you can simply send payments to him.

Another way to use PayNym is through collaborative transactions like Stowaway and StonewallX2, which I will cover in the following sections.

Samourai wallet

First, I will show the process of creating an on-chain connection with PayNym:

  • Find the payment code you are interested in; I used paynym.is in the example below.
  • In Samourai Wallet, click the blue button &#171;+&#187;, then on the PayNym icon.
  • On the PayNym screen, press the blue &#171;+&#187; again.
  • Select &#171;SCAN QR CODE&#187; or you can copy and paste the payment code manually.
  • Scan the QR code for the payment code you want to pair with.

</p>
  • Information about PayNym will appear on the screen, click &#171;FOLLOW&#187;.
  • Confirm that you want to connect to this PayNym.
  • After this, you can establish a connection - click &#171;CONNECT&#187;.
  • A dialog box will appear in which the total amount for establishing a connection will be indicated - 15,000 Satoshi and the commission to miners. Click &#171;OK, FOLLOW&#187;.
  • The PayNym contact status will change to &#171;Following&#187; and &#171;Connected&#187;, below you will also see pending confirmations.

</p>

After confirming the on-chain connection, you caninitiate a payment to a contact from your deposit wallet by returning to the desired PayNym and clicking on the paper airplane button. Just enter the amount, verify the transaction and broadcast it to the network.

</p>

You can send PayNym contact and funds from your post-mix wallet.

  • Go to post-mix wallet, click the blue button &#171;+&#187; and select &#171;Send&#187;.
  • Click on the avatar icon in the top right corner.
  • Select the desired contact from the list that appears.
  • Enter the amount, verify the transaction and broadcast it to the network.

</p>

Sparrow Wallet

Sparrow Wallet has all the same direct PayNym payment capabilities as Samourai Wallet. Only the interface is slightly different.

  • In Sparrow Wallet, go to the &#171;Tools&#187; section, then “Show PayNym”.
  • Copy the billing code and paste it into the "Find Contact" dialog box.
  • Then click "Add Contact".
  • After adding PayNym, you will be able to establish an on-chain connection with it by clicking “Link Contact”.
  • A dialog box will appear informing you that this notification transaction will cost 546 Satoshi. Click "Send" to send.
  • You can send bitcoins to PayNym directly from your deposit wallet by going to the “Deposit” tab and then “Send”.
  • Click on the drop-down menu button in the “Pay To” dialog box and select “PayNym or Payment Code”.
  • Select a connected PayNym contact and click "Send Directly".

Collaborative coin spending tools after mixing: Stowaway

Stowaway is a collaborative tool forpost-mix spending, hiding the payment amount. Only the person you interact with will know it. You provide multiple inputs, the recipient also provides multiple inputs, you get your output with change, and the recipient gets their output with change plus the amount you sent them, with the actual payment amount hidden in that total. All commissions to miners are paid by the sender.

</p>
  • Above is a diagram of a Stowaway transaction as it looks like on-chain.
  • You can see three inputs: 0.01, 0.00993439 and 0.01644414 for a total of 0.03637853.
  • The two outputs were 0.00484087 and 0.03144414 (and 0.00009352 with miner fees).
  • The sender in this transaction sent 0.015 BTC to the recipient, but this amount is hidden and does not correspond to any of the inputs or outputs.
  • The recipient here provided an input of 0.01644414 and received that amount back plus a payment of 0.015 - an output of 0.03144414 BTC.
  • The output at 0.00484087 contains the sender's change.

An outside observer has no way of knowingthat the meaningful &#171;essence&#187; transaction is different from what is visible on the blockchain. The heuristic for shared ownership of inputs is violated because, due to the presence of multiple inputs and outputs, it is necessary to take into account that the inputs were provided by multiple network entities.

The recipient of the Stowaway transaction will needuse Samourai Wallet or Sparrow Wallet with your PayNym. At a minimum, PayNym should track each other, but it is not necessary to conduct an on-chain notification transaction to establish a connection between them.

Also, the sender and recipient will need to contact each other - in the messenger, by phone, etc.

Samourai wallet

To create a joint Stowaway transaction in Samourai Wallet, make sure that you and your transaction partner track each other's PayNym, it is not necessary to establish an on-chain connection.

  • Go to post-mix wallet.
  • Click on the blue button &#171;+&#187;, then &#171;Send&#187;.
  • Turn on &#171;Cahoots&#187;.
  • Select "Stowaway".
  • Select "Online".

</p>
  • Select a recipient from your contact list.
  • Enter the amount you want to send. When done, select "Review Transaction".
  • Set the amount of commission to miners.
  • Contact the recipient and alert them to monitor the network for your transaction through their wallet.
  • Select "Begin Stowaway".

</p>
  • Transaction details will be transmitted between peers in encrypted form via Tor at the Soroban communication layer.
  • You will see the progress of the transaction passing through five stages in less than 10 seconds.
  • When finished, view the details and select “Send”.
  • A dialog box will appear asking if you are sure you want to broadcast this transaction. Choose &#171;Yes&#187;.

</p>

Your recipient will receive their transaction input back to the new output, along with the amount you sent them. For an outside observer, the actual amount of the transfer will be hidden.

Sparrow Wallet

To create a joint Stowaway transaction in Sparrow Wallet, make sure that you and your transaction partner track each other's PayNym, it is not necessary to establish an on-chain connection.

  • Go to the &#171;Postmix&#187; tab, then &#171;Send&#187;.
  • Select the drop-down option on the right side of the &#171;Pay to&#187; field.
  • Select "PayNym or Payment code".

</p>
  • In the pop-up window, find the recipient in the PayNym contact list and click on it.
  • Select the “Send Collaboratively” option.

</p>
  • Select a label for your transaction, enter an amount, and set the fee for miners.
  • Then select the blue “Mix Partner” icon in the lower left corner of the transaction graph.

</p>
  • On the pop-up screen, you will see that the PayNym recipient you selected is already selected.
  • Click "Next" to start the transaction.
  • Now you need to inform the recipient aboutthat it's time to start monitoring your transaction through his wallet. This can be done by any external communication method convenient for you - in a messenger, by phone, etc.

</p>
  • Once the mixing partner accepts your request, the transaction will be built.
  • This requires several inputs from both sides, each of which will return the corresponding remainder.
  • The recipient's output includes the amount you send.
  • Check the data and, if everything is correct, select “Sign &amp; Broadcast".

</p>
  • After the transaction is broadcast to the network, you will receive a confirmation.

</p>

You can view this transaction in any Bitcoin testnet explorer, such as mempool.space.

69 satoshi were sent, but you would never know about it, being an outside observer.

</p>

Collaborative coin spending tools after mixing: StonewallX2

StonewallX2 is another toolcollaborative spending, which helps to break the heuristics of blockchain analysis and maintain anonymity. StonewallX2 transactions always have four outputs. The number of entries may vary. At least two of the four outlets are the same size; this creates a false output of the same size as the expense amount. The other two outputs are change returned to both participants in the transaction. Unlike Stowaway transactions, StonewallX2 transactions can be spent in favor of a third party - the partner with whom you create a transaction does not have to be its recipient. In StonewallX2 transactions, commissions to miners are divided between cooperating peers in a 50/50 ratio. The input selection algorithm ensures that no UTXOs that share a previous transaction will be used together as inputs of a new transaction.

Here is what StonewallX2 (and Stonewall) will look like on-chain:

</p>

Samourai wallet

To create a StonewallX2 transaction in SamouraiWallet, make sure that you and your transaction partner track each other's PayNym, it is not necessary to establish an on-chain connection. However, if the recipient of this joint transaction is PayNym, then you need to establish an on-chain connection with it.

  • Go to post-mix wallet.
  • Press the blue button &#171;+&#187; and select “Send”.
  • Scan the recipient's address or paste the copied one; when sending to PayNym, select it from the contact list.
  • Select STONEWALLX2.

</p>
  • Select "Online".
  • From the list of contacts, select the peer with whom you will create a transaction.
  • Enter the amount to send.
  • Then click &#171;REVIEW TRANSACTION&#187;.

</p>
  • Set the commission rate for miners.
  • Check the details of the transaction carefully.
  • Warn the co-author of the transaction by any external communication method so that he starts monitoring the network from his wallet.
  • Click &#171;BEGIN STONEWALLX2&#187;.
  • You will see that the request has been submitted.
  • You will see the progress of the implementation, consisting of five steps.
  • You will then have another opportunity to review the transaction before sending it to the network, there will also be a pop-up window asking if you are sure you want to broadcast the transaction.

</p>

Sparrow Wallet

To create a StonewallX2 transaction in SparrowWallet, make sure that you and your transaction partner track each other's PayNym, it is not necessary to establish an on-chain connection. However, if the recipient of this joint transaction is PayNym, then you need to establish an on-chain connection with it.

  • Go to the “Postmix” tab, then “Send”.
  • Enter the address you want to send money to.
  • Add a label.
  • Enter the amount.
  • Set the commission rate for miners.
  • Click on the blue stack of coins button in the lower left corner of the transaction graph and you will notice that it has changed to a human icon.

</p>
  • In the pop-up window, select a co-author to create a transaction from the drop-down list of contacts.
  • Then click "Next" to start the StonewallX2 transaction.
  • Now you need to warn the co-author of the transaction so that he monitors the network for your request for a transaction through his wallet. This can be done by any external communication method of your choice.

</p>

Wait until the co-author of the transaction accepts the request and the transaction is created. Both co-author peers provide inputs for the transaction.

</p>

After some time, you will be presented with a summary of the transaction data being created. Check the data and, if everything is correct, select “Sign &amp; Broadcast".

</p>

After the transaction is broadcast to the network, you will receive a confirmation and see a green checkmark.

</p>

You can view this transaction in any Bitcoin testnet explorer, such as mempool.space.

The transaction has four outputs, two of whichof the same size: one output for 25,000 satoshi is an expense, another output for 25,000 satoshi is a masking one. An outside observer will not be able to tell which outputs belong to the entity controlling any of the inputs.

</p>

Non-collaborative coin spending tools after mixing: Stonewall

Here's what Stonewall (and StonewallX2) will look likeon-chain. Stonewall is a non-collaborative spending tool that helps break blockchain analysis heuristics and maintain anonymity. On-chain Stonewall and StonewallX2 transactions are indistinguishable from each other: both always have four outputs. The number of entries may vary. At least two of the four outlets are the same size; this creates a false output of the same size as the expense amount. The other two outputs are change returned to both participants in the transaction.

In the case of Stonewall, the wallet will buildtransaction using multiple inputs and four outputs, only one of which is an expense, while the other three are returned to the sender's wallet, one of which is the same size as the expense output. Both Samourai and Sparrow Wallet will by default attempt to make a Stonewall transaction when spent.

</p>

Samourai wallet

To make a Stonewall transaction in Samourai Wallet:

  • Go to your post-mix wallet and click the blue &#171;+&#187; button.
  • Select "Send".
  • Scan or paste the copied address you want to send the payment to.

</p>
  • Enter the payment amount and click &#171;REVIEW TRANSACTION&#187;.
  • Set the commission rate for miners.
  • Security will be enabled in the wallet by defaultthrough Stonewall, if the wallet has the necessary UTXOs to create a Stonewall transaction. You will notice the entropy bits at the bottom, they can change as the miner fee rate changes. In this case, the wallet will try to use different UTXOs for inputs.
  • If all available transaction parameters suit you, click “SEND”.
  • Confirm the expense when prompted.
  • After that, you will see a green screen confirming that the transaction has been sent to the network.

</p>

You can view this transaction in any Bitcoin testnet explorer, such as mempool.space.

The transaction has four outputs, two of whichof the same size: one output for 42,000 satoshi is an expense, another output for 42,000 satoshi is a masking one. An outside observer will not be able to tell which outputs belong to the entity controlling any of the inputs. Three of the four outputs are sent to the sender's post-mix wallet.

</p>

Sparrow Wallet

To make a Stonewall transaction in Sparrow Wallet:

  • Enter the address you want to send money to.
  • Add a label.
  • Enter the payment amount.
  • Set the commission rate for miners.

Pay attention to the difference in how the transaction is built when choosing the “Efficiency” setting (efficiency); There are two ways out - consumption and delivery:

</p>

In contrast, selecting the “Privacy” setting creates a Stonewall transaction with four outputs, including a false expense:

</p>
  • Click on the “Create Transaction” button.
  • On the next screen, click “Finalize Transaction for Signing” (&#171;finalize transaction for signing&#187;).

</p>

Check the data and, if everything is correct, select &#171;Sign&#187;.

</p>

After signing, you can broadcast the transaction to the network.

</p>

You can view this transaction in any Bitcoin testnet explorer, such as mempool.space.

The transaction has four outputs, two of whichof the same size: one output at 690,000 satoshi is an expense, another output at 690,000 satoshi is a masking output. An outside observer will not be able to tell which outputs belong to the entity controlling any of the inputs.

Coin spending tools after mixing: Ricochet

Ricochet creates several additionaltransitions between the original outgoing transaction and the final destination. This technique can be useful when sending bitcoins to a recipient who can view your transaction history in an attempt to determine if there is anything in your UTXO history that they don't like.

Often such verification can be carried out by exchanges orsome shops. There is no industry standard that these companies adhere to in their assessment: they simply arbitrarily decide how many clicks to review history corresponds to their idea of ​​acceptable risk. But the five additional transitions created by Ricochet seem to do the job. Sparrow Wallet does not support Ricochet transactions. Samourai Wallet charges a fee of 100,000 sat for them.

To create a Ricochet transaction in Samourai Wallet:

  • Go to your post-mix wallet and click the blue &#171;+&#187; button.
  • Then select &#171;Send&#187;.

</p>
  • Enable the &#171;Ricochet&#187; option.
  • Enable the “Staggered delivery” option if you want each additional transition to be in a separate block.

Otherwise, all five will happen in one block, which may be preferable if you're in a hurry.

  • Then paste or scan the address you want to send money to.
  • Enter the transfer amount (which you want to reach the final recipient).
  • Then click &#171;REVIEW TRANSACTION&#187;.

</p>
  • Set the commission rate for miners (this includes the commission for all five transitions).
  • View transaction details.
  • If everything is correct, click &#171;Send&#187;, then confirm the expense to broadcast the transaction to the network.

</p>

This is how this Ricochet transaction looks on the testnet. You can trace all additional hops along the way from the sender to the recipient.

</p>

Conclusion

In this article, I have tried to explain how the wallet structure works in the Whirlpool-enabled wallets Samourai Wallet and Sparrow Wallet.

Realizing the benefits of anonymity achieved withWith the help of Whirlpool, you can better evaluate which tool for spending BTC after mixing is best for you in any given case. Here I have detailed how to use each of them, with step-by-step instructions on how to use them and the additional anonymity benefits they provide.

 

BitNews disclaim responsibility for anyinvestment recommendations that may be contained in this article. All the opinions expressed express exclusively the personal opinions of the author and the respondents. Any actions related to investments and trading on crypto markets involve the risk of losing the invested funds. Based on the data provided, you make investment decisions in a balanced, responsible manner and at your own risk.

</p>