黄建平,杨少杰,余 建,陈 浩
(1.国网浙江省电力有限公司,浙江杭州 310007;2.浙江华云信息科技有限公司,浙江 杭州 310000)
供应链金融是指银行将核心企业及其上下游企业进行资金物流统一管理的一种金融服务[1]。通过供应链金融,银行可以立体地获取链条中企业的信用信息,进而将放贷风险降至最低。供应链金融对国家经济的发展具有关键作用,因此其平台开发也成为了热点研究课题。
现代供应链金融的特点是复杂化、位置分散化和零散化,供应链结构复杂且参与企业众多,信息的共享与数据传递的及时性均会受到一定影响。传统的供应链平台为中心化设计思想,是指用户先将数据上传至数据中心,然后再由数据中心向其他用户发送信息。但这种模式已无法适应现代的供应链金融管理,且数据容易丢失,也易被非法篡改。相比传统技术的各种限制,区块链具有去中心化的特点且数据不可被修改,可由多方对其进行维护,同时便于数据溯源[2]。这种特性与供应链金融对于信息共享性和数据安全性的需求相互契合,因此将区块链相关技术应用至供应链数据平台可以提升供应链整体的运行效率,也可保证数据的安全。
当前,供应链金融平台的设计和管理是研究机构的热门课题。如文献[3]使用模糊评价算法对供应链金融平台中存在的信用风险进行评估,其是对供应链中难以估计的变量确定化,进而对变量进行分析。文献[4]使用BP 神经网络对平台数据进行研究,进而对金融数据的风险性进行评估。可以看到,传统的供应链金融平台依旧使用中心化的数据中心进行构建,其平台结构如图1 所示。供应链金融业务的具体瓶颈主要体现在三方面:企业信息不对称、业务风险高以及共享式发展滞后。
图1 供应链金融平台结构
区块链技术可以帮助金融机构打破传统供应链金融平台的瓶颈,许多学者进行了深入的研究。文献[5]认为区块链技术的开放性、共享性以及去中心化等诸多特点,对打破传统金融平台瓶颈具有重要的意义。文献[6]基于区块链技术构建了基础供应链金融平台,该平台使用以太坊作为区块链平台,使用默认的PoW 共识机制算法提高数据传输的速率。文献[7]结合区块链、签名认证和分层钱包技术设计了一套供应链管控与溯源系统,该系统具有交易回溯特性,相较传统供应链平台交易更加安全。
由此可见,当前使用区块链技术的供应链金融平台对传统平台的改进有以下几个方面:
1)使用签名认证算法保证用户的匿名性,从而使用户隐私得到良好保障。
2)使用区块链中的数据加密算法,可以保证区块链金融平台交易时的安全性。
3)使用共识机制对数据进行传输和存储,由此可以加快数据的交换速率,提高系统的整体运行效率。
因此,该文基于区块链技术对传统供应链金融数据平台进行改进,数据传输过程使用加密算法对数据进行保护;使用匿名保护算法对用户的隐私进行保护;使用共识机制算法加快平台运行速率同时节省算力,旨在可以解决传统供应链金融平台的瓶颈问题。
区块链平台的特点是去中心化、无法篡改、匿名性、开放性和跨平台性等,因此区块链技术与供应链平台特性较为吻合。使用区块链技术的供应链平台需要满足以下几个需求:
1)数据加密解密算法高效性:在供应链平台中,数据安全是其最为重要的机制之一。加密算法复杂且安全性高,但由此也会增加解密时间,进而降低整个平台的工作效率。因此,需要选择性能和安全性兼备的加密解密算法。
2)匿名机制:区块链重要的特性即匿名性,用户上传数据时用到的数据签名包含用户个人信息,因此需要对数字签名进行匿名以保护用户隐私,同时数字签名也可确保用户的真实性。
3)共识机制的选择:是指用户在平台完成交易时数据交换的速率。在用户上传数据时共识机制会制造区块,进而将用户的数据保存至区块中,共识机制效率越高,用户完成交易的速率则越快。
通常区块链的加密算法使用混合算法,该文将RSA 算法与AES 算法进行结合。RSA 算法也被称为非对称加密算法[8-9],使用该算法可以防止数据传输过程中的密钥泄露,但由于采用了非对称结构,所以算法的数据分组较多且计算缓慢。而AES 算法[10-11]为对称加密算法,也被称为快速加密解密算法,使用RSA+AES 混合算法在保证密钥安全的同时也可提高加密解密的速率。
RSA 算法加密的过程首先选取独立且不相同的质数p和q,计算质数的乘积n,如式(1)所示:
乘积n代表密钥的长度,通常情况下n取二进制位长度1 024。
计算密钥长度n的欧拉函数,如式(2)所示:
取一整数e,其取值范围为(1,φ(n)),且整数e和φ(n)互为质数。然后计算e对于φ(n)的取模,求反因子d,即有式(3):
则e的逆元素和d的关系如式(4)所示:
综上所述,即可设置公共密钥为(e,n),私有密钥为(d,n)。
而AES加密方式较为简单,加密流程如图2所示。
图2 AES加密流程
如图2 所示,明文为P,密钥为K,密文为C。发送方使用密钥K 对明文P 进行加密,密文C 通过网络传输至接收方后使用AES 解密函数得到明文P。
基于AES 和RSA 的混合加密流程,如图3 所示。图中,发送方的AES 密钥会进行自动设置,设置后再设定更新时间,当达到更新时间后,AES 密钥会自动失去作用并生成新的AES 密钥,不断更新的密钥即使泄露也无法对数据造成威胁,因此大幅增强了数据的安全性。
图3 混合算法加密流程
该文使用匿名保护算法对区块链中的用户隐私进行保护。算法设计采用环签名算法,该算法是群签名算法[12-13],操作过程是使用多个公钥集合对自身的私钥进行签名,用户的私钥在同一个系统中与其他用户的公钥进行签名,这样签名时既可确认用户是系统中的真实用户,同时又保证了用户的匿名性。环签名算法的流程如下:
供应链的某一用户通过供应链数据平台发出某个数据m,此时该用户的密钥q和其他用户组成的密钥集合为E,设群组中的用户数量为n。通过集群进行初始化,即可得到式(5):
式(5)中,q为公钥,G为加密因子,则用户自身的私钥s为:
私钥s无法从公钥和加密因子中推测出来,因为在系统中呈现出的只有用户的公钥集合。
生成的环签名为:
因此,通过式(7)的智能合约即可对用户信息进行匿名,使用二进制接口进行编译可以在系统中上传合约。
共识机制本质是基于可靠性高的节点对区块进行验证的算法,该文选取PoA 共识机制算法[14-16]。PoA 算法可以为整个系统节约大量的算力,并提高运算效率,同时使区块生成的时间大幅度减少。
PoA 共识机制的典型特征是使用轮询算法对区块的生成难度进行控制,常用的轮询模式为Difficulty模式。该模式的轮询节点为inTURN 节点,非轮询节点为outTURN 节点,节点计算如式(8)和式(9)所示:
基于PoA 节点的同步流程如图4 所示。
图4 PoA共识机制同步流程
对于新加入的节点而言,首先要创立节点的账户并将节点账户保存至数据时钟地址文件,然后再启用新加入的节点,查找并获取其相关信息。当节点同步后,PoA 共识机制会授权其进行相关操作,但此时节点之间需要保持同步更新。
为解决传统供应链金融技术中存在的瓶颈,该文充分利用多种区块链技术和算法,保证了用户数据安全、快速地传递。该文提出的数据平台框架设计,如图5 所示。
图5 数据平台框架设计
首先对该文设计的平台进行系统搭建,由于是金融供应链服务平台,因此平台技术的选取应尽量选取相对成熟且性能稳定的产品。在系统部署方面,允许多种方式进行部署,其中主要包括物理机和虚拟机等方式。同时,使用集成环境进行系统的迭代和升级,技术选型表如表1 所示。
表1 技术选型表
首先对加密解密算法性能进行对比,使用以太坊中的默认加密算法ECC 进行对比测试,表2 和表3展示了不同算法加密时间和解密时间的对比。
表2 加密时间对比
表3 解密时间对比
由表2 可知,在数据加密过程中,该文算法相较ECC加密时间有明显的缩短。在加密数据量为1 MB、5 MB、10 MB 和15 MB 时,该文算法的加密时间分别缩短了61.5%、70.3%、70.7%和70.3%。
由表3 对比表2 可以看到,两种算法所需要的加密时间和解密时间大致相同,该文算法的解密时间相较ECC 算法也出现了大幅缩短。
在数据安全性方面,由公开的测试数据可知,假设AES 密钥通常有128 位,即需要经过2127次计算,而普通计算机的运行速度为每秒265次。由此可知,破解长度为128 位的AES 密钥时间约为1 400 亿年。而该文AES 密钥设置的长度为1 024,因此使用计算机对密钥进行破解的难度极高,从而证明了文中加密算法可以保证数据的安全性。
传统的区块链共识机制使用PoW 算法,而该文选择使用PoA 共识算法。该算法可以缩短共识机制所用时间,因此能够大幅度降低系统所需的算力,而这一性能主要体现在CPU 的使用率上。使用PoW和PoA 共识机制分别进行CPU 占有率测试,测试结果如表4 所示。
表4 CPU占有率测试
由表4 可以看出,系统在运行50 s 以后,两种机制的CPU 占用率趋于稳定,使用PoA 共识机制可以大幅降低CPU 的使用率。
传统供应链数据平台具有信息不对称、业务安全性和共享性差等缺点,该文提出基于区块链技术的供应链金融数据平台,设计了加密算法、匿名算法和共识机制算法对上述瓶颈问题进行改进。在实验测试中,该文搭建的数据平台在多项性能指标上均表现出了良好的性能,相较于其他算法,在运行速度以及CPU 占用率方面也有着明显的优势,表明了该文所设计的数据平台具有安全性高、运算时间短且隐匿性强的特点。