在比特币中,其最基本的数据结构便是一个个区块形成的区块链。
在实际应用中,一整条链可能会被切断分开保存在多个地方。若用户仅仅具有其中一段, 当用到前面部分区块数据时,直接问系统中其他节点要即可,当要到之后, 仅仅通过计算要到的最后一个哈希值和自己保存哈希值是否一致, 可以判断所给内容是否确实为区块链上真实的内容。
在比特币系统中,不同区块通过哈希值指针连接,在同一个区块中的多个交易(数据块), 则通过Markle Tree的形式组织在一起。区块本身分为两部分(块头和块身), 在块头中存在有根哈希值(没有交易的具体信息),块身中存在交易列表。
当需要向轻节点证明某条交易是否被写入区块链,便需要用到Markle proof。我们将交易到根节点这一条路径称为Markle proof,全节点将整个Markle proof发送给轻节点(如下图所示),轻节点即可根据其算出根哈希值,和自己保存的对比,从而验证该交易是否被写入区块链。只要沿着该路径,所有哈希值都正确,说明内容没有被修改过。