本节摘要:一笔区块链交易从用户签名发起,经历广播、进入交易池、被矿工或验证者打包进区块、全网验证,到最后获得多区块确认,才算真正"落账"。本节以比特币为例完整走一遍这个生命周期,并解释交易池、UTXO、确认数等关键概念,帮助读者理解"交易什么时候算数"。
阅读完本节,你应当能够:
用过区块链钱包的人都有体验:转账后界面先显示"待确认",过了几分钟才变"已确认"。为什么不能像支付宝那样瞬间到账?这背后就是交易生命周期的完整逻辑。理解它,你就明白"10 分钟确认"不是慢,而是安全性的必然代价。
用户发起一笔转账:指定收款地址、金额。钱包软件用用户的私钥对交易内容签名(详见第三章数字签名),生成交易数据。签名是防伪造的关键——没有私钥,任何人都无法替你发起交易。
签名后的交易被广播到 P2P 网络。各节点收到后先做基础校验(签名合法、输入未花、格式正确),通过的交易进入本地的**交易池(Mempool)**等待被打包。交易池是"候车大厅",按手续费高低排队。
矿工(PoW 下)或验证者(PoS 下)从交易池中挑选交易,组装成一个候选区块,然后开始竞争记账权——PoW 下是不断尝试 Nonce 使区块哈希小于目标值,PoS 下是按质押权重被选为出块者。胜出的节点把区块广播出去。
其他节点收到新区块后做校验:区块头哈希是否满足难度、交易是否有效、是否与本地账本一致。验证通过,区块被追加到各节点本地的链上,节点同步更新账本。
新块上链后,后续每产生一个新块,这个区块的确认数就加一。比特币约定 6 个确认(约 1 小时)视为"足够安全",因为要回滚 6 个已确认区块需要控制极大量算力,经济上不现实。
比特币用 UTXO(Unspent Transaction Output,未花费交易输出)记账:每个"币"是某笔交易的输出,交易花的是"上一笔的输出",产出"新的输出"。这就像现金:一张 100 元拆成两张 50 元,花完就没了,不存在"余额"这种抽象概念。这种模型天然防双花——一个 UTXO 只能被花一次,花完即焚。
💡 关键直觉:UTXO 模型下没有"账户余额"这回事,余额 = 你所有未花费输出的总和。这也让每笔钱都有了清晰的"出身证明",可追溯性由此而来。
| 概念 | 含义 | 对用户的意义 |
|---|---|---|
| 交易池 | 待打包交易的候车室 | 交易未进块前可被替换或超时 |
| 手续费 | 给矿工的报酬 | 费低=排队久,费高=优先打包 |
| 确认数 | 交易所在块之后的块数 | 6 确认是比特币的安全惯例 |
| 双花 | 同一笔钱花两次 | 确认机制是防双花核心 |
| 最终性 | 交易不可逆转的程度 | PoS 链通常"最终性"更快 |
工程上几个实操建议:
⚠️ 常见坑:有些交易所或钱包显示"到账"是内部记账,不是链上确认。判断交易是否真的落账,要看链上浏览器里该交易 ID 的确认数。
交易池(Mempool)不只是"排队列表",它有自己的一套经济学:
费率竞价:矿工按"每字节手续费"从高到低挑选交易打包。高费率交易优先,低费率交易要么等待、要么被"替换"(RBF,Replace-By-Fee,允许同源交易加价替换)、要么超时被清出。
交易池大小:比特币内存池高峰期可堆积几十万笔未确认交易,低费率交易可能等数天。这就是"网络拥堵"的直观表现。
孤儿交易:引用未确认父交易的子交易,会暂时躺在孤儿池,等父交易上链后再被激活。
理解交易池,你就理解了为什么"区块链慢"不全怪共识机制——交易池的排队经济学同样决定了用户体验。Layer2、闪电网络等方案的一个重要动机就是绕开主链的交易池拥堵。
| 维度 | UTXO 模型(比特币) | 账户模型(以太坊) |
|---|---|---|
| 记账单位 | 未花费输出(现金式) | 账户余额(银行式) |
| 余额概念 | 无,由 UTXO 集合推导 | 有,存于账户 |
| 并发处理 | 天然适合并行 | 有顺序依赖 |
| 状态大小 | 线性增长 | 需存所有账户状态 |
| 智能合约支持 | 难(脚本受限) | 好(图灵完备) |
| 可追溯性 | 强(输入链清晰) | 一般 |
选型提示:UTXO 模型适合"货币类"应用(资产清晰、并发高),账户模型适合"合约类"应用(需要复杂状态与逻辑)。不是谁更好,而是谁更匹配业务形态。
不是每笔交易都能顺利上链,理解失败原因有助于排查问题:
| 失败情形 | 原因 | 表现 |
|---|---|---|
| 余额不足 | 输入 UTXO 总额 < 输出+手续费 | 节点拒绝,交易不广播 |
| 双花被拒 | 引用的 UTXO 已被花 | 节点拒绝 |
| 手续费过低 | 费率低于节点最低要求 | 滞留交易池不被打包 |
| 签名错误 | 私钥不对/签名格式错 | 节点拒绝 |
| 网络分叉 | 交易在短链上被回滚 | 已确认后变回待确认 |
排查原则:先看交易是否进入交易池(浏览器搜 txid),再看确认数,最后查是否被回滚。大多数"交易消失"不是真消失,而是被竞争链回滚或超时清池。
把五阶段串起来,就能定位区块链"慢"在哪:
这些瓶颈决定了主链 TPS 的上限,也解释了为什么行业在探索"链下扩容"(闪电网络)、"分层扩容"(Rollup)等方案——不是链不好,是主链的定位就是"安全结算层",不是"高频交易层"。
用一次真实的转账体验,把五阶段串起来。假设你在手机上用钱包给朋友转一笔币:
实操要点:把交易 ID 记下来,在浏览器里跟踪它的状态变化,是理解生命周期最直接的方式。观察"待确认→已确认→确认数增长"的过程,你对"共识""确认"的概念会豁然开朗。
把区块链支付与银行转账放一起对比,能加深对生命周期设计的理解:
| 维度 | 银行转账 | 区块链转账 |
|---|---|---|
| 记账者 | 银行系统 | 全网节点 |
| 验证 | 银行内部 | 全网共识 |
| 到账时间 | 实时/次日 | 分钟级(视确认要求) |
| 手续费 | 固定或按比例 | 用户自定(竞争竞价) |
| 可回滚 | 银行可操作 | 原则上不可 |
| 营业时间 | 工作日/时段 | 7x24 全天候 |
这个对比说明了一个核心差异:银行是"权威裁决",区块链是"共识裁决"——前者快但需信任,后者慢但无需信任。两者各有所长,这也是"链上链下结合"方案(法币稳定币、银行联盟链)流行的原因。
把一笔交易的完整状态机画出来,方便对照实际体验:

这张状态机是理解"确认数"含义的直观工具——状态迁移的每一步都对应生命周期五阶段中的一个环节,对照使用可以快速定位"我的交易卡在哪一步"。
用一张流程清单收拢本节全部要点:
发起:构造交易 + 私钥签名 ↓ 广播:P2P 传播 + 节点基础校验 ↓ 入池:进入交易池,按费率排队 ↓ 打包:矿工/验证者竞争记账权 ↓ 验证:全网校验区块与交易 ↓ 确认:区块上链,确认数递增 └─ 6 确认 → 足够安全(比特币惯例)
这张流程图就是本节的学习地图:五阶段 + 交易池 + UTXO + 确认数,全部浓缩在一张清单里。能在不看书的情况下复述出来,生命周期就真正掌握了。
至此,区块链"内部怎么转"已经清楚了。下一节把镜头拉远,看看区块链有哪些形态——公有链、联盟链、私有链怎么选,以及真实世界里的应用场景。