Common-input-ownership heuristic

From Bitcoin Wiki
Jump to navigation Jump to search

The common-input-ownership heuristic (also called the multi-input heuristic, Nakamoto/Meiklejohn heuristic or co-spending heuristic) is a heuristic or assumption that all inputs to a transaction are owned by the same entity.

Transactions with multiple inputs usually arise if the user's wallet does not have a single UTXO large enough to fulfil the user's payment amount. Wallets will then usually choose to spend more than one input in their transaction. In this situation the common-input-ownership heuristic is true; all inputs belonged to the same wallet. Addresses which are spent in transactions with multiple inputs are sometimes called co-spent addresses.

The assumption is first mentioned in the original bitcoin whitepaper which says that the heuristic is always true. This is one of the few errors in the paper. It is possible for multiple entities to cooperate to create and sign a single transaction which spends inputs owned by multiple people. This is known as CoinJoin and one of its main purposes is to break this heuristic.

For example, consider this transaction with inputs A, B and C; and outputs X and Y.

A (1 btc) --> X (4 btc)
B (2 btc)     Y (2 btc)
C (3 btc)

This transaction would be an indiciation that addresses B and C are owned by the same person who owns address A, assuming that the common-input-ownership heuristic is true.

See also