2 min read
Add as a preferred source on Google

Bitcoin Address Clustering Can Misread Mixed Transactions

Several change-detection tests rely on output addresses, decimal precision or script types, and each depends on assumptions that can fail.

Mentioned assets
Plain metal tokens are grouped in shallow trays on a pale surface / TokenPost.ai
Plain metal tokens are grouped in shallow trays on a pale surface / TokenPost.ai

Bitcoin address-clustering heuristics use transaction inputs and outputs to infer common ownership, but coinjoin transactions can undermine those assumptions and make resulting address groups unreliable.

A common-input heuristic treats addresses that fund the same transaction as controlled by one entity. A coinjoin transaction can bring together inputs from multiple participants, so applying that rule to a mixed transaction can incorrectly group their addresses.

Other methods try to identify the change address, which receives the unspent remainder after a payment. One test looks for an output address that has never appeared before and treats it as possible change only if it is the transaction’s sole previously unseen output address.

An amount-based test compares decimal places in the output values. It flags a possible change output when its amount has more than seven decimal places and every other output has fewer than two. Those thresholds can be adjusted, and the test has exceptions because output amounts may also have decimal places.

Equal-value outputs can serve as a coinjoin clue: the method checks whether at least two outputs have the same amount. It then assumes the number of entities involved matches the number of outputs with equal values. That assumption needs further handling when the number of inputs does not match the count of equal-value outputs.

A script-type test compares the formats used by transaction inputs and outputs. If all inputs share one type and the outputs use different types, the output matching the inputs’ type is treated as possible change.

A round-number test assumes the payment is a tidy amount and the change is less rounded. Applying that test across currencies can require exchange-rate information from the transaction period, adding a resource cost that may outweigh the method’s performance.

A separate unnecessary-input test asks whether a transaction spent more inputs than needed for its payment. It was not used because some wallets select coins in ways that do not fit the test’s assumption, and the method performed poorly. Together, these approaches show how clustering can rely on patterns that do not hold for every transaction.

Simon Yoon

Reporter

Simon Yoon reports on blockchain technology for TokenPost. Send corrections or tips to info@tokenpost.com.

Loading…