
先确定原理图要表达的范围
“比特币和挖矿的原理图”可能同时涉及交易传播、区块组装、工作量证明、节点验证和分叉选择。绘图前应明确主线:是解释一笔交易如何进入区块,还是解释矿工如何寻找符合目标的区块头哈希。若把所有过程压缩成一条箭头,读者容易误以为矿工直接从钱包中“挖出”比特币,或者认为矿工负责决定所有交易是否合法。
较稳妥的做法是将图分成三层:交易层展示输入、输出和交易费;区块层展示交易集合、默克尔根、前一区块哈希及其他区块头字段;共识层展示节点验证、工作量证明、链的延续和可能出现的分叉。三层之间用明确箭头连接,并标注“数据生成”“验证”或“选择依据”,避免把不同角色的动作混在一起。
区分交易、区块与区块头
交易是被区块收录的数据对象,区块则是包含一组交易及元数据的容器。区块头保存前一区块头的哈希和默克尔根等信息,工作量证明针对的是区块头,而不是把整个区块的全部交易数据直接反复哈希。原理图应把“交易数据”与“区块头”画成两个相邻但不同的模块。
前一区块哈希形成链式连接:后一个区块引用前一个区块的区块头哈希。这样,若修改已确认区块中的交易,通常不仅要重新计算该区块的相关哈希,还要重新处理其后的区块。图中最好从区块头指向下一区块,并明确箭头表示哈希引用,而不是表示交易金额或比特币实体在区块之间流动。
默克尔树和交易数据的画法
区块中的交易标识可以逐层两两组合并哈希,最终得到一个默克尔根,再将默克尔根写入区块头。若某一层出现奇数个哈希,原理图需要说明未配对的哈希会按规则与自身的副本组合;否则,读者可能误以为每一层必须有偶数个节点。
默克尔树的重点是把大量交易汇总为区块头中的一个承诺值,并支持用中间哈希证明某笔交易是否位于某个区块。图中不宜把默克尔根画成“矿工算出的奖励”,也不宜将它与交易输入输出混为一谈。默克尔树负责组织和承诺交易集合,工作量证明负责让区块头满足网络规定的目标,两者作用不同。
工作量证明流程必须标出目标与尝试
工作量证明的核心不是“找到一个固定答案”,而是不断改变区块头中可调整的字段并计算哈希,直到结果低于共识规则规定的目标值。原理图可以画成“组装候选区块—计算区块头哈希—是否低于目标—成功发布或继续尝试”的循环。循环箭头必须回到可变字段或候选区块组装步骤,不能画成一次计算就必然成功。
目标越严格,单次尝试成功的概率越低,平均所需尝试次数越多。矿工成功找到合格区块后,还需要由其他节点检查区块格式、交易有效性、工作量证明以及链式关系;仅仅声称“算出了哈希”并不等于区块会被网络接受。NIST的CSRC词条将Proof of Work列为计算机安全相关术语,而比特币开发者资料进一步将其放在区块验证和共识规则的上下文中,绘图时应把它表现为一种验证条件,而非抽象的“挖掘动作”。
挖矿奖励、交易费与UTXO的边界
比特币交易并不是钱包之间搬运一枚枚实体硬币。交易输入引用此前未花费的交易输出,交易输出在之后可能成为另一笔交易的输入。原理图因此应使用“UTXO被引用并转化为新的输出”的表达,而不是画出比特币从一个钱包图标流入另一个钱包图标。钱包更接近于管理密钥和展示余额的工具,不应被画成区块链中的资金容器。
区块中的第一笔交易是coinbase交易,用于收取区块补贴和所收交易费;它与普通支付交易的输入结构不同。资料还指出,coinbase交易产生的输出需要经过至少100个区块后才能花费。若图中涉及奖励,应标注这是区块有效且被链接受后的记账结果,并区分区块补贴、交易费和普通交易金额,避免把所有收入都称为“挖矿奖励”。
分叉、确认与链选择不能画得过于绝对
两个矿工可能在相近时间发布高度相同的有效区块,从而暂时形成分叉。节点可能先看到不同的区块,随后新的区块连接到其中一侧,使一条分支成为更难重建的链,另一侧的区块则可能变为过时区块。原理图应使用“暂时分叉”“节点验证”“后续区块增强某一分支”等词,而不要简单写成“最先挖到的区块永久有效”。
区块高度表示区块与创世区块之间的位置,同一高度在分叉中可能对应多个区块,因此区块高度不能单独作为全球唯一标识。若需要标识具体区块,应在图例中使用区块头哈希或说明其作用。还应避免把“最长链”机械地解释为字面长度;更准确的表达是节点遵循累计工作量更高、也就是更难重建的有效链。
常见画图错误与自检清单
常见错误包括:把交易直接写入区块头;把整个区块而非区块头画成工作量证明的哈希对象;漏画前一区块哈希;把默克尔根当作单笔交易哈希;把矿工验证所有节点状态写成单一中心服务器行为;把分叉画成永久复制出的两条主链;以及把工作量证明描述成保证交易绝对不可修改。更准确的说法是,链式引用与持续增加的工作量提高了修改历史的成本。
交付前可按以下顺序检查:每条箭头是否标明数据或控制关系;交易、区块、区块头和UTXO是否使用不同图形;哈希的输入和输出是否清楚;工作量证明是否包含目标比较和循环尝试;节点是否执行独立验证;coinbase交易是否与普通交易区分;分叉是否有暂时性和后续选择过程;奖励是否没有被写成收益承诺。若这些边界都清楚,原理图既能适合入门阅读,也不容易制造技术误解。