What your address reveals: privacy on a permanently public ledger

·6 min read·By SSP Editorial Team
SSP Academy cover: on-chain privacy and what a crypto address reveals

What your address reveals: privacy on a permanently public ledger

Most people learn the privacy rules of crypto backwards. They assume the pseudonymous name — a string of letters and numbers instead of "Jane Smith" — means anonymity, and discover otherwise only when something links the string to them.

The accurate mental model is the opposite. A blockchain is a permanent, public, globally replicated record of every payment ever made. Pseudonymity is a thin layer over that, and it is one-way: hard to establish, trivial to lose, impossible to restore.

Pseudonymous is not anonymous

An address doesn't carry your name. It carries everything else: every amount you've received, every amount you've sent, exact timestamps, and the addresses on the other side of each transaction. Anyone in the world can read it, forever, without asking permission.

The address only needs to be connected to you once. After that, the entire history attached to it — past and future — is connected to you too. Retroactively. There's no way to un-link it, because the ledger cannot be edited.

That single-point-of-failure property is what makes chain privacy unusual. In most systems, a leak exposes what leaked. Here, a leak exposes everything the address has ever done and everything it will do afterwards.

How addresses get linked to people

You told someone. Exchanges collect identity documents and know exactly which addresses they sent your withdrawals to. So does any merchant you paid, any service you signed up for, any friend you sent a payment to.

You published it. A donation address in a forum signature, a tip jar on a profile, an address pasted into a support ticket. Once it's indexed, it's permanent.

Common-input heuristics. This is the big one for UTXO chains, and it needs no cooperation from you. When a transaction spends several inputs at once, the near-certain inference is that one wallet controlled all of them — because signing them all required all their keys. Chain analysis firms cluster addresses on exactly this basis, and it works well. One transaction that combines a known address with three unknown ones has just added those three to your cluster.

Change address inference. Send 0.3 BTC from a 1 BTC input and 0.7 comes back to you as change. There are heuristics for guessing which output is the change — round-number amounts, address-type matching, output ordering — and while none is certain, they are right often enough to extend a cluster across many hops.

Address reuse. Receiving repeatedly to one address collects your entire financial history into a single, easily-watched place. It is the most common and most avoidable mistake in the list.

Timing and amounts. A payment of an unusual amount at a specific moment can be matched against off-chain information without any cryptography at all.

What this means in practice

The realistic threat isn't a state adversary. It's ordinary and much closer to hand:

  • Anyone you pay can see your balance, and therefore knows what you can afford.
  • Anyone you're paid by can watch what you do with the money afterwards.
  • An employer paying a salary on-chain sees the recipient's entire financial life.
  • A public donation address makes your treasury a matter of public record.
  • Physical risk becomes real when a visible balance is linked to a real identity — the reason operational security matters more than people expect.

None of this requires a subpoena. It requires a block explorer.

What actually helps

Use a different address for different purposes. The single highest-value habit. An address you give an exchange, an address you use for a public donation link, and an address that holds long-term savings should not be the same address, and ideally should never be joined by a transaction that spends from both.

Think of it as separate boxes, not one wallet. Privacy on a public ledger comes from keeping unrelated activity in unrelated places. Once two addresses appear as inputs to the same transaction, they are linked permanently and no later caution undoes it.

Be deliberate about consolidating. Sweeping many small inputs into one transaction is good for fees and bad for privacy — it publishes the fact that one wallet owned all of them. Both concerns are legitimate; the point is to choose knowingly rather than let a wallet decide for you.

Never spend dust you didn't expect. A tiny unsolicited payment can be a deliberate marker, and spending it merges the sender's address into your cluster. This is the privacy half of address poisoning — the same dust that sets up a lookalike scam also tags your coins.

Assume every exchange withdrawal is labelled. It is. Plan for the address you withdraw to being permanently associated with your verified identity, and decide what you want connected to it.

How SSP handles this

SSP derives addresses from your two extended public keys along a BIP-48 path, where the last two levels are a type index and an address index. Every distinct index produces a completely different address — the same keys, different derivation, no on-chain relationship visible between them.

In practice this means you can create multiple named wallets on the same chain, each at its own derivation index, each with its own address, balance and transaction history. They're derived from the same seed, so they're all restored together from one backup, but nothing on-chain connects them unless a transaction spends from more than one.

That's a genuinely useful primitive for separating concerns: an exchange-facing wallet, a savings wallet, a wallet for a public address, all in one app, none of them visibly related.

Now the honest limitation. SSP does not automatically hand you a fresh receiving address for each payment. Each wallet shows one address, and you get new ones by creating new wallets in the switcher. Many single-signature wallets rotate receive addresses automatically; SSP currently makes it a deliberate act rather than a default. The separation is available and it is not automatic, and if you want per-payment address hygiene you have to do it on purpose.

There's also a structural point worth being clear about, because it cuts both ways. SSP is a 2-of-2 multisig wallet, so its Bitcoin addresses are P2WSH scripts rather than single-key addresses. That's excellent for security and slightly distinctive on-chain: script addresses are a smaller share of overall usage than single-key ones, which makes the anonymity set smaller. This is the standard trade-off for any multisig setup, and it is worth naming rather than glossing over.

The honest summary

Perfect on-chain privacy is not achievable with ordinary wallet hygiene, and anyone claiming otherwise is overselling. What good habits buy you is meaningful: they raise the cost of linking your activity from "open a block explorer" to "run sustained analysis," and they keep the compartments you care about genuinely separate.

The two rules that matter most are simple. Don't reuse addresses across unrelated purposes. Don't merge unrelated addresses in a single transaction.

Everything else is refinement. Those two are the difference between a ledger that reads like a diary and one that reads like a set of unrelated fragments.

Share this article

Related articles