Common Input Heuristics
Updated: 9/2/2020
This storyboard was created with StoryboardThat.com

#### Storyboard Description

Description of the common input heurisitics.

#### Storyboard Text

• 1 BTC 1 BTC 1 BTC 1 BTC
• In another instance a user is sending three BTC to payoff two other people. In the transaction they send 2 BTC to one person and 1 BTC to another.
• 1 BTC
• Imagine a bitcoin transaction, in which there are input and output addresses represented by circles.
• The transaction itself is represented by a square. Transactions can have multiple input addresses and output addresses.
• 4 BTC TRX﻿
• 1 BTC TRX
• Due to the UTXO protocol, the sender must sent all four of their BTC, as a result the fourth BTC is sent to a newly generated change address, which in turn helps enhance the initial party's anonymity.
• The output address of a transaction is the destination of the funds in any given transaction.
• 1 BTC
• 2 BTC
• 1 BTC
• 1 BTC
• 1 BTC
• 1 BTC
• 1 BTC
• In the common-input Heuristic, we assume that all the inputting addresses to the left of the transaction are owned by one entity and all the outputting addresses on the right are owned by another entity or entities.
• 3 BTC TRX﻿
• 1 BTC
• 2 BTC
• 1 BTC
• 1 BTC
• 1 BTC
• In this illustration, an entity could be sending 2 BTC to a recipient, and 1 BTC to another. Based on the common input heuristic, we can partially deanonymize and cluster the funds by assuming that the inputs all belong to one entity.
• 3 BTC TRX﻿
• 1 BTC
• 2 BTC
• 2 BTC
• 2 BTC
• 2 BTC
• 1 BTC
• 1 BTC
• 1 BTC
• In an effort to thwart the common input heuristic, Coinjoin services have been created to further mix and anonymize the flow of funds.
• 5 BTC TRX﻿
• 1 BTC
• In the example, which illustrates a simple coinjoin without transaction fees or overtly specific differences in amounts, users pool their money into a trustless mixing coinjoin. They use this service to break the common input heuristic. This is done by having multiple parties inputting funds into one transaction. In addition, the outputted funds are all distributed as evenly as possible to prevent an amount discrepancy from giving away the flow of funds via the output addresses. When done properly, coinjoin can be a highly effective anonymizing mixing service with extremely high anonymity sets.