基于区块链的食品安全溯源系统


这是之前一个区块链比赛的作品,现在在博客上做一个复盘工作。

1. 项目背景:

随着消费需求的不断变化,消费者对于食品安全的关注度越来越高,人们希望能够参与到食品供应链管理中,让供应链中的每个环节都可以呈现在消费者眼前。传统的养殖过程中无法做到严格意义上的公开透明,比如各种激素和药物滥用,以及一些劣质饲料以次充好。传统供应链条件下这些数据的保存基本依靠纸张记录,具有一定的随意性,消费者无法识别这些数据的真伪。此外,传统的供应链管理是中心化的管理模式,多数环节之间信息流通不畅,从而影响了整个供应链管理的效率。因此,对于供应链管理来说,正面临着效率和安全透明的双重挑战,迫切需要进行有效变革,促进食品供应链管理更加的高效透明和安全。从技术层面来看,区块链技术具有去中心化、公开透明、不可篡改等优点,可以解决现行食品供应链管理的种种短板,把区块链技术与现行食品供应链管理相结合,不但可以有效提升整个供应链的透明度,更能提升供应链的管理效率。
在传统的动植物养殖过程中,养殖环境,以及动植物自身生活状况很少得到足够的重视。以养猪为例,传统的养殖者认为定期地清理猪舍,定时地投放饲料就已经足够。但畜禽的养殖环境涵盖很多方面,不仅仅是卫生情况,还包括采光透风、温度湿度等,可是这个环节没有任何监督。再回到畜禽生活状况环节,传统的养殖者关心的健康仅仅是畜禽有没有生病而很少达到当前消费者对生鲜肉品品质的更高层次要求。现在的消费者要求的生鲜肉品不再仅仅是生鲜肉品的肥瘦比例、脂肪含量等,更包括产品的生产物流过程。传统的供应链管理在这些方面做得不够,消费者也无法获得这一块的相关信息。引入区块链技术并配合以传感器,动植物养殖、加工、物流等过程的方方面面都将被记录。如在养殖环境方面传感器被安装在猪舍中,猪舍的环境时时刻刻都在传感器的监视中,传感器将会自动收集猪舍的温度、湿度、光照时间和通风情况,养殖的全过程都将产生详细的数据以及图片资料,这些数据以及图片都将被详细记入区块链的区块中。
此外,近年来,由单个食品原料不合格而引起的食品召回事件越来越多,这也进一步说明了持续改善溯源体系的必要性。由于溯源体系效率低下、各不相同,而且不使用统一标准,也无法相互连通,这类召回工作往往持续一个月甚至更久的时间。因此,建立基于区块链的“从农场到餐桌”的数字化行业标准应当能够强化、加快和优化整个食品供应链上的食品溯源。

2.研究目标

目前,关于食品体系的各个组成部分(如农场、加工厂、配送商、零售商等)在进行食品溯源时,很多环节的数据记录依然停留在书面,尽管有一些人采用数字化的办法予以解决,但是他们使用的系统仍旧没有与食品体系中的其他成员对接,食品体系的溯源能力也局限在“向前一步,向后一步”的状态。发生问题时,企业要对几百份甚至几千份文件进行收集和筛选后才能将溯源数据拼凑在一起,这是一个缓慢且复杂的工程,这种低效率和复杂性是急需技术解决方案来强化食品溯源与透明度的原因之一。
为了解决以上问题,使用新的高效率、高透明性和真实性的新型供应链来打破传统的食品供应链的研究迫在眉睫。区块链能够开创食品溯源的新时代,除了为改善食品安全状况打下基础,还能够帮助企业提高食品追溯体系的运转效率,从而减少浪费,降低成本,促进可持续发展。传统的供应链系统采用集中式的数据存储,当中心数据丢失时,就难以恢复,从而造成食品的来源和安全监测等数据丢失。而区块链技术利用其去中心化特点,在区块链网络中,多个节点掌握同样的数据,从而降低了网络中单一节点故障的风险。通过使用加密技术,写入区块链的数据在不被监测的情况下将无法被更改,提高了数据本身的可信度,使得食品造假问题得到解决。不仅如此,将区块链与供应链相结合的一个最为重要的特点是使得商品信息在区块链上可追溯,使其数据具有历史可追溯性,这样的新型供应链,在预防疾病和快速寻找病源方面具有极高的效率。同时,所有参与方的数据均上网可查,增加供应链各方的交互,提高办事效率。用户在购买商品时,可通过扫描生成的二维码获取食品从源头到培育到运输以及最后摆上货架的所有相关信息。这种透明供应链系统一方面可以保障用户的自身利益,同时也可以提高商店的利润率,实现双赢。
本项目旨在打造一个完整的基于区块链的食品供应链管理系统,包括前端和后端两个部分。前端设置供应链参与者,后端设置管理员,对前端参与者进行响应。在前端使用区块链浏览器和其他的前端框架,通过Fabric-SDK接口调用区块链数据,将其向用户呈现。

