《区块链导论》区块链的分层模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

共识层
网络层
数据结构
数据层
数据模型
数据存储
新一代信息技术系列教材 《区块链导论》
区块链:区块按照时间戳,由远及近地链接,形成一条链式结构的数据存储。
1. 区块结构
区块链的数据组织单元是区块,不同的区块链的区块数据都会
区块头
存放区块自
身的元数据
交易
存放加密后
的交易信息
包含“区块头”和“交易”两个部分。
中的采用的是单独链表法。
• 通过哈希表存储的数据,可以实现在常数时间
复杂度内完成数据读取,十分高效。
• 在分布式网络中,每个节点都存储了一张哈希
表,通过一定的规则关联形成了分布式哈希表。
新一代信息技术系列教材 《区块链导论》
分布式哈希表实现:Kademlia协议
• Kademlia协议在2002年设计,具有结构简单、性能好、安全性强的优点
接成区块链。
特点:
1.增加了篡改难度
2.无法避免产生分叉!
新一代信息技术系列教材 《区块链导论》
1. 交易输出(Unspent Transaction Output, UTXO)模型
UTXO以“交易”为单位进行追踪和记录。比特币为代表,每笔交易有一个或者多个交易输出或输入。
输入:交易的每一个输入即为前
P2P网络的核心技术:分布式哈希表
• 用途:维护网络中节点清单和和节点能提供的服务清单
• 分布式哈希表(Distributed Hash Table, DHT)诞生于2001年,核心思想是网络中的每个节点都 维
护一部分索引信息,然后通过特定的规则将这些节点信息连接起来,使得在查询或注册时,按规则
• 由于在分布式哈希表的网络中,每个节点只保存一部分资源的索引信息,当网络中有资源变更时
不需要全网广播,只需要更新相关节点。
问题1:如何在每个节点都知道部分信息的情况下实现对全网资源的触达与维护???
• Kademlia协议提出基于距离的解决方案:每一个节点都维护一张哈希表,表中将网络的节点基于
距离进行分组,每个分组下存放若干个节点代表。
新一代信息技术系列教材 《区块链导论》
新一代信息技术系列教材 《区块链导论》
通用网络标准和方法:开放系统互联模型
网络通信模型:TCP/IP协议
应用层
表示层
应用层
会话层
传输层
传输层
网络层
网络层
数据链路层
链路层
物理层
图3-1 OSI七层网络模型
图3-2 TCP/IP 四层网络模型










新一代信息技术系列教材 《区块链导论》
中心化模式:
架构:客户端/服务端(Client/Server,C/S)或浏览器/服务端
共识层
(Browser/Server,B/S)
特点:
网络层
1. 系统需要一个或多个中心化的服务器承担统一接收和处理请求的职能
2. 优点:利于服务的统一管理与升级;保持服务一致性;
数据层
3. 缺点:中心化的设备故障会导致服务瘫痪;节点多导致负载压力大。
区块链:分布式存储,每个节点都能够存储全量账本。
不同区块链,节点上
的物理存储方式不同
比特币:区块数据以文本形式存储;其
他信息存储在键值(Key-Value, KV)
数据库LevelDB中。
以太坊:状态和索引数据都被存储在
LevelDB中。
联盟链Corda项目的数据存储在传统关系型数据库,TrustSQL项目
触达相关节点或资源,不同的规则对应着分布式哈希表不同的协议。

