1.一种基于云存储的区块链数据存储系统,其特征在于,该系统包括:
区块链网络,所述区块链网络包括多个云存储模块及多个区块链客户端,每个所述区块链客户端以注册方式与一个或多个所述云存储模块进行通讯连接,每个所述云存储模块存储有所述区块链客户端的数字证书列表,所述注册包括:(1)调用云存储的注册功能接口,传递数据;注册数据包括账号、包括有公钥的所述数字证书、有效期及注册时间;(2)注册功能模块进行数据合法性检查,包括在数字证书的签发机构检验数字证书的合法性、有效期,如果合法,则转入步骤(3),否则转入步骤(5);(3)检查账号是否为新账号,如果是新账号,则在用户信息存储区中新建用户账号,将对应的数字证书链接入表,同时设置注册时间和有效期,转入步骤(5),如果不是新账号,则转入步骤(4);(4)将新数字证书作为证书链表的表头元素,同时设置注册时间和有效期,转入步骤(5);(5)算法结束,返回注册结果:成功或者失败;
所述区块链客户端通过内置的云存储接口模块进行区块数据存储方式的配置;
所述区块链客户端对自身已确认的区块进行数字签名并将区块数字签名同步存储到已注册的所述云存储模块;
所述云存储模块用于存储完整的区块链数据以及区块链客户端信息,以及,向所述区块链客户端提供用于区块数据查询、区块确认统计、区块链客户端身份鉴别和注销的接口;
所述身份鉴别包括:(1)区块链客户端传递用户账号信息;(2)云存储模块根据账号信息的用户信息中检索到对应的有效数字证书,从中取得公钥PKB,然后生成1个新鲜数Nonce,用PKB对Nonce加密,得到密文C,发送给区块链客户端;(3)区块链客户端用自己的私钥SKB解密C,得到Nonce;(4)区块链客户端用云存储模块的公钥PKA加密Nonce,并发送密文C`;(5)云存储模块用自己的私钥SKA解密C`,得到N`;(6)云存储模块检查Nonce与N`是否相等,如果相等则身份鉴别成功,如果不相等,则身份鉴别失败;(7)算法结束,返回成功或失败。
2.根据权利要求1所述的基于云存储的区块链数据存储系统,其特征在于,所述云存储模块根据所述区块链客户端的数量进行自动调整。
3.根据权利要求1所述的基于云存储的区块链数据存储系统,其特征在于,云存储接口模块用于配置所述区块链客户端的存储方式,所述存储方式包括存储于本地或存储于所述云存储模块。
4.根据权利要求1所述的基于云存储的区块链数据存储系统,其特征在于,所述数字证书列表包括有效数字证书和历史数字证书。
5.根据权利要求1所述的基于云存储的区块链数据存储系统,其特征在于,所述云存储模块中多个区块链客户端对相同区块的数字签名构成对应的数字签名链表。
6.根据权利要求1所述的基于云存储的区块链数据存储系统,其特征在于,所述区块链客户端将区块数字签名存储到云存储模块的同时,在本地备份区块对应的Hash值及数字签名。
7.一种基于云存储的区块链数据存储方法,根据权利要求1‑6任一所述的基于云存储的区块链数据存储系统,其特征在于:注册,所述区块链客户端的存储方式配置为所述云存储的方式时,通过接口在所述云存储模块进行注册,存储注册信息;
身份鉴别,所述区块链客户端访问所述云存储模块时,根据所述注册信息以密钥方式进行身份鉴别;
区块同步,所述区块链客户端访问或者新建区块时,对所述云存储模块进行检索,根据检索结果进行链入区块或新建区块处理,并同步区块的数字签名及区块Hash。
8.根据权利要求7所述的基于云存储的区块链数据存储方法,其特征在于,所述身份鉴别包括:S91,云存储模块根据账号信息检索到对应的有效数字证书,从中取得公钥;
S92,区块链客户端根据所述公钥与所述云存储模块完成交互分鉴别;
S93,通过区块链客户端身份鉴别之后,将对应账号的有效数字证书设置为历史数字证书,仍保留在用户信息存储区,同时停止所述历史数字证书的使用。
9.根据权利要求7所述的基于云存储的区块链数据存储方法,其特征在于,所述区块同步包括:S101,所述区块链客户端发送区块Hash,云存储模块在数据存储区检索区块Hash,并反馈检索结果;
S102,根据检索结果,若数据存储区已经存在当前区块,区块链客户端发送自己对区块的数字签名,则执行步骤S103;若数据存储区不存在当前区块,区块链客户端发送完整的区块数据以及数字签名,转入步骤S104;
S103,云存储模块将数字签名链入对应区块的数字签名链表,转入步骤S105;
S104,云存储模块将区块数据链入区块链,建立新区块的Hash,并将数字签名入表,转入步骤S105;
S105,返回结果到区块链客户端,区块链客户端在本地备份区块Hash及数字签名。