理解区块链

可以通过(https://blockchaindemo.io/) 运行演示,有助于更好地理解区块链。
整理如下:

关于区块链,首先应明确以下几点:

  • 区块链是一种技术,区块链 ≠ 比特币,比特币是区块链的第一种应用。

  • 区块链维护一份连续不断的交易记录文档,可以溯源,不可更改

  • 每一笔资料都被称为是一个区块,每一个区块可以包含一笔以上的交易

  • 每个区块都会包含上一个区块的哈希值,每个区块都会与另一个区块产生连接,所有被连在一起的区块被称为链

  • 区块链经过复杂的密码学运算,复杂的密码学运算可杜绝记录串改

  • 产生区块的机器叫挖矿机

  • 区块链是分布式数据库,具有去中心化的特性

  • 所有的节点共同维护这个分布式数据库

  • 超过50%的节点验证过的区块才是合法的区块

  • 任何一笔资料被篡改都将破坏区块的完整性

区块

SHA256 Hash

哈希看起来像一堆随机数字和字母,可以唯一标识数据或数据的“数字指纹”。

哈希的属性:

  • 哈希有一个固定的长度。

  • 相同的数据始终映射到相同的哈希。

  • 不同的数据总是映射到不同的散列(在实际限制内)。

  • 很容易计算,但很难倒推,即将哈希转换回数据是不可行的。

  • 数据的微小变化会导致哈希值发生很大变化。

nonce:

满足一定难度的所生成的随机数,哈希值是由block、nonce、data共同生成的。

如果哈希值前面有n个0以上,才算满足难度n,挖矿成功。改变nonce值,直到满足前面几位为0时算是挖矿成功。挖矿就是计算nonce值的过程。从0开始遍历nonce值。难度是要求哈希值前面的0的个数。难度就是哈希前导零的个数。

挖矿

确定此随机数(nonce值)的过程称为挖矿。

我们以0的nonce开始,并将它递增1,直到找到有效的散列。

随着难度的增加,可能的有效散列的数量减少。由于可能的有效哈希值较少,因此查找有效哈希需要更多处理能力。

添加新块

向区块链添加新块时,新块需要满足这些要求。

  • 阻止索引1大于最新的块索引。

  • 块的pre-hash等于前一区块哈希。

  • 块哈希满足难度要求。

  • 正确计算块哈希。

  • 网络上的其他对等体将向块链添加块,因此需要验证新块。

你可能感兴趣的:(理解区块链)