区块链入门二:区块不可篡改

区块链入门一:什么是区块链
在上一篇中,简单介绍了什么是区块链。这一篇主要介绍区块链的不可篡改的特性。

首先我们来了解下哈希(Hash)算法
在这里插入图片描述
这是百度的描述,简单来说就是一种不可逆的摘要算法,哈希算法的目的就是为了验证原始数据是否被篡改。常用的哈希算法有
在这里插入图片描述根据碰撞概率,哈希算法的输出长度越长,就越难产生碰撞,也就越安全,区块链采用的是SHA-256。

那么区块链是怎么保证不可篡改的呢,下面将一步步分析。

区块分为区块头和区块体,区块体其实就是一个账本,里面是一条条的交易记录。
在这里插入图片描述
上图可以看到,就是一个区块体,记录的都是交易信息,第一条coinbase是个“旷工”的奖励。“挖矿”后续再了解。

那首先就要保证区块体的每条交易信息都是真实可信的,这里用到的是非对称加密算法对交易进行签名,这个说起来也不是一两句,后续再了解。这里只要知道,每条交易记录都是真实可信、不可造假的就行。

区块体所有的交易按一定规则汇总进行Hash,记录在区块头里。区块有个Merkle,就是记录区块体的Hash。这样区块体确认后就无法更改了,因为任何变动都会导致Merkle跟着变动。
在这里插入图片描述
区块头信息确认后,再对区块头进行Hash,形成Block Hash,这样整个区块的内容就确定了,并且不能做任何修改。区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。

那么区块和区块之间是怎么连接在一起形成区块链的呢?
在这里插入图片描述
如上图,Block Hash就是当前区块的哈希,而Pre Hash就是上一个区块的Block Hash。就是这样一个区块指向上一个区块形成了区块链。第一个区块由于没有前一个区块,所以它的Pre Hash是00…0000。

那么你可能会问了,不就是计算Hash嘛,计算机算出结果不是很快嘛,这怎么保证不可篡改?别急,接下来要说到一个概念,工作量证明机制。什么意思呢?

就是这个哈希不是随意算出一个哈希就可以的,它有一个规定。区块链协议规定,使用一个常量除以难度系数,可以得到目标值。显然,难度系数越大,目标值就越小,满足条件的哈希就越难算出。简单来说就是算出来的哈希必须是多个0打头的字符串,如:00000000000000000002bafbc1df86a30304852794f792ff95403e542566536b。随着难度增加,0的个数也相应增多,难度成指数级上升。

这一点对区块链意义重大。区块的Block Hash一旦得出,对区块的任何修改都会使哈希变动。而区块链是一个个区块紧密相连的,任何变动都会使区块连接断裂。正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值