一种基于制造技术

技术编号:39721299 阅读:12 留言:0更新日期:2023-12-17 23:27
该发明专利技术公开了一种基于

【技术实现步骤摘要】
一种基于DAG账本结构的区块链安全共识方法


[0001]本专利技术涉及区块链账本结构与共识技术等领域,具体涉及一种基于
DAG
账本结构的区块链安全共识方法


技术介绍

[0002]DAG(Directed Acyclic Graph
,有向无环图
)
数据结构其底层存储数据的形式为有向无环图,与传统区块链结构采用区块与区块间简单的线性连接不同,
DAG
采用了图的方式连接数据并进行存储,能够有效提升区块链系统的吞吐量,然而异步存储的方式使得整个系统结构变得复杂,网络中所有交易的完全序列化问很难得到解决,容易引发双重花费,因此设计一种能够避免双重花费问题的
DAG
数据结构可以提高区块链系统安全性

[0003]在共识层面,目前
PBFT
算法主要存在的问题之一为:传统的
PBFT
算法中选取主节点的方式为
P

V mod N
,其中
P
为主节点编号,
V
为视图编号,每次视图轮换
V
增加,
N
为共识组中验证节点的数量,显然算法中主节点编号与视图编号直接关联,能够很容易被系统中的恶意节点预测,进而达到提前攻击的目的,不利于保证系统的安全性

因此设计一种节点信誉值计算方法并基于节点的信誉值排序,选取信誉值最高的节点担任主节点,这样能够在很大程度上保证系统的安全,同时设置了奖惩机制,可以逐渐淘汰恶意节点


技术实现思路

[0004]本专利技术所要解决的技术问题是,提供一种改进的区块链账本结构与共识方法,能安全高效地完成共识过程,提高系统安全性

[0005]本专利技术为解决上述技术问题提出了一种基于
DAG
账本结构的区块链安全共识方法,该方法包括如下步骤:
[0006]S1
:账户初始化,即账户在区块链网络上进行注册

账户拥有者在网络中发布一条非事务信息,网络使用非对称加密算法为注册者分配一对公私钥,私钥对事务进行签名,公钥用来提供验证,账户地址由公钥使用哈希算法获得,新创建的账户统一获得初始信誉值为2;
[0007]S2
:用户完成账户初始化之后可以进行交易信息提交并打包发送至区块链网络

[0008]交易的生成和区块的打包应满足自引用与它引用

工作量证明
POW
两个条件,事务的发出需要在其头部引用两笔已经存在的交易,其中一笔交易为当前节点的上一历史交易,称之为自引用,另一笔交易为网络中其他节点的最新交易,称之为它引用,形成
DAG
结构

引用自身上一历史交易能将该节点的所有发送交易串联,从而形成一条依时间排序的链条,单个节点的交易只能是线性的有顺序的执行,而两笔交易同时引用前一笔交易时,必然触发双重花费问题,很容易被区块链网络中的其他节点和共识节点所识别,因此自引用的结构可以有效避免双花攻击,提升系统安全性;引用网络中其他一笔交易的目的是希望所有节点能共同参与验证网络中的事务

使用
POW(Proof of Work
,工作量证明机制
)
的主要目的是控制单个节点的交易速度,避免节点发送大量的无效交易,工作量证明算法中的
阈值可以依据网络中所有节点平均交易生成速度而进行动态调整

[0009]满足上述条件
(
上述条件指交易的生成和区块的打包应满足自引用与它引用,工作量证明两个条件
)
后,用户可以自行将所需的交易信息提交并打包发送至区块链网络

[0010]S3
:用户完成交易信息提交和打包发送后,区块链网络节点基于信誉值选举的
PBFT
算法完成共识

参与共识节点可分为主节点和副本节点,根据节点信誉值由高到低进行排序,划分为四个等级,分别为可信节点

普通节点

故障节点与恶意节点,其中可信节点与普通节点可以作为主节点与副本节点参与共识验证,若可信节点与普通节点数量不足,故障节点也可作为副本节点,恶意节点不能参与共识验证

收到客户端
(
即发起交易信息提交的用户
)
的共识请求后,共识过程由以下三个阶段完成:
[0011]S3.1
:预准备阶段,主节点接收到来自客户端的交易信息请求后,给该请求分配一个序列号
n
,生成预准备消息并广播给副本节点;
[0012]S3.2
:准备阶段,副本节点对预准备消息进行验证,若验证通过,则向其他节点广播准备消息;
[0013]S3.3
:提交阶段,节点
(
此处节点即为参与共识的节点,本身也是副本节点


S3.2
准备阶段中,副本节点向除了自己之外的所有节点发送了准备消息,在
3.3
的提交阶段,每个节点都会对自己收到的所有消息进行验证,因此这个其他是相对自身而言的其他
)
收到来自其他副本节点
(
这里的其他是相对该节点自身的
)
的准备消息时,对消息内容进行验证,若验证通过则向所有节点发送确认消息;
[0014]S4
:以上3个步骤完成后,节点向客户端发送回复消息,当客户端接收到
f+1