优势:避免中心化索引和网络风暴
分布式哈希表基础结构:
• 哈希表,是一种以“键-值”形式进行存储和查询的数据结构。
• 在存储时,存储信息经过哈希函数的处理生成一个映射地址,并将信息存储到这个地址中,读取时
直接定位到该映射地址提取数据。
新一代信息技术系列教材 《区块链导论》
• 图3-12为哈希表存储结构,是一组数据{1、3、
4、7、8、20、55}经过哈希函数H(k)=k%7进
行散列得到。
地址
存储数据
• 对于数值20,20%7=6,因此数值20存储在地
址为6的地方。也有可能存在地址冲突的情况,
例如1和8散列后地址相同,这种情况可以通过
开放定址、单独链表、再散列等方法解决。图
• 适用场景:极少有恶意节点或者故障节点
• 核心思路:性能优先
新一代信息技术系列教材 《区块链导论》
PBFT算法:由执行交易命令的主节点使用,在三个阶段中达成共识。
每个验证者签名并准备
主节点广播请求
针对该请求的准备消息,
验证器广播提交消息
当接收到足够的提交消
息后,请求被接受
假设“叛徒”节点数量是,所有节点总量为,当系统满足 ≥ 3 + 1时,按照PBFT方案,无论
3. 层级间具有递进关系
• 分布式系统特有层级
网络层
• 节点之间的网络连接和传输
• 点对点网络
• 区块链模型基础
数据层
• 负责区块链数据存储“账本”
• 数据形成区块,以时间戳顺序存储在物理介质中
• 新区块验证并上链
图3-3 区块链五层分层模型
新一代信息技术系列教材 《区块链导论》
例子:发送Token
记录当前区块产生的近似时间
新一代信息技术系列教材 《区块链导论》
交易与Merkle树
Merkle树又称为哈希树,树中的每个节点存储的均为哈希值。
Merkle树的结构特点:
(1)易校验
(2)扩展性强
(3)证明成本低
对下层节点的
进一步哈希
对交易信
息的哈希
交易信息
新一代信息技术系列教材 《区块链导论》
区块链的形成:“前块哈希”的数据域,将父区块的区块头做哈希运算得到,将区块有序连
新一代信息技术系列教材
区块链导论
第三章
目录
3.1 区块链的系统分层
3.2 数据层
3.3 网络层
3.4 共识层
3.5 合约层
3.6 应用层
1
区块链的系统分层
接收者B
发送者A
1. 借助何种应用完成转账
2. 检查发送者余额与真实性
3. 节点确认
4. 通知接收者
5. “收款凭证”的存储
分层:拆分复杂问题,通过层级递进关系串联
问题2:网络中的节点和资源如何建立关系???
• Kademlia协议将网络中的节点和资源均映射成160位的二进制码,编码等于或接近某个资源的节
点,需要知道该资源的下载地址。
• Kademlia协议解决了点对点网络中的组网问题,将找资源变成找节点,将找具体节点变成找大类
的代表。
新一代信息技术系列教材 《区块链导论》
拜占庭容错(Byzantine Fault Tolerance, BFT)算法可以解决分布式系统里拜占庭将军问题的容错算法。
拜占庭将军问题:
• 将军选择进攻还是不进攻?决策是否能达成一致,是决定胜负的关键。

诚实将军们决策的结果会被叛徒将军干扰:1.不进行表态;2.发表错误观点;3.主动干扰
其他将军对局势进行误判。
能够对某个提案达成一致。
解决方法:共识层包含了各种共识算法,负责实现区块链各个账本的一致性,即不同节点数据的一致性。
• 一致性指不同节点中的数据内容是否完整并且相同,是系统对外呈现的状态是否一致。
• 共识是一种实现一致性的方法、途径或手段;
• 共识机制(共识算法)是为了达成共识需要使用的某种机制,快速准确地在各个节点实现区块数据一
序交易的某个UTXO,所有交易
的最初输入可以追溯了铸币奖励。
输出:交易的每一个输出即为
一个新的UTXO,一个用户所
拥有的比特余额为该用户的所
有UTXO之和,这些UTXO零
散地记录在不同的交易区块中。
每笔交易的输入与输出可以并行处理,
并且一一对应。
2. 账户模型
账户不记录交易过程,只记录余额状态。
特点:1. 区块体积小,网络传输量小,空间利用率高;
✓ 部分节点被干扰——信使被杀
✓ 恶意节点——叛徒将军
出现故障或错误的节点被称为拜占庭节点;接收正确信息同时传送正确信息的节点称为非拜占庭节点。
BFT共识机制中应用最广的位实用拜占ult Tolerance, PBFT),
1999年由Miguel Castro和Barbara Liskov提出。
比特币——幻数、区块大小、区块头、交易计数和交易
以太坊—— 区块头、交易、区块头哈希
新一代信息技术系列教材 《区块链导论》
区块链:区块按照时间戳,由远及近地链接,形成一条链式结构的数据存储。
1. 区块结构
区块链的数据组织单元是区块,不同的区块链的区块数据都会
区块头
存放区块自
身的元数据
交易
存放加密后
2. 向相邻节点发送只包含区块哈希的消息,收到区块哈希的节点再从发送节点请求对应的完整
区块信息。
新一代信息技术系列教材 《区块链导论》

