【论文阅读】1 SkyChain:一个深度强化学习的动态区块链分片系统

SkyChain

  • 一、文献简介
  • 二、引言及重要信息
    • 2.1 研究背景
    • 2.2 研究目的和意义
    • 2.3 文献的创新点
  • 三、研究内容
    • 3.1模型
    • 3.2自适应分类账协议
      • 3.2.1状态块创建
      • 3.2.2合并过程
      • 3.2.3拆分过程
    • 3.3评价框架
      • 3.3.1性能
        • 3.3.1.1共识延迟
        • 3.3.1.2重新分片延迟
        • 3.3.1.3处理事务数
        • 3.3.1.4 约束
      • 3.3.2 安全性
      • 3.3.3 问题介绍
  • 四、基于DRL的动态分片框架
    • 4.1模型设计
    • 4.2 训练方法
    • 4.3 分布式部署
  • 五、评估
    • 5.1 收敛性能
    • 5.2 安全性和延迟
    • 5.3 吞吐量
  • 六、总结

一、文献简介

1.1 文献标题
SkyChain: A Deep Reinforcement Learning-Empowered Dynamic Blockchain Sharding System
1.2 作者
作者
中山大学系统科学与工程学院,广州中国数据与计算机学院
香港理工大学计算学系,中山大学数字生活国家工程研究中心
1.3 年份:2020年8月
1.4 期刊:ICPP

二、引言及重要信息

2.1 研究背景

1)分片是将网络划分为多个不相交的组,并行处理事务,以提高吞吐量。文章主要创新是基于的动态分片,可以更好地应对区块链的动态环境。在分片系统中,系统将被划分为独立的较小部分,称为分片(或委员会),其中任何一个都按分片中的节点维护一个独立的分类账。不同分片的参与者可以并行处理事务,这意味着可以在整个系统中并行创建和验证多个块,事务吞吐量可以显著提高。
2)区块链是动态的是指:区块链节点可以加入和离开系统,而恶意攻击者可以主动破坏诚实的节点,这可以动态地影响区块链系统中的节点数量。
3)动态中面临的挑战:重新设置分片频率、分片数量、调整块大小

2.2 研究目的和意义

2.3 文献的创新点

提出了SkyChain,这是第一个动态公共区块链分片协议,使区块链系统能够根据当前系统状态自动生成分片。
因为区块链分片系统的动态特性可以建模为马尔可夫决策过程(MDP),并且区块链系统中的环境是高维的,因此我们利用深度强化学习(DRL)方法来获得不同环境状态下的最优分片策略。深度强化学习可以从以前的经验中学习区块链分片系统的特点,并根据当前的网络状态采取适当的分片策略,以获得长期的回报,并且提出了一个性能和安全性评估的优化框架。

1)我们在公共区块链中提出了第一个基于动态分片的框架,可以在区块链系统的动态环境下保持性能和安全性之间的长期平衡。·
2)我们提出了一种自适应分类账协议,该协议保证根据动态分片结果有效地合并或拆分分类账,并且没有冲突。
3)我们量化了一个通用的分片系统,并设计了一种基于DRL的分片方法,在区块链系统的动态环境下动态调整重新分片的间隔、分片数量和块大小。

三、研究内容

3.1模型

1、基于账户交易模型。
2、使用DRL的方法来帮助系统在重构期间动态地制定分片策略。DRL是一种独特的机器学习类型,它将深度学习(DL)与强化学习(RL)相结合,以最大化代理与高维数据中环境之间交互的累积奖励
3、环境是动态区块链环境,代理由每个节点维护。

3.2自适应分类账协议

提出了一种自适应分类账协议,以保证根据重新分片的结果有效地合并和拆分分类账,并且没有冲突。
1)定义了状态块:为了解决重新配置节点(新节点或从原始分片切换到另一个分片的交换节点)的快速自举问题和分类账合并和分裂的效率,我们定义状态块。与存储交易数据的交易块相比,分片的状态块记录了分片的账本中的最新信息,包括账户地址和账户状态
2)sbti表示在epoch t时期的分片i的状态块。

3.2.1状态块创建

分片i遍历状态块sbt-1的所有事务,并且创建账户和地址的映射,并把映射的默克尔树根放在sbt的头部,并将映射放入sbt主体。然后进行共识,达成协议之后,就可以丢弃sbt-1的主体。

状态块帮助分片的重配置节点快速获得整个账本状态,因为这些节点只需要下载最新的状态块来同步分片的当前状态。此外,状态块可以简化分类账合并和拆分。

