CN112115098A - 一种基于HyperLedger和IPFS的溯源系统 - Google Patents

一种基于HyperLedger和IPFS的溯源系统 Download PDF

Info

Publication number
CN112115098A
CN112115098A CN202010793107.1A CN202010793107A CN112115098A CN 112115098 A CN112115098 A CN 112115098A CN 202010793107 A CN202010793107 A CN 202010793107A CN 112115098 A CN112115098 A CN 112115098A
Authority
CN
China
Prior art keywords
layer
data
chain
ipfs
user
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.)
Pending
Application number
CN202010793107.1A
Other languages
English (en)
Inventor
刘迎港
宁振虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN202010793107.1A priority Critical patent/CN112115098A/zh
Publication of CN112115098A publication Critical patent/CN112115098A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于HyperLedger和IPFS的溯源系统,本发明是一种高效的、无法篡改的可信溯源系统,由展示层、链码层、事务层和数据层组成:展示层用以前端web展示界面,链码层用以Fabric联盟链和链码;事务层用以规范化数据格式;数据层用以IPFS多节点私有链;其中,事务层是整个系统的核心;事务层通过HTTP请求接受展示层传输过来的用户输入数据,经过计算处理后返回相关结果;通过Nodejs代码调用链码层的Hyperledger Fabric链码,可获得数据层上的索引值;通过HTTP请求使用索引值查询数据层的IPFS私有链数据。与现有技术相比较,本发明不但具有商品流动信息的不可篡改性及不可抵赖性,同时在区块链上存储的数据量几乎可以无视,间接解决了传统区块链系统存储过于昂贵的问题。

Description

