基于B+搜索树算法的区块链跨境电商溯源安全技术研究
2022-04-24梁家富李家华梁质丽
梁家富,李家华,梁质丽
(广州科技职业技术大学 信息工程学院,广州 510550)
0 引言
“互联网+”战略下,区块链技术与跨境电商数据溯源技术展现出良好的契合度,且主要表现在参与各方的身份真实性验证、溯源数据的表示方法和相应结构及数据存储等方面[1]。区块链技术是一种新型数据技术,正处于快速发展阶段。鉴于区块链在溯源方面并不能完全解决客户端应用安全、缺乏标准和规定等问题[2]。因此,我们引入B+搜索树算法,利用其数据搜索的安全性以及数据库索引的效率性来改进区块链跨境电商溯源安全技术[3]。
1 基于B+搜索树算法区块链跨境电商溯源安全技术
1.1 B+算法技术
索引是基于数据库创建用来提高数据获取效率的,而B+树常用作数据库搜索引擎的默认索引。B+树是基于B 树对数据信息查找效率的优化,更适用于外部存储索引[4]。
一棵m 阶B 树的特点如下所述。
(1)一棵B 树只有1 个根节点。
(2)非根非叶子节点至少存在Ceil(m/2)个子树(Ceil 函数表示朝正无穷大方向取整),当根节点是非叶子节点时,它至少存在2 个子树,而每个节点至多有m 个子树。
(3)所有不存储任何关键字信息的叶子结点都处于同一水平层面上。
(4)非叶子节点有n 个关键字信息:[n,A0,K1,A1,K2,A2,…,Kn,An],Ki(i=1,…,n)为关键字,Ki (5)当某非叶子节点存储了n 个关键字时,它就会存在n+1 个子节点,所有叶子结点都在相同的第L 层。由B 树定义得,第2 层至少存在2 个结点,第3 层至少存在2×[m/2]个结点,第4 层至少存在2×([m/2]2)个结点,第L 层至少存在2*([m/2]L-2)个结点,则n+1≥2×([m/2]L-2)。当L 层的最少子节点数达到n+1 个,即L≤log[m/2]((n+1)/2)+2时,最大高度为L+1,即:L-1=log[m/2]((n+1)/2)+1。 与B 树比较,B+树有不同特征,具体如下所述。 (1)假定1 个节点有n 个子树,那么它肯定有n 个关键字信息。 (2)叶子节点上记录了所有关键字信息以及指向子树根节点的指针,并依据关键字信息大小进行排列。 (3)非叶子节点仅作数据索引用。叶子结点中仅携带关键字信息,而这些关键字信息只记录最大值(或最小值)的部分,因而关键字和叶子结点存在重复。 综上所述,将B+树中所有叶子结点排列后自然得到一个有序链表,但非叶子节点只做存储并不指向关键字信息。因此,采用B+搜索树算法帮助构建底层数据结构,可以提高跨境电商平台上密文交易加密和检索的速度,完善溯源安全技术方面的不足。 B+搜索树算法的区块链跨境电商溯源系统由{D,K,B,C,W,P}组成[5],其中D 为商家B 需要存储到以太坊区块链上的数据文档,K 为数据关键字词典,C 为顾客,W 为顾客指定的数据搜索用户或区块链系统的矿工,P 为收集管理交易单据的矿工,系统模型如图1 所示。 图1 系统模型结构图 基于B+搜索树算法区块链跨境电商溯源系统的加密系统可以用Υ 表示,由6 个多项式算法构成,描述为Υ=(SecKey,Encrypt,CreateIndex,Trapdoor,ComputeScore,Decrypt),具体算法如下所述。 (1)SecKey(δ)→k。由商家执行该算法,根据最优参数δ,系统生成g 维的加密向量ν,同时生成两个g×g 维的可逆矩阵G1和G2,得到密钥Key=(g,G1,G2)。 (2)Encrypt(Key,D)→C。由跨境电商的商家执行该算法,根据密钥Key 和文档数据集D=(d1,d2,…,dn),商家B 执行如下操作: 第一步,跨境电商的商家B 利用密钥Key 把D=(d1,d2,…,dn)安全加密生成密文Ci,Ci=E(Key,di)(1<>n); 第二步,商家B 要把生成后的密文Ci保存到区块链中,则利用n 个未使用的交易NTXi(1< 第三步,商家B 把生成的密文Ci(1< (3)CreateIndex(Key,H)→ITree。由跨境电商的商家生成索引树,B+搜索树的构建过程如下: 第一步,商家B 对每个关键词频Hj(1< 第二步,B 依据B+树各个节点要保存的向量Z,利用秘密向量v 把每个节点v 所在的Z 向量任意拆分成2 个向量B+搜索树上的各个节点保存加密后的向量是Iv= 第三步,B 要交易TXI需要未花费交易的输出UTXB,然后在交易TXI时把搜索树ITree 嵌入到外部脚本,B 再在区块链网络以交易TXI的形式进行全网广播,矿工R 把搜索树交易TXI上传到区块链网络,接着R 把交易TXI的标识符TXIDI反馈回给B,B 接收后在区块链进行广播。 (4)Trapdoor(Key,H')→TH'。数据使用者S 使用该算法,依据相关的关键数据集H'组成g 维查询向量Q,S 生成陷门交易步骤如下: 第二步,数据使用者S 利用未花费的交易TXy查找交易T 对象,把陷门Th'嵌套到T 的外部脚本中,接着S 对本次交易T 进行私有签名,并把交易标识符TXTh'在区块链网络进行全网广播。 (5)ComputeScore(Iv,)→Score。该函数是数据使用者S 指定的搜索矿工F 执行交易T,S 构建一起搜索含有关键词h'密文C 的交易T。 (6)Decryp(tKey,C)→D。解密算法是用户S 要拿到F 搜索的与关键字匹配度最高的k 篇文件Ci,用户S 需要使用私有密钥Key 进行非对称解密,解密后获取明文文件di=Decryp(tKey,C)i(1≤i< 相关实验的运行系统是linux 操作系统Ubuntu16.0.4,机器硬件配置是Intel(R)Xeon(R)CPU E5-2680 v3 48 核、2T 硬盘、64G 内存。溯源系统是通过以太坊平台建立一个私有链实验环境进行数据测试,基于Truffle 以太坊dapp 框架采用solidity 语言开发、编译和部署智能合约,将智能合约部署到ganache 客户端或者truffle develop 客户端,智能合约部署成功后,调用compiledCode 对象,得到智能合约地址、字节码和ABI 接口等重要内容,更改MetaMask 应用网络为本机以太坊私有链,完成整个实验部署。 2.2.1 检索效率 B+搜索树算法区块链跨境电商系统进行了B+树算法的数据加密和数据检索时间测试,结果如图2、图3 所示。实验中,总共采用900、9000和90000 条的元组测试数据集进行算法测试。为了确保算法实验结果更加准确,本实验对各种元组数都进行了3 次测试,最后汇总得到B+树算法区块链跨境电商系统的数据加密时间和数据检索时间。 图2 B+算法区块链跨境电商系统的数据加密时间 图3 B+算法区块链跨境电商系统的数据检索时间 2.2.2 溯源准确度 在B+搜索树算法区块链跨境电商系统的溯源实验中,为了提高溯源的准确率,消除元组差距大的因素,本实验把阈值γ 设定成元组数量*0.1%,假设元组数量是9000,那么泄露表要被认定为叛徒的条件是泄露表与原始表需要有9 条以上数据是相同的。B+搜索树算法区块链跨境电商系统的溯源准确率统计图如表1 所示。 表1 系统测试项目 从图2 和图3 中得知,元组数据是900 条的时候,B+搜索树算法区块链跨境电商系统的数据加密平均时间是39.54ms,而数据检索平均时间是6758ms,伴随着元组数量的加大,系统的加密和数据检索时间呈线性增长形态。 从表1 中可以得知四种元组数据下的溯源准确率,在测试元组数量是900、9000 和90000 条的情况下,系统的溯源准确率都是100%。元组数量个数达到900000 时,系统溯源准确率只降低了2.2%,达到97.8%。 实验数据分析可得,系统安全溯源在数据加密处理时间、数据检索时间上具有较快的时间响应能力,在溯源上具有较高的准确率,满足跨境电商系统的高安全性和稳定性的要求。 本文研究了将B+搜索树算法应用于区块链跨境电商的溯源应用体系,解决跨境电商中心化溯源平台信任度低和平台安全的问题,本系统在区块链上采用B+算法加密文档,提高了交易检索安全性并能够进行检索相关性排序。通过实验分析表明,基于B+搜索树算法应用于区块链跨境电商系统具有加密处理、数据检索稳定和溯源准确率高等优势。今后将进一步细化溯源细节,提升系统适应不同场景的整体安全性能。1.2 B+搜索树算法区块链跨境电商溯源安全方案
2 案例分析
2.1 实验环境
2.2 实验结果
2.3 实验分析
3 结语