1.面向跨区块链交易的可扩容存储方法,其特征在于:其步骤为:定义:S链为跨区块链交易请求信息发起方所在的区块链;D链为跨区块链交易请求信息接收方所在的区块链;
定义:Trie的形式是指对数据进行哈希编码之后,以一种树形结构存储,从根节点到某一节点,将路径上经过的字符连接起来,除根节点外,每个节点都能被一个字符路径找到;
步骤1)、在S链与D链之上构建存储链;
1.1)针对存储链安全性的问题,从S链与D链中选择合适节点共同维护存储链;节点选择公式如下:其中:μ表示节点剩余存储资源;α代表正面影响部分的权重系数;β代表负面影响部分的权重系数,系统可以调整α和β这两个部分的权重值;n表示最近单位时间内节点的生成块数;ε表示单位时间;Wk表示第k个交易被验证的次数;m表示节点进行恶意行为的总数;t表示当前时间;tk表示节点进行的第k次恶意行为的时间点,θ表示恶意行为的惩罚系数;
1.2)设定N的范围,若节点的N值满足系统规定要求,该节点可维护存储链;
步骤2)、存储链对接收到的交易数据进行过滤处理;
步骤3)、S链与D链分别对非跨区块链交易数据进行验证、存储;
步骤4)、S链与D链分别对跨区块链交易数据进行验证、存储,并向存储链发送跨区块链交易标识数据;
步骤5)、判断标识数据中元素是否具有溯源性;
步骤6)、对数据元素进行哈希融合,以Trie的形式存在存储链区块中;
步骤7)、提出一种链式结构,以时间戳为纽带将区块链接到存储链末端。
2.根据权利要求1所述的面向跨区块链交易的可扩容存储方法,其特征在于:所述的步骤2)中,具体方法如下:
2.1)S链中用户向存储链发送交易请求数据Ri;或D链中用户向存储链发送交易请求数据Rj;
2.2)存储链利用多维BF判断请求数据中的交易方是否来自不同的链,通过使用S组位向量表达数据集合;其中,每组位向量对应k个hash函数,每组位向量包含2个位向量;
2.3)存储链接收到Ri或Rj之后,使用S组位向量表示该数据集合,对于每组位向量,k1把该元素映射到V1中并在V1对应位置置1,k2把数据元素映射到V2中并在V2对应位置置1;
2.4)分别检查经过每组的hash函数k1和k2的映射后,V1和V2的相关位置是否为1;
2.5)若Ri或Rj数据集合中有一组位向量全为1,则认为该数据为跨区块链交易数据。
3.根据权利要求1所述的面向跨区块链交易的可扩容存储方法,其特征在于:所述的步骤3)中,具体方法如下:
3.1)S链中的节点验证非跨区块链交易数据的正确性,并将验证成功将跨区块链交易数据存储到本链;
3.2)D链中的节点验证Ri或Rj的正确性,并将验证成功将跨区块链交易数据存储到本链。
4.根据权利要求1所述的面向跨区块链交易的可扩容存储方法,其特征在于:所述的步骤4)中,具体方法如下:定义:跨区块链交易标识数据为由源链区块头数据、双方对跨链交易数据及该数据存储位置的签名、目标链区块头数据组成的数据;
4.1)S链中的节点验证Ri或Rj的正确性;
4.2)S链验证成功将跨区块链交易数据存储到本链,生成跨区块链交易标识数据A(i);
4.3)D链中的节点验证Ri或Rj的正确性;
4.4)D链验证成功将跨区块链交易数据存储到本链,生成跨区块链交易标识数据B(j)。
5.根据权利要求1所述的面向跨区块链交易的可扩容存储方法,其特征在于:所述的步骤5)中,具体方法如下:
5.1)存储链对标识数据属性进行分类,建立无用数据集C和可溯源数据集D;
5.2)接收到一笔标识数据时,生成TOKE串,并统计该数据提取TOKE串出现的次数(T);
5.3)每个数据集对应一个哈希表,HashTable(C)对应无用数据集,HashTable(D)对应可溯源数据集,表中存储TOKE串到T的映射关系;
5.4)计算每个哈希表中TOKE串出现的概率P=T/L,其中,T为某数据出现的次数,L对应哈希表的长度;
5.5)综合考虑HashTable(C)和HashTable(D),推断出当新来的标识数据中出现某个TOKE串时,该属性属于可溯源数据集的概率为:P(A/ni)=P1(ni)[(p1(ni)+p2(ni))]其中,A为可溯源属性;ni为TOKE串;P1表示HashTable(C)中TOKE串出现的概率;P2表示HashTable(D)中TOKE串出现的概率;
5.6)建立新的哈希表HashTable存储TOKE到P(A/ni)的映射;
5.7)根据建立的哈希表HashTable可以估计某属性数据可溯源数据集的可能性;
5.8)设定阈值θ,若可能性大于θ表示为该属性数据可溯源数据集。
6.根据权利要求1所述的面向跨区块链交易的可扩容存储方法,其特征在于:所述的步骤6)中,具体方法如下:
6.1)利用哈希算法对数据元素进行融合处理,使数据具有溯源性、防篡改等特性;融合数据的公式如下S‑Blockchain(z)=Hash(Hash(A′(i)),Hash(B′(i)))其中,A'(i)是融合之后S链中的跨区块链交易标识数据;B'(j)是融合之后D链中的跨区块链交易标识数据;S‑Blockchain(z)是融合数据的哈希值;
6.2)根据Ti时间内所获得S‑Blockchain(z)顺序,计算相邻的两个S‑Blockchain(z)的哈希值;
6.3)向上推进时,逐层迭代执行6.1)操作,直至形成一颗倒挂的Merkle树。
7.根据权利要求1所述的面向跨区块链交易的可扩容存储方法,其特征在于:所述的步骤7)中,具体方法如下:
7.1)将Merkle树根存在存储链区块头中;
7.2)跨区块链交易确认数据以Tire的形式存在存储链区块体中;
7.3)以时间戳Ti为纽带将区块链接到存储链末端。