首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

把区块链和娶媳妇对比?你觉得哪个更难?

先回顾下上节的内容,什么是哈希算法?

哈希算法是区块链中保证交易信息不被篡改的单向密码机制,哈希算法接受一段明文后,以一种不可逆的方式,将其转化为一段长度较短、位数固定的散列数据。

那么哈希运算在区块链中又是如何应用的呢?要弄懂这个问题,我们要先把区块的结构弄清楚。

区块结构

区块是区块链的基本组成单元,每一个区块由两部分组成:区块头和区块体。

区块头主要包含了上一个区块的哈希值(PreHash),本区块的哈希值(Hash),以及时间戳(TimeStamp)等等。

我们以比特币为例,它的区块头包括:

区块体储存了这个区块的详细数据(Data),这个数据是若干行记录,可以是交易信息。比特币的话,区块体一般储存不会超过2000笔交易。

区块的链接

我们再看区块是如何串联成链。

每个区块的区块头都包含上一个区块的哈希值和当前区块的哈希值,那么每新生成一个区块,它区块头的上一个区块的哈希值,是和上一个区块的哈希值是对应的。

如图所示,每个区块通过哈希指针相连,最后成了一个有哈希指针串联而成的列表。

这里我们引入一个概念叫哈希指针,指针是指向某个元素地址的计算机对象,通过指针指向的地址,可以找到对应的变量。

哈希指针也是相似的,不同的是哈希指针不仅可以指向数据的存储位置,还可以明晰某个时间戳下该数据的哈希值。

如图,对于区块链来说,每一个哈希指针指向的是前一个区块的储存地点和哈希值。

不可篡改性

区块链的结构特征可以帮助我们更好的理解防篡改这一特性。

假设有人试图去篡改链条中的数据,当攻击者修改了K区块上的数据,这时候他会发现K+1区块上的哈希值与K区块不再匹配,那么他不得不一直修改下去。

所以只要我们保存好链表最后的那个哈希指针,就一定能发现是否有人篡改了区块数据。

区块链是一个链状结构,每个区块通过哈希指针链接,每当有人计算出区块链最新数据信息的哈希值,相当于对最新的交易记录进行打包,新的区块会被创建出来,衔接在区块链的末尾。

区块链通过哈希算法,对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。

区块链的哈希值能够唯一而准确的标识一个区块,区块链中任意节点通过简单的哈希计算都可以获得这个区块的哈希值,计算出的哈希值没有变化,也就意味着区块中的信息没有被篡改。

前两节内容,我们了解了什么是哈希运算和区块结构,下一篇文章,我们将学习梅克尔树结构(Merkle),了解区块链中成千上万的交易是如何储存的。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180423A0IB7W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券