一种基于HyperLedger和IPFS的溯源系统
技术领域
本发明主要利用超级账本HyperLedgerfabric联盟链和chaincode链码技术与IPFS星际文件系统相结合,设计了一套基于区块链的食品溯源系统。该系统既能解决中心化服务器易受攻击、数据易遭到篡改等问题,也可以节省节点的存储空间。
背景技术
区块链技术脱胎于比特币,是一种新兴的对等去中心化系统。该系统的核心思想是将网络中的交易打包成区块,用哈希值规定前后区块的顺序,形成链式结构。在这个过程中,用共识机制将各个区块链网络的节点上的区块达成统一的顺序,从而达到一种可信的、不可篡改的分布式系统。
IPFS(星际文件系统)是一种基于内容可寻址的点对点文件存储管理系统。相对于经典的web存储系统,IPFS不仅仅将文件多点存储(取决于IPFS设置的节点数量),而且将文件的哈希值作为索引,从而做到快速检索文件。
现如今的溯源系统基本依靠数据库搭建存储和溯源平台。数据库是当今世界范围内绝对主流的存储结构,但是这并不代表数据库是完美无瑕的。数据库本身存在的一系列问题可能会导致了库中信息的泄漏甚至篡改。目前数据库存储模型主要有以下几大问题:
(1)数据库应用环境和模式存在安全缺陷。当前数据库的应用环境和应用模式日趋复杂,B/S架构使数据库间接暴露在互联网上。
(2)数据库的访问控制存在缺陷。当前最为广为流传的网络攻击形式SQL注入就是大量利用这些控制缺陷,在SQL语句中非法读取数据库数据、执行外部调用甚至非法登录应用系统进行批量数据导出。
(3)数据库存在安全漏洞。数据库漏洞是外部攻击者最常利用的攻击途径,通过漏洞攻击入侵数据库系统,可能造成两个方面的严重影响。一方面是数据泄露或被窃造成的数据资产损失;另一方面是由于数据库系统在IT架构中处于核心位置,入侵者对数据库进行攻击,导致数据库功能受不良影响后,还可能以数据库为跳板从而向整个局域网发起更大范围攻击,造成系统性风险。
因此为了改变数据库存储模型的现状,建立让消费者信任的溯源机制,需要使用一种新技术来保证数据的准确性以及不可篡改性,区块链技术符合这样的要求。由于区块链技术的优点和特性,使用区块链技术搭建溯源系统会成为溯源行业的新思路、新方法。为了保证消费者的合法权益,加快相关产业的信息化进程,推动相关产业的供给侧改革,提高商业运作效率,商品的可信溯源平台十分必要。
此外,一般的基于区块链的溯源系统基本是依靠智能合约来存储和查询数据,这样随着区块链上的数据越来越多,整个网络的同步通信效率会被大大降低。因此本发明不再在区块链系统上存储所有的原生数据,而是跟IPFS相结合,将数据从区块链存储改为存储到IPFS上,区块链上仅仅存储IPFS上对应文件的哈希值。这样一来就可以大大缓解区块链因存储数据过多而造成的效率降低的问题。
发明内容
本发明的目的在于,提供一种高效的、无法篡改的可信溯源系统,由展示层、链码层、事务层和数据层组成:展示层用以前端web展示界面,链码层用以Fabric联盟链和链码;事务层用以规范化数据格式;数据层用以IPFS多节点私有链;其中,事务层是整个系统的核心;事务层通过HTTP请求接受展示层传输过来的用户输入数据,经过计算处理后返回相关结果;通过Nodejs代码调用链码层的HyperledgerFabric链码,可获得数据层上的索引值;通过HTTP请求使用索引值查询数据层的IPFS私有链数据。
展示层:
展示层是本发明与用户交互的入口。展示层允许用户输入信息,将用户输入的信息转发给事务层,由事务层计算并返回给用户展示的结果。
链码层:
链码层负责使本发明存储的数据具有不可抵赖性和不可篡改性。链码会给每一个企业分配一个23字节的数据存储空间(23字节由文件的SHA2-256哈希值经base58编码得到),使用这个空间来存储企业的数据哈希值。由于链码层是运行在以Hyperledger为基础的区块链网络上,因此具有不可抵赖性;而事务层的令牌检查可以保证在令牌不泄露的情况下无法修改链码层数据,从而达到了不可篡改性。
事务层:
事务层是本发明的核心,主要负责处理前端用户的请求。当用户调用查询功能时,事务层要同时从链码层和数据层取出数据并进行运算,得出用户查询商品的流通路径,并返回给展示层;当用户调用增加数据的功能时,事务层要先验证用户的令牌是否合法,验证通过后将用户发来的数据规范化,再与用户之前的数据进行拼接,最后更新链码层上对应企业的数据存储位置。
数据层:
数据层是本发明真正存储数据的位置。用JSON格式保存商品的流通信息有助于实现内容的快速索引;此外,通过IPFS多节点私有链实现文件冗余存储,单个节点的宕机也不会对系统产生影响。
实现本发明的主要思路是:对各个生产流程上的企业首先进行初始化,规范好每个企业的生产运输职责,在商品制作的过程中记录相关数据,并适时更新IPFS上的文件及链码上的哈希值。
根据上述主要思路,本发明方法的具体实现包括如下步骤:
步骤1:申请密钥对
联盟链各个企业首先申请密钥对。密钥对由系统下发,一经下发不得修改。事务层会将企业的公钥存储到链码层,私钥则进行销毁。
步骤2:上传企业信息
企业由步骤1所得密钥对中的私钥对基本信息进行签名。签名连同信息文件一起发送给事务层进行验证,验证通过则上传成功。事务层会将上传的企业基本信息与步骤1中企业的公钥打包存储到数据层,并将信息的哈希值存储到链码层。
步骤3:企业增加数据
企业只能对生产数据进行增加,而不能进行删减操作。当企业需要对数据进行增加时,同样需要传输原始数据以及通过步骤1获取的私钥对数据哈希值的签名。事务层通过步骤2信息中的公钥验证签名是否合法,若合法则将提交的数据与链码上IPFS哈希值对应的文件进行合并,验证是否有商品编号重复或矛盾项,验证通过则将合并的文件存储到数据层,并将该文件的哈希值存储到链码层。
步骤4:溯源步骤
在联盟链所有企业均完成步骤1-3后,系统上已经存有完整的数据后,用户即可进行溯源查询操作。当用户进行溯源操作时,将商品上的通用唯一识别码和公司名称输入到查询界面,即可获得全部数据。
与现有技术相比较,本发明不但具有商品流动信息的不可篡改性及不可抵赖性,同时在区块链上存储的数据量几乎可以无视(远远低于同功能的智能合约系统上的存储量),间接解决了传统区块链系统存储过于昂贵的问题。
附图说明
图1为本发明一种基于HyperLedger和IPFS的溯源系统的系统流程图;
图2为本发明一种基于HyperLedger和IPFS的溯源系统的溯源方法流程图;
图3为本发明一种基于HyperLedger和IPFS的溯源系统系统架构图;
具体实施方式
下面结合附图对本发明的技术方案做进一步的描述。
附图1是本发明系统流程图。首先企业要向事务层申请密钥对,申请成功后企业整理出基本信息,规范化后对信息文件的哈希值进行签名,再将原始数据与签名通过展示层上传到事务层。事务层使用同样的算法对接收到的数据进行规范化,计算出规范化后文件的哈希值,将之与用户签名解密出来的哈希值进行比对,若相同则验证成功,将该哈希值存储到链码上并返回相关信息;若不相同则说明签名不合法,企业需要重新上传。基本信息录入完毕即可增加生产数据。事务层处理企业发送的新增数据和对规范化后的新增数据签名,若签名合法则去数据层取出旧数据,将新旧数据融合成一个文件,并把合并后的文件存储到数据层,该文件的哈希值存储到链码层。
附图2是溯源算法流程图。首先由用户将待查的商品编号和生产公司上传到事务层,事务层通过与链码层和数据层交互,递归调取数据,通过计算得出待查商品的生产运输流程,并返回给展示层。
附图3是本发明的系统架构图。本发明系统架构分为展示层、链码层、事务层以及数据层。其中展示层负责展示与用户交互的前端页面,链码层负责存储数据的哈希值,事务层负责联系其他各层并提供计算服务,数据层负责存储数据。
步骤1:申请密钥对
联盟链各个企业首先申请密钥对。密钥对由系统下发,一经下发不得修改。事务层会将企业的公钥存储到链码层,私钥则进行销毁。
步骤2:上传企业信息
企业首先整理出企业名称、地理位置等相关信息,并使用步骤1所得密钥对中的私钥对规范化后的基本信息进行签名。规范化的结果是将原生数据转化为合法的、清晰的JSON格式。签名连同信息文件一起发送给事务层进行验证,事务层先检查基本信息是否合法,合法的信息规范化后计算哈希值,将该哈希值与公钥解密出的签名进行比对,若一致则验证通过。事务层会将上传的企业基本信息与步骤1中企业的公钥打包存储到数据层,并将信息的哈希值存储到链码层。
步骤3:企业增加数据
企业只能对生产数据进行增加,而不能进行删减操作。当企业需要对数据进行增加时,同样需要传输原始数据以及通过步骤1获取的私钥对数据哈希值的签名。事务层通过步骤2信息中的公钥验证签名是否合法,若合法则将提交的数据与链码上IPFS哈希值对应的文件进行合并,验证是否有商品编号重复或矛盾项,验证通过则将合并的文件存储到数据层,并将该文件的哈希值存储到链码层。
步骤4:溯源步骤
在联盟链所有企业均完成步骤1-3后,系统上已经存有完整的数据后,用户即可进行溯源查询操作。当用户进行溯源操作时,将商品上的通用唯一识别码和公司名称输入到查询界面,即可获得全部数据。具体按照以下步骤实施:
步骤4.1用户输入数据
用户将购买的产品的生产公司和对应的商品标识编号输入到展示层,展示层会将请求转发给事务层。
步骤4.2事务层处理
事务层按步骤4.1提交的生产公司去链码上找到对应公司生产信息文件的IPFS地址,与数据层交互获得该公司生产行为的JSON数据。根据步骤4.1提交的商品唯一编号可找到对应商品是由哪些商品进行加工产生的,再对这些商品进行递归查询,最后即可梳理出一整条商品的生产运输流程。
步骤4.3返回给展示层
事务层把处理好的信息生产流程返回给展示层,展示层生成用户友好的可视化商品流转路径,并展示给用户。

