主页 > 海外版imtoken > 比特币区块链的数据结构是怎样的?

比特币区块链的数据结构是怎样的?

海外版imtoken 2024-01-26 05:15:53

让我们回到两人之间转账的过程来理解比特币区块链的数据结构。

我发起一个交易,就是我向整个区块链网络广播,你我要进行这个交易:我在没有你允许的情况下转一个比特币到你的地址。

但交易只有在包含在最新的比特币区块中时才真正完成。 一般来说,当一笔交易所在的区块后面加上5个区块,即包括自己在内一共6次确认比特币是什么链的,就可以认为这笔交易已经完全确认。 据估算,比特币每个区块的确认时间为10分钟,即一笔交易最终确认需要1个小时左右。

这包括两个步骤:首先,将交易打包到候选块中,每个节点可以根据规则生成不同的候选块; 第二,节点挖矿成功,候选区块成功添加到区块链末尾。 成为最新的官方区块。

那么,将交易包含在区块中意味着什么? 这就涉及到区块链最基本的数据结构,这也是其不可篡改的基础。

下面的讨论可能有点枯燥,但这是比特币和区块链最基础的知识。 我将尝试用通俗易懂的语言来解释它。

区块链之所以称为区块链,是因为它的数据块存储在一条链上。 从第一个块开始,即所谓的创世块,新块不断地连接到前一个块以形成链。

每个区块由两部分组成——区块头和区块数据。 其中,区块头中有一个指向上一个区块的哈希指针,这个哈希指针包含了上一个数据块的哈希值。 哈希值可以看作是数据块的指纹,即前一个块数据的指纹存储在后一个块的头部。 如果前一个区块中的数据被篡改过,数据和指纹就不会匹配,篡改就会被发现。 要更改一个块中的数据,必须相应地修改每个后续块。

比特币区块链设计有一种机制使得这种修改很难发生,这个我们后面讲“工作量证明”和“比特币挖矿”的时候会详细讨论。

一个区块中的数据就是打包到这个区块中的一系列交易。 这些交易按照既定规则进行打包,形成特定的二叉树数据结构——默克尔树(Merkletrees)。 根据目前比特币区块的大小,一个区块可以容纳的交易数量约为2000笔,例如第526957个区块容纳1804笔交易。

比特币区块链的数据结构包括两个哈希指针比特币是什么链的,两者都是不可篡改特性的数据结构基础。 一种是形成“区块+链”的链状数据结构,另一种是由哈希指针组成的默克尔树。 链状数据结构,很容易发现某个区块中数据的修改; Merkle树的结构起着类似的作用,可以很容易地检测到其中任何交易数据的修改。