区块链怎么做到不能篡改
本篇内容主要讲解"区块链怎么做到不能篡改",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"区块链怎么做到不能篡改"吧!
1. 交易不可被篡改
当我们发送一笔交易到区块链节点的时候,节点会验证这个交易的签名,如果签名不对那么数据是会被丢弃的,只有持有私钥匙的人才可以修改这笔交易,其他人是修改不了的,这个问题是由密码学解决的。在比特币中使用的是椭圆曲线算法来对交易进行签名。
任何一个交易的修改都将导致区块体的变化
2. 区块体不可被篡改
区块体中是一笔一笔的交易,这些交易通过默克尔树组织起来,如果其中任何一笔交易被修改,都会造成默克尔树根哈希的变化,这个问题是由哈希函数解决的。在比特币中使用的是sha256算法
区块体的变化将导致区块头的变化
3. 区块头不可被篡改
前面两个问题都是由不可解的数学难题来保证的,区块头的不可修改是由算力保证的,这就是矿工需要干的事情。那么区块头是怎么保证不可被修改的呢?
全世界所有的矿工都会计算区块头的哈希,但是计算出来的哈希要求前面有n个0。如果区块的头信息不变,那么计算出来的哈希也都是一样的。前面我们说过,区块头中包含一个nonce, 外汇跟单www.gendan5.com 矿工就是通过修改nonce以此来找到满足要求的哈希(这个过程被称为挖矿)。在比特币的世界中,这个问题需要全世界的矿工计算十分钟左右才能找到一个满足要求的nonce。所以单凭个人要想修改一个区块是完全不可能的。
矿工一旦计算出来这个nonce,就会将这个区块广播给其他节点,这些节点对区块中的数据进行验证,如果验证通过,就会停止此区块的挖矿,将此区块广播给其他的节点,并开始争夺下一个区块的记账权
区块头的变化将导致区块链的变化
区块链是从零开始有序的链接在一起的,每个区块都指向前一个区块,称为前一个区块的子区块,前一区块称为父区块。
每个区块都有一个区块头,里边包含着父区块头通过算法生成的哈希值,通过这个哈希值可以找到父区块。当父区块有任何改动时,父区块的哈希值也发生变化。这将迫使子区块哈希值字段发生改变,以此类推,后边的子子区块,子子子区块都会受影响。一旦一个区块有很多后代以后,除非重新计算此区块所有后代的区块,但是这样重新计算需要耗费巨大的计算量,所以区块链越长区块历史越无法改变。
既然有一模一样的账本,就意味着所有的数据都是公开透明的,每一个人可以看到每一个账户上到底有什么数字变化。
它非常有趣的特性就是,其中的数据无法篡改。因为系统会自动比较,会认为相同数量最多的账本是真的账本,少部分和别人数量不一样的账本是虚假的账本。
在这种情况下,任何人篡改自己的账本是没有任何意义的,因为除非你能够篡改整个系统里面大部分节点。
如果整个系统节点只有五个、十个节点也许还容易做到,但是如果有上万个甚至上十万个,并且还分布在互联网上的任何角落,除非某个人能控制世界上大多数的电脑,否则不太可能篡改这样大型的区块链
到此,相信大家对"区块链怎么做到不能篡改"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!