Transaction Input/Output Sorting

Fungibility is one of the main traits of success that any currency or asset must keep. If you have a 10$ bill you expect it at any time to be just as good as any 10$ bill, but in the last few years Bitcoin’s fungibility has been at stake and it all came from blockchain analysis tools.

Since Bitcoin transactions leave trails behind them, blockchain analysis tools are used to follow that trail and detect whether this Bitcoin was ever used in something illegal, belonged to a bad person or otherwise. Some exchanges use this analysis to refuse certain coins as they come from a shady past, this leads to the existence of “Mixing services” as users with shady past Bitcoins pay to get “clean” ones.

One of the reasons this exists is because of transactions, every transaction leaves a trail behind it and not many wallets hide that trail, currently a significant amount of transactions uses BIP69’s deterministic sorting to sort a transaction’s inputs and outputs, while others just don’t.

This makes it relatively easy to see which transactions are using deterministic sorting and which are not, making it easier to guess change transactions.

The proposed solution here is to use deterministic sorting but based on a wallet-computed semi-secret, each wallet produces the sortingSecret the way they like and from then there is a standardized sort order.

This makes it harder for an outside observer to detect if a wallet is using BIP69 so it enhances the privacy of that wallet, putting a hurdle in front of the blockchain analysis tools, this might not be a killer change but its one that could possibly further enhance Bitcoin’s fungibility and we are interested to see where it could lead us!


Support us and the authors of this article by donating to the following address:


Comments powered by Talkyard.