(
其中
f
表示系统中最多有
f
个恶意节点
)
不同的节点
(
这里
f+1
是传统
PBFT
算法常用的概念,即若系统中恶意节点有
f
个,则系统总节点数需要大于等于
3f+1
,即除了恶意节点之外的诚实节点至少有
2f+1

)
发来的有效消息时,本轮共识完成

[0015]本专利技术提出的方法从两个层面保障区块链共识方法的安全性,在数据结构层面提出了基于自引用的
DAG
的数据结构,通过自引用的方式将同一用户的所有发出交易串联,从而序列化单个用户的所有交易,有效解决双重花费问题,在共识算法的共识节点选举层面提出基于信誉值的共识节点组选举,通过有效的信誉计算方法提高系统的可靠性,从整体上实现了一种基于
DAG
账本结构的安全共识办法

附图说明
[0016]图1为本专利技术交易过程中区块的数据结构示意图;
[0017]图2是基于自引用
DAG
的数据结构

具体实施方式
[0018]为使本专利技术的目的
、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
DAG
账本结构的区块链安全共识方法,其特征在于,该方法包括以下步骤:
S1
:账户初始化,即账户在区块链网络上进行注册;账户拥有者在网络中发布一条非事务信息,网络使用非对称加密算法为注册者分配一对公私钥,私钥对事务进行签名,公钥用来提供验证,账户地址由公钥使用哈希算法获得,新创建的账户统一获得初始信誉值为2;
S2
:用户提交交易信息并打包发送至区块链网络;交易的生成和区块的打包满足自引用与它引用

工作量证明两个条件,事务的发出需要在其头部引用两笔已经存在的交易,其中一笔交易为当前节点的上一历史交易,称之为自引用,另一笔交易为网络中其他节点的最新交易,称之为它引用,由此形成
DAG
结构;使用工作量证明是为了控制单个节点的交易速度,防止节点发送大量的无效交易,工作量证明算法中的阈值依据网络中所有节点平均交易生成速度进行动态调整;满足自引用与它引用

工作量证明两个条件后,用户自行将所需的交易信息提交并打包发送至区块链网络;
S3
:基于信誉值选举的
PBFT
算法完成共识;参与共识节点分为主节点和副本节点,根据节点信誉值由高到低进行排序,划分为四个等级,分别为可信节点

普通节点

故障节点与恶意节点,其中可信节点与普通节点能够作为主节点与副本节点参与共识验证,若可信节点与普通节点数量不足,故障节点也能够作为副本节点,恶意节点不能参与共识验证,收到客户端的共识请求后,共识过程由以下三个阶段完成:
S3.1
:预准备阶段,主节点接收到来自客户端的交易信息请求后,给该请求分配一个序列号
n
,生成预准备消息并广播给副本节点;
S3.2
:准备阶段,副本节点对预准备消息进行验证,若验证通过,则向其他节点广播准备消息;
S3.3
:提交阶段,节点收到来自其他副本节点的准备消息时,对消息内容进行验证,若验证通过则向所有节点发送确认消息;
S4
:完成步骤
S1

S3
后,节点向客户端发送回复消息,当客户端接收到
f+1
个不同的节点发来的有效消息时,本轮共识完成
。2.
根据权利要求1所述的基于
DAG
账本结构的区块链安全共识方法,其特征在于,所述步骤
S1
中账户创建过程中公私钥及账户地址的生成过程如下:
S1.1
:生成两个不相等的大质数
p

q
,计算
p

q
的乘积
N

p*q
,并令,并令其中表示对
N
的欧拉函数计算;
S1.2
:取随机数
e
,满足
e<r

e

r
互质;
S1.3
:通过
d≡e
‑1(mod r)
计算
e
对于的模反元素
d
,其中
mod
表示取余操作;
S1.4
:账户的公钥由
N

e
组成,私钥由
N

d
组成,公钥是公开的,私钥用于签名与身份验证,用户的账户地址则是对公钥使用
SHA256
压缩算法计算得出
。3.
根据权利要求2所述的基于
DAG
账本结构的区块链安全共识方法,其特征在于,所述步骤
S3
中节点的信誉值计算方法为:定义节点
i
的信誉值评价模型为:
W
i,k

α
*A
i
+
β
*C
i
+
γ
*R
i,k
其中,
W
i,k
是节点
i
在第
k
轮共识过程中的信誉值得分,其由3部分组成:
A
i
是节点
i
参与共识的活跃度,即节点活跃度;
C
i
是节点
i
的历史行为累计信誉分;
R
i,k
是节点
i
的奖惩因子,当节点
i
在第
k
轮做出诚实行为时,会得到一定的奖励,做出消极行为时,会得到一定的惩罚;
α

β

【专利技术属性】
技术研发人员:夏琦夏虎高建彬戴子玟田雯雷景皓郭伟奇
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1