文储研习社第09期 | 区块链基础架构简析

文储研习社是文储区块链技术人员自发组织的学习交流社区,旨在于追踪区块链时下最新热点,解码热点蕴含的未知领域,享受思想交流的碰撞,欢迎志同道合的小伙伴加入我们,共同学习与成长,长按下面二维码可入群交流。

第09期:区块链基础架构简析

作者:小范

在之前的文章中我们有讲到区块链就是一个去中心化的账本。但是这个分布式的账本与我们日常中的账本有相似点,也有很大的不同,下面我们简单介绍一下:

去中心化的账本是什么样子?

有着怎样的结构?

为什么要叫做区块链?

区块链顾名思义是将区块“链”起来的数据结构,区块中存储交易的信息;而‘链’是通过将前一个区块的哈希值记录在本区块中,让每一个区块都有时间上的关系,从而形成一条链。由此看出,区块是真实存在的,而链是我们脑补的。


那么我们只要了解区块的内部结构,就能对分布式账本有更清晰的认知。

首先,区块中的账本是通过merkle tree(默克尔树)这种数据结构进行存储的,下图就是一个默克尔树的基本结构:

计算机中的树型结构和我们生活中的树是上下颠倒的。我们可以看到交易数据在‘树叶上’,这些树叶通过两两求哈希值,一直推导到树的根部。

求哈希可以看作是给数据制定一个身份证号,我们可以粗略的认为只要输入的数据不同,那么得到的哈希值肯定不同。利用这个属性,我们只要保留‘树根’的哈希值,就可以验证整个树的数据是否变动过,因为如果树有一点不一样,我们都不能得到相同的哈希值。

然而这样的数据结构会占用一定的空间,我们把这个完整的树叫做区块体。保存了所有区块体的节点叫做全节点,但有时我们不需要所有的数据,那么我们可以同步一个轻节点。

从图中可以看出,区块除了区块体,还包含一个区块头,区块头里面有前一个区块头的哈希、时间戳、随机数、目标哈希以及树根的哈希值。当然这个是传统的区块链结构。目前有很多新的区块链项目在区块中包含的元素会不同,但都大同小异。区块头中的数据量会小很多,轻量节点可以不需要同步之前的交易信息,只同步区块头,也可以用于数据的验证。

以上就是传统的区块结构,从逻辑上讲是很简明的。不论是出块还是求根哈希值,主要用到的技术是哈希的计算。存储的内容也十分简单,主要包括时间,前一区块的哈希(链),以及交易信息。

猜你喜欢

转载自blog.csdn.net/wenchujiaoyu/article/details/125116051