Claims (6)

1.一种基于HyperLedger和IPFS的溯源系统,其特征在于:由展示层、链码层、事务层和数据层组成:展示层用以前端web展示界面,链码层用以Fabric联盟链和链码;事务层用以规范化数据格式;数据层用以IPFS多节点私有链;事务层是整个系统的核心;事务层通过HTTP请求接受展示层传输过来的用户输入数据,经过计算处理后返回相关结果;通过Nodejs代码调用链码层的Hyperledger Fabric链码,获得数据层上的索引值;通过HTTP请求使用索引值查询数据层的IPFS私有链数据。
2.根据权利要求1所述的一种基于HyperLedger和IPFS的溯源系统,其特征在于:展示层是与用户交互的入口;展示层允许用户输入信息,将用户输入的信息转发给事务层,由事务层计算并返回给用户展示的结果。
3.根据权利要求1所述的一种基于HyperLedger和IPFS的溯源系统,其特征在于:链码层负责使存储的数据具有不可抵赖性和不可篡改性;链码会给每一个企业分配一个23字节的数据存储空间,使用这个空间来存储企业的数据哈希值;由于链码层是运行在以Hyperledger为基础的区块链网络上;事务层的令牌检查保证在令牌不泄露的情况下无法修改链码层数据。
4.根据权利要求1所述的一种基于HyperLedger和IPFS的溯源系统,其特征在于:事务层负责处理前端用户的请求;当用户调用查询功能时,事务层要同时从链码层和数据层取出数据并进行运算,得出用户查询商品的流通路径,并返回给展示层;当用户调用增加数据的功能时,事务层要先验证用户的令牌是否合法,验证通过后将用户发来的数据规范化,再与用户之前的数据进行拼接,最后更新链码层上对应企业的数据存储位置。
5.根据权利要求1所述的一种基于HyperLedger和IPFS的溯源系统,其特征在于:数据层是存储数据的位置;用JSON格式保存商品的流通信息有助于实现内容的快速索引;通过IPFS多节点私有链实现文件冗余存储,单个节点的宕机也不会对系统产生影响。
6.根据权利要求1所述的一种基于HyperLedger和IPFS的溯源系统,其特征在于:对各个生产流程上的企业首先进行初始化,规范好每个企业的生产运输职责,在商品制作的过程中记录相关数据,并适时更新IPFS上的文件及链码上的哈希值;
包括如下步骤:
步骤1:申请密钥对
联盟链各个企业首先申请密钥对;密钥对由系统下发,一经下发不得修改;事务层会将企业的公钥存储到链码层,私钥则进行销毁;
步骤2:上传企业信息
企业由步骤1所得密钥对中的私钥对基本信息进行签名;签名连同信息文件一起发送给事务层进行验证,验证通过则上传成功;事务层会将上传的企业基本信息与步骤1中企业的公钥打包存储到数据层,并将信息的哈希值存储到链码层;
步骤3:企业增加数据
企业只能对生产数据进行增加,而不能进行删减操作;当企业需要对数据进行增加时,同样需要传输原始数据以及通过步骤1获取的私钥对数据哈希值的签名;事务层通过步骤2信息中的公钥验证签名是否合法,若合法则将提交的数据与链码上IPFS哈希值对应的文件进行合并,验证是否有商品编号重复或矛盾项,验证通过则将合并的文件存储到数据层,并将该文件的哈希值存储到链码层;
步骤4:溯源步骤
在联盟链所有企业均完成步骤1-3后,系统上已经存有完整的数据后,用户即可进行溯源查询操作;当用户进行溯源操作时,将商品上的通用唯一识别码和公司名称输入到查询界面,即可获得全部数据。
CN202010793107.1A 2020-08-07 2020-08-07 一种基于HyperLedger和IPFS的溯源系统 Pending CN112115098A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010793107.1A CN112115098A (zh) 2020-08-07 2020-08-07 一种基于HyperLedger和IPFS的溯源系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010793107.1A CN112115098A (zh) 2020-08-07 2020-08-07 一种基于HyperLedger和IPFS的溯源系统

