
分布式账本记录什么
btc区块链资产涉及哪些技术概念,可以围绕三个问题理解:哪些输出尚可花费,交易怎样进入账本,以及节点如何认可同一份历史。这里讨论的是比特币基础链上的BTC记录机制。
NIST的区块链技术概述将区块链描述为分布式实现、能够显露篡改且抵抗篡改的数字账本。这说明“难以篡改”需要结合网络正常运行等条件理解,不能直接等同于任何情况下都不可改变。

UTXO与交易输入输出
比特币开发者指南介绍了未花费交易输出,即UTXO。普通交易以此前的输出为输入,再形成新的输出;已被有效花费的同一输出不能再次花费,这是理解双重花费限制的基础。

因此,理解资产状态时,需要关注可用输出及其花费关系。钱包显示的余额是便于用户理解的结果,底层账本记录的是交易之间的关联。普通交易的输入总额与输出总额之差,可作为手续费由打包区块的矿工领取。
哈希、区块头与默克尔树
哈希将数据映射为摘要,使内容变化能够被检查。区块头引用前一区块头的哈希,从而形成链式关联;交易则通过默克尔树汇总到区块头中的默克尔根。
这两种关联承担不同作用:前者连接历史区块,后者关联区块与其中的交易。检查一笔交易是否被某区块收录,与检查这笔交易是否满足全部有效性规则,是不同层次的问题。
工作量证明与共识规则
工作量证明要求区块头哈希达到规定目标。矿工需要反复尝试,而全节点依据共识规则独立验证区块。工作量证明达标只是区块有效的必要条件之一,不能替代交易规则检查。
理解这套机制时,应将提出区块和验证区块区分开。矿工形成候选记录,节点检查记录;共识规则则为检查提供共同标准。
常见问题与适用边界
区块高度能唯一识别区块吗?不能。临时分叉中可能出现高度相同的不同区块,因此区块通常通过区块头哈希标识。在有效分支之间,节点依据累计工作量选择链。
交易被收录是否意味着绝对不会改变?不能这样理解。分叉可能引起链重组,后续区块累积会增加改写历史所需的工作量,但不构成无条件保证。
轻量验证是否等同于全节点验证?不等同。默克尔证明可用于检查交易收录关系,其证明范围不包含全部共识规则。解释验证结果时,需要明确究竟检查了收录关系,还是完整的交易与区块有效性。