Skip to content

Dust Attack - identification and resolution. #6965

@antuz123

Description

@antuz123

Feature Description

Add basic dust attack protection to Keeper.

A dust attack happens when someone sends a very small bitcoin amount to a wallet address, usually an old, reused, or unusual address. If the wallet later spends that small UTXO together with other coins, it may reduce the user’s privacy by linking those coins together.

Keeper should detect these suspicious small UTXOs and mark them as Do Not Spend, so they are not used automatically during normal sends.

Problem

Keeper currently allows all UTXOs to be treated as spendable unless the user manually manages them.

This means a small suspicious UTXO may get selected automatically during a send transaction. If that happens, the dust UTXO can get combined with normal wallet funds and may reveal links between wallet addresses or UTXOs.

This is a privacy issue, not a fund-loss issue.

Why This Matters

Users may not notice tiny incoming transactions.

If they later spend normally, Keeper may unknowingly include that dust UTXO in coin selection. This can weaken wallet privacy.

Keeper already has UTXO management, so this should be handled inside the existing coin control flow instead of creating a new dust-specific screen.

How Keeper Identifies It

Keeper should treat a UTXO as potential dust if:

  • the UTXO amount is below 5,000 sats
  • and it was received on a reused or out-of-order / unusual wallet address

If both conditions are true, Keeper marks the UTXO as:

Do Not Spend

Keeper should ignore mass-dusting transaction-pattern detection for this version.

Where This Applies

This should apply whenever Keeper scans or refreshes wallet UTXOs:

  • wallet creation
  • wallet import / restore
  • wallet opened after app upgrade
  • normal wallet refresh
  • new incoming transaction scan

Every wallet-owned UTXO should have one spendability state:

  • Spendable
  • Do Not Spend

If a UTXO does not yet have a state, Keeper should classify it during the scan.

Already Spent Dust

If Keeper identifies that a potential dust UTXO was already spent, it should:

  • mark the related transaction as a potential dust spend
  • identify any current wallet-owned descendant UTXOs affected by that spend
  • mark those affected current UTXOs as Do Not Spend

User Visibility

Keeper should show this in existing wallet and UTXO areas.

Home wallet list

  • Show the customary red dot on a wallet card/item if that wallet contains any Do Not Spend UTXO.

Wallet details

  • Show a small non-tappable line below the wallet name/subtitle:
    Includes Do Not Spend coins

More Options

  • Show the customary red dot on View All Coins if the wallet has Do Not Spend coins.

Manage Coins

  • Show the Do Not Spend label clearly on affected UTXOs.

UTXO Details

  • Show why the coin is marked Do Not Spend.
  • Allow user to explicitly mark it spendable.

Send Behaviour

Normal send coin selection should exclude Do Not Spend UTXOs.

If the user’s total wallet balance is higher than the amount available to spend because some coins are marked Do Not Spend, Keeper should explain this in the send flow.

Manual Control

Users should also be able to manually mark any UTXO as Do Not Spend, even if Keeper did not detect it as potential dust.

Users should also be able to explicitly mark a Do Not Spend UTXO as spendable from UTXO details.

Design

Use existing Keeper screens and patterns:

  • Wallet home list
  • Wallet details
  • More Options
  • View All Coins
  • Manage Coins
  • UTXO Details
  • Send flow

Do not create a new standalone dust screen.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions