一种基于区块链的信息授权方法及装置与流程

文档序号:11589767阅读:174来源:国知局
一种基于区块链的信息授权方法及装置与流程

本发明涉及金融领域,特别涉及一种基于区块链的信息授权方法及装置。



背景技术:

随着数字货币的兴起,区块链作为一种分布式账本技术而出现,区块链是一种互联网数据库技术,这个数据库中包含了过去所有的交易数据及其相关数据等信息,特点是去中心化、公开透明,即记录在区块链上的信息都是分布存储并透明可查,并以密码学协议的方式保证信息不可以被篡改。

但是现有技术中存在以下问题:现有区块链中记录的信息通过区块链技术可以防止存储的交易数据不可以被篡改,但是并不可以保证信息是合法的,增加了区块信息的不安全性。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种基于区块链的信息授权方法及装置。

本发明提供的一种基于区块链的信息授权方法,本方法包括:

步骤a1、获取申请单信息集合,从申请单信息集合中获取满足预设授权条件的申请单信息;

步骤a2、根据满足预设授权条件的申请单信息生成主链数字指纹;根据主链父区块哈希值、主链数字指纹和主链时间戳生成主链区块头;根据满足预设授权条件的申请单信息和主链区块头生成主链区块,并广播到网络;

方法还包括:

步骤b1、将新增的主链区块的主链区块头进行哈希运算生成授权凭据,并将授权凭据与新增的主链区块中的申请单信息绑定生成授权信息;

步骤b2、根据包含预设侧链标识的授权信息生成侧链数字指纹;根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹和时间戳生成侧链区块头;根据授权信息和侧链区块头生成侧链区块,并广播到网络。

本发明提供的一种基于区块链的信息授权装置,具体包括:

获取申请单信息模块,用于获取申请单信息集合,从申请单信息集合中获取满足预设授权条件的申请单信息;

主链数字指纹生成模块,用于根据获取申请单信息模块获取到的满足预设授权条件的申请单信息生成主链数字指纹;

主链区块生成模块,用于根据主链父区块哈希值、主链数字指纹生成模块12生成的主链数字指纹和主链时间戳生成主链区块头;根据获取申请单信息模块11获取到的满足预设授权条件的申请单信息和主链区块头生成主链区块;

广播模块,用于将主链区块生成模块生成的主链区块广播到网络;还用于将侧链区块生成模块生成的侧链区块广播到网络;

授权凭据生成模块,用于将新增的主链区块的主链区块头进行哈希运算生成授权凭据;

绑定模块,用于将授权凭据生成模块生成的授权凭据与新增的主链区块中的申请单信息绑定生成授权信息;

获取授权信息模块,用于从绑定模块生成的授权信息中获取与预设侧链标识对应的授权信息。

侧链数字指纹生成模块,用于根据获取授权信息模块获取到的包含预设侧链标识的授权信息生成侧链数字指纹;

侧链区块生成模块,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹生成模块生成的侧链数字指纹和时间戳生成侧链区块头;根据获取授权信息模块获取到的授权信息和侧链区块头生成侧链区块。

本发明具有以下优点:第一、主链和侧链都是采用区块链技术构建的,可以防止主链和侧链存储的信息被篡改;第二、侧链中的区块中的信息包括主链中生成的授权凭证,确保侧链中保存的信息是由主链授权的,保证了信息的安全性和合法性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例2提供的一种基于区块链的信息授权方法的流程图。

图2为本发明实施例3提供的一种基于区块链的信息授权方法的流程图。

图3为本发明实施例4提供的一种基于区块链的信息授权装置的方框图。

具体实施例

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本实施例提供一种基于区块链的信息授权方法,本方法包括:

步骤a1、获取申请单信息集合,从申请单信息集合中获取满足预设授权条件的申请单信息;

步骤a2、根据满足预设授权条件的申请单信息生成主链数字指纹;根据主链父区块哈希值、主链数字指纹和主链时间戳生成主链区块头;根据满足预设授权条件的申请单信息和主链区块头生成主链区块,并广播到网络;

具体的,根据满足预设授权条件的申请单信息生成主链数字指纹具体包括:

步骤101、将满足预设授权条件的申请单信息分别进行哈希运算得当前哈希节点;

步骤102、将相邻的两个当前哈希节点串联后进行哈希运算得到哈希父节点;

步骤103、判断哈希父节点的数量是否为一个,是则将哈希父节点作为主链数字指纹;否则将哈希父节点作为当前哈希节点,返回步骤102。

具体的,根据主链父区块哈希值、主链数字指纹和主链时间戳生成主链区块头;根据满足预设授权条件的申请单信息和主链区块头生成主链区块具体包括:

步骤201、获取主链最后一个区块的区块头进行哈希运算生成主链父区块哈希值;

