侯震:修改区块链有多难?反正不比骗媳妇简单

原创
2185 天前
1998

侯震,Astar区块链实验室首席研究员。致力于人工智能、物联网、区块链的投资与研究工作,长期跟踪机器视觉、无人驾驶、基础稳定货币等细分行业。


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

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

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


区块结构

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

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

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

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


区块的链接

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

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

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

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

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

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


不可篡改性

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

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

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


总结一下今天的内容:

区块链的基本组成单元是区块,每个区块由区块头和区块体组成。

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

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

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

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




Astar Lab成立于2017年,旗下有两个子品牌:Astar Fund & Astar IBD。Astar Lab的基金品牌Astar Fund 拥有严格筛选的一级市场投资策略和稳健的二级市场操作策略,是多个世界顶级区块链项目的基石私募投资机构,量化基金子品牌Bit Valley上一季度平均回报率超过100%。而作为区块链投行的服务商,Astar IBD可以承担财务顾问,行业顾问,保荐商,承销商等多个角色,目前已经累计在多个环节服务二十余家机构。


Astar_Astar区块链实验室_Astar区块链_区块链一级市场服务商

微信公众号:Astar区块链实验室