A wallet displays a balance, and the underlying protocol has no such concept. It records discrete unspent outputs, and almost every practical peculiarity of using bitcoin follows from that.

Outputs are consumed whole

A transaction creates outputs, each with a fixed value and a condition for spending it. Spending consumes an output entirely; it cannot be partially used.

Paying a smaller amount than an output holds requires creating a second output back to yourself, which is what change addresses are.

The wallet's displayed balance is a sum computed across all outputs it can spend, assembled locally rather than stored anywhere.

Transaction size depends on inputs

Fees are charged by data size rather than by value, and each input adds bytes because it carries a reference and an unlocking signature.

A wallet holding many small outputs must include many inputs to pay a given amount, producing a large transaction and a large fee.

This is why the same payment can cost very different amounts from different wallets, and why consolidating small outputs during quiet periods is a common practice.

Dust is a real constraint

An output worth less than the fee required to spend it is effectively unspendable, since moving it costs more than it holds.

Such outputs accumulate and are ignored, which is why wallets enforce a minimum output value and refuse to create amounts below it.

The threshold is not fixed, because it depends on prevailing fee rates and on the type of output involved.

Validation is simpler and more parallel

Checking a transaction requires confirming the referenced outputs exist, are unspent, and that the unlocking conditions are satisfied.

Nothing depends on the order of unrelated transactions, so validation of independent transactions can proceed in parallel.

An account model has to apply changes sequentially because balances are shared state, which makes ordering significant in a way it is not here.

Privacy properties differ in both directions

Every output can receive to a fresh address, so there is no persistent identifier accumulating a history the way an account does.

Against that, combining several outputs in one transaction signals that all of them are controlled by the same party, which is a strong inference.

The model gives better default separation and a specific way to undo it, which is why coin selection is treated as a privacy decision rather than a purely technical one.