Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

比特币区块链的数据结构是什么(比特币区块链的数据结构是什么意思)

区块链 加入收藏
我们回到两个人转账交易的过程中,去理解比特币区块链的数据结构。我发起一笔交易,即我向整个区块链网络广播,我和你两个人想进行这笔交易:我向你的地址中转入一笔比特币,无须你的许可。但只有当这笔交易被打包进
我们回到两个人转账交易的过程中,去理解比特币区块链的数据结构。
我发起一个交易,也就是我向整个区块链网络广播。你我要做这个交易:我在没有你允许的情况下,把一个比特币转到你的地址。
但只有当这个交易被打包成最新的比特币块,这个交易才算真正完成。一般来说,当一个交易所所在的区块之后再加5个区块,也就是包括它本身,总共确认了6次,就可以认为该交易是完全确认的。预计每块比特币的确认时间为10分钟,即一笔交易最终确认需要1小时左右。
这里分两步:首先,将事务打包成候选块,每个节点可以根据规则生成不同的候选块;二是节点挖掘成功,候选区块成功添加到区块链尾部,成为最新正式区块。
那么,把一个事务打包成一个块是什么意思呢?这涉及到区块链最基本的数据结构,也是它不可改变的基础。
下面的讨论可能略显枯燥,但知道比特币和区块链是最基本的知识。我会尽量用通俗的语言解释。
区块链被称为区块链,因为它的数据块是以链式存储的。从第一个区块,即所谓的创建区块开始,新的区块不断连接到前一个区块的后面,形成一个链。
每个块由两部分组成——块头和块数据。其中,块头中的一个哈希指针指向前一个块,这个哈希指针包含了前一个数据块的哈希值。哈希值可以看作是数据块的指纹,即前一个块数据的指纹存储在后一个块的头中。如果前一个块的数据已经被篡改,那么数据和指纹不匹配,就发现了篡改行为。要更改一个块中的数据,必须相应地修改每个后续块。
比特币区块链设计有一种机制,使得这种修改很难发生。后面讲到“工作量证明”和“比特币挖矿”的时候会详细讨论。
块中的数据是打包到该块中的一系列事务。这些事务按照既定的规则打包,形成特定的二叉树数据结构——Merkle trees。根据目前的比特币区块大小,一个区块可以容纳的交易数量约为2000笔,例如第526957个区块包含1804笔交易。
比特币区块链的数据结构包括两种哈希指针,哈希指针是不可篡改的数据结构的基础。一种是形成“块+链”的链式数据结构,另一种是哈希指针形成的梅克尔树(见图1)。链式数据结构使得某块数据的修改很容易被发现;Meckel树的结构也起着类似的作用,可以很容易地发现交易数据的任何变化。

图1:比特币区块链的“区块链”与梅克尔树
图集详情底部广告位