1. 一种基于门限秘密共享的区块链分片存储方法,其特征在于,包括数据存储方法和数据读取方法;

  所述数据存储方法包括以下步骤:首先将交易数据进行数字化分片得到数字分片,再利用改进Shamir门限构造k-1次多项式,并从中选取n个点作为n个分片数据,之后构造n个分片数据区块分发给其他的节点进行存储;

  所述数据读取方法包括以下步骤:首先向其他节点请求k个分片数据区块,再利用拉格朗日插值算法依次恢复出数字分片,再将这些数字分片进行拼接并恢复出交易数据;

  所述构造n个分片数据区块分发给其他的节点进行存储,包括以下步骤:

  计算构造区块结构所需的相关参数值:版本号、区块索引、前一区块哈希值、时间戳、随机数解NonceMerkle树根,并选定此时区块链网络中存活的n个节点进行分片数据区块的分发;

  根据n个数据分片数据以及所述相关参数构造n个分片数据区块;

  将n个分片数据区块分发给选定的n个节点;

  收到分片数据区块的n个节点对区块进行正确性检验,如果检验无误,则分发到分片数据区块的节点将该分片数据区块链接到区块链上;如果检验有误,则分发到分片数据区块的节点将该分片数据区块丢弃;

  所述正确性检验包括:计算前一区块头的哈希值与该区块头中存放的哈希值是否一致;该区块的工作量证明是否正确;该区块的结构是否正确。

2.根据权利要求1所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述将交易数据进行数字化分片得到数字分片,包括以下步骤:

  首个完成工作量证明的节点将交易数据T字符串化后,先将字符串转为二进制形式,再将二进制形式的字符串转为十进制数字T`

  根据门限参数(kn)将十进制数字T`分成k-1份,即T`=d1|d2|dk-1,其中,k表示要恢复出十进制数字T`所需的数据分片数量,n表示存储有数据分片的节点数量,di表示十进制数字T`的某一部分,即数字分片,1ik-1

3.根据权利要求1所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述利用改进Shamir门限构造k-1次多项式,包括以下步骤:

  首先选取素数p,且p > max(dmaxn),其中dmax=maxdi),di表示数字分片,1ik-1n表示存储有数据分片的节点数量;

  在有限域GFp)中随机选取一个数a并构造一次多项式F1x=ax + d1。在一次多项式F1x)中选取两个点Ad11=F11)和Ad12=F12),将d2作为秘密值构造二次多项式F2x=Ad12*x2+Ad11*x1+d2,依次类推,直到构造出k-1次多项式Fk-1x=Adk-2k-1*xk-1 + Adk-2k-2*xk-2 + + Adk-21*x1 + dk-1

4.根据权利要求1所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述从k-1次多项式中选取n个点,具体为:选取T1 = [1, Fk-1(1)]T2 = [2, Fk-1(2)]、…、Tn = [n, Fk-1(n)],作为n个分片数据。

5.根据权利要求1所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述向其他节点请求k个分片数据区块,包括以下步骤:

  接收到区块数据读取请求的节点首先查找自己区块链上的第index个区块,之后从该区块中获取恢复该位置区块所存储的交易数据所需的信息,最后向这n个分发节点地址请求index位置的区块数据,直到获得k个分片数据区块为止。

6.根据权利要求5所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述交易数据所需的信息包括分发节点地址、门限参数(kn)。

7.根据权利要求1所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述利用拉格朗日插值算法依次恢复出数字分片,包括以下步骤:

  设所述k个分片数据区块为T1=[1, Fk-1(1)]T2=[2, Fk-1(2)]、…、Tk= [k, Fk-1(k)]

  通过拉格朗日插值算法求得k-1次多项式Fk-1x)并获得分片数据dk-1,即:

说明: 说明: 说明: C:\Program Files (x86)\gwssi\CPC客户端\cases\inventions\80fd4f6b-ca56-4b78-aa30-e07a84e7f063\others\97323512-0246-424f-89f7-7ba7f6c4a898\100001\dest_path_image002.jpg

说明: 说明: 说明: C:\Program Files (x86)\gwssi\CPC客户端\cases\inventions\80fd4f6b-ca56-4b78-aa30-e07a84e7f063\others\97323512-0246-424f-89f7-7ba7f6c4a898\100001\dest_path_image004.jpg

其中,xixj的意义是相似的,都是代表k个分片数据区块的x部分,f(xi)k个分片数据区块的y部分,即

T1=[1, Fk-1(1)]T2=[2, Fk-1(2)]、…、Tk= [k, Fk-1(k)]

xi =1时,f(xi)=f(1) = Fk-1(1);当xi =2时,f(xi)=f(2)= Fk-1(2),以此类推,最终求出k-1次多项式f(x)d为恢复出的某一部分数字分片,p是选定的大素数;

  从Fk-1x)中提取其系数Adk-2k-1Adk-2k-2、…、Adk-21,即[1, Fk-2(1)][2, Fk-2(2)]、…、[k-1Fk-2(k-1)],利用这些系数再次使用拉格朗日插值算法求得k-2次多项式Fk-2x)并获得分片数据dk-2;依此类推,得到全部的数字分片dk-1dk-2、…、d1

8.根据权利要求1所述的一种基于门限秘密共享的区块链分片存储方法,其特征在于,所述将这些数字分片进行拼接并恢复出交易数据,包括以下步骤:

  按照d1dk-1的顺序将分片数据拼接为十进制数字T,即d1|d2||dk-1 = T

  将得到的十进制数字T转为二进制形式,在将二进制形式转为字符串形式,最后恢复出交易数据T,并和该区块的其他相关参数信息一起输出。