Publications (1)

Publication Number Publication Date
CN112115098A true CN112115098A (zh) 2020-12-22

Family

ID=73803740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010793107.1A Pending CN112115098A (zh) 2020-08-07 2020-08-07 一种基于HyperLedger和IPFS的溯源系统

Country Status (1)

Country Link
CN (1) CN112115098A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112733204A (zh) * 2021-01-16 2021-04-30 阳江市链点创新科技发展有限公司 一种基于区块链和多重签名技术的防伪溯源方法
CN113051609A (zh) * 2021-03-12 2021-06-29 广西综合交通大数据研究院 基于区块链的食材溯源系统、方法、设备及存储介质
CN115022347A (zh) * 2022-05-30 2022-09-06 长春大学 一种基于Fabric和IPFS的消防监控数据存储系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109064063A (zh) * 2018-09-11 2018-12-21 北京工商大学 一种基于区块链的食品安全风险溯源分析系统及方法
CN109871669A (zh) * 2019-03-14 2019-06-11 哈尔滨工程大学 一种基于区块链技术的数据共享解决方法
CN110879902A (zh) * 2019-11-25 2020-03-13 北京工商大学 一种基于可信标识和ipfs的粮油食品全供应链信息安全管理系统及方法
CN111476548A (zh) * 2020-04-16 2020-07-31 山东师范大学 一种基于区块链的职称评审方法及系统
CN113051609A (zh) * 2021-03-12 2021-06-29 广西综合交通大数据研究院 基于区块链的食材溯源系统、方法、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109064063A (zh) * 2018-09-11 2018-12-21 北京工商大学 一种基于区块链的食品安全风险溯源分析系统及方法
CN109871669A (zh) * 2019-03-14 2019-06-11 哈尔滨工程大学 一种基于区块链技术的数据共享解决方法
CN110879902A (zh) * 2019-11-25 2020-03-13 北京工商大学 一种基于可信标识和ipfs的粮油食品全供应链信息安全管理系统及方法
CN111476548A (zh) * 2020-04-16 2020-07-31 山东师范大学 一种基于区块链的职称评审方法及系统
CN113051609A (zh) * 2021-03-12 2021-06-29 广西综合交通大数据研究院 基于区块链的食材溯源系统、方法、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112733204A (zh) * 2021-01-16 2021-04-30 阳江市链点创新科技发展有限公司 一种基于区块链和多重签名技术的防伪溯源方法
CN113051609A (zh) * 2021-03-12 2021-06-29 广西综合交通大数据研究院 基于区块链的食材溯源系统、方法、设备及存储介质
CN115022347A (zh) * 2022-05-30 2022-09-06 长春大学 一种基于Fabric和IPFS的消防监控数据存储系统
CN115022347B (zh) * 2022-05-30 2023-11-17 长春大学 一种基于Fabric和IPFS的消防监控数据存储系统

