
先明确“数字结构”的含义
在区块链入门语境中,可以将“数字结构”理解为数据如何组织、关联和验证。学习重点不是记住所有字段,而是回答三个问题:交易记录什么,区块如何连接,节点凭什么接受这些记录。不同链的字段和验证规则并不相同,不能把一种实现当作统一模板。
交易与区块:内容和容器
交易描述一次按协议执行的数据或资产变更;区块将交易组织成有序批次,并引用父区块。交易顺序与区块顺序共同构成可核验的历史。阅读结构时,应区分实际交易内容、概括内容的摘要,以及用于验证的辅助信息。摘要不能代替完整内容。
比特币:从交易输出到默克尔根
比特币开发者指南介绍了两类关联:普通交易输入引用先前的交易输出,区块头则引用前一区块头的哈希。可被花费的输出称为UTXO,同一输出不能重复花费。区块内的交易标识逐层配对哈希,最终形成写入区块头的默克尔根。
这意味着,追踪交易来源与追踪区块历史是两项不同任务。默克尔路径可以帮助核验一笔交易是否被某区块收录,但收录证明本身不等于对交易合法性和整条链有效性的完整验证。
以太坊:理解交易执行后的状态
以太坊官方区块说明区分了共识相关信息与执行载荷。执行载荷包含交易,执行这些交易会更新全局状态;执行层状态根用于概括执行后的状态。验证时需要检查执行结果是否与声明一致,而不是只检查区块是否连接。
理解这里的关键是区分“发生过什么”和“执行后是什么”。交易历史记录变化过程,状态表示相应时点的结果。交易摘要与状态摘要对应不同对象,不能因为都表现为哈希就互相替代。
常见问题与适用边界
哈希相连是否意味着绝对不可修改?不是。哈希引用使修改留下可检测的不一致;要让改写后的历史被接受,还取决于共识和验证规则。比特币的工作量证明与以太坊的权益证明不能混为一谈。
区块高度能否唯一标识区块?比特币可能因分叉出现同高度的不同区块,因此高度不适合作为全局唯一标识。入门时可按“交易内容、区块组织、摘要关联、验证规则”的顺序理解结构,遇到具体字段再确认所属链与协议版本。