3.项目的主要创新点和与已有项目的区别

1. 相比于传统的食品供应链系统,我们的优势体现在以下几点:

(1) 开放分布式账本。利用区块链去中心化的特征,数据库的分布也是分布式的,每个信息的副本都会保存在区块链中所有参与者的本地数据库。不借助任何第三方机构,参与者共同验证数据的真实性。参与者之间的连接是随机接入的,并且在传播信息的过程中不保留任何个人信息和身份。最后借助网络实时的同步数据,产生分布式账本。
(2) 按照一定规则共享数据。参与区块链的用户彼此之间有规则约束,他们按照规则来共享数据,存储数据。比如对网络中什么类型的数据进行验证,在接入网络后,同步其它用户的什么类型的数据。
(3) 没有任何中间商。整个供应链参与的所有用户也全都是维护区块链开放分布式账本的用户,他们都只能在账本中记录信息。比如将某食品供应链的参与方简化为三部分:生产者,质检者和消费者。记录某个食品从生产到消费者手中在这三个环节需要记录信息,三个参与方记录的信息只要有差别,就认定此信息为虚假信息。
(4) 基于某种共识的信任。区块链中参与者都是独立地对信息进行验证,信息最终被确认真实是基于区块链技术的共识算法,并不依赖某部分群体的意志。
(5) 数据加密和不可篡改。区块链参与方在网络中发布的消息,必须经过加密算法(比如SHA-256)加密,以防非法用户对网络监听。此外,所有被区块链系统验证过的消息因为hash散列函数的单向性无法篡改,并且每个参与方的本地数据库都有备份,无法全部篡改。
(6) 时间戳技术。区块链账本中每个交易的所有状态都会刻上时间序列,因此最后构成的链状结构是按照时间顺序分布的。

2.相比较与已有的系统,该系统的优势体现在以下几个方面:

平台自身特征比较:多链多通道可以部署在不同的供应链上,例如多个超市等
系统之间的吞吐量比较

(1) 共识算法的优越。已有平台多采用广泛用于公有链中POW(工作量证明)的共识算法,该算法对参与用户所持有算力资源要求高,对那些资源受限的用户不友好。另外采用POW共识的平台系统吞吐量都不高,比如以太坊,每秒只有十几个交易能被认证。而我们平台采用PBFT共识算法,吞吐量得到显著提高。
(2) 可控性的优越。由于POW共识往往用于公链,公链对用户的准入门槛很低,容易让恶意或僵尸用户进入网络,从而造成系统不可控和性能的下降。而PBFT主要用于联盟链,联盟链对用户的准入有一定的身份验证,提高了用户的准入门槛,从而在一定程度上增强了可控性。

4. 项目主要流程

在本项目中,通过对食品的生命周期进行描述,以此来阐述项目的主要流程,本项目中提到的食品包括动物和植物等可食用食品,例如猪、牛、羊、鸡鸭、蔬菜、水果等,文中为了方便说明,以下皆以动物畜禽为例。同时在每个流程中谈及其具体的实施步骤和项目设计主要参数。一个相对完整的食品供应链系统如下图1所示。
在这里插入图片描述
本项目基于IBM主持的开源hyperledger fabric平台进行开发,由于其多链多通道特性,因此可以设计为供应链网络中的每一条供应链配置一个单独的通道,通道内的参与者共享数据,而通道外的组织不能跨通道访问,达到保护数据的特性。并且同一个组织可以参与多个通道,例如,幼苗基地可以参与多条通道,向不同的供应链提供幼苗。如下图2所示。
在这里插入图片描述

1. 幼苗基地注册

繁殖的幼苗在培育前要进行独立体检,这些数据主要包括种类、重量以及健康状况,然后为每个个体分配独立ID。在这个环节中的每一条信息都将由负责培育的工作人员用其私钥在区块链中进行录入,并且将由其私钥产生的数字签名附加在数据信息的末端后上传至区块链存储。然后这些数据将被制作成数字芯片放入耳标脚环中并终身钉扣在畜禽身体上。

2. 养殖/培育基地