3.2.2合并过程

分类账簿合并
绿色由分片i维护,蓝色由分片j维护,黄色由分片k维护
1)在t时刻的重新配置阶段,分片i创建状态块sbti,j同样创建sbtj
2)DRL代理达成共识之后,分片i和j交换状态块的报头,并创建包含二者的新块sbtk
3)两个分片共同执行共识协议,达成一致。最终链连接起来,并且分片i和j合并成k。

3.2.3拆分过程

拆分过程
1)DRL代理达成共识之后,分片k获得信息,创建sbtk
2)创建新的块sbti和sbtj,将分片k的所有节点分割成不相交的两个子集。
3)分片k的节点根据分片信息分别存储其中一个状态块,并执行共识协议将其添加到区块链的末尾。通过这种方式,链k被分为链i和链j,它们中的每一个都在状态块后面维护一个不相交的分类账。最后,它们将在下一个epoch中分别处理不同的事务。

3.3评价框架

每个时期分为共识期和重新配置时期,因此每个时期的延时由两个时期的延时总和组成。也就是
Tepoch=Tcons+Treco

3.3.1性能

3.3.1.1共识延迟

共识时期的轮数rc
每轮的共识延迟Tround
∴ Tcons=rc✖Tround
以PBFT为例:拜占庭容错共识。分为预先准备、准备和提交三个阶段。为了降低数据传输的成本,仅仅在预准备阶段广播新块,而在后两个阶段仅仅广播块头。
一轮的等待时间可以计算:
计算公式1
其中
tv是每个阶段的验证时间
Rt是数据传输速率
ta是将新区块加到区块链上的成本。
SH是区块头大小
SB是区块大小
m是分片大小

消息被所有节点接受的时间最多为O(log m)

3.3.1.2重新分片延迟

重新配置延迟包括:
1)随机的产生Trand
2)每个分片的状态块的产生Ts
3)新节点将身份提交到区块链Tv
4)账本的拆分和合并Tr
所以:
计算公式2

3.3.1.3处理事务数

在分片系统中,跨分片交易是其相关地址记录在不同分片的账本中的交易。在处理跨分片事务时,不同的分片系统采用不同的机制来保证跨分片事务的原子性和一致性。
例如,RapidChain使用事务拆分,Monoxide使用中继事务。
然而,它们都引入了冗余事务,这意味着分片系统在处理跨分片事务时需要处理多个冗余事务。假设Rr是分片系统中一个事务的平均冗余事务数,那么我们可以计算一个分片在一个时期内处理的事务数
计算公式3
ST表示平均事务大小
Rr是分片系统中一个事务的平均冗余事务数
rc是轮数
所以,每个分片的事务吞吐量可以计算为
计算公式4
总的交易吞吐量为
Ototal=kO
其中k是分片的数量

3.3.1.4 约束

在区块链系统中,由于网络延迟,交易必须等待几轮共识才能获得最终确认。为了尽可能保持账本的一致性,防止区块在进入重构前被丢弃,应该限制等待时间在总的共识时间的一部分,也就是
约束条件

3.3.2 安全性

存在不安全分片,系统就会变得不安全。使用超几何分布啦计算故障系统的概率。
X表示分片中恶意节点的数量,F=sn表示n个节点和s个分片的总体恶意节点数量。所以,故障系统的概率(在m个节点中形成至少一个不安全分片且其中有超过mf个恶意节点的概率)是:
计算公式5
为了使错误委员会形成的概率可以忽略不计,使用参数来限定错误委员会形成的概率。如果满足以下不等式,则它是足够安全的。
约束条件2
设置
系统拜占庭容错设置为1/4,分片拜占庭容错设置为1/3.
根据故障系统概率的计算公式,我们应该适当增加委员会的规模,使不安全的概率在给定的界限下,更多的节点加入区块链系统。
节点破坏
在每个时期,诚实节点可能被恶意节点破坏。假设恶意节点具有有限的攻击能力,平均节点损坏需要花费必要的时间。如果满足以下不等式,则可以将epoch视为安全的。
计算公式6

3.3.3 问题介绍

计算

四、基于DRL的动态分片框架

DRL努力根据当前区块链环境和给定的奖励,从过去的经验中研究通用的分片策略,这使得它能够适应复杂和动态的区块链环境。考虑到动作空间的连续,使用深度确定性策略梯度(DDPG)算法来训练我们的模型。

4.1模型设计

