CN109389506A - 用于超级账本多链场景下交易数据来源的检测方法 - Google Patents
用于超级账本多链场景下交易数据来源的检测方法 Download PDFInfo
- Publication number
- CN109389506A CN109389506A CN201811235189.7A CN201811235189A CN109389506A CN 109389506 A CN109389506 A CN 109389506A CN 201811235189 A CN201811235189 A CN 201811235189A CN 109389506 A CN109389506 A CN 109389506A
- Authority
- CN
- China
- Prior art keywords
- transaction
- endorsement
- client
- account book
- envelope
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于超级账本多链场景下交易数据来源的检测方法,具体步骤为:客户端构造交易提案到背书节点背书;模拟交易,返回背书响应,以及交易头哈希;构造交易请求Envelope,请求排序;验证客户端和背书节点的签名;验证交易头与对应字段哈希值;继续执行原有的排序操作,并生成区块;本发明实现由于***对交易所处通道的验证不充分导致的恶意客户端蓄意泄露敏感信息的检测,避免由于排序服务因验证缺失导致交易通道分发错误而产生的敏感数据泄露问题,从而,保障了多链场景下交易数据的安全性。
Description
技术领域
本发明涉及区块链开源项目超级账本中多链场景下的数据隔离保护方法,特别是一种基于对超级账本共识算法的改进实现的多通道数据来源的检测方法。
背景技术
区块链技术作为一种分布式共享账本技术,借助密码技术,让人们可以在没有中央权威机构监督的情况下,对彼此协作建立起信心,实现了在分布式网络里多边交易的去中心化。目前,全球有数个区块链技术平台,用于研究区块链技术及其应用。Linux基金会支持的开源项目Hyperledger Fabric(超级账本)是其中的代表性平台。
超级账本的共识算法包括四个阶段:(1)第一阶段,交易提案由客户端提交到背书节点;(2)第二阶段,背书节点检查交易,模拟执行链码,返回背书的交易;(3)第三阶段,客户端把背书后的交易提交给排序节点,排序节点基于kafka排序服务收集交易,并生成区块;(4)第四阶段,排序节点将区块分发给主节点,由主节点向下分发,并在每个节点添加区块到链上之前对区块进行检查,最终,检查通过的区块被追加到现有的区块链上,整个共识过程完成。
在Hyperledger Fabric 0.6版本中,所有的节点属于同一个链,所有节点也会同步相同的数据。然而,随着业务量的增加,每个节点同步和存储的数据量急剧增大,且无法实现不同敏感程度数据的隔离,存在数据安全隐患。因此,在Hyperledger Fabric 1.0版本中,增加了对多链的支持。多链的出现是为了隔离数据,节点可以根据应用等需求,加入到不同的链中,从而获取不同的数据。由于智能合约独立于链部署,从而可以实现数据的隐私保护。
在多链的场景下,共识算法也将独立于链运行。超级账本通过在每个交易提案中包含交易所在的链ID来区分交易所在的链,从而确保排序节点在排序时将交易打包到同一个链的区块中。然而,我们发现,一旦出现恶意的链用户(对应一个特定的客户端),蓄意将数据敏感程度高的链(假设该链ID为ID_A)中的数据泄露给敏感程度低的链(假设该链ID为ID_B),攻击者可以进行如下操作:攻击者的交易运行在链ID_A中,并且攻击者在对背书后的交易封装(对应的数据结构为Envelope)的过程中,故意将链ID修改为敏感程度较低的链ID_B,然后将封装的交易发送给排序服务节点,由于排序节点在对交易打包过程中,只是验证Envelope结构体的签名并根据交易里的链ID对交易进行分块处理,因此,原本应该被添加到链ID_A的交易将被错误的添加到链ID_B中。而目前版本的区块链将会在节点对交易进行检查之后,以不更新世界状态的方式将整个区块全部保留并添加至区块链上,从而导致了敏感数据的泄露,打破了超级账本多链机制本来的安全目标。
发明内容
为解决上述问题,本发明提供一种用于超级账本Fabric(1.0及以上版本)多链场景下交易数据来源的检测方法。该检测方法包括以下步骤:
步骤1:客户端生成交易提案,对其进行签名得到SignedProposal,将SignedProposal发往背书节点进行背书,交易的通道信息包含在了SignedProposal.ProposalBytes.Header.ChannelHeader中;
步骤2:背书节点收到提案请求后模拟执行交易,在构造提案响应ProposalResponse时获取SignedProposal中的ChannelHeader结构并计算hash值,将该值填充到ProposalResponse.ChannelHeaderHash字段中;对构建好的提案响应ProposalResponse进行签名;
步骤3:背书节点向客户端返回构造好的提案响应ProposalResponse;
步骤4:客户端在收到交易背书以后将交易提案和提案响应ProposalResponse组合构造成Envelope结构,代表一个交易信息,其中背书响应数量不低于1个;
步骤5:客户端将Envelope结构发送至排序节点请求交易排序;
步骤6:排序节点收到Envelope结构以后进行验证:
6.1:反序列化获取各类结构与签名信息;
6.2:验证过滤反序列化获取到的Envelope结构最外层客户端签名信息,如未通过外层签名验证,结束本次处理过程;
6.3:验证过滤反序列化获取到的Envelope.Payload.Data.TransactionAction.Payload.Action.Endorsement签名数组中的第一个背书节点签名信息,如未通过背书节点签名验证,结束本次处理过程;
6.4:对反序列化获取到的Envelope.Payload.Header.ChannelHeader计算Hash值,并与Envelope.Payload.Data.TransactionAction.Payload.Action.Payload.ChannelHeaderHash值进行对比验证;若两者不一致,结束本次处理过程;
步骤7:所有验证通过,继续进行超级账本Fabric的排序操作,生成区块;
步骤8:返回排序结果。
上述步骤2中,修改Fabric源码中的ProposalResponse数据结构,在ProposalResponse.Payload中添加一个ChannelHeaderHash字段并赋予初始值0,其余结构及字段不变。
本发明的有益效果是:利用Hyperledger Fabric原有的签名验证体系和增加的链编号字段Hash值,实现由于***对交易所处通道的验证不充分导致的恶意客户端蓄意泄露敏感信息的检测,避免由于排序服务因验证缺失导致交易通道分发错误而产生的敏感数据泄露问题。从而,保障了多链场景下交易数据的安全性。
附图说明
图1是原始超级账本Fabric中从交易提交到生成区块的处理流程图;
图2是本方案超级账本Fabric中从交易提交到生成区块的处理流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是原始超级账本Fabric中从交易提交到生成区块的处理流程图;
结合图2(本方案超级账本中交易提交到生成区块的处理流程图),改进后的完整交易执行和排序包含以下步骤(各个节点均已启动完成):
步骤1:客户端生成交易提案,对其进行签名得到SignedProposal,将SignedProposal发往背书节点进行背书,交易的通道信息包含在了SignedProposal.ProposalBytes.Header.ChannelHeader中;
步骤2:背书节点收到提案请求后模拟执行交易,修改Fabric源码中的ProposalResponse数据结构,在ProposalResponse.Payload中添加一个ChannelHeaderHash字段并赋予初始值0,其余结构及字段不变;修改背书节点源码,在生成ProposalResponse结构过程中对SignedProposal.ProposalBytes.Header.ChannelHeader计算hash值,并将该值填充至ProposalResponse.ChannelHeaderHash字段中;对构建好的提案响应ProposalResponse进行签名;
步骤3:背书节点向客户端返回构造好的提案响应ProposalResponse;
步骤4:客户端在收到交易背书以后将交易提案和提案响应ProposalResponse组合构造成Envelope结构,代表一个交易信息,其中背书响应数量不低于1个;
步骤5:客户端将Envelope结构发送至排序节点请求交易排序;
步骤6:排序节点收到Envelope结构以后进行验证:
6.1:反序列化获取各类结构与签名信息;
6.2:验证过滤反序列化获取到的Envelope结构最外层客户端签名信息,如未通过外层签名验证,结束本次处理过程;
6.3:验证过滤反序列化获取到的Envelope.Payload.Data.TransactionAction.Payload.Action.Endorsement签名数组中的第一个背书节点签名信息,如未通过背书节点签名验证,结束本次处理过程;
6.4:对反序列化获取到的Envelope.Payload.Header.ChannelHeader计算Hash值,并与Envelope.Payload.Data.TransactionAction.Payload.Action.Payload.ChannelHeaderHash值进行对比验证;若两者不一致,结束本次处理过程;
步骤7:所有验证通过,继续进行超级账本Fabric的排序操作,生成区块;
步骤8:返回排序结果。
Claims (2)
1.一种用于超级账本多链场景下交易数据来源的检测方法,其特征在于,该检测方法包括以下步骤:
步骤1:客户端生成交易提案,对其进行签名得到SignedProposal,将SignedProposal发往背书节点进行背书,交易的通道信息包含在了SignedProposal.ProposalBytes.Header.ChannelHeader中;
步骤2:背书节点收到提案请求后模拟执行交易,在构造提案响应ProposalResponse时获取SignedProposal中的ChannelHeader结构并计算hash值,将该值填充到ProposalResponse.ChannelHeaderHash字段中;对构建好的提案响应ProposalResponse进行签名;
步骤3:背书节点向客户端返回构造好的提案响应ProposalResponse;
步骤4:客户端在收到交易背书以后将交易提案和提案响应ProposalResponse组合构造成Envelope结构,代表一个交易信息,其中背书响应数量不低于1个;
步骤5:客户端将Envelope结构发送至排序节点请求交易排序;
步骤6:排序节点收到Envelope结构以后进行验证:
6.1:反序列化获取各类结构与签名信息;
6.2:验证过滤反序列化获取到的Envelope结构最外层客户端签名信息,如未通过外层签名验证,结束本次处理过程;
6.3:验证过滤反序列化获取到的Envelope.Payload.Data.TransactionAction.Payload.Action.Endorsement签名数组中的第一个背书节点签名信息,如未通过背书节点签名验证,结束本次处理过程;
6.4:对反序列化获取到的Envelope.Payload.Header.ChannelHeader计算Hash值,并与Envelope.Payload.Data.TransactionAction.Payload.Action.Payload.ChannelHeaderHash值进行对比验证;若两者不一致,结束本次处理过程;
步骤7:所有验证通过,继续进行超级账本Fabric的排序操作,生成区块;
步骤8:返回排序结果。
2.根据权利要求1所述的一种用于超级账本多链场景下交易数据来源的检测方法,其特征在于,所述步骤2中,修改超级账本源码中的ProposalResponse数据结构,在ProposalResponse.Payload中添加一个ChannelHeaderHash字段并赋予初始值0,其余结构及字段不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235189.7A CN109389506B (zh) | 2018-10-23 | 2018-10-23 | 用于超级账本多链场景下交易数据来源的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811235189.7A CN109389506B (zh) | 2018-10-23 | 2018-10-23 | 用于超级账本多链场景下交易数据来源的检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109389506A true CN109389506A (zh) | 2019-02-26 |
CN109389506B CN109389506B (zh) | 2020-01-07 |
Family
ID=65427720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811235189.7A Active CN109389506B (zh) | 2018-10-23 | 2018-10-23 | 用于超级账本多链场景下交易数据来源的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109389506B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110223170A (zh) * | 2019-05-15 | 2019-09-10 | 北京瑞卓喜投科技发展有限公司 | 基于联盟链的证券型通证的发行方法及*** |
CN110365685A (zh) * | 2019-07-18 | 2019-10-22 | 恒生电子股份有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN110992030A (zh) * | 2019-12-03 | 2020-04-10 | 银清科技有限公司 | 基于超级账本fabric的交易方法及*** |
CN111177766A (zh) * | 2020-01-16 | 2020-05-19 | 四川川测研地科技有限公司 | 应用于管道完整性管理的区块链管理***及管理方法 |
CN111311410A (zh) * | 2020-02-13 | 2020-06-19 | 青岛亿联信息科技股份有限公司 | 一种基于区块链的社区问题多部门协作处理***及方法 |
CN111431960A (zh) * | 2020-02-19 | 2020-07-17 | 重庆邮电大学 | 一种基于超级账本的去中心化物联网异构标识解析方法 |
CN112036876A (zh) * | 2019-06-04 | 2020-12-04 | 国际商业机器公司 | 基于元数据的背书 |
CN112036876B (zh) * | 2019-06-04 | 2024-07-26 | 国际商业机器公司 | 基于元数据的背书 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180167217A1 (en) * | 2016-12-14 | 2018-06-14 | International Business Machines Corporation | Container-based Operating System and Method |
-
2018
- 2018-10-23 CN CN201811235189.7A patent/CN109389506B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180167217A1 (en) * | 2016-12-14 | 2018-06-14 | International Business Machines Corporation | Container-based Operating System and Method |
Non-Patent Citations (4)
Title |
---|
网络用户: "https://blog.csdn.net/idsuf698987/article/details/77044436", 《FABRIC源码解析11—PEER的ADMIN和ENDORSER服务》 * |
网络用户: "https://blog.csdn.net/idsuf698987/article/details/78639240", 《FABRIC源码解析23——ORDERER服务 - 609127400的博客 - CSDN博客》 * |
网络用户: "https://blog.csdn.net/idsuf698987/article/details/81677133", 《FABRIC源码解析26—验证体系》 * |
网络用户: "https://blog.csdn.net/xiaohuanglv/article/details/89033512", 《消息协议结构 - XIAOHUANGLV - CSDN博客》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110223170A (zh) * | 2019-05-15 | 2019-09-10 | 北京瑞卓喜投科技发展有限公司 | 基于联盟链的证券型通证的发行方法及*** |
CN112036876A (zh) * | 2019-06-04 | 2020-12-04 | 国际商业机器公司 | 基于元数据的背书 |
CN112036876B (zh) * | 2019-06-04 | 2024-07-26 | 国际商业机器公司 | 基于元数据的背书 |
CN110365685A (zh) * | 2019-07-18 | 2019-10-22 | 恒生电子股份有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN110992030A (zh) * | 2019-12-03 | 2020-04-10 | 银清科技有限公司 | 基于超级账本fabric的交易方法及*** |
CN111177766A (zh) * | 2020-01-16 | 2020-05-19 | 四川川测研地科技有限公司 | 应用于管道完整性管理的区块链管理***及管理方法 |
CN111311410A (zh) * | 2020-02-13 | 2020-06-19 | 青岛亿联信息科技股份有限公司 | 一种基于区块链的社区问题多部门协作处理***及方法 |
CN111311410B (zh) * | 2020-02-13 | 2021-03-26 | 青岛亿联信息科技股份有限公司 | 一种基于区块链的社区问题多部门协作处理***及方法 |
CN111431960A (zh) * | 2020-02-19 | 2020-07-17 | 重庆邮电大学 | 一种基于超级账本的去中心化物联网异构标识解析方法 |
CN111431960B (zh) * | 2020-02-19 | 2022-04-22 | 重庆邮电大学 | 一种基于超级账本的去中心化物联网异构标识解析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109389506B (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109389506A (zh) | 用于超级账本多链场景下交易数据来源的检测方法 | |
CN108960830B (zh) | 智能合约的部署方法、装置、设备及存储介质 | |
CN111816252A (zh) | 一种药物筛选方法、装置及电子设备 | |
CN108234127A (zh) | 一种基于区块链的物联方法及装置 | |
Amoah et al. | Formal modelling and analysis of DNP3 secure authentication | |
CN109493052B (zh) | 一种基于主链加并行多子链的跨链合约*** | |
CN103268460A (zh) | 一种云存储数据完整性验证方法 | |
CN110309587A (zh) | 决策模型构建方法、决策方法与决策模型 | |
CN110264354A (zh) | 创建区块链账户及验证区块链交易的方法及装置 | |
CN109886810B (zh) | 众包交易方法及***、可读存储介质和终端 | |
CN110958263B (zh) | 网络攻击检测方法、装置、设备及存储介质 | |
CN117610026B (zh) | 一种基于大语言模型的蜜点漏洞生成方法 | |
CN110766410A (zh) | 基于默克尔树的可信跨链事件构造与验证方法和设备 | |
CN111260470A (zh) | 一种混合区块链架构***及处理方法 | |
CN106972917A (zh) | 用户运行轨迹的安全验证方法 | |
CN113886817A (zh) | 主机入侵检测方法及装置、电子设备、存储介质 | |
Lu et al. | Ranking attack graphs with graph neural networks | |
Shakya et al. | Intrusion detection system using back propagation algorithm and compare its performance with self organizing map | |
CN115203684A (zh) | 一种基于人工免疫***的联邦学习投毒攻击防御*** | |
Yeom et al. | An immune system inspired approach of collaborative intrusion detection system using mobile agents in wireless ad hoc networks | |
CN112217830B (zh) | 一种基于区块链的边缘计算***中克隆区块的识别方法 | |
CN112134833B (zh) | 一种虚实融合的流欺骗防御方法 | |
Li et al. | Remote audit scheme of embedded device software based on TPM | |
CN111882415A (zh) | 一种质量检测模型的训练方法和相关装置 | |
CN112579987B (zh) | 遥感程序在混合云中的迁移部署方法及运行身份验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |