1. 链一财经首页
  2. 资讯

修改区块链有多难?

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

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

区块结构

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

区块头主要包含了上一个区块的哈希值(PreHash),本区块的哈希值(Hash),以及时间戳(TimeStamp)等等。我们以比特币为例,它的区块头包括:

数据项 目的 大小(字节)

版本(Version)区块版本号4难度系数(当前目标的Hash值)压缩格式的当前目标Hash值4上一个区块的哈希值(PreHash)上一区块的256位哈希值32默克尔根(Merkle Root)当前区块中所有交易的256位哈希值32时间戳(Time)从1970-01-01 00:00 UTC开始到现在,以秒为单位的当前时间戳4随机数(Nonce)从0开始的32位随机数4

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

区块的链接

我们再看区块是如何串联成链。每个区块的区块头都包含上一个区块的哈希值和当前区块的哈希值,那么每新生成一个区块,它区块头的上一个区块的哈希值,是和上一个区块的哈希值是对应的,如图琐事,每个区块通过哈希指针相连,最后成了一个有哈希指针串联而成的列表。

微信截图_20180502190818.png

这里我们引入一个概念叫哈希指针,指针是指向某个元素地址的计算机对象,通过指针指向的地址,可以找到对应的变量。哈希指针也是相似的,不同的是哈希指针不仅可以指向数据的存储位置,还可以明晰某个时间戳下该数据的哈希值。如图,对于区块链来说,每一个哈希指针指向的是前一个区块的储存地点和哈希值。

微信截图_20180502190849.png

不可篡改性

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

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

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

文章原标题:侯震:修改区块链有多难?反正不比骗媳妇简单  原作者:侯震

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code