数据校验
点对点网络中,全节点会占用较大的存储量,轻量级节点会存储部分数据,所以轻量级节点需要
向相邻节点请求数据来完成数据校验。
数据校验的内容:依据该区块链项目预定义的清单。
的交易信息
包含“区块头”和“交易”两个部分。
比特币——幻数、区块大小、区块头、交易计数和交易
以太坊—— 区块头、交易、区块头哈希
新一代信息技术系列教材 《区块链导论》
区块头
前块哈希
区块头
默克尔(Merkle)根
时间戳
向前一个区块的指针,将孤立的区块串联在一
起,形成区块链
存放着基于交易信息形成的哈希值
应用层
发送者A
选择APP,输
入交易信息
合约层
交易信息+签名信息
调用Token合约
交易信息+签名
信息+合约内容



网络层
数据层
区块
接收者B
区块上链
节点广播区块给
其他节点,并进
行验证
选出节点并
进行信息验
证,打包成
区块
节点信息+交易
信息+签名信息+
合约内容
2
数据层
区块链的本质:分布式账本
应用层
合约层
致性的机制和算法,通常是利用奖惩机制。
主流的共识机制:
1. 确定性算法:如拜占庭容错(BFT)
2. 概率性算法:如工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)
区别:确定性算法下的新区块无法被滚回,而概率性算法的新区块,只有当被回滚的概率接近0时,才
被视为确定性的。
新一代信息技术系列教材 《区块链导论》
2. 相比与UTXO模型,账户模型让网络中的轻节点更容易验证;
3.并发处理能力比UTXO差。
以太坊为代表,账户模型中包含了:
(1)外部账户
给用户操作,通过私钥信息操作账户实现转账、智能合约的创建,调用等功能
(2)合约账户
不能自主发起交易,只能被外部账户调用
存储构架的演变:
中心化服务器
分布式数据中心或者云平台(多中心化)

数据传播
区块数据打包后需要广播给其他节点进行校验和记账。根据点对点分布式网络的特点,每个节
点只会向其直接连接的节点发送区块信息。收到消息的节点会对区块进行校验,通过后加入该节点
本地的区块链,并广播给其他节点,如此循环,知道触达全网的节点。
以太坊中的数据传播方式:
1. 向相邻节点直接发送包含完整的区块内容的消息;
需要满足分层的以下特点:
1. 独立性
应用层
合约层
• 分布式的链上应用
• 面向最终用户
• 实现智能合约、脚本功能
每层具有独立的逻辑和功能
2. 通用性
各层规范和架构确定,有利于国
• 负责实现各账本的数据一致性
共识层
• 各节点达成一致,共识机制:PoW,PoS,BFT…
际标准化工作展开,促进系统各
部分的通用性和兼容性。
点对点网络(Peer-to-Peer, P2P)
分布式网络架构,网络中的每一个节点都是对等的,可以充当服务提供方及服务获取方。单一
或少量节点机器配套通信设备的故障不会影响整个网络的服务提供。
优点:节点越多,服务质量越高,扩展性越强。
缺点:数据一致性难以保障、资源无法统一管理、垃圾信息多等。
新一代信息技术系列教材 《区块链导论》
数据采用MySQL及MariaDB作为存储数据库。
区块链项目面临着严峻的存储问题,需要新的技术手段,例如云平台、侧链、闪电网络等。
新一代信息技术系列教材 《区块链导论》
3
网络层
应用层
合约层
网络层:泛指区块链系统的整个网络通信层,区块链数据通过网
络层传播进行校验、存储等。主要实现组网、传播与校验功能。
例如:有11位将军A1, A2, A3, A4, B1, B2, B3, Z1, Z2, Z3, Z4
叛徒:Z1~Z4; 想进攻:A1~A4;不想进攻:B1~B3
4位叛徒成功
瓦解了7位诚
实将军
新一代信息技术系列教材 《区块链导论》
区块链中:
✓ 每个节点——拜占庭军队中的将军
✓ 各个节点的信息传输过程——信使传信
比特币的数据校验内容:
(1)工作量证明检查
(2)区块头中Merkle根的值是否与依据区块体中交易信息计算得到一致
(3)区块大小再限制范围内
(4)第一笔交易以外的其他交易不能是铸币交易
(5)交易的合法性
新一代信息技术系列教材 《区块链导论》
4
共识层
区块链系统作为一个分布式系统,其正常工作的核心问题是如何保证所有节点中的数据完全相同,并且
相关文档
最新文档