步骤202、获取当前服务器时间生成主链时间戳,并根据预设版本号、主链父区块哈希值、主链数字指纹和主链时间戳生成主链区块头;

步骤203、计算满足预设授权条件的申请单信息数量,并将计算结果作为申请单信息计数器;计算主链区块头、申请单信息计数器和申请单信息的长度作为主链区块长度;

步骤204、根据主链区块头、主链区块长度、申请单信息计数器和满足预设授权条件的申请单信息组织主链区块。

方法还包括:

步骤b1、将新增的主链区块的主链区块头进行哈希运算生成授权凭据,并将授权凭据与新增的主链区块中的申请单信息绑定生成授权信息;

步骤b2、根据包含预设侧链标识的授权信息生成侧链数字指纹;根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹和时间戳生成侧链区块头;根据授权信息和侧链区块头生成侧链区块,并广播到网络。

具体的,根据获取到的授权信息生成侧链数字指纹具体包括:

步骤401、将获取到的授权信息分别进行哈希运算得当前哈希节点;

步骤402、将相连的两个当前哈希节点串联后进行哈希运算得到哈希父节点;

步骤403、判断哈希父节点的数量是对否为一个,是则将哈希父节点作为侧链数字指纹;否则将哈希父节点作为当前哈希节点,返回步骤402。

具体的,根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹和时间戳生成侧链区块头;根据授权信息和侧链区块头生成侧链区块,具体包括:

步骤501、根据预设侧链标识查找对应的侧链,获取侧链最后一个区块的区块头进行哈希运算生成侧链父区块哈希值;

步骤502、获取当前服务器时间生成侧链时间戳,并根据预设版本号、侧链父区块哈希值、侧链数字指纹和侧链时间戳生成侧链区块头;

步骤503、计算获取到的授权信息数量,并将计算结果作为授权信息计数器;计算侧链区块头、授权信息计数器和授权信息的长度作为侧链区块大小;

步骤504、根据侧链区块头、侧链区块大小、授权信息计数器和授权信息生成侧链区块。

具体的,步骤b1具体包括:获取新增的主链区块,依次将获取到的主链区块的主链区块头进行哈希运算生成授权凭据,并将授权凭据与该主链区块中的申请单信息绑定生成授权信息;将授权信息保存到预设的授权信息集合;

相应的,步骤b2具体包括:从授权信息集合中获取包含预设侧链标识的授权信息,根据获取到的授权信息生成侧链数字指纹,根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹和时间戳生成侧链区块头;根据包含预设侧链标识的授权信息和侧链区块头生成侧链区块,并广播到网络。

进一步的,从授权信息集合中获取包含预设侧链标识的授权信息之后,还包括:将获取到的授权信息进行预设操作,根据成功执行预设操作的授权信息生成侧链数字指纹;根据申请单标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹和时间戳生成侧链区块头;根据成功执行预设操作的授权信息和侧链区块头生成侧链区块,并广播到网络。

更进一步的,从授权信息集合中获取包含预设侧链标识的授权信息之后,还包括:判断获取到的授权信息是否合法,是则根据合法的授权信息生成侧链数字指纹,根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹和时间戳生成侧链区块头,根据合法的授权信息和侧链区块头生成侧链区块,并广播到网络,否则报错,结束。

具体的,判断获取到的授权信息是否合法具体包括:

步骤301、将获取到的包含预设侧链标识的授权信息作为当前授权信息集合,从当前授权信息集合中获取一条授权信息作为当前授权信息;

步骤302、从当前授权信息中获取授权凭据,判断是否可以在主链中查询到主链父区块哈希值与授权凭据一致的主链区块,是则授权信息合法,否则授权信息不合法,执行步骤303;

步骤303、判断当前授权信息集合中是否还有尚未被获取过的授权信息,是则返回步骤301,否则继续执行根据合法的授权信息生成侧链数字指纹。

优选的,步骤a2之前还包括:判断是否满足生成主链区块的条件,是则执行步骤a2,否则继续判断是否满足生成主链区块的条件。

进一步的,判断是否满足生成主链区块的条件具体为:判断满足预设授权条件的申请单信息是否大于预设条数,或者判断当前服务器时间和上次生成主链区块的时间的时间差是否大于预设值。

优选的,步骤b1之前还包括:判断是否满足生成侧链区块的条件,是则继续执行步骤b1;否则继续执行判断是否满足生成侧链区块的条件。

具体的,判断是否满足生成侧链区块的条件具体为:判断含有预设侧链标识的申请单信息条数是否大于预设条数,或者判断当前服务器时间和上次生成侧链区块的时间的时间差是否大于预设值。

该方法还包括:当接收到信息查证请求时,所述信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在主链中查询对应的主链区块,并判断主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

