CN109344623A - 一种基于dag的去中心化方法及终端 - Google Patents
一种基于dag的去中心化方法及终端 Download PDFInfo
- Publication number
- CN109344623A CN109344623A CN201811128249.5A CN201811128249A CN109344623A CN 109344623 A CN109344623 A CN 109344623A CN 201811128249 A CN201811128249 A CN 201811128249A CN 109344623 A CN109344623 A CN 109344623A
- Authority
- CN
- China
- Prior art keywords
- verifying
- node
- grouping
- packet
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于DAG的去中心化方法及终端,其方法包括:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;根据所有分组的验证节点,筛选DAG的决策节点。本发明通过上述方法解决了中心化问题,提高了共识过程中的安全性。
Description
技术领域
本发明涉及有向无环图技术领域,尤其涉及一种基于DAG的去中心化方法及终端。
背景技术
有向无环图(Directed Acyclic Graph,DAG)将系统单元数据保存时,由于DAG没有区块,单元不需要连接到单链,而是自发、并行地链接到多个先前的单元,因此大大提高了系统的吞吐率。但现有的基于DAG的IOTA的中央协调器和字节雪球(Byteball)的指定见证人的模型存在中心化的问题,影响系统的安全性。
发明内容
本发明所要解决的技术问题是:本发明提供了一种基于DAG的去中心化方法及终端,解决了中心化问题,提高了共识过程中的安全性。
为了解决上述技术问题,本发明提供了一种基于DAG的去中心化方法,包括以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
S3:根据所有分组的验证节点,筛选DAG的决策节点。
本发明还提供了一种基于DAG的去中心化终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
S3:根据所有分组的验证节点,筛选DAG的决策节点。
本发明的有益效果为:
本发明提供了一种基于DAG的去中心化方法及终端,通过在每一轮共识过程中,将有向无环图中的所有节点进行分组,并通过预设函数从每一个分组中的所有待选验证节点中筛选出唯一的验证节点,并根据所有分组的验证节点,筛选出DAG的决策节点;由于DAG系统所面临的安全威胁来自于各个方面,将其分成多组后,筛选出每一个分组的验证节点,在一定程度上能够减少系统受到的安全威胁;通过上述预设函数在每一轮共识过程中,筛选出的验证节点具有一定的随机性,能够起到去中心化的作用,可提高DAG系统的安全性。
附图说明
图1为根据本发明实施例的一种基于DAG的去中心化方法的主要步骤示意图;
图2为根据本发明实施例的一种基于DAG的去中心化终端的结构示意图;
标号说明:
1、存储器;2、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参照图1,本发明提供了一种基于DAG的去中心化方法,包括以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
S3:根据所有分组的验证节点,筛选DAG的决策节点。
从上述描述可知,本发明提供了一种基于DAG的去中心化方法,通过在每一轮共识过程中,将有向无环图中的所有节点进行分组,并通过预设函数从每一个分组中的所有待选验证节点中筛选出唯一的验证节点,并根据所有分组的验证节点,筛选出DAG的决策节点;由于DAG系统所面临的安全威胁来自于各个方面,将其分成多组后,筛选出每一个分组的验证节点,在一定程度上能够减少系统受到的安全威胁;通过上述预设函数在每一轮共识过程中,筛选出的验证节点具有一定的随机性,能够起到去中心化的作用,可提高DAG系统的安全性。
进一步的,所述S1具体为:
在每一轮共识过程中,将所述DAG中的所有待选验证节点按照是否处于同一水平面进行分组,得到多个第一分组,每一个第一分组中包括的所有待选验证节点均处于同一水平面上;
将所述DAG中的所有节点按照是否处于同一竖直面进行分组,得到多个第二分组,每一个第二分组中包括的所有待选验证节点均处于同一竖直面上;不同的第二分组包括的待选验证节点所在的竖直面相互平行。
从上述描述可知,将DAG中所有节点根据不同的维度分割成不同的分组,使得不同维度的待选验证节点具备不同的特性,基于不同维度所选择出的验证节点在预设函数的指导下,具有很强的去中心化的特性,能够为系统提供足够的安全特性。
进一步的,所述S2具体为:
通过预设函数筛选出每一个第一分组和每一个第二分组的验证节点;所有分组对应的验证节点均不相同;所述所有分组包括所有的第一分组和所有的第二分组。
从上述描述可知,基于水平维度和竖直维度筛选出的验证节点,且所有分组对应的验证节点均不相同,从而使决策节点从所有分组对应的验证节点筛选出,而不存在第一分组与第二分组的验证节点相同的情况存在。
进一步的,所述S2具体为:
根据每一个第一分组包括的所有待选验证节点所在的水平面,按照从上往下或从下往上的方式将对应的第一分组进行排序,得到排序号为1~m的第一分组,所述m为所有第一分组的数量;
通过预设哈希函数计算每一个第一分组中所有待选验证节点的哈希值;
其中,i表示第一分组的排序号,j表示待选验证节点的序号,ni表示排序号为i的第一分组所包括的待选验证节点的数量,表示排序号为i的第一分组层中第j个待选验证节点的地址,表示第r轮共识过程中排序号为i的第一分组对应的随机数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为i的第一分组中第j个待选验证节点上存储的私钥对i、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第一分组中所有待选验证节点的最小哈希值,得到多个最小哈希值对应的待选验证节点,所述多个最小哈希值对应的待选验证节点为每一个第一分组的验证节点;
根据每一个第二分组包括的所有待选验证节点所在的竖直面,按照从左往右或从右往左的方式将对应的第二分组进行排序,得到排序号为1~c的第二分组,所述c为所有第二分组的数量;
通过函数计算每一个第二分组中所有待选验证节点的哈希值;
其中,a表示第二分组的排序号,b表示待选验证节点的序号,na表示排序号为a的第二分组所包括的待选验证节点的数量,表示排序号为a的第二分组层中第b个待选验证节点的地址,表示第r轮共识过程中排序号为a的第二分组对应的随机数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为a的第二分组中第b个待选验证节点上存储的私钥对a、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第二分组中所有待选验证节点的最小哈希值,得到多个第一最小哈希值对应的待选验证节点,所述多个第一最小哈希值对应的待选验证节点为每一个第二分组的验证节点。
从上述描述可知,通过上述方法,能够使每一轮共识过程中,筛选出的每一个分组的验证节点具有随机性,具有较强的去中心化作用,提高了系统的安全性。
进一步的,通过函数计算每一个第二分组中所有待选验证节点的哈希值,之前还包括:
获取每一个第一分组对应的验证节点,得到多个第一验证节点;
依次删除第二分组中与所述第一验证节点相同的待选验证节点。
从上述描述可知,通过上述方法,能够确保每一个分组筛选出的验证节点均不相同。
请参照图2,本发明提供的一种基于DAG的去中心化终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
S3:根据所有分组的验证节点,筛选DAG的决策节点。
进一步的,所述的一种基于DAG的去中心化终端,所述S1具体为:
在每一轮共识过程中,将所述DAG中的所有待选验证节点按照是否处于同一水平面进行分组,得到多个第一分组,每一个第一分组中包括的所有待选验证节点均处于同一水平面上;
将所述DAG中的所有节点按照是否处于同一竖直面进行分组,得到多个第二分组,每一个第二分组中包括的所有待选验证节点均处于同一竖直面上;不同的第二分组包括的待选验证节点所在的竖直面相互平行。
进一步的,所述的一种基于DAG的去中心化终端,所述S2具体为:
通过预设函数筛选出每一个第一分组和每一个第二分组的验证节点;所有分组对应的验证节点均不相同;所述所有分组包括所有的第一分组和所有的第二分组。
进一步的,所述的一种基于DAG的去中心化终端,所述S2具体为:
根据每一个第一分组包括的所有待选验证节点所在的水平面,按照从上往下或从下往上的方式将对应的第一分组进行排序,得到排序号为1~m的第一分组,所述m为所有第一分组的数量;
通过预设哈希函数计算每一个第一分组中所有待选验证节点的哈希值;
其中,i表示第一分组的排序号,j表示待选验证节点的序号,ni表示排序号为i的第一分组所包括的待选验证节点的数量,表示排序号为i的第一分组层中第j个待选验证节点的地址,表示第r轮共识过程中排序号为i的第一分组对应的随机数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为i的第一分组中第j个待选验证节点上存储的私钥对i、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第一分组中所有待选验证节点的最小哈希值,得到多个最小哈希值对应的待选验证节点,所述多个最小哈希值对应的待选验证节点为每一个第一分组的验证节点;
根据每一个第二分组包括的所有待选验证节点所在的竖直面,按照从左往右或从右往左的方式将对应的第二分组进行排序,得到排序号为1~c的第二分组,所述c为所有第二分组的数量;
通过函数计算每一个第二分组中所有待选验证节点的哈希值;
其中,a表示第二分组的排序号,b表示待选验证节点的序号,na表示排序号为a的第二分组所包括的待选验证节点的数量,表示排序号为a的第二分组层中第b个待选验证节点的地址,表示第r轮共识过程中排序号为a的第二分组对应的随机数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为a的第二分组中第b个待选验证节点上存储的私钥对a、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第二分组中所有待选验证节点的最小哈希值,得到多个第一最小哈希值对应的待选验证节点,所述多个第一最小哈希值对应的待选验证节点为每一个第二分组的验证节点。
进一步的,所述的一种基于DAG的去中心化终端,通过函数计算每一个第二分组中所有待选验证节点的哈希值,之前还包括:
获取每一个第一分组对应的验证节点,得到多个第一验证节点;
依次删除第二分组中与所述第一验证节点相同的待选验证节点。
请参照图1,本发明的实施例一为:
本发明提供了一种基于DAG的去中心化方法,包括以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
其中,所述S1具体为:
在每一轮共识过程中,将所述DAG中的所有待选验证节点按照是否处于同一水平面进行分组,得到多个第一分组,每一个第一分组中包括的所有待选验证节点均处于同一水平面上;
将所述DAG中的所有节点按照是否处于同一竖直面进行分组,得到多个第二分组,每一个第二分组中包括的所有待选验证节点均处于同一竖直面上;不同的第二分组包括的待选验证节点所在的竖直面相互平行。
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
其中,所述S2具体为:
根据每一个第一分组包括的所有待选验证节点所在的水平面,按照从上往下或从下往上的方式将对应的第一分组进行排序,得到排序号为1~m的第一分组,所述m为所有第一分组的数量;
通过预设哈希函数计算每一个第一分组中所有待选验证节点的哈希值;
其中,i表示第一分组的排序号,j表示待选验证节点的序号,ni表示排序号为i的第一分组所包括的待选验证节点的数量,表示排序号为i的第一分组层中第j个待选验证节点的地址,表示第r轮共识过程中排序号为i的第一分组对应的随机数(每一轮共识过程中均产生新的随机数,且生成m个随机数,与m个第一分组一一对应),表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为i的第一分组中第j个待选验证节点上存储的私钥对i、和进行签名,表示对得到的签名数据进行哈希运算;
将每一个第一分组中的每一个节点通过H哈希函数运算后的哈希值,转换为二进制数;
筛选出每一个第一分组中所有待选验证节点的最小二进制数,得到多个最小二进制数对应的待选验证节点,所述多个最小二进制数对应的待选验证节点即为每一个第一分组的验证节点;
获取每一个第一分组对应的验证节点,得到多个第一验证节点;
依次删除第二分组中与所述第一验证节点相同的待选验证节点;
根据每一个第二分组包括的所有待选验证节点所在的竖直面,按照从左往右或从右往左的方式将对应的第二分组进行排序,得到排序号为1~c的第二分组,所述c为所有第二分组的数量;
通过函数计算每一个第二分组中所有待选验证节点的哈希值;
其中,a表示第二分组的排序号,b表示待选验证节点的序号,na表示排序号为a的第二分组所包括的待选验证节点的数量,表示排序号为a的第二分组层中第b个待选验证节点的地址,表示第r轮共识过程中排序号为a的第二分组对应的随机数(每一轮共识过程中均产生新的随机数,且生成c个随机数,与c个第二分组一一对应),表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为a的第二分组中第b个待选验证节点上存储的私钥对a、和进行签名,表示对得到的签名数据进行哈希运算;
将每一个第二分组中的每一个节点通过H哈希函数运算后的哈希值,转换为二进制数;
筛选出每一个第二分组中所有待选验证节点的最小二进制数,得到多个第一最小二进制数对应的待选验证节点,所述多个第一最小二进制数对应的待选验证节点即为每一个第二分组的验证节点。
S3:根据所有分组的验证节点,筛选DAG的决策节点;
其中,所述S3具体为:
根据所有分组对应的验证节点,筛选出二进制数最小的验证节点作为DAG的决策节点;所述所有分组包括所有的第一分组和所有的第二分组。
请参照图2,本发明的实施例二为:
本发明提供了一种基于DAG的去中心化终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
其中,所述S1具体为:
在每一轮共识过程中,将所述DAG中的所有待选验证节点按照是否处于同一水平面进行分组,得到多个第一分组,每一个第一分组中包括的所有待选验证节点均处于同一水平面上;
将所述DAG中的所有节点按照是否处于同一竖直面进行分组,得到多个第二分组,每一个第二分组中包括的所有待选验证节点均处于同一竖直面上;不同的第二分组包括的待选验证节点所在的竖直面相互平行。
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
其中,所述S2具体为:
根据每一个第一分组包括的所有待选验证节点所在的水平面,按照从上往下或从下往上的方式将对应的第一分组进行排序,得到排序号为1~m的第一分组,所述m为所有第一分组的数量;
通过预设哈希函数计算每一个第一分组中所有待选验证节点的哈希值;
其中,i表示第一分组的排序号,j表示待选验证节点的序号,ni表示排序号为i的第一分组所包括的待选验证节点的数量,表示排序号为i的第一分组层中第j个待选验证节点的地址,表示第r轮共识过程中排序号为i的第一分组对应的随机数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为i的第一分组中第j个待选验证节点上存储的私钥对i、和进行签名,表示对得到的签名数据进行哈希运算;
将每一个第一分组中的每一个节点通过H哈希函数运算后的哈希值,转换为二进制数;
筛选出每一个第一分组中所有待选验证节点的最小二进制数,得到多个最小二进制数对应的待选验证节点,所述多个最小二进制数对应的待选验证节点即为每一个第一分组的验证节点;
获取每一个第一分组对应的验证节点,得到多个第一验证节点;
依次删除第二分组中与所述第一验证节点相同的待选验证节点;
根据每一个第二分组包括的所有待选验证节点所在的竖直面,按照从左往右或从右往左的方式将对应的第二分组进行排序,得到排序号为1~c的第二分组,所述c为所有第二分组的数量;
通过函数计算每一个第二分组中所有待选验证节点的哈希值;
其中,a表示第二分组的排序号,b表示待选验证节点的序号,na表示排序号为a的第二分组所包括的待选验证节点的数量,表示排序号为a的第二分组层中第b个待选验证节点的地址,表示第r轮共识过程中排序号为a的第二分组对应的随机数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为a的第二分组中第b个待选验证节点上存储的私钥对a、和进行签名,表示对得到的签名数据进行哈希运算;
将每一个第二分组中的每一个节点通过H哈希函数运算后的哈希值,转换为二进制数;
筛选出每一个第二分组中所有待选验证节点的最小二进制数,得到多个第一最小二进制数对应的待选验证节点,所述多个第一最小二进制数对应的待选验证节点即为每一个第二分组的验证节点。
S3:根据所有分组的验证节点,筛选DAG的决策节点;
其中,所述S3具体为:
根据所有分组对应的验证节点,筛选出二进制数最小的验证节点作为DAG的决策节点;所述所有分组包括所有的第一分组和所有的第二分组。
本发明的实施例三为:
所有的处理节点形成三维层叠的计算资源池,处理节点向DAG图中提交不同的单元,也提供共识验证服务。基于计算资源池,从水平维度方向,可进行切割形成不同的分组,从不同的分组中选择“验证代表”(验证节点)进入相应的容器,作为系统共识的候选节点。同理,也可以进行垂直方向的切割而形成另一个维度的分组,形成另一个维度的“验证代表”。之所以要进行不同维度的分割,是因为公有链系统所面临的安全威胁来自于不同的方面,基于异构的思想,不同维度的处理节点具备不同的特性,例如不同类型的操作系统、硬件平台、云环境配置等,也可以是不同的权益、不同的活跃度等账户所对应的处理节点等。基于不同维度所选择的“验证代表”在系统中充分随机化的算法指导下,具有很强的去中心化的特性,也能为系统提供足够的安全特性。
用户向系统中添加数据主要包括如下信息:
数据消息:数据消息构成DAG的节点。这里的数据消息是用户打算提交的信息,可以包含多种数据类型,同时也提供多种数据格式,供不同的数据类型使用。最典型的单元是交易信息,用于向对等节点发送资产。
签名:签名是消息发出者对发出消息的签名,可以是简单的签名,也可以选择安全性更高,更具拓展性的多重签名。
引用哈希:这里引用哈希是指在发送的数据消息中包含已经存在的2笔或者多笔数据消息的哈希值。在发起消息的同时,对其它消息进行验证。引用哈希在DAG图中表现为两个节点之间的连接。
验证代表是经济激励类共识算法中的重要角色,验证代表对系统共识的效率指标至关重要。用户需要缴纳一定的保证金,申请成为验证代表,也能从系统的共识判决中获取一定的收益。每一轮的验证代表选择规则,依据“用户权益”属性和“平台类型”属性,分别构建两类(下文将“用户权益”类简称为X类,将“平台类型”简称为Y类)各9个验证代表容器。采用基于哈希函数的随机化方式从每个验证代表容器中推选一个验证代表。如果在某轮选举的过程中,某个节点已经成为X类的验证代表,则不参加Y类的遴选。
每层的验证代表在某段时间内是保持不变的,当需要对验证代表进行调整时,存在一个可校验的哈希函数:
其中i代表层数,j代表待选验证代表的序号,ni表示第i层待选验证代表的数量,表示第i层第j个待选验证代表的地址,表示第i层第r轮的随机数,此随机数与上一轮共识的验证代表的地址集合、上一稳定共识轮的Coinbase(主要指上一轮奖励给予的交易)的消息有关。表示第i层第j个待选验证代表历史上已经被选做验证代表的次数,表示第i层第j个待选验证代表历史上已经发布的消息数量,表示i层第j个待选验证代表的签名,每一个待选验证代表产生一个输出。H函数具有一个属性,其中的参与待选验证代表已经发出的消息数量这个参数越大,则H函数输出越小。每一层中的待选节点通过Gossip协议互相通信并互相校验其H函数值的正确性,推选H函数输出值最小的节点作为本层的验证代表点。
由于H函数是密码学上安全的,因此在验证代表公布开始之前,所有的待选验证者(包含攻击者、诚实者,包括将要被选中的节点)都不知道下一轮的验证代表,因此可以在很大程度上屏蔽外部黑客对系统的攻击。此外,为了进一步增加系统的安全性,基于DAG的去中心化三维异构区块链体系结构采用了异构的思想,在某一轮中,系统中所有n个待选验证代表按照上面提到的X、Y两种类别,在每一代表容器中,按照上文的规则,分别选取1个代表,所有选出的2组9个验证代表。且这9个共识代表分别由9个不同的密码学上安全的函数决定。
本发明待选的验证代表,在选择参与验证之前,需要提交押金,当某个验证代表有恶意行为,则此节点提交的押金将被部分甚至全部没收,并取消其参与验证的资格。而如果某个验证代表很少提交单元,维护系统,则将没收其部分押金。
假设X类别中,产生的判别函数矩阵为A。
对于矩阵A按行求最小值:
对于Min(A)逆向得到相应的节点地址。
则产生的验证代表为为了更好的体现共识产生规则的随机性,第r轮第i层随机数的选取很重要。之前在很多区块链社区,有人讨论过使用比特币每个区块的区块头部的Hash值来构建随机数。但是,当比特币网络的出块时间有大幅抖动时,构建随机数的过程将变得复杂。在基于DAG的去中心化三维异构区块链体系结构中,随机数的产生采用两阶段公布随机数的方案,通过引入激励机制,利用承诺协议(Commitment Protocol)和多阶段交和博弈机制,来保证随机数产生的公平性。
同理,对于Y类别的验证代表,也按照同样的规则产生9个验证代表。
验证代表开始工作后,产生的第一个单元的,第一个消息必须是证明消息,证明自己的验证代表身份,以便后面验证工作的进行。
综上所述,本发明提供了一种基于DAG的去中心化方法及终端,通过在每一轮共识过程中,将有向无环图中的所有节点进行分组,并通过预设函数从每一个分组中的所有待选验证节点中筛选出唯一的验证节点,并根据所有分组的验证节点,筛选出DAG的决策节点;由于DAG系统所面临的安全威胁来自于各个方面,将其分成多组后,筛选出每一个分组的验证节点,在一定程度上能够减少系统受到的安全威胁;通过上述预设函数在每一轮共识过程中,筛选出的验证节点具有一定的随机性,能够起到去中心化的作用,可提高DAG系统的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于DAG的去中心化方法,其特征在于,包括以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
S3:根据所有分组的验证节点,筛选DAG的决策节点。
2.根据权利要求1所述的一种基于DAG的去中心化方法,其特征在于,所述S1具体为:
在每一轮共识过程中,将所述DAG中的所有待选验证节点按照是否处于同一水平面进行分组,得到多个第一分组,每一个第一分组中包括的所有待选验证节点均处于同一水平面上;
将所述DAG中的所有节点按照是否处于同一竖直面进行分组,得到多个第二分组,每一个第二分组中包括的所有待选验证节点均处于同一竖直面上;不同的第二分组包括的待选验证节点所在的竖直面相互平行。
3.根据权利要求2所述的一种基于DAG的去中心化方法,其特征在于,所述S2具体为:
通过预设函数筛选出每一个第一分组和每一个第二分组的验证节点;所有分组对应的验证节点均不相同;所述所有分组包括所有的第一分组和所有的第二分组。
4.根据权利要求2所述的一种基于DAG的去中心化方法,所述S2具体为:
根据每一个第一分组包括的所有待选验证节点所在的水平面,按照从上往下或从下往上的方式将对应的第一分组进行排序,得到排序号为1~m的第一分组,所述m为所有第一分组的数量;
通过预设哈希函数计算每一个第一分组中所有待选验证节点的哈希值;
其中,i表示第一分组的排序号,j表示待选验证节点的序号,ni表示排序号为i的第一分组所包括的待选验证节点的数量,表示排序号为i的第一分组层中第j个待选验证节点的地址,表示第r轮共识过程中排序号为i的第一分组对应的随机数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为i的第一分组中第j个待选验证节点上存储的私钥对i、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第一分组中所有待选验证节点的最小哈希值,得到多个最小哈希值对应的待选验证节点,所述多个最小哈希值对应的待选验证节点为每一个第一分组的验证节点;
根据每一个第二分组包括的所有待选验证节点所在的竖直面,按照从左往右或从右往左的方式将对应的第二分组进行排序,得到排序号为1~c的第二分组,所述c为所有第二分组的数量;
通过函数计算每一个第二分组中所有待选验证节点的哈希值;
其中,a表示第二分组的排序号,b表示待选验证节点的序号,na表示排序号为a的第二分组所包括的待选验证节点的数量,表示排序号为a的第二分组层中第b个待选验证节点的地址,表示第r轮共识过程中排序号为a的第二分组对应的随机数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为a的第二分组中第b个待选验证节点上存储的私钥对a、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第二分组中所有待选验证节点的最小哈希值,得到多个第一最小哈希值对应的待选验证节点,所述多个第一最小哈希值对应的待选验证节点为每一个第二分组的验证节点。
5.根据权利要求4所述的一种基于DAG的去中心化方法,通过函数计算每一个第二分组中所有待选验证节点的哈希值,之前还包括:
获取每一个第一分组对应的验证节点,得到多个第一验证节点;
依次删除第二分组中与所述第一验证节点相同的待选验证节点。
6.一种基于DAG的去中心化终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1:在每一轮共识过程中,将有向无环图DAG中的所有节点进行分组,得到多个分组;每一个分组包括多个待选验证节点;
S2:通过预设函数从每一个分组的所有待选验证节点中筛选出验证节点;
S3:根据所有分组的验证节点,筛选DAG的决策节点。
7.根据权利要求6所述的一种基于DAG的去中心化终端,其特征在于,所述S1具体为:
在每一轮共识过程中,将所述DAG中的所有待选验证节点按照是否处于同一水平面进行分组,得到多个第一分组,每一个第一分组中包括的所有待选验证节点均处于同一水平面上;
将所述DAG中的所有节点按照是否处于同一竖直面进行分组,得到多个第二分组,每一个第二分组中包括的所有待选验证节点均处于同一竖直面上;不同的第二分组包括的待选验证节点所在的竖直面相互平行。
8.根据权利要求7所述的一种基于DAG的去中心化终端,其特征在于,所述S2具体为:
通过预设函数筛选出每一个第一分组和每一个第二分组的验证节点;所有分组对应的验证节点均不相同;所述所有分组包括所有的第一分组和所有的第二分组。
9.根据权利要求7所述的一种基于DAG的去中心化终端,所述S2具体为:
根据每一个第一分组包括的所有待选验证节点所在的水平面,按照从上往下或从下往上的方式将对应的第一分组进行排序,得到排序号为1~m的第一分组,所述m为所有第一分组的数量;
通过预设哈希函数计算每一个第一分组中所有待选验证节点的哈希值;
其中,i表示第一分组的排序号,j表示待选验证节点的序号,ni表示排序号为i的第一分组所包括的待选验证节点的数量,表示排序号为i的第一分组层中第j个待选验证节点的地址,表示第r轮共识过程中排序号为i的第一分组对应的随机数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为i的第一分组中第j个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为i的第一分组中第j个待选验证节点上存储的私钥对i、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第一分组中所有待选验证节点的最小哈希值,得到多个最小哈希值对应的待选验证节点,所述多个最小哈希值对应的待选验证节点为每一个第一分组的验证节点;
根据每一个第二分组包括的所有待选验证节点所在的竖直面,按照从左往右或从右往左的方式将对应的第二分组进行排序,得到排序号为1~c的第二分组,所述c为所有第二分组的数量;
通过函数计算每一个第二分组中所有待选验证节点的哈希值;
其中,a表示第二分组的排序号,b表示待选验证节点的序号,na表示排序号为a的第二分组所包括的待选验证节点的数量,表示排序号为a的第二分组层中第b个待选验证节点的地址,表示第r轮共识过程中排序号为a的第二分组对应的随机数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已被选做验证代表的次数,表示排序号为a的第二分组中第b个待选验证节点在此轮共识之前已发布消息的数量,表示通过排序号为a的第二分组中第b个待选验证节点上存储的私钥对a、和进行签名,表示对得到的签名数据进行哈希运算;
筛选出每一个第二分组中所有待选验证节点的最小哈希值,得到多个第一最小哈希值对应的待选验证节点,所述多个第一最小哈希值对应的待选验证节点为每一个第二分组的验证节点。
10.根据权利要求9所述的一种基于DAG的去中心化终端,通过函数计算每一个第二分组中所有待选验证节点的哈希值,之前还包括:
获取每一个第一分组对应的验证节点,得到多个第一验证节点;
依次删除第二分组中与所述第一验证节点相同的待选验证节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128249.5A CN109344623B (zh) | 2018-09-27 | 2018-09-27 | 一种基于dag的去中心化方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128249.5A CN109344623B (zh) | 2018-09-27 | 2018-09-27 | 一种基于dag的去中心化方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344623A true CN109344623A (zh) | 2019-02-15 |
CN109344623B CN109344623B (zh) | 2021-03-26 |
Family
ID=65306632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811128249.5A Active CN109344623B (zh) | 2018-09-27 | 2018-09-27 | 一种基于dag的去中心化方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344623B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139807A (zh) * | 2020-01-20 | 2021-07-20 | 国民技术股份有限公司 | 区块链记账方法、电子设备及存储介质 |
CN113225175A (zh) * | 2020-01-20 | 2021-08-06 | I25S商务管理咨询有限公司 | 通过流言协议实现有向无环图共识算法的系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060036A (zh) * | 2016-05-26 | 2016-10-26 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
US9568943B1 (en) * | 2015-04-27 | 2017-02-14 | Amazon Technologies, Inc. | Clock-based distributed data resolution |
CN106649838A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 数据传输方法、区块链节点及分布式数据库 |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN108512667A (zh) * | 2018-04-16 | 2018-09-07 | 北京天德科技有限公司 | 一种基于区块链的认证证书生成方法 |
-
2018
- 2018-09-27 CN CN201811128249.5A patent/CN109344623B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9568943B1 (en) * | 2015-04-27 | 2017-02-14 | Amazon Technologies, Inc. | Clock-based distributed data resolution |
CN106060036A (zh) * | 2016-05-26 | 2016-10-26 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN106649838A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 数据传输方法、区块链节点及分布式数据库 |
CN108512667A (zh) * | 2018-04-16 | 2018-09-07 | 北京天德科技有限公司 | 一种基于区块链的认证证书生成方法 |
Non-Patent Citations (2)
Title |
---|
HAI-TAO ZHANG等: "Effect of Adding Edges to Consensus Networks With Directed Acyclic Graphs", 《 IEEE TRANSACTIONS ON AUTOMATIC CONTROL》 * |
苑超等: "基于聚合签名的共识算法优化方案", 《计算机科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139807A (zh) * | 2020-01-20 | 2021-07-20 | 国民技术股份有限公司 | 区块链记账方法、电子设备及存储介质 |
CN113225175A (zh) * | 2020-01-20 | 2021-08-06 | I25S商务管理咨询有限公司 | 通过流言协议实现有向无环图共识算法的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109344623B (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7184959B2 (ja) | ネットワーク内の分散データベースのための方法及び装置 | |
CN106533696B (zh) | 基于区块链的身份认证方法、认证服务器及用户终端 | |
Abuidris et al. | Secure large‐scale E‐voting system based on blockchain contract using a hybrid consensus model combined with sharding | |
JP7211943B2 (ja) | イベントの削除を可能にする分散データベースのための方法および装置 | |
Jogenfors | Quantum bitcoin: an anonymous, distributed, and secure currency secured by the no-cloning theorem of quantum mechanics | |
US9529923B1 (en) | Methods and apparatus for a distributed database within a network | |
US11734260B2 (en) | Methods and apparatus for a distributed database within a network | |
US9646029B1 (en) | Methods and apparatus for a distributed database within a network | |
CN111090892B (zh) | 一种基于vrf和门限签名的区块链共识方法和装置 | |
US10318505B2 (en) | Methods and apparatus for a distributed database within a network | |
CN107360001A (zh) | 一种数字证书管理方法、装置和系统 | |
CN111445334A (zh) | 一种区块链系统的聚合签名方法、装置及存储介质 | |
EP3259722A1 (en) | Verifying electronic transactions | |
CN110580605B (zh) | 一种基于区块链的电子仓单信息存储系统 | |
CN110570308A (zh) | 一种具有激励机制的基于区块链的电子仓单交易系统 | |
CN109035011A (zh) | 一种区块链dag宽度的控制方法与系统 | |
CN109493057A (zh) | 一种基于utxo模型的交易方法及装置 | |
CN106920097A (zh) | 一种量子链共识协议的生成时间块链方法 | |
CN109344623A (zh) | 一种基于dag的去中心化方法及终端 | |
Blum et al. | Superlight–A permissionless, light-client only blockchain with self-contained proofs and BLS signatures | |
CN115865426A (zh) | 隐私求交方法和装置 | |
CN114710357A (zh) | 一种可编辑区块链中支持分块验证的动态可搜索加密方法 | |
Thaler | Practical verified computation with streaming interactive proofs | |
Khan et al. | A scalable blockchain consensus model | |
CN113792222A (zh) | 一种基于区块链的社交影响力奖惩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |