Gerrad Zhang
比特币网络实际运行:节点、矿工与一笔交易的一生

比特币网络实际运行:节点、矿工与一笔交易的一生

UTXO 是账本格式,PoW 是共识规则,白皮书是蓝图。本文看这台机器实际怎么运转:谁来运行节点、手续费市场如何运作、一笔交易从签名到 6 个确认经历了什么。

Gerrad Zhang
分布式网络
2 min read

引言:从原理到运行

前三篇笔记回答了三个「是什么」:

但原理和实际运行之间还有一段距离:这个网络每天真实地在转谁的钱?谁在维护它?一笔交易从你的钱包发出,到被写入历史,中间经历了什么?

本文就是这一段距离。理解了它,阶段 1(Bitcoin)才算真正收官。


01 节点:比特币网络的身体

Bitcoin 没有服务器机房,没有总部。它的「身体」由成千上万台 voluntarily 运行的节点组成。

全节点:自己验账的人

全节点 下载从创世区块开始的全部区块数据(600 GB 上下),并从第一笔交易开始独立验证每一条规则:

  • 每笔交易的签名是否正确
  • 每个区块的 PoW 是否达标
  • 没有通货膨胀、没有双花、难度调整是否合规

验证完成后,全节点拥有的是一份不信任任何人得出的账本副本。这就是「不要信任,去验证」(Don’t trust, verify)的含义——全节点是这句话的物理载体。

三种常见变体

类型存什么验什么信任假设
全节点全部区块一切规则不信任任何人
Prune 节点验证全量,只留近期区块一切规则不信任任何人
SPV 轻节点只存区块头(每个约 80 字节)PoW + 难度信任「多数算力是诚实的」

SPV(Simple Payment Verification)轻节点是手机钱包的主流形态。它用 Merkle 证明确认「某笔交易确实在某个区块里」,但不验证区块里的其他交易是否合法——把「区块本身合法」这件事外包给了全节点。

挖矿节点

矿工的核心工作是出块(下一节),但多数矿工本身不保留完整账本——他们通常连接到矿池的全节点,只负责哈希运算。矿工负责生产历史,全节点负责审计历史,这是两种不同的角色。


02 内存池与手续费市场

一笔签名好的交易被广播后,去哪儿了?

答案是各节点本地的 内存池 (mempool)——一个「候车厅」,存放已通过基础验证、等待被打包进区块的交易。

手续费 = 对区块空间的竞价

每个区块的容量有限(权重上限约 4M 单位,常规支付一区块约能装数千笔),而转账需求是波动的。于是形成了一个纯粹的自由竞价市场

  • 矿工按费率(sat/vByte)从高到低挑选交易——同样的容量,装费率高的更划算
  • 你出价高 → 下一两个块就被打包;出价低 → 在候车厅排队,甚至被挤出
  • 费率由市场决定,没有任何官方定价——拥堵时每笔几美元,空闲时几美分

一笔已广播但未确认的交易,还可以用 **RBF(Replace-By-Fee)**加价替换——相当于在候车厅改签一张更贵的票。


03 一笔交易的一生

把前面所有角色串起来,看一笔转账的完整旅程:

你的钱包                     全节点网络                    矿工
   │                            │                         │
   │ 1. 构建交易:消耗自己的      │                         │
   │    UTXO,创造收款方 UTXO     │                         │
   │    + 找零 UTXO,签名        │                         │
   │                            │                         │
   │──── 2. 广播交易 ──────────▶ │                         │
   │                            │ 3. 验证签名/双花后       │
   │                            │    放入各自内存池        │
   │                            │──── 4. 转发 gossip ────▶│
   │                            │                         │
   │                            │              5. 按费率挑交易
   │                            │                 打包进候选区块
   │                            │                 竞争 PoW 哈希
   │                            │                         │
   │                            │ ◀── 6. 某矿工找到解,     │
   │                            │      广播新区块           │
   │                            │                         │
   │                            │ 7. 全节点独立验证区块:   │
   │                            │    PoW 达标?交易合法?  │
   │                            │    无双花?→ 链上去      │
   │                            │                         │
   │ ◀─ 8. 1 个确认。此后每新出   │                         │
   │      一个区块 +1 确认        │                         │

