上节文章我们讲到:为什么说区块链可以有效的做到不可篡改 区块链在数据共享中的作用
区块链在数据共享中起到了三个作用:激励与价值认可、安全与责任认定和与同态加密、属性密码等结合。下面,我们来具体看一一下。
1.激励与价值认可
在区块链中加人智能合约,可以对数据的质量和价值进行激励与评估,还有单位的类别和人员的类别。对于智能合约和激励,我们不能泛泛而谈,应该根据不同的场景研究不同的方法。
2.安全与责任认定
这一点,是利用区块链来建立数据目录和属性等,从而实现访问控制、安全互信、责任认定等。
3.与同态加密、属性密码等结合
使用同态加密模型,可以更好地保护隐私不受数据处理者自身的影响。其中,不仅包含了访问系统的外部用户,还有数据不可纂改包括哪几个方面
区块链的数据是不可篡改的,具体表现在下面几个方面:
1.交易不可被篡改
区块链上每完成-笔交易,都会被发送到节点上,节点会验证这个交易的签名。当签名不对时,数据就会被丢弃。基于密码的规则,只有持有私钥的人才可以修改这笔交易,其他人无法修改。在比特币中,是利用椭圆曲线算法来对交易进行签名。交易不可篡改,修改任何一个交易都会导致区块体的变化。
2.区块体不可被篡改
区块体中是一笔笔的交易,而这些交易是通过梅克尔树组织起来的。如果修改其中的任意一笔交易, 都会引起梅克尔树根哈希值的变化。在这个问题中,-般是运用哈希函数解决,例如比特币中使用的就是SHA- 256算法。区块链中,任意-个区块体变化,将会导致区块头随之变化。
3.区块头不可被篡改
前面讲到,交易活动区块体不可被篡改,是由不可解的数学难题来保证的。而区块头不可被篡改,则是由算力保证的,即是“矿工”需要做的事情。所有的“矿工”都会计算区块头的哈希值,而计算出来的哈希值前面会有n个0。如果区块头的信息不变,得出来的哈希值也都是一样的。 区块头中,包含了一个Nonce (随机数值),“挖矿” 就是“矿工”通过修改nonce来找到满足要求的哈希值。
在比特币的世界中,所有的“矿工”计算十分钟才能找到-一个满足要求的Nonce。所以,单凭一个人的能力,是无法去修改任何一个区块的。
当“矿工”计算出Nonce值后,就会将这个区块广播给其他节点,让这些节点对数值进行验证,验证通过后,就会停止此区块的“挖矿”,并通知其他节点,开始争夺下一个区块的记账权。如果区块头发生变化,将会导致整个区块链发生变化。
4.区块链不可被篡改
根据前面三步,我们可以得知,如果有一个人修改了区块中的任意一笔交易, 就是导致梅克尔树的根哈希值发生变化,进而导致区块头发生变化,得到的Nonce就会不合法,“挖矿”会重新进行。
如果某个组织拥有大量的计算机和强大的算力,重新挖出了一个新的随机数Nonce若是新的Nonce被验证通过,则会导致此区块头的哈希值发生变化,而记录了父区块头哈希值的子区块的区块头同样也会发生变化。最后,使得新得到的随机数Nonce变得不合法,需要重新“挖矿”。
区块链上,任何的修改都会造成数据坍塌,使得“挖矿”重新进行。在比特币中,如果-笔交易后添加了6个区块,那么这笔交易可以认为,将永远不可能被修改。
区块链的不可被算改是如何实现的?简单说靠的就是算法: SHA-256、 数字摘要、梅克尔树。
评论