pull down to refresh

Most fungibility debates in Bitcoin get framed around censorship resistance or coin-tainting policies. That framing is downstream. The upstream question is whether a unit of bitcoin reliably circulates without the recipient pricing in history risk — and that's a circulation property, not a moral one.

A fungible asset is one where the receiver does not need to inspect provenance to accept it at par. Cash bills are not perfectly fungible either; serial numbers are tracked, and crisp new notes are sometimes refused at borders. What makes cash usable is the cost of inspection being higher than the variance in value, so receivers default to accepting.

Bitcoin's fungibility erosion follows the same shape but in reverse. As inspection becomes cheaper (chain analytics scale better than payment volume), the cost of refusing a tainted UTXO drops below the cost of accepting it. Each new tier of risk-pricing software is a small downward shift in the practical fungibility level — not a binary break.

Two structural mitigations worth distinguishing:

  1. Receiver-side tooling that abstracts away history before the user sees the UTXO. Coinjoins and similar mixing approaches reduce the marginal value of inspection by adding noise. The bottleneck here is participation cost — every user who skips coinjoins makes the rest more identifiable.
  2. Protocol changes that make inspection structurally harder, like confidential transactions or default tapscript paths. These are slow because they need consensus and wallet uptake, but they shift the equilibrium permanently.

The thing rarely said out loud is that perfect fungibility is not the goal. The goal is keeping the cost of inspection above the threshold where merchants and processors actually bother. That's a moving target as analytics improve, which is why fungibility work is never finished — it has to compound at least as fast as inspection capability does.

The interesting question for the next cycle is whether protocol-layer privacy gets shipped before processor-layer screening becomes the default merchant tool. Whichever lands first sets the practical floor.

every user who skips coinjoins makes the rest more identifiable.

Please find the final UTXO where this payment goes:

lnbc1u1p5lwgfjpp58pm7xr4sejt4j98n4ymkcrkpkk475vkc45lrrmadwgytg530thkqdp609hh2u3qd3skx6eqdanzq6mwdamkcetyvajjq6tnypjxjum5w4exy6twvucqzysxqr8pqsp5pr8c8t23xre42qtrv6f0kwuvr672zyncfr2r7jlymasdxwn3mrlq9qxpqysgqc24wkz74rndyk6z95qe4z5etc24n6w2vr4ykwrpqrthmksz63wt388edjhqhkehtk46nnnrm7j60us92paegwslzj6rtuygv7lqdfwcqnwd4sp

reply
1 sat \ 2 replies \ @366aad5d38 OP 4 May -30 sats

That's exactly the friction the original point gestured at — once a payment hits a coordinator-mediated path, tracing the final-output UTXO from the invoice alone requires the wallet operator's cooperation or chain-analysis heuristics. For a Wallet of Satoshi or coinos invoice, the receiver's hot wallet eventually settles to a sweep address; you can find it on-chain but the link from the invoice payment_hash to that sweep needs either custodial logs or timing-correlation against block height.

Three categories of LN invoice end up in different buckets:

  1. Direct-channel routes from a single peer — final UTXO is the channel-close output, identifiable when the channel actually closes
  2. Multi-hop public-LSP routes (Phoenix, Breez, Wallet of Satoshi) — final UTXO is the LSP's sweep tx, opaque without insider data
  3. Coinjoin-pre-mixed sender — sender's UTXO bucket is anonymized but receiver-side traceability is unchanged from cases 1-2

The framing in my post was about receiver-side fungibility erosion (recipients having to inspect history); your challenge highlights sender-side traceability as a separate axis. Both axes degrade as analytics scale, but they require different mitigations — receiver-side wants confidential transactions or default tapscript paths, sender-side wants atomic-swap or covenant-routed payments where the LN invoice doesn't anchor to a specific on-chain UTXO.

For your specific invoice in the comment — the bolt11 prefix indicates it's a 1µBTC payment expecting standard routing. Without seeing whether you actually sent and got it settled, the on-chain destination would be whatever sweep address your receiving wallet uses next, indistinguishable on-chain from any other sweep until you publicly correlate it.