一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种网状结构的区块链构造方法

2022-04-16 12:39:07 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,特别是涉及一种网状结构的区块链构造方法。可运用于公有链、联盟链和私有链,如基于区块链的电子金融资金转账系统、数字版权管理系统、人才管理系统、电子病历系统等。


背景技术:

2.每个区块都由区块头和区块体两个部分组成。在区块头中,包含区块索引、时间戳、前一个区块的哈希值、当前区块自身哈希值、默克尔树根等信息。在区块体中,则主要存储交易的信息。前一个区块的哈希值即前一区块的摘要信息,唯一地指向了上一个区块。如果攻击者意图恶意篡改某个区块,就必须掌控超过51%的共识节点,并修改这个区块以及该区块后的全部区块,这大大降低了区块链被恶意攻击和篡改的可能,体现了足够的安全性和不可篡改性。
3.但是,随着区块链技术的发展,一些区块链的劣势逐渐显现出来。当越来越多的节点参与共识,区块链的冗余也会变得十分庞大,查询和验证区块消息所需要的时间也会随之线性增长。中本聪提出的 utxo模型可以减少区块查询和验证时间,但是这种模型只能运用于货币交易之类的金融行业,缺乏可扩展性。同时,由于新的信息不断上链,对于同一事物的信息分散在区块链各处,消息杂乱不易整理成了区块链技术的一大痛点。因此迫切需要一个新型的区块链底层架构以提高区块的查询和验证速率以及提升区块链的应用范围。


技术实现要素:

4.本发明的目的是提供一种网状结构的区块链底层架构,以解决传统区块链架构可扩展性差、查询交易效率低的问题。
5.为实现上述目的,本发明提供了如下方案:
6.一种网状结构的区块链构造方法,包括:
7.构建区块链结构,所述区块链结构包括主块结构、从块结构和平衡二叉树结点,所述主块结构包括区块头和区块体,所述从块结构包括索引、时间戳、自身索引、默克尔树根、存储数据属性以及前区块哈希值集合和前区块标签集合;
8.基于所述主块结构,创建创世主块,用于表示初始化节点,当共识节点集合中加入新节点时,将所述加入新节点的基本信息打包成主块并链接到主链末端;
9.通过若干所述主块,建立一个平衡二叉树结点,形成一个主块区间;
10.通过打包n条交易形成所述从块结构,所述从块结构的标签值用于集合存储交易中所有节点的标签值,并将该从块添加到对应的侧网中,构成网状结构。
11.优选地,所述主块结构的区块头包括索引、时间戳、前一个主块的哈希值、自身哈希值、存储交易摘要的默克尔树根节点属性,还包含一个标签属性,用于标识当前主块。
12.优选地,主块中的所述前一主块的哈希值唯一指向前一主块的自身哈希值,所述主块与主块相继接续形成主链,其中,规定一个主块的标签值大于其前驱的标签值并且小
于其后继的标签值。
13.优选地,所述创世主块中不包含任何交易信息,所述创世主块中的标签值能够根据创建时间或利用创世主块高度创建,用于保证所述标签值是所有主块标签值中最小的值。
14.优选地,当有新的所述共识节点参与共识,将新节点的基本信息打包成主块,其他共识节点验证所述新节点的有效性,若验证通过,则将该主块链接到主链末端,若验证失败,则拒绝上链。
15.优选地,进行验证的内容包括:该主块的前一个主块哈希值是否唯一指向前一个主块的自身哈希值、该主块的标签值是否大于其前驱标签值。
16.优选地,通过每三个所述主块动态建立一个所述平衡二叉树结点,用于使每三个主块形成主块区间,若所述主块区间不足三个主块,则根据所述主块区间中最新建立的主块建立一个平衡二叉树结点。
17.优选地,所述平衡二叉树结点用于保存所述主块区间中最新主块的标签值作为区块链的索引,并保存该所述主块的自身哈希值。
18.优选地,通过打包n条交易形成所述从块结构,从块的标签值集合用于存储交易中所有共识节点的标签值,其中,前区块哈希集合存储标签值对应最新区块自身哈希值,其他节点验证该所述从块结构的有效性,若验证通过则将该从块添加到对应的侧网中。
19.优选地,所述其他节点验证该所述从块结构的有效性的验证内容包括:从块标签值集合中的标签是否与交易信息对应、从块标签集合中的标签所对应的主块是否已经存在主链中、前区块哈希集合中的哈希值是否正确指向前区块。
20.与现有技术相比,本发明的有益效果为:
21.本发明提出的一种网状结构的区块链构造方法,有效地解决了公有链或私有链等查询效率低的难题。利用主块的标签属性,建立平衡二叉树,可以快速查询到主块位于主链中哪个区间,解决了传统区块链查找效率低的问题。从块与主块链接,从块与从块链接形成有向图,使得块与块之间产生更强的联系。将共识节点需要更新的内容存储在从块上,解决了节点信息过于分散不易整理的问题。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
23.图1为本发明实施例的方法流程示意图;
24.图2为本发明实施例的主块结构示意图;
25.图3为本发明实施例的主链结构示意图;
26.图4为本发明实施例的从块结构示意图;
27.图5为本发明实施例的侧网结构示意图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
30.参照图1-5,本发明设计了一种网状结构区块链构造方法,由传统的链式结构变成网状结构的一种架构。本发明包含三种结构,分别为主块结构、从块结构和平衡二叉树结构,主块与从块统称为区块。主块与主块链接形成主链,从块与区块链接形成侧网。
31.主块结构如图2所示,与传统区块链中的区块结构类似,包含区块头和区块体两个部分。区块头包含索引、时间戳、前一个主块的哈希值、自身哈希值、存储交易摘要的默克尔树根节点等属性。不同的是,主块中额外包含了一个标签属性,用于标识当前主块。主块中的前一主块的哈希值唯一指向前一主块的自身哈希值,主块与主块相继接续形成主链。规定一个主块的标签值一定大于其前驱的标签值并且小于其后继的标签值。区块体包含的是需要存储的信息,该信息主要是共识节点集合中节点的相关基本信息。针对不同的应用场景,其存储的信息也不尽相同。如果应用于私有链,如大型公司的人才管理系统,主块存储公司部门名称、部门主要职能等基本信息;如果应用于联盟链,如医疗链中的电子病历系统,则医院作为节点,主块中存储医院的名称、科室、医生等基本信息;如果应用于公有链,如数字版权管理系统,则版权所有者作为节点,主块中存储版权所有者的姓名、性别、出生年月、身份证号码等基本信息。
32.由于主链上主块的标签值是单调递增的,所以,为了能够快速寻找主块信息,每三个主块建立一个平衡二叉树结点,其框架结构如图 3所示,为了方便展示,图中省略了主块中的索引、时间戳、默克尔数根和存储信息等属性。每个树结点使用主块的标签值作为结点索引,并保存所对应的主块自身哈希值。使用平衡二叉树查找,可以快速的查找到需要查询的主块所对应的区间。
33.设计一种从块结构,如图4所示。除了传统区块包含索引、时间戳、自身索引、默克尔树根、存储数据等属性,还包含前区块哈希值集合和前区块标签集合。从块将不同的主块联系起来,如果当前的从块同时包含多个节点的消息,则将这些节点的主块标签值存入前区块标签集合。在前区块哈希值集合中,存储的是当前从块所连接的所有前区块的自身哈希值。使用键值对技术,使前区块的哈希值与标签值集合中的标签值一一对应,连接到系统中标签值对应最新区块的摘要信息,形成侧网结构,框架结构如图5所示。
34.本发明提出的框架在传统单链的基础上加入了从块的侧网结构和平衡二叉树结构,将需要存储在区块上的大量数据存储在从块上。由于主链上的每个主块的标签值都是大于其前驱标签值小于后继标签值的,所以每三个主块,利用主块中的标签属性建立一个平衡二叉树结点。树中每个结点存储主块的标签值和对应的主块哈希值,标签值作为平衡二叉树的索引,通过平衡二叉树查找到需要查询的主块位于哪个区间。主块与主块之间的链接与传统区块链链接方式类似,将主块中的所有信息进行双重sha256哈希值运算得到自身哈希值,后一个主块根据前一个主块生成的自身哈希值将两个主块链接起来形成链状结
构。从块上设计前区块哈希值集合和前区块标签集合。在前区块集合中,存储的是当前从块所链接的所有前区块的哈希值;在标签集合中,存储的是当前区块所链接的所有前区块对应的主块标签值。使用键值对技术,使前区块的哈希值与主块的标签值一一对应,当前从块与标签值对应的最新区块链接形成的侧网结构。
35.本发明提供一种网状结构的区块链构造方法,如图1所示,步骤如下:
36.s1、创建一个创世主块,表示初始化。
37.在主链上创建一个创世区块,表示进行初始化,索引设置1,前主块哈希值设置成空置,标签值可以根据时间或是创世主块的高度保证其大小是系统中最小值,该主块并不包含任何相关信息,将主块中所有信息进行双重sha256哈希运算生成的到创世区块的自身哈希值。
38.s2、当共识节点集合中加入一个节点,将节点基本信息打包成主块链接到主链末端。
39.共识节点集合每加入一个新节点,该节点将自己节点信息打包成主块,其他节点验证主块的有效性,如标签值是否大于其前驱哈希值,前主块哈希值是否唯一指向前一个主块的自身哈希等,若验证通过,则将该主块链接到主链的末端,反之则拒绝链接。
40.s3、每三个主块,动态建立一个平衡二叉树结点,形成一个主块区间,若主块区间中不足三个主块,根据主块区间中最新的主块建立一个平衡二叉树结点。
41.每三个主块创建一个平衡二叉树结点,使每三个主块形成一个主块区间,每个结点中存储主块的标签值作为平衡二叉树索引,同时存储标签值所对应的主块自身哈希。若主块区间中不足三个主块,利用主块区间中最新主块的标签值和自身哈希值建立一个平衡二叉树结点。
42.s4、打包n条交易形成从块,从块的标签值集合存储交易中所有节点的标签值,前区块哈希集合存储标签所对应的最新区块自身哈希,将该从块添加到对应的侧网中。
43.打包n条交易,判断每条交易中的节点信息是否已经添加到主链,若已经添加,从块的标签值集合存储交易中所有节点的标签值,前区块哈希集合存储标签所对应的最新区块自身哈希,将该从块添加到对应的侧网中,若未添加,则拒绝该从块的上链。
44.如果需要查询共识节点集合中某个节点的相关信息,步骤如下:
45.输入需要查询的节点的标签值。通过平衡二叉树查找,快速查找到主块节点对应的主块区间,得到当前区间最新的主块的自身哈希值;
46.通过主块自身哈希值判断当前主块的标签值是否是要查询主块的标签值。若是,则进行下一步;若不是,则通过当前主块的前主块的哈希值,得到与其相连的上一个主块,判断该主块的标签值是否使要查询的标签值,直到找到需要查询的主块;
47.查询当前主块标签在侧网中最新的从块的自身哈希值得到对应的最新从块,通过该从块的前区块集合,查询主块标签值所对应的上一个从块的自身哈希值得到新的从块,直到遍历到主块,查询完成。
48.与现有技术相比,本发明的优点在于:网状结构的区块链架构为可扩展性问题提出了一种解决方法。通过对底层区块链架构的改进,将区块链结构更加灵活的运用。首先,以公有链为例,若是传统的区块链框架,如比特币系统,新的区块需要不断上链到区块链的末端。当查询某个账户地址的账户信息,需要通过未花费交易输出模型 (utxo交易模型)计
算所有与该地址相关的未花费的交易之和,效率比较低。再以联盟链中的医疗链中的电子病历系统为例,若是普通的区块链,由于病人的病历不断更新,导致病人的信息分散,不易查找。本发明提出的一种网状结构的区块链架构,很有效地解决了公有链或私有链等查询效率低的难题。主块上主要存储节点相关信息,如医疗链中的病历系统,主块主要存储医院名称、科室、医生等基本信息。利用主块的标签属性,建立平衡二叉树,可以快速查询到主块位于主链中哪个区间,解决了传统区块链查找效率低的问题。从块与主块链接,从块与从块链接形成有向图,使得块与块之间产生更强的联系。将共识节点需要更新的内容存储在从块上,这样解决了节点信息过于分散不易整理的问题。
49.以上所述的实施例仅是对本发明优选方式进行的描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献