Once a Bitcoin address is exposed, it cannot be blocked or reissued like a compromised bank card, as the transaction history remains permanently recorded on the public blockchain. If an exchange, counterparty, or third-party observer has already identified the owner, it's impossible to retroactively sever that link.
Moving coins to a new wallet does not solve the issue, as the transaction history will still be traceable. Consolidating assets from multiple previous addresses into one new address only makes matters worse, as analysts will connect the entire combined balance to the owner.
In collaboration with the team from the Bitcoin mixer Mixer.Money, we explore what the blockchain already reveals, how to segregate savings by source, and the costs associated with severing ties to previous transaction histories.
One Transaction Spoils Everything
Most Bitcoin wallets display a total balance, but the protocol operates using unspent transaction outputs (UTXO). These can be likened to banknotes of varying denominations that collectively represent available funds for spending.
Each UTXO is consumed in its entirety. For instance, to make a payment of 0.15 BTC, the wallet might use a 0.40 BTC output and create two new outputs: one sent to the recipient and the other returned to the owner as change, minus the network fee. If the required amount exceeds any individual output, multiple outputs will be used in the transaction.
This concept is based on the Common Input Ownership Heuristic: if outputs are spent together, they are assumed to be controlled by a single entity. This assumption is sufficient for clustering those outputs.
Consider a set of four UTXOs from different addresses:
UTXOAmount and SourceWho Already Knows About This OutputA0.40 BTC, exchange with KYCplatformB0.15 BTC, P2P transaction, seller and P2P platformC0.20 BTC, mining poolD0.05 BTC, gift, senderThe total amounts to 0.80 BTC. Suppose an observer has linked only address A to a specific person. Until A, B, C, and D are included in a single transaction, their histories remain separate.
Transferring the entire balance at once is known as a sweep. Such an operation with four inputs would cluster the outputs, adding P2P transactions, mining income, and gifts to the owner’s exchange profile.
Separate and Do Not Mix
A sweep is just the most extreme case. By default, wallets automatically select inputs without inquiring about the origins of the coins, meaning transaction histories can be merged even with a standard payment. Therefore, before sending, it’s essential to assess any existing connections and determine which can be avoided. The steps are as follows:
- Stop using the exposed address. Replace it in advertisements, invoices, and with regular counterparties. For a permanent public payment point, consider using silent payments: the BIP-352 standard allows for the creation of a permanent payment address, generating a unique on-chain output for each transaction.
- Create a UTXO registry. For each output, document its source. This can be managed with wallets that support transaction tagging and manual coin selection (coin control), such as Sparrow Wallet.
- Separate outputs into domains. A domain is a set of UTXOs known to a specific group of observers. Two outputs from a KYC exchange belong to the same domain. Coins from a friend and from a P2P transaction without verification should not be mixed either with each other or with exchange outputs.
Labeling does not erase previous overlaps but prevents new ones from forming. The owner's goal is to avoid expanding the disclosed cluster with other coins.
Two Ways to Break the Chain
For basic privacy, it’s sufficient not to reuse addresses and not to combine different domains in a single transaction. However, if exposed outputs need to be severed from their previous history, anonymization services are available. They operate differently.
The first option is CoinJoin. This protocol combines the inputs and outputs of several participants in a single transaction, making it challenging to establish a precise correspondence between them. The drawback is a recognizable structure, as analytical services can identify a typical pattern of several identical outputs. Centralized exchanges may flag such transactions as high-risk and subject them to additional scrutiny.
The second option is a Bitcoin mixer like Mixer.Money. It breaks down the incoming funds and redistributes them to private investors and traders on exchanges. The client receives liquidity from other exchanges, eliminating a direct transaction link between the incoming transfer and the payout.
ForkLog tested the "Full Anonymity" mode in a step-by-step assessment. The outcome depends on the preparation: the receiving addresses and domain breakdown are planned before submitting a request. The steps for each group of coins are as follows:
- Test the service with a minimum amount. Sending 0.001 BTC is returned without a fee, allowing the user to understand the mechanics before making a larger transfer through an intermediary.
- Prepare receiving addresses in advance. Up to two addresses can be specified, and both fields should be filled: this improves mixing quality. It’s best to select these from a wallet with no shared history with the sender.
- Submit the request. Registration is not required. The form provides an address for sending, a QR code, and a cost calculation, with the order valid for 168 hours (7 days).
- Save the guarantee letter. This is signed with a PGP key and documents the addresses, fee size, and mixing time.
- Send the domain in one transaction. Processing begins after the first confirmation on the Bitcoin network.
- Wait for the payout. The maximum wait time is six hours. Coins arrive in parts, so an incomplete balance on the address indicates an ongoing process rather than a failure.
In exchange, some control must be relinquished: the payout timing and distribution of funds among addresses are determined by the system, and coins remain with the intermediary for several hours. On-chain domain separation relies on the user’s actions: a separate transaction for each domain and receiving addresses from different branches of the wallet.
***
Old records on the blockchain cannot be erased. A more realistic goal is to retire the exposed address from circulation and avoid expanding the already established cluster. Start with an inventory of UTXOs and determine which portion of coins should be anonymized.
After the transfer, domains must remain separate: they should not be consolidated through a common transaction or a single KYC account. Common mistakes after mixing are discussed in a separate publication by ForkLog in collaboration with the team from Mixer.Money.