具体的,将主链中主链父区块哈希值与授权信息中的授权凭据一致的主链区块作为当前主链区块,判断当前主链区块的前一个主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

优选的,步骤a2中根据主链父区块哈希值、主链数字指纹和主链时间戳生成主链区块头之后,根据满足预设授权条件的申请单信息和主链区块头生成主链区块之前,还包括:将主链区块头进行哈希运算生成主链区块索引值,并将所述主链区块索引值存储在索引数据库表;

该方法,还包括:当接收到信息查证请求时,信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在索引数据库表中查找对应的主链区块索引值,并判断主链区块索引值对应的主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

将主链区块索引值单独的存储于索引数据库表中,以便于索引和更快的检索主链区块;

优选的,步骤a2中根据主链父区块哈希值、所述主链数字指纹和主链时间戳生成主链区块头之前还包括:判断索引数据库表中是否有与所述主链父区块哈希值相匹配的授权凭证比较值,是则继续执行所述根据主链父区块哈希值、所述主链数字指纹和主链时间戳生成主链区块头,否则报错结束。

实施例2

本实施例提供一种基于区块链的信息授权方法,本方法中包括主链和侧链;例如,股票交易所至少拥有一条主链和多条侧链,该主链主要记录所有进入申请单信息集合中的申请单信息,并给所有申请单信息颁发授权凭证;侧链主要记录每支股票的所有交易成功的且拥有授权凭证的的申请单信息。如图1所示,本方法具体包括:

步骤101、判断是否满足生成主链区块的条件,是则执行步骤102,否则继续执行步骤101;

具体的,步骤101可以为判断申请单信息集合中的申请单信息的是否大于预设条数,是则执行步骤102,否则继续执行步骤101;

可选的,步骤101可以为获取当前服务器时间,判断当前服务器时间和上次生成区块的时间的时间差是否大于预设值,是则执行步骤102,否则返回步骤101;

进一步的,步骤101具体为获取当前服务器时间,并根据主链的最后一个区块的时间戳得到上次生成区块的时间,判断当前服务器时间和上次生成的区块的时间的时间差是否大于预设值,是则执行步骤102,否则返回步骤101。

步骤102、从申请单信息集合中获取包含申请单标识的申请单信息;

本实施例以股票交易为例进行说明。本实施例中,从申请单信息集合中获取到的申请单信息包括用户标识、股票代码、委买价或者委卖价、委托数量和申请时间;申请单标识具体为股票代码。

例如,本实施例中接收到的四条申请单信息申请单信息,记为a、b、c、d,具体为:

a:123456789013003860142500201606281046

b:123456789023006230280500201606281049

c:123456789033003860242500201606281050

d:123456789043006230180500201606281050

下面以123456789013003860142500201606281046为例进行说明,其中12345678901为用户标识;300386为股票代码即申请单标识;0142为委买价,具体的,01标识当前申请单为委买单,委买价为42元;委托数量500;201606281046为申请时间。

步骤103、根据获取到的申请单信息生成主链数字指纹;

具体的,由于计算数字指纹需要偶数个哈希节点,如果仅有奇数条申请单信息则需要将最后一条申请单信息复制一条;

步骤103具体包括:

步骤103-1、将获取到申请单信息和复制的申请单信息分别进行哈希运算得到哈希节点;

具体的,哈希运算具体使用sha256算法。

本实施例中步骤101中获取到a、b、c、d四条申请单信息,则四天申请单信息进行哈希运算生成哈希节点,分别记为ha、hb、hc、hd。

ha=e440a6c81b7242760a92eb63cfaf0940440eac78723f2644ede01d040ec4a168

hb=cd5adaddbf25a4d840d184dbce571a99257f014b038aa7be59d39acfc78ba0f1

hc=8dc52de14fc85a9d282052020b29e58906d639ba49252ef24f9cc972ef890811

hd=eadecfe58726d9805835baa3c1fa1d361b482e00bd213fec219cbc9a8c994529

步骤103-2、将相邻的两个哈希节点串联后进行哈希运算得到哈希父节点;

将ha和hb串联进行哈希运算生成哈希父节点,记为hab,将hc和hd串联后进行哈希运算生成哈希父节点,记为hcd。

将ha和hb串联后得到的数据具体为:

e440a6c81b7242760a92eb63cfaf0940440eac78723f2644ede01d040ec4a168cd5adaddbf25a4d840d184dbce571a99257f014b038aa7be59d39acfc78ba0f1

hab=2199a85fb2f7417f0dc98f8c99a22d8ecdf275ffa26104f59798d195135cd567

hcd=839d9c697e192abf13e5fb064b7ed4d29ab82d08fafc940846212d34ed841b04

