
一、先理解系统要解决什么问题
比特币开发者指南将区块链描述为有序、带时间戳的公开交易账本,其重要作用是防止重复花费及历史记录被修改。理解它不能只看某一种算法,而要分清三个问题:记录如何关联、交易如何验证,以及节点如何选择共同认可的历史。
二、密码学哈希:数据摘要而非加密
RFC 6234介绍了SHA-256等安全哈希算法:它们把消息转换为固定长度的摘要,输入变化通常会导致摘要变化;从摘要寻找对应输入或寻找碰撞,在安全假设下应当计算上不可行。

哈希不等于加密,也不能单独证明一笔交易合法。它更像数据的校验标识:帮助判断内容是否一致,但不负责判断内容是否符合交易规则。

三、区块链接与默克尔树:两种关联结构
区块头记录前一区块头的哈希,形成前后相接的结构;区块内的交易标识则通过逐层配对哈希汇总为默克尔根,并写入区块头。前者关联历史,后者汇总交易。
默克尔证明适用于核对某笔交易是否被某个区块收录,但“被收录”不等于已经完成所有有效性检查。理解证明时,需要先明确它究竟证明了什么。
四、UTXO:交易不是简单修改余额
UTXO是未花费交易输出。普通交易引用此前尚未花费的输出,并创建新的输出;同一个输出不能在有效链上重复花费。普通交易输入总额与输出总额的差额构成手续费。
因此,钱包显示的余额是便于理解的汇总视图,而底层验证关注的是具体输出是否存在、是否尚未花费,以及花费是否符合规则。
五、工作量证明与共识:计算不能替代验证
工作量证明要求区块头哈希满足规定的目标阈值,难度按规则周期调整。全节点还会独立检查区块;出现竞争分支时,在有效链之间依据累计工作量进行选择。
这里有两个不同条件:满足工作量要求,不代表区块里的交易必然有效;区块数量更多,也不应被简单等同于累计工作量更大。
六、常见问题:不可篡改是否绝对成立
“不可篡改”更准确的理解是:修改已记录内容会破坏相关哈希关系,而重建竞争历史需要付出工作量成本,并受到节点规则约束。它不是数学意义上禁止任何历史变化。
区块高度也不是全局唯一标识,因为竞争分支可能出现相同高度的区块。阅读区块信息时,应区分高度、区块哈希和所属分支,避免把位置当成身份。