畜禽入栏时,交接的饲养员通过自己的手持标签阅读器扫描耳标完成交接,进入养殖场后它的日常生活状况由传感器记录上传。这些数据主要包括畜禽每天的进食量、进食时间、食用饲料的型号批次、运动量以及睡眠时间等。通过温度检测器一旦检测到畜禽感染疾病,所使用药物名称、计量、治疗周期也将作为重要数据被记录。这些数据的写入是饲养员的工作,当他写入数据时需要使用自己的私钥,并将由其私钥产生的数字签名附在末端。在培育过程中还需要借助传感器记录一些其他数据,包括猪舍的温度、湿度、卫生情况、光照时间。区块链技术在食品供应链管理畜禽培育这个环节的应用,可以及时、准确地进行数据记录,并且这些数据一旦生成无法篡改。这很好地填补了传统食品生产管理责任不明,透明度低的弊端。

3 畜禽屠宰加工环节

当生长周期结束,畜禽出栏,养殖环节结束。畜禽被运送至屠宰场进行屠宰前的准备。这时需要对畜禽进行细致彻底的检验检疫,所采集的数据包括生鲜肉品中的兽药残余情况,以及畜禽的健康状况。同时,畜禽的体重以及肉品中的脂肪含量也将作为一个主要数据进行记录。工作人员使用标签阅读器扫描耳标脚环,然后系统写入检验检疫采集的数据,这些数据由负责检验检疫的工作人员的密钥进行数字签名附在区块链中。区块链在这个环节的运用很好地弥补了传统的检验检疫只在合格的生鲜肉品上面加盖合格印章的短板,使这些详细的数据能够跟着区块链一层一层传递。

4 食品仓储运输环节

入库时,工作人员使用标签阅读器扫描耳标脚环,系统对生鲜肉品品质进行分析,生鲜肉品供应链进入仓储环节并与仓库中的传感器绑定。仓库中安装的传感器记录仓库中的温度、湿度以及细菌含量情况,实时监控仓储环境。这些数据将被自动写入区块链中,并使用仓储环节的私钥进行数字签名。运输环节包括冷链物流、集成化物流和第三方,具体的运输方式因为运送的产品不同而有所差异。生鲜肉品这一类产品则采用冷链物流进行运输,这样可以最大程度地保鲜,保证生鲜肉品品质。在进入冷链物流车箱时自动与车厢内安装的传感器绑定,记录传感器所采集的数据。这些数据主要就是车厢内的温度、温度变化情况以及湿度、细菌含量等。这些数据将被写入区块链,由车厢传感器的私钥进行数字签名并附在末端。

5 生鲜肉品销售环节

在销售环节,生鲜肉品进入销售部门,这时一个关键步骤就是为每个畜禽ID制作二维码。每一头畜禽都拥有一个自己的二维码,记录着它从出生到养殖、屠宰、运输的每个环节的所有详细数据。消费者在购买生鲜肉品时可以通过专属的手机软件扫描这个二维码,查询所有相关信息,全面了解该生鲜肉品的具体品质。

5 项目设计

本项目的区块链网络基于hyperledger fabric开发,具体的说明可参考hyperledger官方文档。Fabric是一个联盟链,参与者需要注册并获得同意后才能获得证书发布交易,并且其独有的可插拔共识机制,为适应不同的场景提供便利。下文将从以下几个部分概述整个系统的设计,由于前端部分的功能还在开发调试中,故目前仅展示设计过程。

1 系统软件功能描述

在这里插入图片描述

2 系统框架

包含前台和后台两个子系统,分为数字存储层、服务层、业务层,面向普通用户、组织用户、后台管理人员三类用户。
在这里插入图片描述

3 数据上链

前台用户上传数据和其他信息给系统,系统对信息进行识别,录入信息。后台管理人员对提交的信息进行审核,对审核通过的信息进行上链存储。
在这里插入图片描述

4 终端数据查询

普通的用户根据生成的二维码获取某一个ID的所有历史信息,例如畜禽的疾病情况、生活环境、死亡日期等作为购买选择的参考。
在这里插入图片描述

6. 项目进展与未来规划

