为什么区块链不能篡改?

Deadly 提交于 2020-04-05 20:02:35

区块链技术被认为是这几年可能再次颠覆世界的一项技术,区块链让信任变的更有基础,区块链是一种去中心化的记账本,因为去中心化,每一个节点都是一个分布式的中心,做到了牵一发而动全身,由区块链衍生出来的技术服务更加安全可靠,比如现在我们都非常熟悉的数字货币比特币就是区块链技术的一个成功的典范,当然区块链技术部仅仅在数字货币领域发挥影响力,未来区块链会方方面面的影响人类社会,而她被人类青睐的最大原因就是安全可靠!不可修改性!

区块链的数据结构是由包含交易信息的区块按照从远及近的顺序有序链接起来的。区块被从远及近有序地链接在这个链条里,每个区块都指向前一个区块。

 

为什么区块链可以做到不可篡改?

 

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

任何一个交易的修改都将导致区块体的变化

2. 区块体不可被篡改
区块体中是一笔一笔的交易,这些交易通过默克尔树组织起来,如果其中任何一笔交易被修改,都会造成默克尔树根哈希的变化,这个问题是由哈希函数解决的。在比特币中使用的是sha256算法

区块体的变化将导致区块头的变化

3. 区块头不可被篡改
前面两个问题都是由不可解的数学难题来保证的,区块头的不可修改是由算力保证的,这就是矿工需要干的事情。那么区块头是怎么保证不可被修改的呢?

全世界所有的矿工都会计算区块头的哈希,但是计算出来的哈希要求前面有n个0。如果区块的头信息不变,那么计算出来的哈希也都是一样的。前面我们说过,区块头中包含一个nonce, 外汇跟单www.gendan5.com 矿工就是通过修改nonce以此来找到满足要求的哈希(这个过程被称为挖矿)。在比特币的世界中,这个问题需要全世界的矿工计算十分钟左右才能找到一个满足要求的nonce。所以单凭个人要想修改一个区块是完全不可能的。

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

 

区块头的变化将导致区块链的变化


区块链是从零开始有序的链接在一起的,每个区块都指向前一个区块,称为前一个区块的子区块,前一区块称为父区块。

每个区块都有一个区块头,里边包含着父区块头通过算法生成的哈希值,通过这个哈希值可以找到父区块。当父区块有任何改动时,父区块的哈希值也发生变化。这将迫使子区块哈希值字段发生改变,以此类推,后边的子子区块,子子子区块都会受影响。一旦一个区块有很多后代以后,除非重新计算此区块所有后代的区块,但是这样重新计算需要耗费巨大的计算量,所以区块链越长区块历史越无法改变。


既然有一模一样的账本,就意味着所有的数据都是公开透明的,每一个人可以看到每一个账户上到底有什么数字变化。

它非常有趣的特性就是,其中的数据无法篡改。因为系统会自动比较,会认为相同数量最多的账本是真的账本,少部分和别人数量不一样的账本是虚假的账本。

 

在这种情况下,任何人篡改自己的账本是没有任何意义的,因为除非你能够篡改整个系统里面大部分节点。

如果整个系统节点只有五个、十个节点也许还容易做到,但是如果有上万个甚至上十万个,并且还分布在互联网上的任何角落,除非某个人能控制世界上大多数的电脑,否则不太可能篡改这样大型的区块链
 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!