主页 > imtoken币不见了 > 什么是比特币区块(比特币区块的主要组成部分是什么)

什么是比特币区块(比特币区块的主要组成部分是什么)

imtoken币不见了 2023-04-26 07:52:48

什么是比特币区块

一、区块链整体架构

区块链之所以被称为区块链,是因为它实际上是由包含交易信息的区块前后连接而成的链式结构。 每个区块都是链式结构中的一个环节。 .

为什么块可以来回连接?

因为每个区块都通过一个值(父哈希值,下节会解释)指向前一个区块,依此类推,将区块连接起来形成一条链,可以追溯到创世区块。

这是另一个大规模协作的例子,每个块只需要实现自己的简单规则就可以形成一个复杂的系统。

2. block的整体结构

每个区块主要由区块头和区块体两部分组成。 区块头主要用于存储区块的一些相关属性,区块体用于存储真实的交易数据记录。

一个块前后连接父块和子块,如下图所示:

3.块体

让我们从区块体开始,看看它是如何存储交易数据的。

下面是一个块体的结构图:

区块体包括所有在区块创建过程中产生的、在当前区块中已经验证过的交易记录。 这些记录通过 Merkle 树、根和区块头中的记录的哈希过程生成一个唯一的 Merkle。

什么是默克尔根?

首先了解默克尔(merkle)树,默克尔树是一种哈希二叉树,是一种用于快速归纳和验证大规模数据完整性的数据结构。 这棵二叉树包含加密哈希值,术语“树”在计算机科学中经常用于描述具有分支的数据结构。

在比特币网络中,默克尔树用于汇总一个区块中的所有交易,同时生成整个交易集的数字指纹,为验证区块中是否存在某笔交易提供了一种高效的方式。

生成一棵完整的 Merkle 树需要递归地对哈希节点对进行哈希处理,并将新生成的哈希节点插入到 Merkle 树中以太坊多久能挖一个币,直到只剩下一个哈希节点,这就是 Merkle 树的根。

用人的话来说,默克尔树可以理解为一棵倒过来的树。 这棵树的每个树枝只能分成两个树枝,最终每个最小的树枝上都会挂上两片叶子。

这里的每一片叶子都是一条交易记录,每一个树枝的分叉点就是一个哈希值,每个哈希值都是两个树枝的分叉点或者一个叶子值的哈希值计算出来的。

这些分叉节点的哈希值聚合到上层分叉点,再进行哈希计算,生成哈希值。 以此类推,最终收敛到树根,树根计算出的哈希值就是根哈希值。 通过这种结构,可以快速定位到其中一笔交易。

Merkle树的特点是底层数据的任何变化都会传递到它的父节点,一直传递到树的根。

了解了Merkle树之后,相信大家会对上面的区块结构图有更深的理解。

4.区块头

区块头主要由三组数据组成。 第一组是父块的哈希值,用于连接该块与其前一个块; 第二组数据与矿工竞争挖矿相关,即难度、时间戳和Nonce(随机数); 第三组是我们刚才说的区块体计算出来的根哈希值,也就是默克尔树的根。

这里需要重点理解一个概念,父哈希值是什么?

对区块中区块头的数据进行哈希处理,会产生一个哈希值。 区块头中任何数据的变化都会引起哈希值的变化,因此这个哈希值可以作为区块的唯一标志。

通过这个哈希值,可以在区块链中找到对应的区块,这个哈希值就是后面一个新区块的父哈希值。

这里要注意一点,这个区块不会存储自己的哈希值,只会存储父区块的哈希值,而自己的哈希值会作为子块的哈希值存储在子块中。 父哈希。

因为每个区块的区块头都包含了它的父哈希值,而父哈希值只有一个(因为区块链只有一条最长的链),每个区块通过它的父哈希值可以追溯到创世块(the genesis block)第一块)。

父哈希概念的引入,不仅实现了区块与区块的连接,也保证了区块链不可篡改。

由于区块头包含父区块的哈希值,因此当前区块的哈希值也受此值影响。 如果父块中的数据发生变化,其哈希值也必须发生变化,这样子块就无法再通过原来的父块哈希值与前一个块相连。

因此,如果要改变一个区块的数据,需要重新计算它后面的所有区块。 正是因为这样的重新计算需要巨大的计算量以太坊多久能挖一个币,几乎不可能实现,进一步保证了区块链网络的安全性。

区块头中的第二组数据,难度,时间戳,Nonce,后面讲解挖矿的时候会详细介绍。 这里我们只需要知道区块头包含了这些东西,方便前期建立整体概念。

5、block为什么要设计成这种结构?

block的内部结构基本分析完了,但是大家有没有想过用这种结构设计block的好处呢?

首先,我们要知道区块头是80字节,平均每笔交易至少250字节,每个区块平均至少包含500多笔交易。 因此,一个包含所有交易的完整区块体比区块头大1000倍。

区块链是一个分布式网络,所以数据需要存储在各个节点中,但是比特币网络完整的数据加起来可能有几十上百个G,这不是一个普通终端能承受得起的。 许多比特币客户端被设计为在空间和功率受限的设备上运行。

比如:智能手机、平板电脑、嵌入式系统等,它们不能存储比特币网络的所有数据,怎么办?

这时候就可以看出块结构的巧妙之处了。 比特币网络中的许多节点主要用于验证交易。 他们只需要下载区块头,不需要下载每个区块包含的交易信息。 交易验证将完成。

这样一条不包含交易信息的区块链,体积只有完整区块链的千分之几,大大节省了终端使用的空间。

正是因为区块的内部结构,才可以实现一个终端,只需要通过区块头中的数据就可以验证一笔交易。 这就是简单支付验证(SPV),这样的节点称为SPV节点。

以上就是关于什么是比特币区块的全部内容。 如果您也对金融比特币虚拟货币等感兴趣,可以点击非小金融主页查看更多有趣内容。