Similar Documents

Publication Publication Date Title
US11461485B2 (en) Immutable bootloader and firmware validator
US11947698B2 (en) Fragmenting data for the purposes of persistent storage across multiple immutable data structures
US20210209077A1 (en) Communicating fine-grained application database access to a third-party agent
US11265171B2 (en) Using a tree structure to segment and distribute records across one or more decentralized, acyclic graphs of cryptographic hash pointers
US10366247B2 (en) Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US20220158844A1 (en) Decentralized database optimizations
US11934550B2 (en) Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US10075298B2 (en) Generation of hash values within a blockchain
US10121019B2 (en) Storing differentials of files in a distributed blockchain
US10042782B2 (en) Immutable datastore for low-latency reading and writing of large data sets
EP3485421B1 (en) Fragmenting data for the purposes of persistent storage across multiple immutable data structures
US10089489B2 (en) Transparent client application to arbitrate data storage between mutable and immutable data repositories
CA3072719C (en) Immutable datastore for low-latency reading and writing of large data sets
CN112115098A (zh) 一种基于HyperLedger和IPFS的溯源系统
CN107391557B (zh) 针对设置链外勘误表的区块链串行查询方法及系统
CN113934729A (zh) 一种基于知识图谱的数据管理方法、相关设备及介质
CN113590707A (zh) 一种二维区块链
CN115905150A (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