目前项目根据fabric已经完成了区块链网络的搭建,在Ubuntu16.04上通过fabric平台搭建的区块链网络已经可以运行,并在网络中创建一个通道两个组织,每个组织两个节点共四个节点,模拟供应链中各参与方,为每一个参与者配置一个独立的docker。采用Solo模式进行区块排序打包以及通信。如下图7所示。
在这里插入图片描述
图 7 Docker容器
通过定义ChaincodeInvoke方法进行对链码的操作,将数据提交给排序器然后加入区块,并被各节点验证。如下图8所示。
在这里插入图片描述
图 8 链码操作
通过ChaincodeQuery方法根据区块中用户名查询链码上的信息。如下图9所示。
在这里插入图片描述
图 9 查询信息
这样通过一个插入方法以及查询方法就可以实现一个基本的数据上链以及查询过程。并且可以查询区块链的区块高度等区块链的相关信息。

  • 44
    点赞
  • 357
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
### 回答1: 基于区块链的食品溯源系统可以使用Python语言进行开发。Python是一种简单易用的编程语言,拥有丰富的开发工具和库,非常适合用于开发区块链的应用程序。 首先,我们需要使用Python编写智能合约。智能合约是区块链系统中运行的代码,用于定义食品溯源系统的规则和逻辑。Python提供了多种区块链开发框架,例如web3.py和pyethereum,可以使用这些框架来编写智能合约。 其次,我们需要使用Python编写区块链节点。区块链节点是用于存储和处理区块链数据的服务器。Python的区块链开发框架通常提供了一系列API来操作区块链节点,例如创建和管理区块链账户、发送和接收交易等。我们可以使用这些API来实现食品数据的上链和查询等功能。 此外,为了与用户进行交互,我们还可以使用Python编写前端界面。Python的Web开发框架如Django和Flask可以帮助我们构建可视化界面,并与区块链节点进行交互。这样用户就可以通过浏览器访问我们的食品溯源系统,并查询食品的源头和流通信息。 最后,为了确保系统的安全性和可靠性,我们可以使用Python编写一些辅助工具。例如,我们可以使用Python编写测试脚本来检验智能合约的正确性;我们还可以使用Python编写监控程序来监测节点的运行状态和区块链的一致性。 总之,Python作为一种强大且易于上手的编程语言,可以帮助我们开发基于区块链的食品溯源系统,实现食品数据的可信存储和追溯。 ### 回答2: 基于区块链的食品溯源系统的实现需要使用Python编程语言。Python是一种简单易学的编程语言,具有丰富的开发库和工具,非常适合用于实现区块链相关的应用。 首先,我们可以使用Python编写智能合约,即在区块链上存储和执行的代码。智能合约可以定义食品溯源系统的规则和逻辑,比如如何记录和查询食品的生产过程、流通过程以及销售过程中产生的数据。 接下来,我们可以使用Python编写一个区块链节点的程序,该程序负责与其他节点进行通信,验证交易以及维护区块链的完整性。这个节点程序可以通过使用Python的区块链开发库,如pyethereum或pycoin,来实现。 同时,我们还可以使用Python编写与区块链节点交互的用户界面。该界面可以提供给用户输入和查询食品溯源相关的信息,然后将这些信息打包成交易,通过节点程序发送到区块链网络。 在这个食品溯源系统中,每一次食品的生产、流通和销售都将产生一个交易,这些交易将被打包成区块链上的区块。每个区块都包含了之前区块的哈希值,确保区块链的完整性。同时,由于区块链的去中心化特点,每个节点都可以验证交易和查询数据,从而保证了食品溯源系统的透明性和可信度。 总之,基于区块链的食品溯源系统的实现可以通过使用Python编写智能合约、区块链节点程序和用户界面来完成。Python的简洁和强大的开发工具使得该系统可以有效地记录和查询食品的全过程信息,提供给用户和监管机构一个可靠的溯源解决方案。 ### 回答3: 基于区块链的食品溯源系统可以使用Python语言进行开发。Python是一种简单易学、高效灵活的编程语言,非常适合用于快速开发原型和实现复杂的系统。下面是一个可能的实现方案。 首先,我们需要使用Python来编写区块链的逻辑代码。可以使用第三方库,如pycoin或者bitcoin-python来实现基本的区块链功能,比如创建区块、添加交易、验证区块等。这些库提供了所需的算法和数据结构,以便我们能够创建和管理区块链。 然后,我们需要编写食品溯源系统的逻辑代码。在Python中,我们可以使用各种数据结构和函数来实现这个系统。我们可以定义食品的类,包括食品的名称、生产日期、生产地点等属性,并定义一些方法,如验证食品的真实性、记录食品的流转信息等。通过这些方法,可以确保食品的可追溯性和真实性。 接下来,我们需要将区块链和食品溯源系统结合起来。我们可以通过在区块链的交易中添加溯源信息,来追踪食品的生产和流转过程。当有新的食品加入系统时,可以通过创建新的交易来记录食品的信息,并将交易添加到区块链中。在后续的交易中,我们可以验证之前的交易,并添加新的交易信息。通过这种方式,我们可以建立一个不可篡改的食品溯源记录。 最后,我们可以使用Python的Web框架,如Flask或Django,来实现一个用户界面,供用户查看和验证食品的溯源信息。用户可以输入食品的相关信息,系统会返回该食品的生产和流转记录。通过Web界面,用户可以方便地查看和验证食品的来源和真实性。 综上所述,基于区块链的食品溯源系统可以使用Python语言进行开发。Python的简洁、灵活、强大的特性使其成为实现这个系统的理想选择。当然,这只是一个初步的方案,具体的实现会涉及更多具体的细节和技术选择。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值