没有合适的资源?快使用搜索试试~ 我知道了~
区块链:研究与应用3(2022)100064UCBIS:一个基于UBCCSP的改进型联盟区块链信息系统杨亚涛a,b,*,林天祥a,刘培和a,曾平a,宋晓a,ba北京电子科学技术学院,北京,100070&b西安电子科技大学电信工程学院,西安,710071A R T I C L E I N F O保留字:联盟区块链Hyperledgerfabric智能合约信息查询SM2区块链A B S T R A C T区块链技术已经应用于许多领域,从经济,物联网到工业互联网。为了解决Hyperledger Fabric目前不支持中国商业 密 码 ( CCC ) 算 法 的 问 题 , 我 们 通 过 升 级 原 始 BCCSP 模 块 来 扩 展 Hyperledger Fabric 中 的 BlockchainCryptographic Service Provider(BCCSP)模块,以支持CCC算法SM2和SM3。在此基础上,设计了一个基于UBCCSP(Upgraded BCCSP)的交易流程,并提出了一个新的智能合约在此基础上,提出了一个改进的基于UBCCSP的联盟区块链信息系统UCBIS(Consortium Blockchain Information System based on在HyperledgerFabric交易过程中,身份信息和交易数据受到SM2和SM3算法的保护,此外,SM3还用于智能合约的构建过程 我们的智能合约减少了总数据量并提高了查询效率。最后,实现了基于UBCCSP的信息查询系统经过测试和分析,该区块链系统的平均每次查询时间仅为31.162 ms,具有更好的性能和更高的查询效率。1. 介绍区块链是一种由点对点网络共同遵守某种共识协议管理的分布式账本,可以说是一种新的颠覆性技术[1]。区块链技术是随着比特币等数字加密货币的普及而出现的,具有去中心化和不可修改的特点[2]。通过使用共享账本和分布式共识机制,区块链网络中的每个节点都拥有包含多个区块的相同账本区块链通常有一个交易列表,并包含其上一个区块的哈希值数据只能在通过一系列验证后存储在分类账中。这使得它具有集体共识维护,分散,不信任,不变性,安全性和可靠性[3]。目前,区块链技术的应用非常广泛。区块链技术最早的应用是创建数字货币和私人交易。Zhang等人[4]在区块链中使用智能合约来减少选票篡改。Xu等人[5]提出了一种使用RSA加密的随机预测区块链模型Li等人[6]提出了一种基于椭圆曲线数字签名算法(ECDSA)的选择性公开机制的匿名数据传输签名方案。Lin等人[7]实现了访问控制方案在区块链上防止未经授权的请求。Khoury等人[8]提出了一种基于以太网区块链技术的分布式无信任投票平台,以解决信任问题。区块链在金融、物联网(IoT)等信息系统中的应用越来越广泛SM 2和SM 3作为中国商用密码学集中公钥算法和Hash算法的标准,也已成为ISO(国际标准化组织)标准ISO/IEC 14888 -3:2018和ISO/IEC 10118 - 3:2018。SM 2和SM 3提供与ECC算法/SHA-256算法相同的安全强度和工作效率但是,HyperledgerFabric控制区块链中不支持SM2和SM3算法。为了在中国和其他国家推广基于Hyperledger Fabric联盟区块链的信息系统,有必要研究如何将SM2和SM3算法嵌入到Hyperledger Fabric联盟区块链中,进而为Hyperledger Fabric联盟区块链提供信息安全保护。我们的贡献包括:(1) 提出了一种改进的基于UBCCSP(Upgraded BCCSP)的联盟区块链信息系统UCBIS(Consortium Block-chainInformation Systembased on UBCCSP)在* 通讯作者。北京电子科学技术学院,北京,100070。&E-mail:yy2008@163.com(Y. Yang)。https://doi.org/10.1016/j.bcra.2022.100064接收日期:2021年11月13日;接收日期:2021年12月28日;接受日期:2022年1月20日2096-7209/©2022作者。出版社:Elsevier B.V.代表浙江大学出版社。这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applicationsY. Yang等人区块链:研究与应用3(2022)1000642系 统 中 , 原 有 的 BCCSP ( Blockchain Cryptographic ServiceProvider,区块链加密服务提供商)模块升级为支持中国商业加密算法SM2和SM3。 该系统的交易过程由SM2和SM3算法保护。SM3也用于智能合约的构建过程(2) UCBIS系统具有较高的工作效率。 我们的智能合约通过权限管理减少总数据量,提高查询效率。经过测试和分析,区块链系统中每个查询的平均时间仅为31.162 ms。通过与其他系统的比较,UCBIS系统具有更好的性能和更高的查询效率。本文的其余部分组织如下:在第2中,介绍了区块链的相关研究和发展现状;在第3中介绍了联盟区块链Hyperledger fabric的架构。 在第4节中,将介绍Hyperledger的安全机制、SM2和SM3算法以及UBCCSP模块。在第5节中,给出了基于UBCCSP的超级账本交易流程和智能合约。第六章实现了基于UBCCSP的联盟区块链信息查询系统。第七章对系统的性能进行了评价和比较;第八章是对工作的总结和展望。2. 相关工作区块链技术已经被许多学者分析和改进。Bashir等人[9]强调了比特币支付在区块链协议中的应用,并使用线性回归来预测人们对比特币的态度以及比特币所有权的可能性。Mylrea和Gourisetti [10]介绍了一种基于区块链节点之间的无密钥签名基础设施(KSI)的分布式和见证信任锚。Yin等人[11]实现了一种基于格子密码学的区块链结构,以克服量子计算攻击的威胁。Sikorski等人 [12]介绍了区块链辅助的物联网信息分发系统的潜力。Vandervort等人 [13]讨论了区块链技术作为一种服务的应用,以支持公共部门计划中的基础设施。见参考文件[14]作者分析了以安全的方式存储学历证书的应用案例,这在公共部门可能非常有益。作者[15]展示了爱沙尼亚的一个例子,区块链技术被用于共享医疗记录。提交人[16]研究供应链,提高供应链伙伴之间的信誉Li等人 提出了一种基于隐私保护区块链的共享经济公平交易方法[17],并分析了一种基于许可区块链(FPPB)的快速隐私保护方法[18]。Li等人[19]提出了两种基于区块链和现有隐私增强技术的Mo€dinger等人[20]提出了一种可调整的隐私保护广播协议。 Dang和Nguyen [21]提出了一种使用区块链技术在智能家居中实现数据私有化的方法。Tan等人 [22]通过数字签名、基于IPF的区块链等技术实现数字文件的保护、验证、恢复和共享。 Xia等人 [23]研究了医疗数据共享系统中的访问控制管理,设计了一种基于区块链的数据共享方案。Esposito et al.[24]使用区块链技术的独特属性通过请求数据实体来检查数据的完整性Liang等人[25]提出了一种基于区块链的云环境数据源架构,以增强数据隐私和可用性,他们使用云存储场景,并选择云文件作为数据单元来检测用户的操作源数据。Chen等人[26]比较了区块链和关系数据库性能,并为区块链性能指标的测试提供了思路。近年来,许多研究人员设计并实现了特色区块链框架或系统。Yu等人[27]开发了一个框架,可以将区块链集成到物联网系统中。耀和王[28]引入了区块链认证方案,以验证每个通信节点Androulaki等人[29]提出了一种区块链的blocklist方案来跟踪可疑的请求节点。Le等 [30]提出了一个物联网取证框架,可以通过在有效期内记录所有事件来确保完整性和可追溯性,而不是依赖于对设备的信任假设。Bartolucci等人[31]将交易费用和身份识别系统相结合,只允许授权用户执行不同的操作。Rahu-lamathavan等人提出了一种新的区块链架构见参考文件 [32],他们使用基于属性的加密技术设计了区块链架构,改变了区块链协议的流程,但没有破坏区块链的基本安全属性。Kim和Lampkins [33]设计了一个系统来处理私人数据,并通过使用区块链和多方计算(MPC)来保证数据的完 整 性 和 真 实 性 Lu 等 人 [34] 提 出 了一 种 基 于 区 块 链 的 匿 名 信 誉 系 统(BARS),用于卡车的匿名认证和信任通信。Wan et al. [35]提出了一种基于区块链的创新物联网架构,为智能工厂构建私有,轻量级,可扩展和部分分散的物联网。Aitzhan和Svetinovic [36]实现了一个基于令牌的无信任分布式能源交易系统。Azouvi等人[37]开发了一个基于比特币和区块链的身份管理系统Wijaya等人[38]提出了一个创新的区块链平台,通过增加透明度来克服税务欺诈见参考文件[39],提出了一个与多个组织共享私人数据的系统,该系统中的用户可以控制他们的数据,并且可以访问这些数据的每个组织都自动更新新信息。见参考文件[40],提出了一种轻量级的健康区块链备份和恢复方案作者[41]特别提出了一种基于令牌的分散式能源交易系统,在该系统中,同行匿名协商能源价格,并可以安全地执行交易。作者[42]介绍了一个汽车安全平台,通过使用区块链技术来解决未来联网汽车的安全和隐私挑战。Dubovitakaya等人 [43]通过区块链提供了一种解决方案,以更安全,隐私和简单的方式管理电子医疗记录。Xu等人 [44]设计了基于区块链技术的图书馆资源共享服务模型。Liang等人[45]提出了一种基于区块链技术的分布式可信云数据源架构Alansari等人[46]提出了一种身份和访问管理系统架构,允许云组织保护其数据隐私。Dorri等人[47]为智能汽车生态系统提供去中心化的隐私保护和基于区块链的安全架构。Magyar [48]介绍了一种基于区块链的综合健康信息模型的方法,为患者数据的安全存储提供了新的途径Guan等[49]提出了一种基于区块链的数据聚合方案, 以保护用户隐私。Yan 等[50]提出了在HyperledgerFabric中处理条件查询的有效方法Badr等人[51]提出了一个基于Hyperledger Fabric的区块链系统,允许机构根据学生的要求安全可靠地传输和验证Rensaa等人[52]讨论了虚拟化医疗环境中的数据共享和信任建立问题他们的方案使用了公共以太坊区块链平台,交易需要花费一定数量的加密货币,从而扩大了区块链应用的范围上述关于区块链的研究主要集中在系统的存储和应用,但对联盟区块链加密算法的研究还不多见。 作为区块链的核心部分,加密算法为区块链中的所有安全实现提供了底层保障。区块链网络中的不同加密算法对于确保所有链上的数据安全性具有正如第1节所述,本文的主要贡献是升级联盟区块链中的BCCSP加密组件,以便Hyperledger Fabric可以支持中国商业加密算法,如SM2和SM3。 该方案为联盟区块链中加密算法库的扩展提供了新的思路。本文提出了基于UBCCSP的交易流程和智能合约,设计并实现了一个基于UBCCSP的联盟区块链信息查询系统Y. Yang等人区块链:研究与应用3(2022)10006433. Hyperledger Fabric架构区块链的主要类型可以分为公共区块链、联盟区块链和私有区块链[50]。公共区块链是向所有公众开放的,公共区块链中最典型的应用是比特币,它需要“挖矿”来生成区块。 这种模式极大地限制了区块的生成,降低了交易效率。私有区块链中的所有权限完全归组织所有,只对组织内部用户开放。联盟区块链是介于公有区块链和私有区块链之间的一种区块链。由于其限制和规则,联盟区块链的安全性得到了加强Hyperledger Fabric是联盟区块链的基本框架之一,也是Hyperledger项目之一[53]。与比特币不同的是,Hyperledger使代码与分布式账本分离[54]。HyperledgerFabric系统的逻辑架构如图所示。1.一、从应用程序的角度来看,Hyperledger Fabric由四个部分组成:身份管理、账本管理、交易管理和链码。 从左到右在图。1,可以看出,Hyper-ledger Fabric系统包括三个主要组件:会员管理、共识服务和链码服务。一般来说,多笔交易可以打包成区块,多个区块形成一个区块链,区块链提供了一个分布式账本平台。 链码包含了所有的处理逻辑,并提供了与外界的接口. 外部方法可以根据不同的指令调用链码接口进行部署(Deploy)、调用(Invoke)和查询(Query),这也是操作区块链交互的唯一方式。通过基于公钥基础设施(PKI)的成员权限管理,平台可以限制节点和客户端的能力。通常,使用三种类型的证书,包括注册证书(EC),交易证书(TC)和TLS证书(TLC),以确保通信链路的安全性。证书的默认数字签名算法为ECDSA,哈希算法为SHA-256。4. Hyperledger Fabric安全分析4.1. 安全机制分析Hyperledger Fabric网络中的节点部署如图所示。 二、组织A、B、C和D可以共同决定建立一个Hyperledger Fabric网络。 组织D仅被授权建立和管理结构网络,不参与业务事务。阶数4的节点策略是管理网络资源。组织A、B和C具有相应的客户端应用程序。Peer1、Peer2和Peer3分别是对应于组织A、B和C的对等节点。他们在获得认证机构(CA)授权后加入了E11,也可以在E11上执行服务Peer1、Peer2和Peer3共同维护与节点11相关联的Ledger1,并安装相同的智能合约ChaincodeS1。Order 4不仅是网络中的管理节点,还负责区块链网络中交易过程中的收集、分发、验证、排序和记录基于这个网络,Hyperledger Fabric中的安全机制可以描述如下。(1) 每个组织中的成员节点之间的私有通信可以通过通道机制来实现几个不同的组织可以逐一建立渠道,每个渠道都有独立的账本。 只有通道中的成员组织可以共享其分类账,其他组织不能访问该分类账。 通道机制可以确保成员组织之间形成专有的专用网络。交易在渠道内秘密执行,并与外部无关组织或个人隔离。也就是说,通道不仅为组织成员之间的私人通信和私人数据共享提供了一种机制,而且还在相互通信时保证了数据隐私通道机制的安全性依赖于会员服务提供商(MSP)认证系统。我们还更新了系统的MSP模块因此,信道的安全性也取决于SM2和SM3算法。我们的系统将X.509证书转换为SM2证书,并从加密算法中更改MSP如图 2、组织A、B、C组成联盟,共同创建Fabric 1,Fabric 1完全独立于整个Fabric网络,由组织A、B、C共同管理,C. Fabric网络中的其他组织没有权力监督Fabric 1,并与之隔离。(2) 可以设置严格的权限和规则,通过授权和角色控制来管理访问Fig. 1. Hyperledger Fabric系统的逻辑架构。Y. Yang等人区块链:研究与应用3(2022)1000644图二. Hyperledger Fabric网络节点部署图。区块链网络中的不同参与者包括对等体、订户、客户端应用程序、管理员等。每个参与者都有一个由CA颁发的数字证书,这些身份决定了访问区块链网络中资源的确切权限。 MSP是Fabric网络信任的组织,更具体地说,MSP可以定义规则来管理组织或用户的身份。Fabric网络中的默认MSP实现是通过使用传统的PKI层次结构模型将X.509证书用作身份。如图组织D被指定为网络资源管理器,组织A、B和C是结构网络的成员。 组织A可以通过MSP证书在渠道11中被授权为管理员身份,组织A有权加入渠道中的其他组织,删除渠道中的组织,更改区块数据。组织B和C只有读写权限。(3) 某些私有数据只能在分类账中的少数组织之间共享目前,解决这一问题有两种办法 如图 2、一个是创建一个新的渠道,与少数组织共享私有数据。 假设组织B和C希望传输其私有数据而不与组织A共享,则组织B和C将创建新的仅包含组织B和C的分类帐12,对等体2和对等体3也将创建新的分类帐2和链码2。另一种是使用私有数据收集,这使得通道上的组织能够识别,提交或查询私有数据,而无需创建单独的通道。实际的私有数据可以是通过gossip协议发送到仅被授权查看数据的组织。 这些数据作为哈希值存储在授权组织的私有状态数据库中,并且可以通过来自这些授权对等体的链码访问它们。(4) 通过身份混合机制(IMM)可以实现事务的安全性和不可链接性IMM是基于盲签名技术,它支持有效的零知识证明多个消息和签名。发行人使用零知识证明技术以数字证书的形式发布一组用户的属性。验证者仅选择性地披露用户同意显示的属性,即不会向他人发布任何有效信息我们设计的链码采用了SM3加密方法,并在链码中设计了权限管理方法一方面,权限管理方法可以区分管理员和非管理员,限制了人们可以访问的资源;另一方面,权限管理方法不对非核心信息进行加密,降低了整个系统的计算负荷,提高了效率。4.2. UBCCSP模块在Hyperledger Fabric系统的整个架构中,提供加密算法服务的核心模块是BCCSP模块,它可以被认为是区块链加密服务提供者。BCCSP在Fabric网络中提供加密标准和许可证的实施,包括散列,数字签名,Y. Yang等人区块链:研究与应用3(2022)1000645ðÞ半- ]2¼ ðJJjj图三. UBCCSP模块结构。验证、加密、解密等,目前BCCSP模块无法支持SM2、SM3等中国商用密码算法。 为了使Fabric网络更加强大和安全,我们设计了UBCCSP(更新BCCSP)模块,如图所示。 3.在UBCCSP服务套件中,改进了五个模块(1) hashopts.go模块。这个哈希接口在BCCSP中使用,主要描述了哈希算法的实现。SM3算法已作为可选接口添加到此模块中(2) opts.go模块。该模块可以定义所有加密算法结构、密钥生成和导入功能。该模块增加了SM2、SM3算法的密钥生成和导入功能。(3) SW模块。SW是BCCSP中的软件实现模块,主要描述可插拔自定义算法的实现。sm2.go文件可以生成加密算法,sm2key.go文件定义公钥和私钥,这两个文件已添加到SW文件包中以更新SW模块。SM3被添加到SW子文件conf.go,关于SM2的密钥存储和读取被添加到SW子文件fileks.go。SM2和SM3算法的密钥驱动程序在SW子文件keyderiv.go中定义,该文件实现了密钥驱动程序的接口。 密钥生成接口在SW子文件keygen.go中定义。 内部密钥导入接口函数在SW子文件keyimport.go中定义。加密、解密和签名功能已添加到SW子文件new.go中。(4) 工厂模块提供工厂模式支持。通过该工厂可以返回特定的BCCSP实例,包括用于测试的null实现、软件中的SWfactory实现以及基于PKCS 11硬件的PKCS 11工厂实现。本系统在软件平台 下 实 现 , 根 据 配 置 选 项 , 将 SWFactory{} 函 数 更 新 为GMFactory.go文件、GMFactory.go文件,opts.go文件中增加了SM 3算法的实例化函数,pkcs.go文件中增加了GMFactory {}函数。(5) utils模块。 主要介绍了加密算法实现的相关工具。keys.gole文件修改了密钥格式和存储函数,增加了SM2算法的工具界面。4.3. SM2算法描述4.3.1. 初始化将选择满足安全要求的椭圆曲线,并且用户B的私钥dB2½1;n-2]将通过随机数生成器,其中n是基点G的阶数。然后,用户B的公钥可以通过PB;dB·G来计算,其中G是椭圆曲线的基点,PB;dB是用户B的公钥/私钥4.3.2. 加密过程如上一节所述,SM 2/SM 3算法的密钥生成和在hashopts.go模块中,SM3算法作为哈希计算接口的新算法被此外,SM2上的密钥存储和读取操作等功能也在其他模块中实现。 通过对各个模块的改进,使SM2和SM3算法能够应用于BCCSP模块。SM2算法的具体加解密过程如下。假设要发送的消息是一个比特串M,len是M的比特长度。为了对明文M进行加密,用户A需要执行以下操作步骤:(1) 用随机数发生器产生随机数k1; n1,其中n是椭圆曲线基点G的阶数(2) 求椭圆曲线的点C1<$$> ½k]G<$$>x1;y1<$;(3) 计算椭圆曲线上的点S<$/2h]PB(4) 计算椭圆曲线的点½k]PB<$$>x2;y2<$;(5) 计算t1/4KDF,其中,KDF是密钥导出函数;(6) 计算C2¼Mt;(7) 计算C31/4哈希值x2jjMjjy2;(8) 输出密文C1/C1jjC2jjC3。4.3.3. 解密过程(1) 从C中取位串C1;(2) 求椭圆曲线的点S<$^2h]C1;(3) 计算1/2dB]C1/4x2;y2;(4) 计算t1/4KDF=100x2jjy2;(5) 从C取位串C2,计算M0<$C2t;(6) 计算u哈希值x2M0y2,从C中取位串C3;(7) M0 是解密后的明文。SM3哈希算法基于MD结构。 对于消息m,在通过SM3散列操作执行之后,其散列值的长度为256位。5. 交易流程设计我们设计了基于UBCCSP的交易流程,如图所示。 四、Y. Yang等人区块链:研究与应用3(2022)1000646¼¼图四、基于UBCCSP的交易流程。从图4、交易流程可说明如下:(1) 生成MSP。对于区块中的节点,MSP基于PKI系统为区块中的成员组织创建和管理一用户依赖其证书来验证身份和角色,并验证权限。在这里,MSP可以使用SM2和SM3算法来生成数字证书和私钥。(2) 发 送 交 易 请 求 。 App/SDK 节 点 将 准 备 具 有 以 下 格 式 的PROPOSE,tX,[anchor]>的PROPOSE消息,其中tX是必需的 并 且 anchor 是 可 选 的 , tX 可 以 进 一 步 描 述 为 clientID ,chaincodeID , tX Payload , time-stamp , clientSig> 。ClientID是客户端应用程序的数字实体,chaincodeID是链码的标识符,由Endorsers使用,t X Payload是包含已提交事务本身的有效负载。App/SDK节点使用SM 3通过Fabric SDK对交易内容执行哈希计算然后,可以通过使用SM2签名算法来计算数字签名值。 事务内容和签名结果被打包到事务请求中。事务操作请求包含以下信息,例如。的客户端将根据交易执行的背书策略将请求发送给一个或多个对等方(背书方)(3) 进行签名验证。当所有指定的对等点(背书者)收到请求后,他们执行SM2签名验证算法来验证消息的正确性。然后,对等(背书者)节点启动指定的链码并访问本地分类账以执行交易。同时,它们生成一个读写集合,其中读取集合中账本数据的版本信息包括键、属性、值和版本。对等节点(背书者)将使用Peer的私钥对读写集进行背书,签名算法为SM2。读写集和背书签名将打包为<将TRANSACTION-ENDORSED、tid、trans-proposal、epSig>转换为背书结果,并返回给App/SDK。反式sal(epID,tid,chaincodeID,tX ContentBlob,readset,writeset),其中tX ContentBlob是链码/交易的特定信息。目的是让tX ContentBlob是tX 的某种 表示(例如 ,tX ContentBlobtX.tX Payload)。 EpSig是Trans-proposal上背书人的签名值。App/SDK之后收集背书结果,检查结果是否一致,并转发给订单节点。(4) 广播执行结果。Order节点收集各方发送的交易结果,并按照接收时间的顺序进行排序,以保证各节点发送的交易能够有序执行然 后 , 区 块 将 被 生 成 并 广 播 到 区 块 链 网 络 中 的 所 有 Peer(Committer)节点。(5) 记录结果。Committer节点从Order节点获取有序的批量交易块,并对这些交易进行最终检查,包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等。 一旦通过检查,将生成合法的交易记录,并将结果写入分类账。同时,客户亦会收到交易完成的通知。6. 系统实现我们将Hyperledger和UBCCSP结合起来,构建了一个基于UBCCSP的联盟区块链信息系统,以加强信息查询的安全保护。设计和实现过程中的难点在于:一方面,我们已经为HyperledgerFabric联盟区块链设计了SM 2和SM 3算法,然后将这两个算法添加到UBCCSP模块中;另一方面,我们已经设计了基于UBCCSP的智能合约和权限管理算法。基于UBCCSP的联盟区块链信息查询系统架构如图所示。五、6.1. 系统架构和数据结构从图5中可以看出,联盟区块链信息查询系统由三个主要组件组成:Web应用层(GoWeb)、服务层(Fabric-Sdk-Go)和Fabric网络。Web应用程序层为用户提供了一个交互式界面,通过API与HyperledgerFabric网络交互。Web应用程序还为企业提供了查询交易信息的接口,以执行常见功能,例如登录、条件查询、上传和修改交易信息、跟踪历史交易信息等。 服务层分为四个功能模块:添加信息、信息查询、信息查询Y. Yang等人区块链:研究与应用3(2022)1000647图五. 基于UBCCSP的区块链信息查询系统架构修改和信息可追溯性。该层由Hyperledgerfabric-sdk-go文件、脚本文件、ACL 文件和查询 文件组成。 区 块 链 数 据 用 于 智 能 合 约 操 作 。CouchDB充当状态数据库,记录当前事务信息的结果作为一个可插拔的接口,MSP提供了一套加密机制和协议,用于在区块链中发布和验证数字证书和身份。通常,CA用于生成证书、加密密钥和初始化MSP的状态对整个体系结构的底层和基本支持是UBCCSP模块。根据交易信息的类型,数据将存储在分类账中。因此,有必要考虑和设计清楚相关的数据结构,以便在应用中方便地处理数据。我们的区块链系统中的数据结构如图所示。第六章在数据结构中,社会信用代码和交易编码由于其唯一性和清晰性而被定义为条件检索的关键字。我们在数据结构中定义一个HistoryItem来表示当前状态的历史集从当前分类状态可以查询详细的历史操作记录。6.2. 查询流程和智能合约设计见图6。交易信息中的数据结构。查询结果将显示与对应企业的最新交易信息内容,包括当前交易代码、历史交易代码、交易内容、交易时间、交易金额、交易完成时间等重要信息。 查询过程如图所示。第七章当相当多的用户同时查询时,过多的交易信息数据可能会拥挤并降低查询效率(见图1)。(八)。为了减少查询的总数据量,提高查询效率,智能合约会为不同的用户设置不同的权限核心用户可以查询所有交易信息和历史信息,非核心用户只能查询交易代码和交易内容的当前状态算法1描述了在查询过程中如何设置用户权限首先,系统会检查登录用户是否为Admin,如果是,智能合约通过关键字Social credit code查询与相关公司的交易信息首先,可以用给定的地址打开网页终端,用户可以登录交易信息查询区块链系统通过批准的ID和密码。然后,用户可以选择查询范围,输入相应的社会信用代码或交易编码,即可查询交易信息。Y. Yang等人区块链:研究与应用3(2022)1000648见图7。 交易信息查询流程。见图8。 智能合约算法。然后执行json.Unmarshal,对输入数据进行处理,调用SM3算法得到哈希结果A。接下来,可以通过对数据执行SM3操作从CouchDB获得数据,可以获得散列结果B。 智能合约将确定哈希结果A和B是否相等,如果相等,则可以得出结论,该数据未被修改。最后,来自区块链和CouchDB的数据将被合并;相应的交易信息集也可以通过输入关键字Social creditcode来查询 如果用户想查询历史交易信息,可以使用历史查询功能来追溯自己的历史数据。非核心用户只能查询当前状态的交易代码和交易内容。7. 系统评价我们的系统在测试台上进行了测试,配备了英特尔酷睿i7处理器、8 GB内存和Windows 10(64位)操作系统。系统运行在Ubuntu 16.04(64位)虚拟机上。Y. Yang等人区块链:研究与应用3(2022)1000649表1查询效率测试。查询信息经过时间(ms)每次查询的平均时间(ms)20846.2342.311003997.8539.982007896.9139.4850018598.5937.20100035064.6235.06150050957.4133.97200062324.6331.167.1. 性能测试系统在测试期间分别处理20、100、200、500、1000、1500和2000个事务记录查询交易信息的总时间和平均时间如表1所示。当查询2000条交易记录时,我们系统中的平均时间仅为如果成功处理所有查询,则每个查询31.16 ms随着查询信息量的增加,每次查询的总时间和平均响应时间如图所示。第九章根据该曲线可以得出,平均查询时间将随着交易信息量的增加而减少。这是因为在新的智能合约下加密散列函数SM 3用于在SM 2签名生成过程和验证过程之前压缩消息在SM 2数字签名的生成和验证过程中,也采用了SM 2加密/解密算法。伪造SM 2数字签名意味着SM 2和SM 3算法可能不再安全,然而,这些中国商业算法已经被证明是安全的,并且仍然非常安全,就像国际算法ECC或SHA-3一样。 也就是说,伪造SM2签名证书在计算上是不可行的。如果恶意攻击者试图伪造或窃取节点的身份,他必须基于Fabric系统CA或授权机构生成的SM2算法伪造签名证书,这在计算上是不可行的。也就是说,结构中的节点的身份是可信的。目前,在Hyperledger Fabric联盟区块链中,关于加密算法和智能合约的转换和改进的研究成果还很少 为了说明我们的计划的性能,我们选择了以下四个最相关的研究成果作为比较目标。这四种典型的区块链信息查询系统在表2中进行了比较。表2系统性能比较。智能合约使核心数据和历史数据只对管理员开放Scheme区块链类型条件查询加密算法每次查询的平均时间(ms)管理员的人数远远少于其他成员。从而减少了查询数据量,降低了系统的计算7.2. 性能分析首先,我们设计的查询系统是安全的。 数字签名是只能由发送方生成的数据字符串,其他任何人都无法伪造,它是消息真实性的有效证明和诚信数字签名算法包括Liang等 人 的方案[ 25 ]Chen 等 人 的方案[ 26 ]Badr等人的方案[ 50 ]来自Rensaa的方案等人[五十一]公共区块链私有区块链HyperledgerFabricHyperledgerFabric第221章原来的否原始125.08是的原始39.585否原始41.083签名者对数据生成数字签名,验证者验证签名值的可靠性。我们的方案Hyperledger织物是原件、SM2和SM331.162见图9。 平均查询时间与查询信息量的关系。Y. Yang等人区块链:研究与应用3(2022)10006410Liang等人的Scheme [25]开发了一种基于公共区块链和云计算的信息保护系统Chen et al.[26]测试了典型私有区块链数据库的性能Badr etal.和Rensaa et al.[50,51]基于Hyperledger Fabric联盟区块链提出的区块链信息查询系统。从表2中,在我们的系统中的平均查询时间仅为31.162毫秒。[25],我 们 的 系 统 中 的 平 均 查 询 时 间 缩 短 了 189.838 ms , 效 率 提 高 了609.20%。与Chen et al.[26],缩短了93.918 ms,工作效率提高了301.39%。 与Rensaa等人[ 50 ]的方案相比,时间缩短了8.4 ms,效率提高了27.033%。与Rensaa等人的方案进行了比较。[51],平均查询时间缩短了9.9 ms,运行效率提高了31.84%。测试表明,该方案具有较好的查询效率和工作性能,其重要原因在于设计了一种基于条件查询和权限管理的智能合约。8. 结论区块链及其安全性引起了越来越多的关注。为了解决HyperledgerFabric目前不支持中文商业密码算法的问题,对Hyperledger Fabric中的BCCSP模块进行了扩展,在原BCCSP模块的算法库中加入了中文商业密码算法SM 2和SM 3。在此基础上,开发了一个基于UBCCSP的交易信息查询系统作为原型系统。经过测试和分析,该区块链系统中每个查询的平均时间仅为31.162 ms。本文针对实际应用中的工作性能,仅以交易信息查询作为切入点之一,用户的远程匿名认证还可以在以后进行深入研究。竞合利益作者声明,他们没有已知的竞争性经济利益或个人关系,可能会影响本文报告的工作。资金本工作得到了“电子信息工程”和“信息安全”国家一流本科专业建设项目的支持。北京市先进学科建设项目(编号3201023)。引用[1] M. Raikwar,D.格利戈罗斯基湾Kralevska,区块链中使用的密码学的SoK,IEEEAccess,2019年,第103页。 148550- 148575。[2] P. Taylor,T. Dargahi,A. Dehghantanha等人,区块链网络安全的系统性文献综述,Digit。Commun.网络6(2)(2020)147 doi.org/10.1016/j.dcan.2019.01.005。[3] Y.T. Yang,J.l. Cai,X.W. Zhang,Z.袁,基于SM9算法的可证明安全的区块链隐私保护方案,J. Softw. 30(6)(2019)1692https://doi.org/10.13328/j.cnki.jos.005745[4] W. Zhang, Y. Yuan,Y.Y Hu,区块链上的隐私保护投票协议,在:2018年IEEE第11届云计算国际会议(CLOUD); 2018年7月2日至7日;美国加利福尼亚州旧金山,IEEE,新泽西州皮斯卡塔韦,美国,2018年,pp. 401- 408[5] L.许湖,加-地Chen,Z.M. Gao等人,EPBC:面向轻量级用户的高效公共区块链客户端,收录于:SERIAL'17:SERIAL 2017第一届分布式账本可扩展和弹性结构研讨会论文集; 2017年12月11日至15日;美国内华达州拉斯维加斯,ACM,美国纽约州纽约市,2017年,第11页。 一比六[6] H.W.李瑞珊Lu,J. Misic,M. Mahmoud,互联车辆云计算的安全性和隐私,IEEE Netw。32(3)(2018)4- 6。[7] C. Lin,D.B.他,X.Y. Huang等人,BSeIn:一个基于区块链的安全相互认证,具有工业4.0的细粒度访问控制系统,J. Netw。Comput. 116(2018)42https://doi.org/10.1016/j.jnca.2018.05.005[8] D. Khour
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功