Difference between revisions of "Common-input-ownership heuristic"
Revision as of 01:32, 16 February 2019
The common-input-ownership heuristic (also called the multi-input heuristic or Nakamoto/Meiklejohn 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)