MSTR Cat

区块链/等级 III · 网络/3.1 节点/课程 7

共识规则与验证

将区块转化为货币的规则列表

材料公共区块浏览器BIP141规范可选:一个 Bitcoin Core 节点

好奇

  1. 是什么阻止了算力最强的矿工无限印币?
  2. 为什么你的节点拒绝转发的交易仍能出现在有效的区块中?
  3. 如果共识代码发生变化,是否所有人都必须在同一时刻进行升级?

探索

  1. 共识规则是每个全节点用来验证区块的严格标准。它们定义了在技术上什么是可能的:发行计划、4,000,000单位的区块权重上限、工作量证明难度以及签名有效性。任何违反哪怕一条规则的区块,都会被所有诚实节点拒绝,无论产出它投入了多少算力。矿工负责提出区块,节点决定它们是否算数。这种分离确保了没有任何实体能够单方面改变账本的状态。
  2. 策略规则(policy)决定了交易在被打包之前,节点会向对等节点转发哪些内容。这些规则包括粉尘阈值、最低中继费率以及标准脚本类型。违反策略的交易会被大多数节点丢弃,但如果矿工将其打包进区块,它仍然有效。这一区别很重要:依靠策略拦截来保障安全是有风险的,因为执意行事者可以绕过节点的过滤,直接将交易提交给矿工;只要这些非标准交易满足共识规则,网络就不得不接受它们。
  3. 代码即规范。规则就是被广泛运行的节点软件实际执行的那一套,连边缘情况也包括在内。正因如此,共识代码的修改非常缓慢,所受审查也比 Bitcoin Core 中其他任何部分都更严格。共识漏洞会被当作紧急事件处理:2010年的数值溢出漏洞和2018年的通胀漏洞,都是在压力之下通过协调发布修复的。
  4. 对这些规则的修改需要各方协同实施。软分叉会收紧规则,因此未升级的节点仍能接受新区块;而硬分叉则会放宽或改变规则,这样一来所有节点都必须升级,否则就会脱离网络。后续课程将详细讲解这两种分叉方式。SegWit(2017年8月)属于软分叉;比特币现金则是在关于区块大小限制的争议中通过硬分叉产生的。
  5. 产出一个区块成本高昂,验证一个区块则成本低廉。产出无效区块的矿工会损失奖励和所耗费的能源,因为每个执行验证的节点都会丢弃该区块,这使得违反规则成为一场代价高昂的赌博。这种成本进一步强化了验证的严格性:网络的安全依赖于数千个独立节点检查每一个区块头和每一笔交易,从而确保没有任何单点故障能够破坏共享状态。
  6. 打开 mempool.space 或 blockchain.com 等区块浏览器,选择任意一个最近的区块,查看其“weight”(权重)字段。将该数值与 BIP141 中规定的 4,000,000 权重单位上限进行比较。观察如今的区块离这一上限有多近,这反映出矿工在遵守每个节点都会执行的共识约束的前提下,力求让每字节的收益最大化。

关键事实

  • 共识规则决定了区块的有效性;策略规则则规定了交易的中继方式。
  • 在 SegWit(BIP141)下,区块权重上限为 4,000,000 单位。
  • Coinbase 输出需经过100次确认后才能花费。
  • SegWit于2017年8月在第481,824个区块通过软分叉方式被启用。
  • 共识代码的审查比其他代码更为谨慎,因为任何差异都可能导致链分裂。
  • 非标准交易虽然会被中继节点丢弃,但若被矿工打包进区块,仍然是有效的。

练习 九、六、三、一

9收集列出 Bitcoin Core 对新区块头或交易执行的9项具体验证检查。
6归类将这9项检查分为6类:结构完整性、经济限制、密码学有效性、时间约束、状态转换以及网络参数。
3提炼将这6类归纳为共识规则所防范的3种危害。
1凝结用一句话解释:为什么无论矿工意图如何,节点拒绝一个区块的决定都是最终的。

事实核查

日期、数字及数据均依据下方列出的已发表资料进行核实。

在互动学院中打开 →

EN PT ES JA KO RU DE FR MS