比特币使用 UTXO(Unspent Transaction Output,未花费交易输出)模型:链上并不存在「余额」这个字段,你的余额是「一堆属于你的、尚未被花掉的输出」的总和;一笔交易的输入必须是此前某笔交易的输出,且必须整笔花掉,剩余部分作为找零(Change)回到自己的新地址。以太坊使用账户模型(Account Model):每个地址像银行账户一样拥有 balance、nonce、code、storage 等字段,交易直接从一个账户扣款、给另一个账户加钱。
| 对比维度 | UTXO(比特币) | 账户模型(以太坊) |
|---|---|---|
| 状态表示 | 一组未花费输出的集合 | 一棵全局账户状态树 |
| 余额概念 | 需要自行累加所有属于你的 UTXO | 直接读取 balance 字段 |
| 并发处理 | 天然友好,不同 UTXO 互不冲突 | 同一账户的交易必须串行 |
| 隐私性 | 较好,每次交易可换新地址 | 较差,地址行为长期累积可被画像 |
| 双花防护 | 输出一旦被引用即失效 | 依赖 Nonce 顺序约束 |
| 智能合约 | 能力有限,脚本表达力弱 | 完整支持,可持久化状态 |
| 代表项目 | 比特币、莱特币 | 以太坊、BNB Chain |

在 Bitcoin 钱包里看到「未花费余额」实际是软件帮你累加的结果;在 Etherscan 上看到的 Balance 则是状态树里的一个真实字段。理解这点,就能解释为什么两条链的手续费与找零逻辑完全不同。