强化学习中的三个关键组成部分:状态空间,动作空间和奖励函数,
1)状态空间:
系统具有n个节点,其中节点随时会离开,新节点的加入只发生在重新配置期间。q表示未决事务的数量。
因此,时刻t的状态空间可以表示为:
st=[q,n]t
2)动作空间
当节点的到达服从分布时,epoch length将决定下一epoch的系统节点数。此外,分片数和块大小可以通过影响处理事务的速率来改变事务池的状态。因此,它们应该进行调整以适应动态环境。我们将时刻t的动作空间定义为:
at=[Tepoch,k,SB]t
L为epoch length Tepoch ∈(0,L)设置的最大长度。
为了保证分类账被有效地合并或拆分并且没有冲突,我们设置k = 2i,i = 0,1,2…C,其中C是常数。
设置Ns = 2C,表示分片的最大数量。值M来约束块大小的范围。
3)奖励函数
由于可伸缩性可以很容易地用事务吞吐量来量化,因此我们使用事务吞吐量作为我们的奖励函数。
约束条件和奖励定义如下:
奖励函数
当打破约束的时候,就将奖励设置为0。

4.2 训练方法

DDPG算法得另外学了。
算法
1)在每个时间步t,根据当前区块链状态st选择并执行分片动作at,然后应用噪声N进行探索。
2)区块链环境将一个由系统安全性和吞吐量衡量的奖励,并进入下一个状态st+1
3)将转变(st,at,rt,st+1)存储在R中
4)从重放缓冲器reply buffer中取出恒定数量的先前转变,以更新参数
5)使用soft来改变目标网络

4.3 分布式部署

要使用经过训练的代理,一种直观而简单的方法是将经过训练的代理应用于确定的节点,但由于集中化,这将导致一些潜在的安全问题。
在我们的区块链分片系统中,我们采用分布式部署方法来解决这个问题。
La是现任领导之一,被选为基于当前时期的分片策略的提议者。当分片完成共识的时候,La使用当前系统的状态信息,作为输入创建一个分片策略。
四个阶段:
1)广播:La将参数、系统状态发送给其他领导者。
2)回复:其他领导者接收到之后,做标记并再次广播出去。定义一个阈值表示领导者可以容忍的最大差值,只有差值在阈值范围内,才会标记为YES。
3)接收:如果一个诚实的leader收到了超过一半的leader的相同回声,它接受这个分片策略,并再次广播给其他leader,并带有一个接受标签,以及一个验证,表明它收到了超过一半的相同回声。
4)更新:La接收到超过一半的accept之后就会进行状态转换更新,并广播给其他领导者。

五、评估

环境:tensorflow、Windows Server 2016中python3.6
新区块的产生可以被建模为具有时间依赖强度的泊松过程,这意味着交易量的减少也是一个泊松过程。
将区块链分片系统中的交易到达建模为到达率λt = 10000的泊松过程。
区块链中的节点数量是动态变换的,所以假设节点数量的变化服从方差σ2 = 100且期望值En = 0的正态分布,其中,N > 0表示新节点加入,而N < 0表示节点离开。
参数设置如下:
参数设置

比较方案
1)固定epoch length的建议方案。
2)提出了固定分片数的方案
3)固定块大小的建议方案。
比较参数
收敛性能、安全性和延迟性能、吞吐量

5.1 收敛性能

评估1

我们可以看到,所有方案的吞吐量都从学习过程开始时的低水平迅速增加,并在大约5000次训练后变得平坦。

5.2 安全性和延迟

评估2

设置分片大小m = 80,90,110,130,150,计算故障系统的概率。如图所示,当系统节点数小于10000时,分片大小m = 150时,安全概率可达98%。此外,还可以观察到,随着越来越多的新节点加入系统,不安全概率缓慢增加,这意味着区块链分片系统需要在系统节点数量变化时调整分片大小以保证安全性。
评估3

图5示出了延迟的变化,也就是委员会内部共识时间。当块大小逐渐增加时,从中可以看出共识延迟与块大小和分片大小有关。块大小不能无限制地增加,因为它会增加新块添加到区块链的时间,导致约束条件之一不满足。

5.3 吞吐量

评估4
评估5

