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

区块链技术基础概念解析:区块与Hash到底是什么?

上文我们说到过,区块链其实就是一个分布式数据库。都知道数据库是用来储存数据的,区块链既然也叫数据库,那么当然它的主要作用也就在于存储数据。每个区块(block)都记录着一段时间内发生的交易,区块储存着数据。链(chain) 将一个个储存着数据的区块按着数据变动的时间先后顺序串联在一起。

但和我们传统的数据库不同,传统的数据库管理需要一个管理员,这个管理员就像我们村里的会计。只有这个会计才能添加我们村的财务记录。这个管理员是被指定的,而且他有极大的权限对这个账本进行各种操作。在这种权利绝对集中的情况下,做假账的事情就极有可能发生。因为很难监管。但区块链不一样,它是去中心化的,他被设计出来的目的就是防止因为某个人权限极大,不受监管,从而作恶。在区块链的世界,每一个人都可以加入区块链网络,成为其中的一个节点,并且任意一个节点都可以写入或者读取数据。那如果每个人都能向账目上添加记录,岂不是更乱了吗?怎么保证数据的真实可靠?区块链最大的魔力就在这。

当网络中有一个人发起了一笔交易的时候,这笔交易记录就会被广播到这个网络中的每一个节点处。网络中的节点(计算机)收到这个广播后,就会把这个交易记录保存下来,然后利用计算机按一定的格式把这个记录打包起来组成一个候选区块。这个候选区块分成两部分(区块头和区块体)。

区块头:记录了这笔交易发生的时间,这笔交易的详细数据产生的hash码和上一个区块的hash码。

区块体:这笔交易的详细数据。

这里有一个很重要的知识点:所谓 Hash 就是计算机可以对任意内容,计算出一个长度相同的特征值。不管原始内容是什么,最后都会计算出类似 a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0 的一串数字。这个技术可以保证,只要原始内容不同,对应的 Hash 一定是不同的。

每一个区块都有对应的hash,区块的hash根据区块头的内容按特定的算法生成(注意区分区块的hash和区块体的hash,区块的hash代表整个区块,区块体的hash仅仅是交易的原始内容)从上图可以看出区块头包含很多内容,其中有当前区块体的 Hash,还有上一个区块的 Hash。这意味着,如果当前区块的内容变了,或者上一个区块的 Hash 变了,一定会引起当前区块的 Hash 改变。

这一点对区块链有重大意义。如果有人修改了一个区块,该区块的 Hash 就变了。后面的区块里包含了该区块的hash,自然也需要跟着变化才能继续跟他相连。所以为了让后面的区块还能连到它,该人必须同时修改后面所有的区块,否则被改掉的区块就脱离这个区块链条了。但是由于Hash 的计算很耗时,所以同时修改多个区块几乎不可能发生。正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券