光电 · 技术与产业
文章库关于本站

研究资料

老程序员谈区块链技术有哪些常见问题:共识、分叉与验证边界

摘要

从工程视角理解区块链,需要分清数据关联、独立验证与共识选择的职责。本文围绕共识机制、历史修改、分叉、双重支付和交易证明等常见问题,解释比特币与以太坊相关机制的适用范围。

区块链供应链溯源的科技主题配图

共识是否就是所有节点同时拥有相同数据

区块链网络存在传播延迟,不同节点可能先收到不同区块。理解共识时,需要分别考虑区块是否符合规则,以及多个有效候选中应沿哪条分支继续。短暂看到不同链头,并不直接说明系统失效。

以太坊开发者文档将共识机制解释为协议、激励与相关规则的整体,权益证明只是其中一部分;分叉选择还需要依据验证者证明及其权益权重。这说明,讨论共识不能只停留在机制名称上。

区块链数字身份的科技主题配图

用了哈希,历史记录就绝对不能修改吗

比特币开发者指南说明,区块通过前一区块头的哈希相连,交易还通过默克尔树关联到区块头。改变历史交易会影响相关哈希及后续链接;节点独立验证,并在有效候选链中依据累计工作量选择链。

比特币挖矿散热的科技主题配图

哈希使改动能够被发现,而让修改后的历史获得网络接受,还涉及共识规则与资源成本。因此,“不可篡改”应理解为有条件的安全性质,不能据此推断任意一份本地数据都无法被改写。

最长链是否就是区块数量最多的链

在比特币的工作量证明语境中,判断依据是累计工作量,不能只数区块。这个选择规则也有前提:候选区块必须满足验证规则。累计工作量不能替无效交易取得合法性。

以太坊权益证明采用不同的分叉选择机制,不能把比特币的判断方法直接移植过去。阅读技术方案时,应明确所讨论的网络及其规则。

区块高度能否作为唯一标识

同一高度可能出现不同区块,例如两个出块者接近同时产生候选区块。因此,高度适合表达位置,区块哈希更适合标识具体区块。

应用记录处理进度时,如果只保存高度,就可能遗漏该高度对应区块已经变化的情况。需要追踪分叉的系统,应结合区块哈希识别链上历史变化。

交易被打包,是否就完成了所有验证

交易包含证明回答的是某笔交易是否属于某个区块,并不单独证明该区块最终会留在所采用的链上。处理链上事件时,需要区分交易被包含、区块有效与链选择结果。

比特币防止双重支付还依赖未花费交易输出规则:同一输出不能在链上重复花费。这个例子体现了验证的分工——数据结构证明关联关系,交易规则检查花费是否合法,共识机制协调网络采用哪段有效历史。

← 返回全部文章

延伸阅读 · 相关栏目

光电技术产业观察研究资料资料与核验