在图6至图11中展示了不同系统参数对区块链分片系统性能的影响。基于DRL的动态分片框架的吞吐量与具有不同阈值的共识延迟,安全参数,平均事务大小,传输速率,初始节点数和分片数限制的基线进行了比较。
图6:我们可以观察到,固定的块大小方案中保持稳定,而其他在随着限制比的增大而减少。
图7:讨论安全参数对吞吐量的影响。在打羽5 之后变化较小,这意味着当碎片大小足够大时,系统具有高的安全概率。而具有固定数目的分片的方案的吞吐量稳定地变化,因为其分片大小可以确保低的不安全概率。
图8和图9讨论事务大小和传输速率对吞吐量的影响。
很明显,吞吐量随着事务大小的减小和传输速率的增加而显著增加。原因是一个块可以为较小的事务打包更多数量的事务,并为更高的传输速率进行更快的通信。而且此方案的吞吐量可以最高。
图10讨论了初始节点数对吞吐量的影响。吞吐量可以随着节点的加入而增加,并且由于限制分片数(这里我们将最大分片数设置为64)而最终停止增加。
图11讨论了分片数量的影响。
吞吐量可以随着分片数量的增加而有效地扩展。当最大分片数为128时,我们提出的方案的吞吐量可以达到110000 TPS。当最大分片数为128时,固定分片数方案优于固定历元长度和固定块大小,但其吞吐量仍低于我们提出的方案。
这一结果表明,我们提出的方案可以更好地适应不同的环境。

六、总结

文章提出了一种自适应账本协议,根据动态分片的结果,保证账本的有效合并或拆分,并且不会产生冲突。
SkyChain采用基于DRL的动态分片方法来调整epoch长度,分片数量和块大小,以保持性能和安全性之间的长期平衡。
展望:
在未来的工作中,我们计划在区块链分片系统中考虑更多与动态环境相关的因素,并将我们基于DRL的动态分片框架应用于真实的区块链系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/207169.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以太网PHY,MAC接口

本文主要介绍以太网的 MAC 和 PHY&#xff0c;以及之间的 MII&#xff08;Media Independent Interface &#xff0c;媒体独立接口&#xff09;和 MII 的各种衍生版本——GMII、SGMII、RMII、RGMII等。 简介 从硬件的角度看&#xff0c;以太网接口电路主要由MAC&#xff08;M…

快速了解ChatGPT(大语言模型)

目录 GPT原理&#xff1a;文字接龙&#xff0c;输入一个字&#xff0c;后面会接最有可能出现的文字。 GPT4 学会提问&#xff1a;发挥语言模型的最大能力 参考李宏毅老师的课快速了解大语言模型做的笔记&#xff1a; Lee老师幽默的开场&#xff1a; GPT&#xff1a;chat Ge…

在cmd下查看mysql表的结构信息

我提前已经在mysql数据库中创建了一个表&#xff1a; 在cmd下&#xff0c;登录mysql以后&#xff0c;使用命令describe 表名、或者explain 表名可以查看表结构信息。但在实践中&#xff0c;查看表结构&#xff0c;多用describe命令&#xff0c;而查看执行计划用explain。 例…

Yolov8实现瓶盖正反面检测

一、模型介绍 模型基于 yolov8n数据集采用SKU-110k&#xff0c;这数据集太大了十几个 G&#xff0c;所以只训练了 10 轮左右就拿来微调了 基于原木数据微调&#xff1a;训练 200 轮的效果 10 轮SKU-110k 20 轮原木 200 轮瓶盖正反面 微调模型下载地址https://wwxd.lanzouu.co…

西工大网络空间安全学院计算机系统基础实验零

首先&#xff0c;下载VMware17 Pro workstation。为什么要下载VMware17 Pro workstation呢&#xff1f;因为计算机系统基础实验有四个大部分&#xff1a;利用位运算实现诸如a*b&#xff0c;a/b&#xff0c;a*(2^4)等运算&#xff1b;C语言循环语句、switch语句等语句与汇编代码…

Android 12 及以上授权精确位置和模糊位置

请求位置信息权限 为了保护用户隐私&#xff0c;使用位置信息服务的应用必须请求位置权限。 请求位置权限时&#xff0c;请遵循与请求任何其他运行时权限相同的最佳做法。请求位置权限时的一个重要区别在于&#xff0c;系统中包含与位置相关的多项权限。具体请求哪项权限以及…

Linux uname命令教程:如何打印linux操作系统名称和硬件的基本信息(附实例教程和注意事项)

Linux uname命令介绍 uname命令是一个在Linux中常用的命令行工具&#xff0c;用于打印有关操作系统名称和系统硬件的基本信息。uname这个名字来源于"UNIX name"。它最常用于确定处理器架构&#xff0c;系统主机名和系统上运行的内核版本。 Linux uname命令适用的Li…

