什么是区块链,为什么数据不可被篡改_区块链为什么不可篡改

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一提到区块链首先想到的就是比特币。确实比特币是第一个区块链项目也是最成功的项目目前的价格是60428¥/btc。想想当初用10000个比特币买了2个披萨的程序员Laszlo估计怎么也想不到比特币能涨到如此之高毕竟眼光有多远就只能赚多少钱。那么到底什么是区块链呢为什么区块链上的交易不可被篡改呢

区块链: 我们可以从字面上对这个词语进行拆分“区块”和“链”。区块链就是由区块线性连接而成的链。

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

一、区块链

先上一个区块链的结构图

 

1.什么是区块

区块主要是由区块头和区块体构成

区块头里面包含了一些基本信息比如版本号、父区块头的哈希、默克尔树根哈希、时间戳、挖矿难度、随机数。

区块体主要就是打包的交易这些交易是资产的拥有者使用私钥签名的数据代表了资产从哪里转移到哪里。最特殊的一笔交易是由旷工自己写上去的它的金额是对矿工的奖励加上所有交易者支付的手续费。这笔交易称为币基交易Coinbase Transaction比特币就是通过对矿工的奖励来发行货币的。

2. 什么是链

每个区块的头包含了父区块的头的哈希就这样逐个链接下去就形成了区块链。

实际上这就是区块链的本质了但这只是从数据方面看那么数据的可靠性又是怎么保证的

二、数据不可篡改

1. 交易不可被篡改

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

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

2. 区块体不可被篡改

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

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

3. 区块头不可被篡改

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

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

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

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

4. 区块链不可被篡改

从前面三步可知如果一个人修改了区块中的交易数据默克尔树的根哈希会发生变化接着区块头会发生变化这个时候区块的随机数nonce将变得不合法需要重新挖矿。假设某个组织拥有大量的计算机并重新挖出了这个随机数nonce。但这又会导致此区块头的哈希发生变化子区块的区块头中记录了父区块头的哈希这样子区块头也发生了变化子区块的随机数nonce也变得不合法了又需要重新挖子区块的随机数nonce。如此下去将造成连锁反应任何修改都将造成数据坍塌需要重新挖矿。在比特币中如果一笔交易后面被添加了六个区块那么这笔交易可以认为将永远不可能被修改。除非全世界所有的矿机都否认先前的交易重新开始挖矿

最后

至此区块链的存储结构和数据不可篡改就讲解完了在这个模型当中还存在很多问题需要解决比如UTXO经济模型、为什么比特币只有2100万个、什么是钱包、什么是挖矿。这些问题等后面再给大家讲解

区块链开发

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 区块链