
先理解结构图表达什么
简化的区块链结构图通常表达三层关系:交易被组织进区块,区块通过前一区块的哈希引用连接,节点依照规则验证并选择认可的历史。图中的箭头表示数据引用关系,不代表资金沿区块之间的连线移动。
比特币开发者指南重点解释交易、区块头和工作量证明;以太坊开发者文档还涉及执行交易后的状态与权益证明。这些概念有共同用途,但字段和验证方式需要放回各自协议中理解。
区块、区块头与哈希
区块是组织交易等协议数据的单位。区块头保存用于识别、连接和验证区块的关键信息,详细交易数据则位于相应的数据部分。简化图可以帮助理解这种分工,但不能代替具体协议的数据格式。
哈希可理解为数据的指纹:数据改变,计算结果通常也会改变。后继区块引用前一区块的哈希,使历史修改能够被检测。不过,哈希本身不能阻止重写,历史保护还依赖共识机制及其安全条件。
默克尔根与状态根
比特币把交易标识逐层配对并计算哈希,最终得到存入区块头的默克尔根。它把一组交易关联到一个摘要,配合中间哈希,可以验证某笔交易是否包含在对应区块中。
状态根关联的是特定状态数据。以太坊执行交易会更新状态,因此阅读结构图时,应区分描述交易集合的根与描述执行后状态的根。两者都采用哈希组织数据,却回答不同问题。
交易输入、输出与UTXO
在比特币的交易模型中,普通交易输入引用此前尚未花费的输出,UTXO就是未花费交易输出。同一输出不能在有效链上重复花费,这也是理解双重支付的起点。
这套术语适用于比特币等采用相应模型的系统。解释以太坊时,需要结合账户、交易执行与状态变化,不能直接把UTXO当成所有区块链通用的账户余额结构。
高度、分叉与常见疑问
区块高度描述区块在链中的位置。出现分叉时,不同区块可能具有相同高度,因此高度不能作为全局唯一标识;识别具体区块通常需要区块哈希。
链越长就一定被接受吗?比特币在有效候选链之间比较累计工作量,不能只数区块。以太坊采用不同的权益证明规则,不能直接套用比特币的选链解释。
证明交易被包含,是否就证明交易有效?包含证明只说明交易与某个区块摘要的对应关系;交易有效性、区块有效性及其是否属于认可历史,还需要相应验证。