
区块链是怎样的账本
比特币区块链可以理解为由网络节点共同维护的、按顺序连接的交易记录。完整节点各自保存并验证区块,依照共同的共识规则判断区块和交易是否有效。多个节点认可相同的有效区块序列时,网络在这些记录上达成一致。
“分布式”不代表每个节点都必然拥有相同数据或不会发生短暂差异;节点需要通过验证规则和后续区块的扩展来处理竞争中的记录。区块链的防篡改特性也不是说数据在数学上绝对无法更改,而是修改已确认记录通常会受到哈希链接和工作量证明机制的制约。

哈希、区块头与默克尔树
哈希函数把输入数据映射为固定长度的摘要。输入发生变化时,得到的摘要通常也会显著改变,因此哈希可用于检查数据是否与原记录一致。比特币区块头包含前一个区块头的哈希,使区块依次相连;若要改动较早区块中的交易,相关区块及其后续链接也会受到影响。

区块内的交易哈希可以通过两两组合、继续哈希的方式构成默克尔树,最终得到默克尔根,并将其写入区块头。默克尔树把大量交易汇总为一个摘要,也支持通过中间哈希证明某笔交易属于相应区块,而无需取得区块内全部交易数据。它提供的是可验证的包含关系,不等同于单独证明交易在任何场景下都有效。
交易、输入输出与UTXO
比特币交易不是简单地把账户余额从一个账户搬到另一个账户。交易会引用此前交易产生的输出作为输入,并创建新的输出。尚未花费的交易输出称为UTXO;有效交易需要使用可花费的输出,且同一个输出不能被重复使用。重复花费同一输出会构成双重支付尝试。
交易输入与输出的价值关系也有助于理解手续费:通常,输入总额高于输出总额的差额可作为手续费,由包含该交易的区块获得。具体交易是否有效,还取决于签名、脚本条件及其他共识规则,不能仅凭金额关系判断。
工作量证明与难度
比特币使用工作量证明来决定哪些区块有资格被网络接受。矿工反复改变区块头中的可变数据并计算哈希,尝试得到低于目标值的结果。哈希结果难以预先预测,因此达到目标通常需要大量尝试;其他节点则可以较容易地检查结果是否符合目标。
这种机制让修改历史记录需要重新完成相关工作,并与之后区块的工作量竞争。区块头中的时间信息也参与难度调整,使网络能根据一段时期内区块生成速度调整目标。工作量证明描述的是共识机制及其计算过程,并不意味着所有区块链都采用相同机制。
共识规则、分叉与确认
工作量证明不能取代共识规则。节点还会检查区块格式、交易有效性以及其他协议条件;不符合规则的区块不会因为工作量较大就自动成为有效区块。节点可能暂时收到不同的有效区块,并形成短暂分叉。后续区块通常会使其中一条累计工作量更大的链成为节点继续跟随的链,另一条分支上的区块则可能不再被主链采用。
因此,区块高度不一定能唯一标识区块:分叉期间,不同区块可能处于相同高度,区块哈希更适合作为具体区块的标识。随着后续区块增加,交易记录被重组的难度通常上升,但“确认”表达的是风险随链增长而降低,并非绝对不可逆。
适用范围与常见问题
问:区块链是否等于加密货币?答:不是。区块链是一类分布式账本技术,比特币是其具体应用之一;其他系统可能采用不同的参与方式、共识机制和数据规则。
问:哈希加密了交易内容吗?答:哈希用于生成数据摘要和支持校验,本身不等于加密,也不负责隐藏交易内容。比特币公开账本中的数据可供网络参与者验证。
问:这些概念能否直接套用到所有区块链?答:只能作为理解比特币相关机制的基础框架。默克尔结构、交易模型、共识规则和分叉处理方式会因系统设计而异;讨论具体项目时,应以其协议文档和实现为准。