Let us say I have a UTXO set S = {U1,U2, U3 ..., Uk} on a pre-fork bitcoin blockchain.

How do I spend the previous UTXO S so that the new UTXO sets on both the chains are not linkable/tracable? Are there any common practices which people use for it? What are the trade-offs of different approaches?

  • Create a new UTXO set, do you mean spending your outputs?
    – Claris
    Nov 1, 2017 at 6:44
  • Yes, I mean spending the outputs on both forks. I edited the question for more clarity
    – sanket1729
    Nov 1, 2017 at 6:49

1 Answer 1


At the point of the fork, both chains are identical, and thus all UTXOs are identical. All spends of those outputs are completely public as always, in the blockchain. So your question really comes down to whether you can hide which UTXOs you are spending in a given transaction, with or without the fork. The only way I know how to do that is via mixing. If you send your transactions in each chain to a mixing service, you'll end up with different outputs on each chain. The untraceability of the mixing is then dependent on things like how many other transactions are being mixed at the same time (on a new fork, there may be fewer people sending coins), or whether the value of the output you're spending is identifiable coming in and out of the mixing.

  • I should have elaborated the question more. Let us say I want to sell my 1 fork, BCH for example. One naive way would be to create a transaction which has inputs the entire utxo set and only 1 output on BCH. By doing this, I have effectively told the world that all the utxos on Bitcoin blockchain (which I am yet to spend) belong to 1 person. On the other hand, if I spend each utxo to create only 1 output on BCH, there is not much privacy loss, but takes up much effort
    – sanket1729
    Nov 4, 2017 at 3:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.