基于区块链技术的物资转运属性信息记录模型研究*
2022-09-29魏俊奎
周 明,黄 影,李 葵,魏俊奎,李 志
(1.国网安徽省电力有限公司信息通信分公司,安徽 合肥 230009;2.国网信通产业集团安徽继远软件有限公司,安徽 合肥 230088)
1 引言
近几年来,随着互联网技术的蓬勃发展,移动互联网、物联网和智能互联网都得到了前所未有的发展,促使人工智能、大数据挖掘、云计算和机器学习等相关技术和理论也向前发展,使互联网迎来了一个新的局面。在众多的互联网新应用中,不得不提到区块链技术。在比特币系统中,支撑着底层技术的就是区块链技术,在2008年被提出后,备受人们的关注。它是在密码学基础上发展的分布式P2P 网络公信智能记录技术。由于其去中心化、去信任、完全透明等特征大大增强在应用市场上的竞争力。从数据安全层面来看,区块链是完全不会被篡改的分布式数据库;从技术层面来看,区块链将是多种技术结合在一起的产物,是一种全面表达信息记录、存储和表达的方式。
将区块链技术应用到物资转运系统中是一大热点问题,文献[1]在传统算法的基础上,将区块链与智能合约有机结合,形成了一种去中心化的物流交易智能合约区块链模型。利用该算法可使物资转运过程变得透明可跟踪,但是制定合约的效率过低且对合约的依赖性较大,适用范围较狭隘。文献[2]利用区块链的去中心化和去信任特征,分别针对订单信息和环境数据设计了上链系统以及物流网设备的身份认证与权限控制机制,使冷链物流的可信任性和数据安全性得到了提高,但是该方法并没有对数据的安全存储深入研究。
因此,本文对物资转运属性信息记录模型中区块链的应用做了分析,结合非对称性加密技术和去中心化分布式数据库技术完成对信息的记录,并利用LeveIDB技术使系统中的数据得到安全的存储环境和高效的检索能力。
2 物资转运属性信息记录模型构建
2.1 物资转运属性信息要素分析
要将区块链技术使用在物资转运属性信息记录模型中加强信息安全性,首先要了解物流的结构要素:“信息主体”“主体间关系”“链接模式”三种,接下来对各要素做进一步分析。
信息主体:物资转运系统是由多个信息主体链接在一起形成。同一信息主体可存在于系统中不同的节点上,并根据其节点位置[3]的不同,信息主体的角色也随之变换。由于物资转运属性信息在系统中错综复杂的存在着,信息的运动过程就可以看成是物流的变换过程。将区块链技术应用其中,为信息主体角色的变换和链接规则的建立提供技术保障支持[4]。
主体间关系;信息的流动不是单向方式,而是双向流动的,不仅仅依靠横向传导链,还需要各个层次的纵向传导。与此同时,各主体在获得信息的基础上还要实现效率的最大化。所以,系统中各个节点不仅是平等共生的关系,还存在着竞争关系。这里可以采用区块链技术的信任机制和分布式技术,使各主体间可以实现信息共享和平等利益分配[5],将单纯的竞争关系转向合作竞争模式,促进整个物资转运系统实现利益最大化。
链接模式:物资转运系统的整体功能和信息主体个性化发展的需要,促使链接模式必须多样化,适合各节点发展。因此依据层次原理将链接模式[6]分为一对一、一对多和多对一三种。
上述三点结构要素也正说明了物资转运系统需要数据全透明、信息共享、安全高效和分布式数据库技术作为发展基础,来保障整个系统的有效运行。
2.2 信息非对称加密
为了保证物资转运属性记录过程中的安全性,本文使用RSA对相关信息加密,提高信息抗攻击性,RSA是一种公钥加密算法,也被称为非对称密钥算法。主要依靠两个密钥来实现信息的加密:公开密钥和私人密钥,二者属于大素数的函数。正是大素数分解的困难程度决定了RSA算法超高的安全性[7]。要在一个公开密钥和密文中分析出明文的具体内容,难度相当于两个大素数相乘后,再将这两个数从算法中分解开来。举个例子来说,已知素数p、q,求n=F(p,q)非常容易的,但是如果已知n想要求解p 或q 却是非常困难的。为了保证数据的安全性,RSA需采用足够大的整数。下表记录了当计算机每微秒进行一次操作,分解不同n所需要的时间。
表1 分解所需时间
随着n逐渐增大,分解困难也逐渐提高,所需的时间也就越长。
为了确保属性信息专用密钥的安全性,可以将公钥发布出去。公钥加密的信息只能通过专用密钥来解密,反之亦然。由于公钥算法分配的协议简单,不需要与密钥服务器联机,所以很大程度上简化了密钥的管理。
如图1所示,要将明文M从A传送至B,可利用B随机产生一个密钥,再由这个密钥计算出另一个密钥。这两个密钥一个作为私钥D',一个作为公钥D。根据其特性,不存在通过D 推算出D'的情况。D'保存在B 中不公布,通过D 传输给A,然后A再将要传送的信息通过D加密传回给B,B就可以通过D'解密来查看信息。如果有窃听者想要查看信息时,只能得到B传给A的D,和A通过D加密后的数据,没有D',窃听者根本无法查看加密的信息。
图1 RSA算法加密机制
RSA算法中包含三个数学概念:素数、互异素数和模运算。因为RSA 算法的安全性基于大素数的分解难度,而公钥和私钥正是一对大素数,因为为了安全性达到最高,使两个大素数p和q的长度相同,具体算法如下:
N=p*q:/*,p、q的值保持不公开;
phi=(p-1)(q-1):/*,任找一个正整数e与h互素;
利用辗转相除法求d,使e*dmod(p-1)(q-1)=1;
PK=(N,e):/*,因PK中不含p、q信息,为公钥,可公开;
PS=(N,d):/*因PS中含有p、q信息,作为私钥,不公开;
加密:c=me(modN)其中c为密文。
解密:m=cd(modN)。
为了保证p、q为安全素数,按照现在物资转运系统运行速度,n的长度尽量保持在1024bit,在不影响记录效率基础上保证信息最大安全性。
2.3 转运属性信息去中心化
区块的结构和不可篡改性都离不开数据的一致性,对于区块链中的物流数据可以分为两个方面:一个是“区块+链”,另一个是“交易+链”。那么区块链也可以认为是由多个节点构成的分布式数据存储系统。以Merkle树的形式将一段时间内的交易数据结合在一起,数据和代码封装组成区块,依据不同的时间顺序排列,保证数据的不可篡改和不可伪造[8]。
区块是区块链中数据的一种表现形式,其中包含着数据头和区块体。区块头是由前一区哈希、随机数、难度目标、时间戳和Merkle根组成。任意区块与前一个区块之间都有一个指向链接。区块可永久保存系统中的每一笔交易。
区块链中结合多种技术目的就是为了确保快速产生新的交易数据,并进行安全传播和有效验证,最终在分布式总账中得以体现。由此可见,区块链中最重要的部分就是交易数据了。在区块链系统中,任意节点都保存着总账的副本信息,以此来保证数据的一致性和不可伪造。基于此,交易数据也以区块链的形式展现出来。在交易系统中,以UTXO(unspent transaction output,未花费交易输出)来定义交易的基本单位,每一笔交易又可分为交易输入(input)和交易输出(output)两部分。
根据交易输入和输出个数的不同可将交易类型分为三种:一般交易(包含一个交易输入和一个交易输出)、分散型交易(包含一个交易输入和多个交易输出)、集合型交易(包含多个交易输入和一个交易输出)。每一笔交易之间都有链接关系,所以整个系统中所有的交易都有可追溯性,交易链的源头生成新区块的系统奖励,末尾则是由多个UTXO 构成。交易输入和交易输出中分别包含一个验证消息,只有两个验证消息同时使用才可以验证交易是否合法。当需要对新产生的交易进行验证时,两个验证消息结合起来以堆栈执行引擎的形式对交易进行验证。这里需要注意的是,只有通过验证,激活UTXO,才可以证明交易的有效性,也确保了整个系统中的数据一致性和可信性。
2.4 信息记录管理
本文利用区块链技术中的LeveIDB 对数据信息进行记录。LeveIDB是以日志排序合并树(LSM-Tree)为基础的单机Key-value数据存储系统。大时代背景下,随着系统硬件性能和传感器性能的提高,人们在相同时间内获得数据的数量也有了很大的提高,新一代数据库需要在相同时间内同时保存和处理更大体量的数据。传统数据库的优化策略主要是通过维护索引结构和保证数据的聚簇存储实现记录和查询性能的提高,但是这一方法并不适合新时代的发展需要。
针对目前大数据的分析,系统要对成块数据实现连续的读写,传统数据库的优化策略并不能有效解决此需求。因此提出针对写操作优化的数据存储系统LeveIDB。LeveIDB由于LSM-Tree 结构,具有极高的写性能,与传统读优化的多路平衡查找树不同的是,这种结构可以在数据写入阶段降低更新索引结构产生的大量随机读写开销,在存储过程中按照分片数据的固定大小完成排序,然后将其写入磁盘中;随后后台运行,将小的有序文件逐步合成大的有序文件,进而提高检索效率。与传统的B+树在写入阶段需要在磁盘上多次随机读写相对比,LeveIDB在写入阶段就产生了很小的开销,文件合成在后台运行也减少了磁盘的开销,这种方法可以大大提高数据的写入效率。具体的数据存储过程见以下步骤:
(1)日志写入与内存排序
在存储过程中,系统通过skiplist结构来维护一个Memtable,使得数据按照Key 值在Memtable 中实现有序存储。数据通过写日志的方式被写入,然后被插入到Memtable中,当Memtable的大小达到一定程度后,Memtable自动转化为Imemtable并被写入磁盘中,随后系统会产生一个新的Memtable重复以上步骤。
(2) Imemtable持久化与后台合并
将系统中磁盘的存储区划分为不同的级别:level0,level1,…,leveln-1。当Memtable 达到设定的大小后,使其不可转化为Imemtable,而是将其保存为一个sstable文件并持久到level0 级存储区中。在level0 级存储区中,所有sstable内的数据都是按照Key 值有序排列的,但是不能避免出现Key值重叠的情况。当level0级存储区达到一定的大小后,系统后台运行,将level0 级存储区内的所有sstable 与level1级存储区中保存的所有sstable 按照Key 值合并在一起,删除重复键值。以此类推,如果level1 级存储区达到存储上限,则合并在level2级存储区中。具体过程如图2所示。
图2 LeveIDB的写入过程与读取过程
除了level0 级存储区,levelr(r1)级存储区内部任意两个sstable之间的Key值范围不会出现重复的情况。这种将存储区分为level的方法可以在一定程度上保证数据的写入效率,并且可以保证各个level中的文件有序排列,便于数据的检索。
3 属性信息记录模型性能分析
本文采用访问控制、区块链技术来保证数据的安全性,从篡改、隐私保护、抗网络攻击这3 个方面对物资转运属性信息记录模型进行安全分析
3.1 防篡改
区块链头部区域包含Merkle 树哈希生成的Merkle 根,针对哈希算法的单向性,可通过计算验证物资转运属性信息是否被篡改。如果某个区块中的信息被攻击者篡改,结果不会影响到整个系统中哈希值的变化。因此可以安全有效的保证系统的防篡改。
3.2 隐私保护
系统中的任意一笔交易都是通过加密之后才存储到区块中的,所以私钥可以确保交易数据的安全性。访问控制协议对系统中物资的信息拥有绝对的控制权限,只有通过验证的用户才有权查看详细的物资信息。因此私钥和访问控制协议确保了物资信息的隐私性。
3.3 协议攻击
以常见的重放攻击方式举例说明,假如U是一个普通的用户,S是服务器,T为攻击者。(M)表示签名信息,(M)表示被Ku加密后的信息,T(U)表示T伪装成U发送消息。
假设在一次攻击中,需要T有权限才可以查看信息,如果T没有权限,则不能查看签名和信息。
式(2)代表的T是拦截到了U发送的信息,进一步伪装成S,执行重放攻击命令,那么T就可以名正言顺的以S的名义向U发送信息。如式(3)所示,T伪装成U接收来自S发出的信息,但是T得到的只是加密后的信息,而看不见其他的信息。
如式(5)所示,T伪装成S向U发送了虚假信息,但是因为没有S的验证信息,发送者身份得不到验证,所以发送的信息中会包含T的身份信息,U在接收到消息后可以准确的将虚假信息M'识别出来。
3.4 安全性证明
假设系统中生成诚实节点区块链的概率是y,生成伪造区块链的概率是w,那么想要控制整个系统f 个节点的概率wf为:
伪造节点与诚实节点之间区块数量的变化规律,满足了泊松分布的概率密度,期望值可用下式表示为:
伪造节点成功发布消息的概率Z为:
假设值的范围在0.1-0.3之间,伪造节点成功发布消息的概率如图3所示。从图中可以看出,伪造节点和诚实节点与之间呈反比关系。
图3 伪造节点成功发布消息概率图
在实际的物资转运系统中,诚实节点和伪造节点的个数之差甚至比文中提到的更多,所以Z值的大小几乎接近零。
3.5 系统性能分析
本文利用改进拜占庭容错协议,将容错能力控制在29%左右,且在这个范围内系统不会出现分叉的情况。
并且满足:
R1和R2表示的是诚实节点,已经形成网络孤岛的状态;F表示的是非诚实节点,且F内所有节点可以和系统中任一节点之间进行信息的传输。F如果出现分叉的状态,则需要在不告知R2的情况下与R1形似第二共识并发布区块。如果与R1解散第二共识,需要满足以下条件:
而全网中恶意节点数o的最大值为:
综合式(12)-式(14)可以得到:
根据式(9),化简式(15)得:
而全网中:
与式(16)矛盾,说明系统容错能力较强。
4 仿真实验
4.1 检索性能对比
为了验证本文方法的可行性,进行仿真实验。实验平台为:Inter(R)Core(TM)i7-477-CPU,内存为16GB,操作系统为Windows10 64位。将本文方法和文献[1]、文献[2]方法在检索性能方面进行实验对比。实验结果如图4 所示。当用户的数量较少时,本文方法与文献[1]、文献[2]方法相比,信息检索的时间相差并不多;但是当用户数量突然猛增后,本文方法的延迟时间明显减少,文献[1]方法减少缓慢,文献[2]方法减少的最慢。这主要是由于本文方法使用的是可以直接引导用户查找相对应的区块,节省了很大一部分时间。
图4 检索性能对比
4.2 信息安全性验证
为了进一步验证本文方法在信息加密方面的安全性,对加密前信息的ASCII值和加密后的ASCII值进行对比,实验结果如图5(a)和(b)所示。
图5 属性信息加密前后ASCII值分布
通过观察图5(a)和(b)可以很明显的看出,利用本文方法前后ASCII 值的分布发生了很大的改变。未利用本方法前ASCII值的分布有明显的规律可循,利用本方法后ASCII值的分布杂乱无章,攻击者根本无法找到规律,大大增加了属性信息的安全性。
5 结束语
技术的更新换代致使社会经济系统发生巨大的改变,物资转运属性信息记录模型经过物联网、大数据和云计算的发展后,迎来了新一轮的革新-区块链技术。区块链技术自身具有的数据全透明、信息共享和数据防篡改以及可追溯等特性,使得物资转运过程更安全、高效。本文基于区块链技术中的非对称性加密技术和去中心化实现了物资转运属性信息的记录,通过改进的拜占庭协议达到节点共识,将数据存储在各级存储区中,通过访问控制协议实现了数据共享和高效检索。仿真实验验证本文方法在检索性能和安全性方面具有较大的优势,在物资转运系统中也得到了很好的表现。但是当私钥出现丢失的情况,系统的安全性将得不到很好的保障,针对此部分本文并未作出明确解释,将其作为下一步研究方向进行更深入的研究。