主页 > 最新版imtoken官网 > 区块链基础知识.doc

区块链基础知识.doc

最新版imtoken官网 2023-03-18 07:45:34

区块链基础

LT

区块链基础

区块链(BlockChain)是块(Block)和链(Chain)的直译。 其数据结构如图1所示,即每个区块保存指定时间段内的数据记录,并采用密码学方式,构建一条安全可信的链条,形成一个不可篡改、全员共享的分布式账本.

比特币区块分为两部分:区块头和区块体。 区块头大小为80字节比特币区块头存放的数据包括,包括4字节的版本号、32字节(256位)的上一个区块的哈希值、32字节的Merkle根节点、4字节的时间戳、4 -byte 部分的难度值和 4 字节的随机数。 区块体包含 10 分钟内选择的交易记录。 第一笔交易(coinbase transaction)是一种特殊的交易,用于奖励矿工比特币,由矿工自己添加到区块中。

图1 区块链数据结构示意图

基本概念

区块链是一种综合创新,交叉集成了许多现有技术。 因此,要了解区块链,首先要了解区块链中集成了哪些技术。

P2P网络

如图2所示,P2P(Peer-to-Peer)网络是一个端到端的网络。 P2P网络分为结构化(如基于Chord的P2P网络)和非结构化P2P网络(如Gnutella)。 比特币的区块链使用非结构化的 P2P 网络。 整个网络没有集中的硬件或管理机构。 任何节点既是服务器又是客户端。 任何节点只要安装相应的客户端软件,即可接入P2P网络(如BT软件),参与区块链的记录和验证,不超过1/3的节点会损坏、退出或甚至植入了恶意代码。 影响整个系统的运行。

然后接收方可以确认传输的文件没有被篡改,是安全可靠的。

图4 数字签名流程示意图

散列加密

安全哈希算法(Secure Hash Algorithm,SHA)是由美国国家安全局开发并由美国国家标准与技术研究院(NIST)发布的一系列密码哈希函数,包括SHA-0、SHA-1、SHA-2和SHA-3以及其他系列。 比特币的区块链采用的是SHA-256哈希加密算法,该算法于2001年发布,属于SHA-2分支。 由于SHA256的伪随机性,只要输入相同的数据,就会得到相同的结果。 如果输入的数据稍有变化,就会得到不同的结果,如图5所示。SHA256也是一种单向不可逆算法,即很容易根据一个输入数计算出SHA256的结果,但它几乎不可能根据 SHA256 的结果来反转输入的数字。 此外,比特币还使用ripemd160算法生成比特币钱包地址。

图5 哈希加密示意图

默克尔树

Merkle 树是区块链的基本构建块。 区块链可以在没有 Merkle 树的情况下工作,但在可扩展性方面存在很大挑战,以将所有交易记录包含在区块头中。 如图6所示,区块链中的每个区块都由区块头和区块体组成。 区块头包含 Merkle 根节点字段。 通过区块体中的所有交易记录,二叉树两两迭代拼接和哈希,我们可以得到一个最终的哈希值,我们称之为默克尔根哈希。 Merkle root hash相当于区块中所有交易记录的快照,通过与Merkle root hash的比较,可以很容易地检测到区块中交易记录的任何变化。 Merkle根哈希主要用于简单支付验证(SPV),在验证交易是否在区块中时也可以大大降低网络传输成本。

图6 Merkle树图

工作机制证明

工作量证明机制,简单来说就是一种共识机制,确认你是否完成了一定的工作量。 比特币的区块链主要依靠计算数学难题来衡量工作。 对于每个区块,选择一定数量的交易记录后,填入版本号、时间戳、难度值,生成对应的Merkle根哈希。 很容易看出比特币区块头存放的数据包括,这些值是在选择交易记录后确定的,唯一可以改变的是随机数(Nonce)的值。 如图7所示,系统要求根据难度值对整个区块头进行两次SHA256算法计算,得到的哈希结果应小于一个阈值。 根据上面介绍的SHA256算法的伪随机性,只有通过不断的尝试和枚举才能找到对应的随机数来证明自己的工作量。

图 7 工作量证明机制示意图

除了工作量证明(PoW)等共识机制外,还有权益证明(PoS)、委托权益证明(DPoS)、拜占庭容错(BFT)、实用拜占庭容错(PBFT)等。 环境中的共识机制和需要可信环境的共识机制,如PaxOS、Raft。 表 1 是一个简单的比较。

表1 共识机制简单对比表

运行机制

接入网络和认证