几个关键点:

第 1 步呼应第一篇:钱包本质上是在花你名下的特定 UTXO,找零也是一笔新 UTXO,矿工费是输入输出的隐式差额。

第 5 步呼应第二篇:矿工对「区块头 + Nonce」做双重 SHA256,直到结果小于目标值——全网每 10 分钟平均有一个幸运儿。

第 7 步是常被忽略的一环:矿工说「我挖出了这个块」不算数,全节点验证通过才算数。一个包含非法交易的区块(比如凭空铸造 100 BTC)会被所有诚实节点直接拒绝——矿工白白浪费了电力。

第 8 步:你的交易进入第 N 个区块后拥有 1 个确认;此后每再出一个区块,确认数 +1。确认数越多,推翻它需要重挖的区块越多,攻击成本呈指数级上升。


04 挖矿现状:为什么你该加矿池

Solo 挖矿的残酷数学

以 2024 年全网约 600 EH/s 的算力为例:你有一台 100 TH/s 的矿机,你的算力占比约 1.7×10⁻⁷。全网每天出约 144 个块,你的矿机平均要运行约一个世纪才能独立挖到一个区块——大概率在出块之前,矿机已经报废或淘汰。

这就是 矿池 存在的原因:成千上万矿工把算力聚合到一个地址出块,按各自贡献的算力份额(share)分配区块奖励。矿池把「百年一遇的彩票」变成了「每天稳定的现金流」——代价是支付一小部分手续费,以及矿池层面算力集中的争议。

难度调整:2016 块一次的自动校准

协议每 2016 个区块(按 10 分钟目标约两周)检查一次实际出块速度:

  • 上个周期出快了 → 难度上调
  • 出慢了(算力退出)→ 难度下调

这个反馈回路让「平均 10 分钟一个块」在算力暴涨万亿倍的十几年里始终成立——不依赖任何人调节,纯代码自动运行。


05 常见误区澄清

「6 个确认」是协议规则吗? 不是。它是白皮书概率分析推导出的行业惯例(交易所普遍采用),6 个确认后攻击者追上的概率已低于 0.1%。小额支付等 1 个确认即可,大额可以等更多——它是一个连续的风险光谱,不是非黑即白的门槛。

确认数 = 绝对安全? 安全性是概率性的:确认数越多,被推翻的概率指数衰减,但理论上永不归零。

我跑全节点能赚币吗? 不能。挖矿赚钱,验证花钱。但验证本身是网络去中心化的根基——这也是「运行自己的节点」被社区反复倡导的原因。

内存池里的交易一定确认吗? 不一定。费率过低可能在高峰期被挤出池子,最终仿佛「消失」——钱包重新广播或加 RBF 费率通常能找回它。


总结:阶段 1 收官

至此,比特币的全貌拼完了:

  • 数据结构:UTXO——钱是不可拆分的硬币,销毁旧币、创造新币
  • 共识规则:PoW + 最重链——算力竞争决定谁来记账
  • 网络运行:全节点验证、矿工出块、内存池竞价、难度自动校准

用一句话收束阶段 1 的核心问题——「能不能用数学代替机构」:比特币证明了可以。价值转移不再需要任何人的背书。

但它也留下了边界:账本只能「记账」,不能「计算」。如果我想让规则本身自动执行——「到期自动付款」「条件触发交割」——比特币的 Script 语言力不从心。

这就是下一阶段的起点:Ethereum ,一台把账本升级为「世界计算机」的机器。阶段 2,见。


相关文章:

Comments

Link copied to clipboard!