区块链的四大特征之不可篡改

  • 时间:
  • 来源: 网络
  • 分类: 百科
  • 265条评论
  • 547浏览

  区块[qū kuài]链与传统互联网最大的区别就在于,它可以构建的网络是高度可信的。可信任这一点能降低企业之间、消费者与企业之间等交易[jiāo yì]的时间成本和信任成本,这使得交易变得更为畅通无阻。可信任的技术还可用于商品溯源、司法存证、互联网电子发票等。区块链的可信任的互联网是什么意思?技术上又是如何实现的?

  链式规则

  区块链之所以能构建可信任互联网,最本质的原因是区块链具有不可[bù kě]篡改的特性。不可篡改,顾名思义就是记录到区块链上的信息是不能随便更改。为什么记录到区块链上的数据[shù jù]不能更改呢?这是因为区块链独有的链式结构和新区块的生成规则。大家都知道区块链其实是一个合成词汇,是由[shì yóu]“区块”和“链”组合而成的。区块链的第一应用比特币白皮书,早在2008年发布的时候并未提到区块链这个[zhè gè]词,而是区块和链是分别来说的。一个一个区块链接在一起就形成链区块链。但是区块之间是按照什么规则进行链接的呢?

  区块链中最小的单元是区块,区块是由区块头[kuài tóu]和区块体构成。区块头记录这上一个区块的随机散列值,每个区块上都有一个随机散列值(哈希[hā xī]值),这个随机数是由上个区块的交易信息和时间戳经过哈希算法生成的。如果[rú guǒ]上一个区块的任何信息发生变化[biàn huà],就和本区块原来的哈希值不一致了,不会被下一个区块认可,这就是区块链的不可篡改的原因。

  而且每一笔交易都有时间戳,且区块是按照一定的规则前后链接的。最容易理解的特征就是不可篡改,区块链基于“区块 链”的链式结构。存在交易的区块按照时间的顺序不断加到区块链的尾部。要修改[xiū gǎi]任何一个区块中的数据,都需要重新生成它之后的所有区块。这要求计算机在短时间之内完成大量的工作,理论上需要51%以上的算力合力为之,才有可能完成。但是这是不符合实际情况的,因为这样做对他们自身并没有什么好处。

  技术的保障

  区块链就是由区块线性连接而成的链。数据不可篡改: 这个是由密码学、哈希函数、矿工算力等保障的。当我们发送一笔交易到区块链节点的时候,节点会验证这个交易的签名,如果签名不对那么数据是会被丢弃的,只有持有私钥匙的人才可以修改这笔交易,其他人是修改不了的,这个问题是由密码学解决的。在比特币中使用的是椭圆曲线算法来对交易进行签名。

  区块体中数据是由一笔一笔的交易组成的,这些交易通过默克尔树组织起来。如果其中任何一笔交易被修改,都会造成默克尔树根哈希的变化,这个问题是由哈希函数解决的。在比特币中使用的是sha256算法,区块体的变化将导致下一个区块头的变化。这就导致下一个区块将对这个修改过的区块不识别,从而使得区块数据信息不可修改。

  前面两个问题都是由不可解的数学难题来保证的,区块头的不可修改是由算力保证的,这就是矿工需要干的事情。那么区块头是怎么保证不可被修改的呢?全世界所有的矿工都会计算区块头的哈希,但是计算出来的哈希要求前面有n个0。如果区块的头信息不变,那么计算出来的哈希也都是一样的。前面我们说过,区块头中包含一个nonce,矿工就是通过修改nonce以此来找到满足要求的哈希(这个过程被称为挖矿)。在比特币的世界中,这个问题需要全世界的矿工计算十分钟左右才能找到一个满足要求的nonce。所以单凭个人要想修改一个区块是完全不可能的。

  矿工一旦计算出来这个nonce,就会将这个区块广播给其他节点,这些节点对区块中的数据进行验证,如果验证通过,就会停止此区块的挖矿,将此区块广播给其他的节点,并开始争夺下一个区块的记账权。可以想象区块链是一圈圈站立的多米诺骨牌,其中一张向一个方向倒,那么之后的都会倒掉。如想恢复原貌,需要把从第一个开始倒的之后的牌都站立起来。短时间内是不可能恢复的。对于区块链来说还有每个区块和每笔交易都是有时间戳的,进一步防止了篡改。如果区块链上的数据记录错了,就能补录一条新的信息将结果纠正正确,而不是直接修改错误的哪条信息。

  区块链不可被篡改

  从前面三步可知,如果一个人修改了区块中的交易数据,默克尔树的根哈希会发生变化,接着区块头会发生变化,这个时候区块的随机数(nonce)将变得不合法,需要重新挖矿。假设某个组织拥有大量的计算机,并重新挖出了这个随机数(nonce)。但这又会导致此区块头的哈希发生变化,子区块的区块头中记录了父区块头的哈希,这样,子区块头也发生了变化,子区块的随机数(nonce)也变得不合法了,又需要重新挖子区块的随机数(nonce)。

  如此下去,将造成连锁反应,任何修改都将造成数据坍塌,需要重新挖矿。在比特币中,如果一笔交易后面被添加了六个区块,那么这笔交易可以认为,将永远不可能被修改。

  知识点汇总

  1、如果上一个区块的任何信息发生变化,就和本区块原来的哈希值不一致了,不会被下一个区块认可,这就是区块链的不可篡改的原因;

  2、要修改任何一个区块中的数据,都需要重新生成它之后的所有区块。理论上需要51%以上的算力合力为之才有可能完成,但是这是不符合实际情况的;

  3、数据不可篡改: 这个是由密码学、哈希函数、矿工算力等保障的;

  4、矿工一旦计算出来这个nonce,就会将这个区块广播给其他节点,这些节点对区块中的数据进行验证,如果验证通过,就会停止此区块的挖矿,并开始争夺下一个区块的记账权;

  5、如果一个人修改了区块中的交易数据,默克尔树的根哈希会发生变化,接着区块头会发生变化,这个时候区块的随机数(nonce)将变得不合法,需要重新挖矿。

  作者:霍玛丽

  来源:布洛克科技

  版权归布洛克科技所有,转载请联系授权注明来源,否则将追究其法律责任。

  

精彩评论

匿名用户

有些妹子喜欢带上墨镜自拍。其实再戴上口罩,会显得更美。

匿名用户

你知道为什么冬天女生上半身穿那么多却光着两条腿吗 因为奶要保温 火腿要冷冻

匿名用户

建议你立刻开始撩我

匿名用户

好好活下去,每天都有新打击

匿名用户

长得好看的才叫吃货,长得不好看的那叫饭桶!