区块链技术之《(1)—概述》
一、区块链是什么
区块链是由包含信息的区块构成的链,是一种去中心化技术,比特币是区块链技术的一种应用,也是目前为止最成功的应用。
1、宏观结构:链式连接的区块
区块链是由一个个区块(Block)按照时间顺序串联起来的链条。每个区块链包含前一个区块的哈希值,这样就形成了链式结构。
2、微观结构:一个区块由什么构成
每个区块(Block)可以进一步拆成两个部分
(1)区块头(Block Header)
是区块的“身份证”,包括区块的基本元数据:
字段 | 含义 |
版本号 | 当前区块结构的版本(用于升级兼容) |
前区块哈希 | 指向上一个区块的哈希,确保链式结构 |
默克尔根 | 所有交易的哈希构成的Merkle Tree的根 |
时间戳 | 区块被打包的时间(UNIX时间格式) |
难度目标 | 当前挖矿的难度(影响哈希计算门槛) |
随机数(Nonce) | 用于PoW机制中寻找满足条件的哈希 |
PS:“默克尔树”是用来打包所有交易的哈希结构,便于快速验证。
(2)区块体(Block Body)
包括这个区块的所有交易记录。
比特币区块中一般每个区块可容纳数千笔交易。
每笔交易又可细分为输入(input)、输出(output)、金额、签名等。
3、哈希
(1)哈希函数是sha256,即你不管输入什么它都会输出长度位256位的二进制字符串
(2)正算很容易,反算很难
(3)它具有雪崩效应:输入的东西只要变化一点点,输出的东西变化大变样
(4)有抗碰撞性
4、默克尔树(哈希树)
一个区块包含n笔交易,每笔交易计算哈希值,然后随机两笔计算哈希值,这样一层一层计算,最后得到一颗哈希树(二叉树),这棵树的根节点就是默克尔根。
想象成是账本上的封条。
5、难度目标和随机数
难度目标和随机数是区块链挖矿的核心。
挖矿就是一个解题过程。