Python面向对象练习

Python面向对象练习 class Enty:blood100name""atackvalue100team0domain[1] #1,land 2 airdef setTeam(self,team0):self.teamteamdef atack(self,Enty):if self.teamEnty.team:print("不能向盟军开火")self.info()passelse :# print(self.domain)ss…

级联组件-双向绑定

页面1 级联选择器 <select-tree></select-tree>,这样要引入封装好的&#xff0c;并且记得注册 <el-row><el-col :span"12"><el-form-item label"部门" prop"departmentId"><!-- 单独封装--><!-- 在父组…

Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 构建可移植的计算机视觉环境 文章目录 前言引言简介&#xff1a;目的和重要性&#xff1a; 深入理解Docker和OpenCVDocker的基本概念和优势&#xff1a;OpenCV简介和应用领域&#xff1a;…

在龙蜥 anolis os 23 上 源码安装 PostgreSQL 16.1

在龙蜥 OS 23上&#xff0c;本来想使用二进制安装&#xff0c;结果发现没有针对龙蜥的列表&#xff1a; 于是想到了源码安装&#xff0c;下面我们列出了PG源码安装的步骤&#xff1a; 1.安装准备 1.1.创建操作系统组及用户 groupadd postgres useradd -g postgres -m postgr…

【Linux】快速上手自动化构建工具make/makefile

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.什么是make / makefile 2…

虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

导读&#xff1a;在基于FPGA的网络设备中&#xff0c;精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议&#xff08;PTP&#xff09;为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟&#xff08;TC&#xff…

Android的启动模式

Android的四种启动模式&#xff1a;standard、singleTop、singleTask和singleInstance。 1.standard Android默认的启动模式是standard&#xff0c;每启动一个Activity&#xff0c;它都会在返回栈中入栈&#xff0c;并处于栈顶&#xff0c;不管这个返回栈是否存在这个activit…

如何查看电脑内存?Windows 和 Mac 方法不同

Windows 系统查看内存方法 在 Windows 操作系统中我们查看电脑内存在哪里查呢&#xff1f;下面总结的 3 种查看电脑内存的方法都可以使用&#xff1a;使用任务管理器&#xff1a;任务管理器是 Windows 中一个强大的工具&#xff0c;可用于监视和管理计算机的性能和资源使用。使…

SpringBoot参数校验@Validated和@Valid的使用

1、Validated和Valid区别 Validated&#xff1a;可以用在类、方法和方法参数上。但是不能用在成员属性&#xff08;字段&#xff09;上Valid&#xff1a;可以用在方法、构造函数、方法参数和成员属性&#xff08;字段&#xff09;上 2、引入依赖 Spring Boot 2.3 1 之前&…

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(免费思路)

中国是世界上最大的苹果生产国&#xff0c;年产量约为 3500 万吨。同时&#xff0c;中国也是世界上最大的苹果出口国&#xff0c;世界上每两个苹果中就有一个出口到国。世界上每两个苹果中就有一个来自中国&#xff0c;中国出口的苹果占全球出口量的六分之一以上。来自中国。中…

【机器学习】线性模型之逻辑回归

文章目录 逻辑回归Sigmoid 函数概率输出结果预测值与真实标签之间的并不匹配交叉熵逻辑回归模型 梯度下降逻辑回归模型求解编程求解sklearn 实现&#xff0c;并查看拟合指标 逻辑回归 逻辑回归是一种广义线性模型&#xff0c;形式上引入了 S i g m o i d Sigmoid Sigmoid 函数…

(2)(2.2) Lightware SF45/B(350度)

文章目录 前言 1 安装SF45/B 2 连接自动驾驶仪 3 通过地面站进行配置 4 参数说明 前言 Lightware SF45/B 激光雷达(Lightware SF45/B lidar)是一种小型扫描激光雷达&#xff08;重约 50g&#xff09;&#xff0c;扫描度可达 350 度&#xff0c;扫描范围 50m。 1 安装SF45…

python 中文件相对路径 和绝对路径

什么是绝对路径 绝对路径&#xff1a;就是从盘符(c盘、d盘)开始一直到文件所在的具体位置。 例如&#xff1a;xxx.txt 文件的绝对路径为&#xff1a; “C:\Users\xiaoyuzhou\Desktop\file\xxx.txt”相对路径 “相对路径”就是针对“当前文件夹”这一参考对象&#xff0c;来描述…