绘制比特币工作原理图,核心需要完整呈现用户发起交易、P2P网络广播、内存池暂存、矿工打包区块、工作量证明挖矿、全网节点校验、区块链式存储这一整套闭环链路,同时标注私钥签名、默克尔根、区块头字段、UTXO未花费输出这些关键技术模块,顺着交易流转的先后顺序布局图形,就可以得到逻辑严谨的比特币工作原理示意图。绘图时不要把挖矿和交易混为一谈,要区分网络层、交易层、区块数据层三个层级,从左侧用户钱包作为起点,向右依次串联各个流程节点,区块部分纵向展示链式相连的结构,能够让看图的币圈用户快速读懂比特币不靠中心化机构,依靠密码学和分布式节点完成记账的底层逻辑。

原理图最左侧区域,需要画出多个钱包用户模块,标注私钥签名、公钥地址,体现交易发起的源头。用户发起转账时,钱包使用私钥对交易信息做数字签名,证明交易归属权,交易数据包含输入、输出、转账金额、交易手续费,之后将签名完成的交易推送至P2P对等网络。图形上用箭头把钱包指向网络节点集群,画出多个互相连通的节点方框,代表比特币全球分布式节点网络,交易在这里以泛洪方式传播,各个全节点会独立校验这笔交易,核对签名有效性、UTXO余额是否充足,排除双重花费的无效交易,校验通过的交易,会流入每个节点本地的内存池,也就是待确认交易池,这一步要在图上标记内存池方框,用来存放还没有被打包进区块的交易,网络拥堵的时候,手续费低的交易会长期滞留在这里。

原理图中部是矿工打包与工作量证明挖矿部分,从内存池引出箭头指向矿工节点,矿工优先选取手续费率更高的交易组装候选区块,区块分为区块头和区块体两部分,区块体内存放收集到的多笔交易,所有交易通过默克尔树运算生成默克尔根哈希值存入区块头。绘图要把区块头单独拆解出来,标注版本号、上一区块哈希、默克尔根、时间戳、难度目标、随机数Nonce这五个核心字段,这是整张原理图的技术干货重点。矿工不断修改Nonce数值,反复进行SHA256哈希运算,暴力求解满足难度条件的哈希结果,也就是工作量证明,找到有效结果之后,矿工把完整新区块向全网广播,这一过程平均耗时十分钟,图上用循环箭头体现反复试算哈希的挖矿过程,直观展示挖矿本质是密码学谜题的暴力计算。

原理图右侧重点绘制区块链链式结构,全网其他节点收到新区块之后,再次独立校验区块内全部交易和工作量证明结果,校验无误,就会把这个区块追加到本地区块链的末端。绘图上依次排列区块1、区块2、区块3,每个区块通过“上一区块哈希”的指针指向前一个区块,形成环环相扣的链条,一旦修改任意一个旧区块内的交易数据,该区块哈希就会全部改变,后续所有区块的哈希全部失效,以此体现区块链不可随意篡改的特性。交易写入区块代表获得第一次确认,后续每新增一个区块确认数累加,行业普遍参考6次确认作为交易基本不可逆的标准,图上可以标注确认次数提示。原理图的边角位置可以补充UTXO集合模块,说明比特币不记录账户余额,只记录未花费交易输出,钱包余额是通过汇总UTXO计算得出,补齐整套运行逻辑。
实际绘图过程中,要规避过于晦涩的代码符号,优先用方框、箭头、简短文字标注,区分实线代表数据流转,循环虚线代表挖矿反复计算。新手绘制不要只画区块链条,忽略交易从钱包到网络、内存池、矿工的完整前置流程,很多简易示意图只展示区块相连,缺失交易生成与广播环节,会导致看不懂比特币完整运行逻辑。币圈从业者做科普示意图,还可以简单标注出coinbase挖矿奖励交易,每个区块第一笔交易是给矿工发放奖励的特殊交易,没有交易输入,让原理图信息更加完整,整套图形顺着交易发生、传播、打包、共识、链式存储的逻辑排布,就能完整还原比特币点对点电子现金系统的底层运行逻辑。