步骤103-3、判断哈希父节点的数量是否为一个,是则将哈希父节点作为主链数字指纹,否则将哈希父节点作为哈希节点返回步骤103-2。

本实施例中,由于生成了两个哈希父节点hab和hcd,故将hab和hcd作为哈希节点继续执行步骤103-2,即将hab和hcd串联后进行哈希运算得到哈希父节点记为habcd,由于只生成了一个哈希父节点则将该哈希父节点作为数字指纹。

habcd=181513ddb2040458223fa79e2029acd115a421a747ee77d7744d4e0a857f6a70

步骤104、获取主链的最后一个区块的区块头进行哈希运算生成主链父区块哈希值;

步骤105、判断索引数据库表中是否有与主链父区块哈希值匹配的主链区块索引值,是则执行步骤106,否则报错结束;

索引数据库表中用于存储主链区块头的哈希值,即主链区块索引值,主链区块头的哈希值可以唯一的、明确的标识一个区块,可以通过索引数据库表中的主链区块哈希值检索到对应的主链区块;本实施例中,可以通过侧链中的授权信息中的授权凭证在主链中检索相应区块,进而判断侧链中保存的授权信息是否经过主链授权;

步骤106、获取当前服务器时间生成第一时间戳,并根据预设版本号、主链父区块哈希值、主链数字指纹和第一时间戳生成主链区块头;

在本实施例中,时间戳记录了区块建立的时间,允许有一定范围内的误差。

步骤107、将主链区块头通过哈希运算生成主链区块索引值,并将主链区块索引值存储在索引数据库表;

步骤108、计算获取到的申请单信息数量,将计算结果作为第一交易计数器;

步骤109、计算主链区块头、第一交易计数器和获取到的申请单信息的长度作为主链区块长度;

步骤110、根据主链区块长度、主链区块头、第一交易计数器和申请单信息生成主链区块,将主链区块广播到网络,并清空申请单信息集合;

步骤111、将新增的主链区块的主链区块头进行哈希运算生成授权凭据,将该主链区块中的申请单信息与授权凭据绑定生成授权信息,并将授权信息存入预设的授权信息集合;

步骤112、判断是否满足生成侧链区块的条件,是则执行步骤113,否则继续执行步骤112;

步骤112可以为判断授权信息集合中包含预设侧链标识的授权信息的条数是否大于预设值,是则执行步骤113,否则继续执行步骤112;

进一步的,步骤112可以为获取当前服务器时间,判断当前服务器时间和上次生成侧链区块的时间的时间差是否大于预设值,是则执行步骤113,否则返回步骤112。

步骤112具体为获取当前服务器时间,并根据预设侧链标识获取对应侧链的最后一个侧链区块,根据获取到的侧链区块中的时间戳得到上次生成侧链区块的时间,判断当前服务器时间和上次生成侧链区块的时间的时间差是否大于预设值;是则执行步骤113,否则返回步骤112。

步骤113、将授权信息集合中包含的申请单标识与预设侧链标识匹配的授权信息按照预设规则进行匹配交易,根据交易成功的授权信息生成侧链数字指纹;

具体的,本实施例中将申请单信息a、b、c、d分别与授权凭证进行串联生成授权信息记为a”、b”、c”、d”,本实施例中预设侧链标识为300368,故将授权信息集合中的申请单标识即股票代码为300368的授权信息根据股票交易原则进行股票匹配交易,更具体的为,授权信息a”和c”匹配成功;故根据a”和c”生成数字指纹。

步骤113中生成数字指纹的过程与步骤103中类似,在此不再赘述。

步骤114、根据预设侧链标识查找对应的侧链的最后一个区块的区块头进行哈希运算生成侧链父区块哈希值;

步骤115、获取当前服务器时间生成第二时间戳,并根据预设版本号、父区块哈希值、数字指纹和第二时间戳生成侧链区块头;

步骤116、计算交易成功的授权信息的数量,将计算结果作为第二交易计数器;

步骤117、计算侧链区块头、第二交易计数器和交易成功的授权信息的长度作为侧链区块长度;

步骤118、根据侧链区块长度、侧链区块头、第二交易计数器和交易成功的授权信息生成侧链区块,并将侧链区块广播到网络。

该方法还包括:当接收到信息查证请求时,所述信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在主链中查询对应的主链区块,并判断主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

具体的,将主链中主链父区块哈希值与授权信息中的授权凭据一致的主链区块作为当前主链区块,判断当前主链区块的前一个主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

优选的,当接收到信息查证请求时,信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在索引数据库表中查找对应的主链区块索引值,并判断主链区块索引值对应的主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

将主链区块索引值单独的存储于索引数据库表中,以便于索引和更快的检索主链区块。

实施例3

