logo资料库

基于区块链技术的商品溯源系统的设计与实现 .pdf

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
中国科技论文在线 http://www.paper.edu.cn 基于区块链技术的商品溯源系统的设计与 实现 张皓明,漆涛** (北京邮电大学软件学院,北京 100876) 摘要:随着经济的发展和生活水平的进步,消费者对商品质量的要求日益提高,商品溯源作 为商品质量的保障之一,得到了广泛的关注和应用。本文在传统商品溯源系统的基础上,对 商品流转过程进行合理划分,通过区块链技术保障溯源数据的完整性和真实性,设计了并实 现一种基于区块链技术的商品溯源系统。与传统的商品溯源系统相比,系统使用区块链组件 代替集中式数据库进行商品流转数据的存储,能够保障商品数据难以被篡改,为用户提供更 为可信的商品溯源服务。 关键词:软件工程;溯源系统;区块链; 中图分类号:TP311 Design and Implementation of Traceability System for Commodity based on Blockchain Zhang Haoming, Qi Tao (School of Software Engineering, Beijing University of Posts and Telecommunications,Beijing) Abstract: With the development of the economy and the improvement of living standards, consumers' requirements for the quality of commodity are increasing. As one of the guarantees of product quality, the traceability of commodity has received widespread attention and application. Based on the traditional traceability system of commodity , this paper uses blockchain technology to ensure the integrity and authenticity of the commodity data, designs and implements a traceability system of commodity based on blockchain technology. Compared with the traditional traceability system of commodity, the system uses a blockchain component instead of a centralized database to store commodity circulation data, which can ensure that commodity data is difficult to be tampered with, and provide users with more reliable commodity traceability services. Key words: Software Engineering; Traceability System; Blockchain 5 10 15 20 25 30 0 引言 溯源指的是对农产品、工业品等商品的生产、加工、运输、流通、销售等环节的追 踪。溯源需要通过产业链上下游的各方广泛参与来实现[1]。商品溯源能够为商品质量提供 保障,在企业采购和个人消费中都有者重要的意义,也是供应链管理中的重要一环。食 35 品、药品等安全问题频发的情况更使得商品溯源备受关注。商品溯源中的一大问题在于保 障溯源数据的完整性和真实性。目前溯源行业的发展并不完善,仍存在信任缺失与滥用的 问题。信息孤岛模式下,溯源链条上下游的参与者各自维护账本,账本拥有者可能出于利 益相关而随意地对账本进行篡改甚至事后编造,造假成本极低[2]。传统的商品溯源系统中 使用集中式数据库存储数据,商品溯源数据被控制在单一企业手中,难以保障存储的产品 40 信息不受篡改。 作者简介:张皓明(1996-),女,硕士研究生,主要研究方向:移动互联网 通信联系人:漆涛(1962-),男,教授,主要研究方向:数据压缩与加密. E-mail: qitao@bupt.edu.cn - 1 -
中国科技论文在线 http://www.paper.edu.cn 区块链是一种类似于非关系型数据库的数据技术解决方案。其具有不可篡改、去信任 化、分布式存储和强抗损性等特性[3]。区块链的难以篡改、分布式存储的特性为溯源行业 的信任缺失提供了解决方案。构建供应链上下游多方共同维护的分布式账本,使用区块链 技术存储溯源信息,能够大幅提高账本造假的难度和成本,解决溯源过程中的信任问题 45 [4]。因此,基于区块链技术的商品溯源系统应运而生。 基于区块链技术的商品溯源系统在底层使用区块链技术存储商品流转数据,与传统的 溯源系统相比,能够保障商品数据难以被篡改和事后编造,为用户提供更为可信的商品溯 源服务。因此,设计并实现一个基于区块链技术的商品溯源系统是具备一定实际意义的。 1 相关技术介绍 50 1.1 区块链技术 区块链是指通过数据加密、数据链式勾稽、多副本存储、和分布式共识等机制,实现 的去中心化分布式数据管理技术[5]。区块链技术最早由中本聪在比特币(Bitcoin)项目中 提出并加以实现和应用[6]。区块链具有去中心化、防篡改、可追溯等特性,在加密货币、 分布式账本、单据管理、供应链管理等领域得到了广泛的探索,具备一定的前景。 55 1.2 哈希算法 哈希(也称为散列)算法是密码学在区块链中的应用之一[7]。哈希算法将任意长度的 输入值变换为固定长度的输出(散列值),散列值与输入值相关,输入值的微小区别将导 致散列值相差很大。哈希算法难以逆向,在给定的时间内难以根据散列值逆推出输入值。 在区块链技术中,哈希算法被用于数据的加密和校验。每条信息的散列值被看作信息 60 的唯一标识,散列值间的相互引用则构成了区块链的链式结构。它们共同保障区块链中的 数据难以被篡改。 1.3 数字签名技术 数字签名旨在证明消息或文档的真实性[8]。常见的数字签名使用非对称加密技术,其 密钥由公开部分(公钥)和私有部分(私钥)成对组成。数字签名过程即通过私钥对数据 65 进行加密,签名认证过程即使用公钥对加密的数据进行解密。通过私钥加密和公钥解密两 个环节,即可保障传输的消息的真实性和完整性。常用的非对称加密算法有 RSA、 ECDSA、Schnorr、DSS 等,在比特币系统中,公钥由私钥通过椭圆曲线加密算法生成[7]。 1.4 QRcode 二维码是按一定规律在平面上分布黑白像素的特定图形。二维码通过像素点的排列组 70 合表示意义,具有密度大、能承载大量信息的特点。常见的二维码有行排列式二维码 CODE49、PDF417,矩阵式二维码 Data Matrix、QRcode 等[9]。 QRCode 是由 Denso 公司于 1994 年 9 月研制的一种矩阵二维码符号。越来越多企业在 运营中推出基于 QRCode 应用的新产品和服务,并且已经取得非常好的效果[9]。随着我国 - 2 -
中国科技论文在线 http://www.paper.edu.cn 经记和物流信息技术的快速发展,在商品溯源系统中使用 QRcode 作为商品标识、记录商 75 品溯源信息,成为了一种行之有效的方法,有着广阔的前景。 2 系统需求分析 系统主要考虑的功能性需求包括以下三个部分:用户管理、网络管理、商品信息管理。 用户管理:用户需要注册和登陆才能正常对商品信息进行录入和查询。不同类型的用户拥有 的账户权限也各不相同。系统中需要建立完整的用户体系。 80 网络管理:系统中的商品流转数据需要在多个节点中进行备份存储,各节点之间需要进行通 信。系统需要为用户提供网络管理功能来帮助用户管理各节点信息,维持系统正常运行。 商品信息管理:用户需要对商品流转数据进行查询和录入。因此系统需要为用户提供相应的 商品信息录入功能、商品信息查询功能以及相关的辅助功能,帮助用户方便地对商品流转数 据进行录入和查询。 85 此外系统还需要考虑到安全性、稳定性等非功能性需求,保证系统数据安全、性能良好、能 够在承载一定用户的情况下稳定运行。 3 系统设计与实现 3.1 系统结构设计 本文所述的商品溯源系统使用 B/S 架构,由前端子系统(客户端)和服务器端子系统 90 组成,用户通过浏览器与服务器端进行数据的交互,服务器负责进行数据的存储和同步, 本文侧重于叙述服务器端的设计和实现。如图 1 所示,前端通过访问 RESTful 接口,借助 HTTP 协议向服务器端请求服务。服务器端由多个服务器节点组成,每个服务器节点包括 Web 服务器和本地数据库,Web 服务器负责为客户端提供服务,本地数据库负责进行数据 的存储。每个服务器节点通过 TCP 协议与其他的服务器节点进行数据交互。 95 商品供应链上的每个参与者被抽象为系统中的一个节点服务器,商品流转信息都保存 在每个参与该商品流转的节点的数据库中。随着商品的流转,溯源信息也被同步在该商品 供应链的各参与者之间。 - 3 -
中国科技论文在线 http://www.paper.edu.cn 100 3.2 系统架构设计 图 1 系统拓扑图 Fig. 1 The topology of system 系统的架构如图 2 所示。系统在技术架构上使用了分层的方法进行划分,主要分为应 用层、控制层、业务逻辑层、数据控制层和数据存储层。 105 应用层即前端子系统,负责与用户的直接交互和信息的呈现。控制层主要负责业务控 制和功能控制,对前端的服务请求进行相应的分发处理。业务逻辑层则包括用户管理、商 品管理、信息管理和通信管理等具体的业务和系统功能模块。数据控制层负责对业务数据 (商品流转信息)和逻辑数据(用户信息、节点信息等系统管理信息)进行相应的处理。 数据存储层负责底层数据的存储。系统架构如图 2 所示。 - 4 -
中国科技论文在线 http://www.paper.edu.cn 110 图 2 系统架构图 Fig. 2 The architecture of system 3.3 系统功能模块划分 115 根据需求分析的结果,系统被划分为四个功能模块,分别是用户管理模块、网络管理模块、 商品信息模块和商品属性模块,各模块的具体划分如图 3 所示。 图 3 系统功能模块图 Fig. 3 Function and module structure of system 120 - 5 -
中国科技论文在线 http://www.paper.edu.cn 3.4 用户管理模块 用户管理主要包括用户的注册、登录,用户对个人账号信息的修改、查询,以及管理 员对用户账号信息的新增、修改、查询、删除。 在本文所述的商品溯源系统中,用户被分为三种角色:系统管理员、商品管理员和普 125 通用户。不同的用户角色对系统有着不同的权限,系统为之提供的功能也各不相同。服务 器将针对用户提出的访问请求进行身份验证和权限管理。权限不同的用户登入系统后,系 统会根据其权限,为其呈现具备不同功能的页面。 3.5 网络管理模块 网络管理模块的主要功能是通过对系统节点信息管理,为系统节点间的通信提供支 130 撑。该模块的功能只有在系统管理员权限下才能使用,主要包括对系统节点信息的新增、 删除、修改和查询。节点信息包括节点的 IP 地址、公钥、备注信息和名称等。节点信息被 存储在本地数据库的节点信息表中,以备通信时使用和用户查询。其中节点的公钥信息和 节点的名称作为节点的标识,一旦确定就不能进行修改,每个节点的名称和公钥都是独一 无二的。 135 3.6 商品信息模块 商品信息管理模块包括对商品流转信息的录入和查询子模块,以及为其提供支持的编 码工具子模块。 商品信息录入功能需要商品管理员或者系统管理员权限才能使用。根据商品的流转状 态不同,商品信息的录入功能包括生产信息录入、发货信息录入、收货信息录入和记录信 140 息录入四类子功能,不同的子功能对应的处理流程略有不同 3.6.1 商品生产信息录入 商品“从无到有”,即被生产时需要向系统中录入相应的生产信息记录。此时系统需 要为商品生产唯一的标识码(ID)和包含该 ID 的二维码,并对该商品信息进行初始化。 二维码与商品信息绑定,从而使实物与系统中的数据信息建立联系。其具体流程如图 4 所 145 示。 - 6 -
中国科技论文在线 http://www.paper.edu.cn 图 4 商品生产信息录入时序图 Fig. 4 Sequence diagram of recording commodity production information 其中初始化的商品信息包括商品的生产者、商品当前的所有者和商品 ID。而具体录入 150 的信息则由选择的商品类型决定,其中商品类型需要管理员事先定义。 收到商品生产信息录入请求时,服务器会先对请求服务的用户进行权限校验,确定用 户具备录入权限后才为其提供服务,否则请求将被拒绝。 3.6.2 商品发货信息录入 发货信息的录入对应的实际场景是商品从供应链上游的成员处转交到下游的成员处。 155 此时发送商品的供应链成员需要向系统中录入发货信息。发货信息首先由用户输入到发货 节点,继而发货节点将发货信息向该商品供应链上游的节点进行同步,上游节点校验无误 后将信息存储到本地数据库并返回校验通过信息。发货节点收到成功确认后则向用户返回 一个商品二维码。具体的流程如图 5 所示: - 7 -
中国科技论文在线 http://www.paper.edu.cn 160 图 5 发货信息录入时序图 Fig. 5 Sequence diagram of recording shipping information 用户最终收到的二维码中包含商品的 ID 和一个验证码,验证码是一次性的,用于收货 节点与发货节点建立连接和同步数据。验证码一旦被使用即作废。 165 发货信息的录入需要的先决条件是当前节点必须是该商品的目前持有者,如果该节点 未持有此商品,那么录入信息请求将被系统拒绝。商品的发货信息被录入后,商品的当前 持有者状态将被置为“发送中”。 3.6.3 商品收货信息录入 收货信息录入对应的实际场景是当前节点对应的供应链成员收到来自供应链上游成员 170 发送的商品。此时当前节点需要向系统中录入收货信息,需要提交的具体信息包括商品的 验证码和商品流转信息。系统将对验证码进行验证,通过验证后收货信息将被写入当前节 点数据库并同步到上游节点中,同时该商品的当前持有者信息也被更新,且收货节点将得 到该商品的历史流转信息记录。否则系统将拒绝当前节点的收货信息录入请求。具体流程 如图 6 所示: - 8 -
分享到:
收藏