区块链(1):区块链简介

区快链是通过密码技术保护的分布式数据库这是比特币背后的技术。

本文将逐步带您了解区块链。

1 区块链BLOCKCHAIN的类的定义

区块链有一个区块列表。

它从一个单独的块开始,称为 genesis block【创世区块】

2 区块链BLOCK的类的定义

第一个区块叫做 Genesis[创世] block,每个块存储以下信息:

  • Index
  • Timestamp
  • Hash
  • Previous Hash
  • Data
  • Nonce(挖矿原理,比特币难度举例)

3 区块链中创世区块

创世区块(genesis block)是区块链中的第一个区块,其区块序号是0。它是区块链中唯一一个不指向前一个区块的区块,因为没有前一个区块。它也不包含交易,因为还没产生任何以太币。

只有网络中的两个节点有相同的创世区块,它们才会彼此配对,也就是说,如果两个对等节点有相同的创世区块才会进行同步 区块,否则它们将彼此拒绝。不同的创世区块有较高难度值也不能替代难度值较低的。每一个节点生成自己的创世区块。对于不同的网络,创世区块被硬编码到客户端里。

4 区块Block6个属性的说明

(1)Index

该索引是链中的块的位置。

【创世区块】的索引是0。下一个区块的索引是1。

(2)Timestamp

创建块的时间记录。

时间戳有助于保持区块链的顺序。

(3)HASH

哈希看起来像一堆随机数。它是唯一标识数据的数值,或数据的"数字指纹"。

Hash属性:

  • 哈希具有固定的长度

  • 相同的数据结果相同的hash值。

  • 器实际上不同的数据会导致不同的hash值。

  • 图 Hash值很容易计算。

  • 不可能将Hash值转换为数据。[不可逆]

  • 个数据的小改变会导致Hash值的巨大变化。

  • VALID HASH(有效散列)

有效的Hash是满足特定要求的Hash。对于这种区块链,哈希前面的三个前导零是对有效散列的要求。

注意:所需的前导零的个数是困难或难度系数,个数越多,难度系数越大。

  • BLOCK HASH CALCULATION(块散列计算

Hash函数将数据作为输入,并返回一个唯一的Hasn值。

f(data) = hash

由于哈希是整个块的"数字指纹",因此数据是索引,时间截,以前的哈希,块数据和随机数的组合

f(index+previous hash+timestamp+data+nonce)= hash

替换我们的起源块的值,我们得到

f(o+"o"+1508270000000+"Welcome to Blockchain Demo 2.!"+604) =ooodc75a315ca1f9c9816247do3ddieid219939d3810hd98ed2

(4)Previous Hash

Previous Hash是前一个Hash,为前一个块的Hash。 由于没有以前的块,因此[创世区块]的前一个散列值为"0"。

(5)Data

Data为存储在块上的数据。在诸如比特币这样的加密货币中,数据将包括货币交易。如果数据发生更改,由于数据是输入变量的Hash,因此更改数据将更改Hash值。新的散列将失去三个前导零,并且变得无效。需重新挖矿生成有效的Hash值。

数据更改后,后续的区块也将无效。Hash更改将导致后续块的前一个Hash值发生变化。由于之前的Hash值用于计算Hash值,因此后面的Hash值会改变。这将导致区块的级联失效。

所以说,挖矿是查找有效Hash值的过程。

(6)Nonce(重点说明:挖矿原理,比特币难度举例)

nonce是用于查找有效散列的数字。nonce从0开始迭代,直到找到有效的散列。这用到了处理能力【工作量证明】!

随着难度的增加,可能的有效散列数量会减少。,使用较少可能的有效哈希值,需要更多的处理能力才能找到有效的哈希。

相关推荐
微wx笑2 小时前
伦敦金库彻底断供的连锁反应推演(截至2025年02月22日)
区块链
Minner-Scrapy4 小时前
区块链共识机制详解
去中心化·区块链·共识算法·web app
果冻人工智能4 小时前
去中心化 AI:赋权还是混乱?
人工智能·深度学习·机器学习·架构·去中心化·区块链·ai员工
Minner-Scrapy4 小时前
Layer2 扩容解决方案详解
node.js·web3·区块链·mlnet·hardhat
Q8137574604 小时前
市场趋势分析与交易策略优化
区块链
FrancyZhou5 小时前
【07】区块链性能
区块链
Minner-Scrapy15 小时前
什么是DeFi (去中心化金融)
金融·去中心化·区块链
0x派大星1 天前
区块链中的递归长度前缀(RLP)序列化详解
区块链·以太坊
礼小七1 天前
区块链相关方法-波士顿矩阵 (BCG Matrix)
区块链
yoona10202 天前
Rust编程语言入门教程(八)所有权 Stack vs Heap
开发语言·后端·rust·区块链·学习方法