本实施例提供一种基于区块链的信息授权方法,本方法中包括主链和侧链;例如,教育局至少拥有一条主链,每个高校至少拥有一条侧链,该主链记录所有允许颁发学位证书的学生信息,并向所有允许颁发学位证书的学生信息颁发授权凭证;侧链主要用于记录某所高校被教育局授予学位证书的学生信息。如图2所示,本方法具体包括:

步骤201、判断是否满足生成主链区块的条件,是则执行步骤202,否则继续执行步骤201;

具体的,步骤201可以为判断申请单信息集合中的申请单信息的是否大于预设条数,是则执行步骤202,否则继续执行步骤201;

可选的,步骤201可以为获取当前服务器时间,判断当前服务器时间和上次生成区块的时间的时间差是否大于预设值,是则执行步骤202,否则返回步骤201;

进一步的,步骤201具体为获取当前服务器时间,并根据主链的最后一个区块的时间戳得到上次生成区块的时间,判断当前服务器时间和上次生成的区块的时间的时间差是否大于预设值,是则执行步骤202,否则返回步骤201。

步骤202、从申请单信息集合中获取包含申请单标识且满足预设授权条件的申请单信息。

本实施例以学位证书管理为例进行说明,从申请单信息集合中获取到的申请单信息包括高校代码、学生学号以及综合成绩;申请单标识具体为高校代码。

例如,本实施例中接收到的四条申请单信息申请单信息,记为q、w、e、r,具体为:

q:10000998765432101a

w:10000998765432102d

e:10000998765432103b

r:10000798745632102c

以下10000998765432101a为例进行说明,其中100009为高校代码,98765432101为学生学号,a为综合成绩;需要说明的是,本实施例中以高校代码为申请单标识。

本实施例中预设授权条件即为允许授予学位证书的条件,具体为综合成绩不小于c级。本实施例中包含申请单标识且满足预设授权条件的申请单信息为q、e、r。

步骤203、根据获取到的申请单信息生成数字指纹。

具体的,由于计算数字指纹需要偶数个哈希节点,如果仅有奇数条申请单信息则需要将获取到的最后一条申请单信息复制一条;

步骤203具体包括:

步骤203-1、判断获取到的申请单信息的数量是否为偶数,是则执行步骤203-4,否则执行步骤203-3;

步骤203-2、复制获取到的最后一条申请单信息;

本实施例中为复制申请单信息r。

步骤203-3、将获取到申请单信息和复制的申请单信息分别进行哈希运算得到哈希节点;执行步骤203-5;

哈希运算具体使用sha256算法。

若本实施例中主链区块数据中的申请单信息q、e、r,则三条申请单信息进行哈希运算生成哈希节点,分别记为hq、he、hr。复制的申请单信息r’,则复制后的申请单信息进行哈希运算生成哈希节点记为hr';

hq=982f6d16fca16855a4563f775e59f81419b479de84c9a74271edf6f7ea65bcc7

he=c48fac7e492c77e2aa5d7c8178a9d446fcd482f0d4a676d243dba40d52ec1d75

hr=44f2573bc9aa3d2329501e8f28696beab4fcfbd53f3968621645ba935f2bc80a

hr'=44f2573bc9aa3d2329501e8f28696beab4fcfbd53f3968621645ba935f2bc80a

步骤203-4、将获取到的申请单信息分别进行哈希运算得到哈希节点;

步骤203-5、将相邻的两个哈希节点串联后进行哈希运算得到哈希父节点;

将hq和he串联进行哈希运算生成哈希父节点,记为hqe,将hr和hr'串联后进行哈希运算生成哈希父节点,记为hrr'。

将hq和he串联后得到的数据具体为:

982f6d16fca16855a4563f775e59f81419b479de84c9a74271edf6f7ea65bcc7c48fac7e492c77e2aa5d7c8178a9d446fcd482f0d4a676d243dba40d52ec1d75

hqe=c94d78f5d9e0b3139d01210d2e273949905a525e219d6834fb16d6d2591d50ae

hrr'=4a8a8f07f25b971e287b907672d527df3bed43b03a07fbcdc6347b08d64f7f64

步骤203-6、判断哈希父节点的数量是否为一个,是则将哈希父节点作为主链数字指纹,否则将哈希父节点作为哈希节点返回步骤203-5。

本实施例中,由于生成了两个哈希父节点hqe和hrr',故将hqe和hrr'作为哈希节点继续执行步骤103-2,即将hqe和hrr'串联后进行哈希运算得到哈希父节点记为hqerr',由于只生成了一个哈希父节点则将该哈希父节点作为数字指纹。

hqerr'=76f1d0d802baf4bd1c19da177572147925a063d9b6ec78cdf20cb7c1d17d940d

步骤204、获取主链的最后一个区块的区块头进行哈希运算生成主链父区块哈希值;

