区块链技术数据层 五分钟了解区块链架构的数据层

入门知识 4个月前 (02-22) 35次浏览 0个评论

市面上能看到的区块链技术应用场景大致可以分为三类:

·数字货币(数字人民币、加密货币)

· Token(即“token”,暂时理解为token)

·区块链+产业(溯源链、供应链金融、存管链……)

那么它们是如何实现的呢?

事实上,任何区块链应用场景都是基于区块链架构,从底层技术发展到应用层,通过层层嵌套和封装来实现的。

区块链基础设施

今天,我们来认真的看一下区块链的数据层。

数据层

数据层是最底层的技术,它包括两个功能:数据存储、账户和交易实现和安全。

在前面的内容中,我们已经讲解了哈希函数、非对称加密技术、时间戳。接下来,我们将讨论数据块、链式结构、Merkle 树,以及它们之间的关系。

(了解哈希函数和非对称加密技术,请参考上一篇《如何通俗易懂地理解区块链》)

(了解时间戳请参考上一篇《区块链时间戳有什么作用》)

默克尔树

默克尔树(Merkle tree,也称为哈希树)由根节点、中间节点和叶节点组成。它的形状是这样的:

这里我们参考前面提到的一个公式:散列函数H接受任意大小的消息x区块链技术数据层,但输出有限大小的消息x,并输出一个固定大小的散列值h,即h=H(x)。

x1=A向B转账10元 h1=

x2=A向B转账10元 h2=

叶节点表示存储的信息,即x;

中间节点表示存储信息的哈希值,即H(x);

根节点是所有中间节点的哈希值。

老办法,还是以转账为例:

x1=A向B转账10元,哈希值记为h1

X2=B向C转账10元,哈希值记为h2

X3=C 向 D 转账 10 元,哈希值记为 h3

X4=D转10元给E,哈希值记为h4

那么如何使用 Merkle 树来存储这条数据信息呢?首先将h1、h2作为存储信息Xa,然后将h3、h4作为存储信息Xb。

Xa=h1&h2 哈希值记为 Ha

xb=h3&h4 哈希值记为 Hb

然后取 Ha 和 Hb 作为存储信息 Xn。

Xn=Ha&Hb 哈希值记为 Hn

如果要存储无限量的信息怎么办?然后以此类推。或许,有的朋友可能会有疑问,为什么存储两条信息,三条还不够呢?四块钱好吗?……

也许吧,但是存储数据的目的不仅仅是为了防止篡改,也是为了方便查询。

Merkle树采用二叉树的结构,你只需要知道这个结构决定了存储路径,查询数据非常方便。说完默克尔树,再来说说数据块和链式结构

数据块链结构

数据块被简单地认为是区块链的“块”部分,但它是数字化的。数据块由块头和块体组成。区块头包含前一个区块的哈希值。以及连接前一个块和下一个块的数据信息。

链式结构是将保存前一个块的哈希值的每个数据块链接起来。

结构图参考如下:

这里如何理解目标哈希和随机数?

目标哈希是该区块中存储信息的哈希值,可以作为参考值。

试想一下,如果有人篡改了 Merkle 树上的数据,它的 Merkle 根会发生变化,与目标哈希值不匹配区块链技术数据层,数据的篡改就很容易看出。

随机数首先理解为为防止篡改而随机生成的一段数据,后面遇到具体情况我们会详细讲解。

挖矿网Ethos中文站简单易用的挖矿系统,为挖矿产业提供教程软件以及矿机测评交易信息等,挖矿网各种数字货币挖矿收益对比计算,挖矿网介绍挖矿的工具,以及矿场的最新消息等。http://www.ethospool.com/

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址