步骤205、判断索引数据库表中是否有与主链父区块哈希值匹配的主链区块索引值,是则执行步骤206,否则报错结束;

索引数据库表中用于存储主链区块头哈希值,即主链区块索引值,主链区块头的哈希值可以唯一的、明确的标识一个区块,可以通过索引数据库表中的主链区块索引中检索到对应的主链区块;本实施例中,可以通过侧链中的授权信息中的授权凭证在主链中检索相应区块,进而判断侧链中存储的授权信息是否经过主链授权;

步骤206、获取当前服务器时间生成第三时间戳,并根据预设版本号、主链父区块哈希值、主链数字指纹和第三时间戳生成主链区块头;

在本实施例中,时间戳记录了区块建立的时间,允许有一定范围内的误差。

步骤207、将主链区块头通过哈希运算生成主链区块索引值,并将主链区块索引值存储在索引数据库表。

步骤208、计算获取到的申请单信息数量,将计算结果作为第三交易计数器;

步骤209、计算主链区块头、第三交易计数器和获取到的申请单信息的长度作为主链区块大小;

步骤210、根据主链区块大小、主链区块头、第三交易计数器和主链区块数据生成主链区块,将主链区块广播到网络,并清空申请单信息集合;

步骤211、将新增的主链区块的主链区块头进行哈希运算生成授权凭据,将该主链区块中的申请单信息与授权凭据绑定生成授权信息,并将授权信息存入预设的授权信息集合;

步骤212、判断是否满足生成侧链区块的条件,是则执行步骤213,否则继续执行步骤212;

步骤212可以为判断授权信息集合中包含预设侧链标识的授权信息的条数是否大于预设值,是则执行步骤213,否则继续执行步骤212;

进一步的,步骤212可以为获取当前服务器时间,判断当前服务器时间和上次生成侧链区块的时间的时间差是否大于预设值,是则执行步骤213,否则返回步骤212。

步骤212具体为获取当前服务器时间,并根据预设侧链标识获取对应侧链的最后一个侧链区块,根据获取到的侧链区块中的时间戳得到上次生成侧链区块的时间,判断当前服务器时间和上次生成侧链区块的时间的时间差是否大于预设值;是则执行步骤213,否则返回步骤212。

步骤213、从授权信息集合中获取包含申请单标识与预设侧链标识匹配的授权信息,根据获取到的授权信息生成侧链数字指纹。

本实施例中预设侧链标识为100009,从授权信息集合中获取申请单标识即高校代码为100009的授权信息,获取到的授权信息为:q和e。

步骤213中生成数字指纹的过程与步骤203中类似,在此不再赘述。

步骤214、根据预设侧链标识查找对应的侧链的最后一个区块的区块头进行哈希运算生成侧链父区块哈希值;

步骤215、获取当前服务器时间生成第四时间戳,并根据预设版本号、侧链父区块哈希值、侧链数字指纹和第四时间戳生成侧链区块头;

步骤216、计算获取到授权信息的数量,将计算结果作为第四交易计数器;

步骤217、计算侧链区块头、第四交易计数器和侧链区块数据的长度作为侧链区块长度;

步骤218、根据侧链区块大小、侧链区块头、第四交易计数器和获取到的授权信息生成侧链区块,并将侧链区块广播到网络。

该方法还包括:当接收到信息查证请求时,所述信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在主链中查询对应的主链区块,并判断主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

具体的,将主链中主链父区块哈希值与授权信息中的授权凭据一致的主链区块作为当前主链区块,判断当前主链区块的前一个主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

优选的,当接收到信息查证请求时,信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在索引数据库表中查找对应的主链区块索引值,并判断主链区块索引值对应的主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

将主链区块索引值单独的存储于索引数据库表中,以便于索引和更快的检索主链区块。

实施例4

本实施例提供一种基于区块链的信息授权装置,如图3所示,具体包括:

获取申请单信息模块11,用于获取申请单信息集合,从申请单信息集合中获取满足预设授权条件的申请单信息;

主链数字指纹生成模块12,用于根据获取申请单信息模块11获取到的满足预设授权条件的申请单信息生成主链数字指纹;

主链区块生成模块13,用于根据主链父区块哈希值、主链数字指纹生成模块12生成的主链数字指纹和主链时间戳生成主链区块头;根据获取申请单信息模块11获取到的满足预设授权条件的申请单信息和主链区块头生成主链区块;

主链数字指纹生成模块12具体包括:

哈希节点生成子模块,用于将满足预设授权条件的申请单信息分别进行哈希运算得当前哈希节点;

哈希父节点生成子模块,用于将当前哈希节点生成子模块运算得到的将相邻的两个当前哈希节点串联后进行哈希运算得到哈希父节点;还用于将判断子模块判定哈希父节点的数量不是一个时,将哈希父节点作为当前哈希节点,并将相邻的两个当前哈希节点串联后进行哈希运算得到新的哈希父节点;

判断子模块,用于判断哈希父节点生成子模块生成的哈希父节点的数量是否为一个,当判定哈希父节点的数量为一个时将哈希父节点作为主链数字指纹;

主链区块生成模块13具体包括:

获取父区块哈希值子模块,用于获取主链最后一个区块的区块头进行哈希运算生成主链父区块哈希值;

主链区块头生成子模块,用于获取当前服务器时间生成主链时间戳,并根据预设版本号、获取父区块哈希值子模块生成的主链父区块哈希值、主链数字指纹和主链时间戳生成主链区块头;

计算主链区块长度子模块,用于计算获取申请单信息模块11获取到的申请单信息数量,并将计算结果作为申请单信息计数器;计算主链区块头、申请单信息计数器和申请单信息的长度作为主链区块长度;

组织子模块,用于根据主链区块头生成子模块生成的主链区块头、计算主链区块长度子模块计算得到的申请单信息计数器、主链区块长度子模块计算得到的主链区块长度和获取申请单信息模块11获取到的申请单信息组织主链区块。

广播模块14,用于将主链区块生成模块13生成的主链区块广播到网络;还用于将侧链区块生成模块19生成的侧链区块广播到网络;

授权凭据生成模块15,用于将新增的主链区块的主链区块头进行哈希运算生成授权凭据;

绑定模块16,用于将授权凭据生成模块15生成的授权凭据与新增的主链区块中的申请单信息绑定生成授权信息;

获取授权信息模块17,用于从绑定模块16生成的授权信息中获取与预设侧链标识对应的授权信息。

侧链数字指纹生成模块18,用于根据获取授权信息模块17获取到的包含预设侧链标识的授权信息生成侧链数字指纹;

侧链数字指纹生成模块18包括:

哈希节点生成子模块,用于将获取授权信息模块17获取到的授权信息分别进行哈希运算得当前哈希节点;

哈希父节点生成子模块,用于将当前哈希节点生成子模块运算得到的将相邻的两个当前哈希节点串联后进行哈希运算得到哈希父节点;还用于将判断子模块判定哈希父节点的数量不是一个时,将哈希父节点作为当前哈希节点,并将相邻的两个当前哈希节点串联后进行哈希运算得到哈希父节点;

判断子模块,用于判断哈希父节点生成子模块生成的哈希父节点的数量是否为一个;当判定哈希父节点的数量为一个时将哈希父节点作为侧链数字指纹;

相应的,侧链区块生成模块19,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、判断子模块得到的侧链数字指纹和时间戳生成侧链区块头;根据授权信息和侧链区块头生成侧链区块。

侧链区块生成模块19,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹生成模块18生成的侧链数字指纹和时间戳生成侧链区块头;根据获取授权信息模块17获取到的授权信息和侧链区块头生成侧链区块。

侧链区块生成模块19具体包括:

获取父区块哈希值子模块,用于根据预设侧链标识查找对应的侧链,获取侧链最后一个区块的区块头进行哈希运算生成侧链父区块哈希值;

区块头生成子模块,用于获取当前服务器时间生成侧链时间戳,并根据预设版本号、侧链父区块哈希值、侧链数字指纹和侧链时间戳生成侧链区块头;

计算授权信息数量子模块,用于计算授权信息数量,并将计算结果作为授权信息计数器;

计算区块大小子模块,用于计算侧链区块头、授权信息计数器和授权信息的长度作为侧链区块大小;

组织子模块,用于根据区块头生成子模块生成的侧链区块头、计算区块大小子模块计算得到的侧链区块大小、计算授权信息数量子模块计算得到的授权信息计数器、计算区块大小子模块生成的侧链区块大小以及获取授权信息模块17获取到的授权信息组织侧链区块。

优选的,该装置还包括:

第一判断模块,用于判断是否满足生成主链区块的条件;还用于当判定不满足生成主链区块的条件时继续执行所述判断是否满足生成主链区块的条件;

具体的,第一判断模块具体用于判断满足预设授权条件的申请单信息是否大于预设条数或者用于判断当前服务器时间与上次生成主链区块的时间的时间差是否大于预设值。

主链数字指纹生成模块12,用于当第一判断模块判定满足生成主链区块的条件时根据获取申请单信息模块11获取到的满足预设授权条件的申请单信息生成主链数字指纹。

优选的,

授权凭据生成模块15,用于依次将新增的主链区块的主链区块头进行哈希运算生成授权凭据;

绑定模块16,用于将授权凭据生成模块15生成的授权凭据与该主链区块中的申请单信息绑定生成授权信息,并将授权信息保存到预存的授权信息集合;

获取授权信息模块17,用于从绑定模块16生成的授权信息集合中获取与预设侧链标识对应的授权信息;

侧链数字指纹生成模块18,用于根据绑定模块16生成的授权信息集合中获取包含预设侧链标识的授权信息,根据获取到的授权信息生成侧链数字指纹;

侧链区块生成模块19,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹生成模块18生成的侧链数字指纹和时间戳生成侧链区块头;根据绑定模块16生成的授权信息集合中包含预设侧链标识的授权信息和侧链区块头生成侧链区块。

优选的,侧链数字指纹生成模块18,具体包括:

操作子模块,用于从绑定模块16生成的授权信息集合中获取包含预设侧链标识的授权信息,根据获取到的授权信息进行预设操作;

数字指纹生成子模块,用于根据操作子模块中成功执行预设操作的授权信息生成侧链数字指纹;

相应的,侧链区块生成模块19,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹生成模块18生成的侧链数字指纹和时间戳生成侧链区块头;根据操作子模块成功执行预设操作的授权信息和侧链区块头生成侧链区块。

优选的,侧链数字指纹生成模块18,具体用于从授权信息集合中获取包含预设侧链标识的授权信息,判断获取到的授权信息是否合法,是则根据合法的授权信息生成侧链数字指纹,根据预设侧链标识获取侧链父区块哈希值,否则报错。

相应的,侧链区块生成模块19,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹生成模块18生成的侧链数字指纹和时间戳生成侧链区块头;根据侧链数字指纹生成模块18得到的合法的授权信息和侧链区块头生成侧链区块。

更进一步的,侧链数字指纹生成模块18具体包括:

获取当前授权信息集合子模块,用于从绑定模块16生成的授权信息集合中获取包含预设侧链标识的授权信息作为当前授权信息集合;

获取当前授权信息子模块,用于从获取当前授权信息集合模块生成的授权信息集合中获取一条授权信息作为当前授权信息;还用于当第二判断子模块判定当前授权信息集合中还有尚未被获取过的授权信息时从获取当前授权信息集合模块生成的授权信息集合中获取一条授权信息作为当前授权信息;

第一判断子模块,用于从获取当前授权信息模块获取到的当前授权信息中获取授权凭据,判断是否可以在主链中查询到主链父区块哈希值与授权信息一致的主链区块;

输出模块,用于当第一判断子模块判定可以在主链中查询到主链父区块哈希值与授权信息一致的主链区块时当前授权信息合法,并向侧链数字指纹生成模块18和侧链区块生成模块19输出当前授权信息;

第二判断子模块,用于当第一判断子模块判定在主链中不能查询到主链父区块哈希值与授权信息一致的主链区块时判断当前授权信息集合中是否还有尚未被获取过的授权信息;

侧链数字指纹生成子模块,用于根据输出模块输出的授权信息生成侧链数字指纹;

相应的,侧链区块生成模块19,用于根据预设侧链标识获取侧链父区块哈希值,根据侧链父区块哈希值、侧链数字指纹生成子模块生成的侧链数字指纹和时间戳生成侧链区块头;根据输出模块输出的授权信息和侧链区块头生成侧链区块。

优选的,该装置还包括第三判断模块,用于判断是否满足生成侧链区块的条件;

具体的,第三判断模块具体用于判断含有预设侧链标识的授权信息是否大于预设条数,或者判断当前服务器时间和上次生成侧链区块的时间的时间差是否大于预设值。

相应的,侧链数字指纹生成模块18,用于当第三判断模块判定满足生成侧链区块的条件时根据绑定模块16生成的包含预设侧链标识的授权信息生成侧链数字指纹。

优选的,该装置还包括:

查证模块,用于当接收到信息查证请求时,信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在主链中查询对应的主链区块,并判断主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

优选的,该装置还包括:

存储模块,用于将主链区块生成模块13生成的主链区块头进行哈希运算生成主链区块索引值,并将主链区块索引值存储在索引数据库表;

查证模块,用于当接收到信息查证请求时,信息查证请求包括需查证的授权信息;根据授权信息中的授权凭据在存储模块中存储的索引数据库表中查找对应的主链区块索引值,并判断主链区块索引值对应的主链区块中是否存在与授权信息中的申请单信息一致的信息,是则授权信息合法,否则授权信息不合法。

进一步的,主链区块生成模块13,具体用于判断存储模块存储的索引数据库表中是否有与主链父区块哈希值相匹配的授权凭证比较值,当判定有与主链父区块哈希值相匹配的授权凭证比较值时根据主链父区块哈希值、主链数字指纹生成模块12生成的主链数字指纹和主链时间戳生成主链区块头;根据获取申请单信息模块11获取到的满足预设授权条件的申请单信息和主链区块头生成主链区块。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1