关键词 水产交易; 计量数据; 数据安全; 区块链; Hyperledger Fabric; 树莓派
我国是世界上最大的水产养殖国家,养殖总量占世界养殖总产量的60% 以上[1]。水产品质量问题不仅关系着消费者的身体健康,而且直接影响着养殖业的经济效益和养殖行业的可持续发展问题。目前,水产信息技术主要应用在水产养殖环境检测、水产品销售平台和追溯等领域[2-4],水产养殖生产和交易仍停留在人工手动层面,导致水产交易数据收集成本较高,且易丢失和被篡改[5]。因此,研究水产交易数据的采集、传输和安全存储对提升水产交易智能化水平和水产养殖可持续发展具有重要意义。
区块链是一种利用智能合约和密码学算法将数据区块按照时间顺序链接的链式数据存储结构[6-7],其去中心化、不可篡改、可追溯的特点,能够为交易双方建立可靠的互信机制,解决水产交易体系中存在的数据信任问题,实现上链数据的自动获取和校验,且加密算法和共识算法可以有效提升数据传输的安全性和一致性[8]。将区块链与物联网结合可以解决物联网数据的伪造、隐私泄露和集中存储等安全性问题[9-11]。目前,区块链技术已经广泛应用在食品质量安全领域。如冯国富等[12]开发了一套基于区块链的水产品交易溯源系统,实现了水产品交易数据加密后的上链;周超等[13]提出一种基于鸟群觅食算法的水产品线上交易模型;王文娟等[14]提出了一种基于区块链的水产品撮合交易模型,提升了水产品交易效率。以上研究主要集中在使用区块链技术和相关算法解决水产品的交易和溯源问题,而对水产交易过程中数据安全性和可信性的研究较少,无法保障交易数据采集、传输和存储过程的安全性,导致水产交易信息的流失和泄漏。
针对上述问题,本研究设计了一种基于区块链技术的水产交易计量数据自动采集与传输模型,使用树莓派(Raspberry Pi,RPI)采集水产交易计量数据。通过智能合约、加密算法和共识算法实现数据的自动加密上传和共识存储,保障数据的真实可信,并结合实际应用对本系统进行安全性能分析,旨在为水产交易计量数据的采集和存储提供技术支持。
1 材料与方法
1.1 水产交易分析
在水产交易的过程中,参与交易过程的主体是收购商、水产养殖户和第三方监督机构,根据水产交易实际需求,基于树莓派进行数据采集,并利用区块链技术完成数据传输和存储,可以构建一套安全、高效、可信的水产交易平台。为实现交易数据的可追溯性,在对计量数据进行区块链网络传输过程中,还需将水产品信息、养殖户信息和采购商信息等一同存储在区块链中。水产交易业务分析中所需数据信息如表1 所示。
1.2 水产交易计量数据自动采集与传输安全模型
针对目前水产交易中人工采集计量数据存在的存储、数据易被篡改和丢失的问题,本研究提出了一种基于区块链和物联网技术融合的水产交易计量数据采集和存储方法。以物联网技术为基础,通过使用可信的嵌入式设备收集数据,以区块链技术为支撑实现水产交易数据的安全存储和传输,其模型如图1 所示。
从数据流动的角度看,整个水产计量数据传输与存储安全模型分为数据的采集、传输、存储和查询4 部分。首先在便携式电子秤上部署基于树莓派的数据采集平台实现数据的采集,其次在数据传输阶段对采集的数据进行统一处理,由智能合约对数据进行是否可以上链判定,并对上链的数据使用加密算法进行加密处理,然后将加密后的数据上传至区块链网络,保证数据传输过程的安全性和完整性,同时在区块链网络中调用智能合约对数据进行广播,并使各节点与上链数据达成共识,最后将数据存储到区块链网络中的各个节点。数据查询主要服务于水产养殖户、收购商和监管机构,通过使用区块链技进行权限管理,并赋予各角色不同的查询权限,利用智能合约进行权限验证,既保证了数据的公开透明,又保护了水产交易双方间的商业隐私,使交易过程变得更加的安全高效。
1.3 数据采集平台
针对传统水产交易环境差、硬件设施简陋和数据采集管理难度大等问题,本研究设计了一套集水产品称量、GPS 定位、数据采集、数据加密和数据无线传输于一体的数据采集平台,开发了一套占用空间小、操作简便且成本低廉的一体化设备。其硬件结构如图2 所示。
该平台用模块化设计方案,具有低功耗、可扩展、性能稳定等特点。使用Raspberry Pi 3B+为硬件控制主板,实物图如图3 所示,它是一款信用卡大小的通用电脑,配有1.2 GHz ARM Cortex A53 四核处理器,可以使用多种基于linux 的操作系统。电子秤使用WXL-T16 系列成品电子秤,提供有外置RS232串口进行数据传输。NB-IOT 通信模块使用移远公司开发的BC20 模块,融合了窄带物联网和GPS 定位的功能。
水产交易计量数据采集平台具体实现的功能:(1)水产品称量。由电子秤实现水产品称量,称量数据通过RS232 串口转USB 串口传输到控制主板。(2)养殖产地信息自动获取。通过AT 命令向卫星发送定位请求,接收并解析卫星回传电波中的位置信息,从而计算出GPS 接收器所在位置的经、纬度信息,最终产生养殖产地信息。(3)信息录入。通过输入设备输入养殖户ID、收购商ID、种类、养殖年限等信息。(4)数据自动加密和上传。在树莓派上设置区块链peer 节点,利用加密算法对上链数据进行加密,调用智能合约实现数据自动上传,由NB-IOT 模块提供通信支持。
1.4 智能合约
智能合约是一种具有去中心化、自行校验且自动执行特点的数字化协议,分为合约生成和合约执行2 个子模块。通过设置可自动触发的执行条件,为区块链网络中的用户提供信息交互和价值转移等功能[18-19]。在运行过程中,通过合约生成模块将智能合约代码部署到区块链网络中,合约执行模块开始负责运行智能合约代码。当节点上传的信息或调用的功能满足相应合约的触发条件时,系统自动调用合约实现数据的存储和查询。利用这一功能,通过编写智能合约,并在树莓派的区块链节点进行部署,即可实现水产交易计量数据的自动采集和上传。水产交易计量数据上传智能合约流程如图4所示。
1.5 共识机制
共识是区块链系统最核心的技术。在区块链网络中,共识算法的使用有利于分散和不信任网络节点的数据达成一致,使各节点存在相同的数据副本。在水产交易中,随着交易双方人员的增加,系统中区块链节点数量和上链数据随之增加,所存储的数据量越来越多,对网络中各节点的硬件配置要求也越来越高,传统树莓派存储量无法满足要求。实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)是一种基于状态机复制的共识算法[19],可在错误节点不超过总节点数1/3 的情况下保证数据的一致性。针对水产交易数据问题,本研究提出一种基于PBFT 的改进共识机制,当系统存在2 个以上部署树莓派的区块链节点时,只需将其中1 个节点进行数据上链,并通过智能合约将计量数据进行全网共识,而其他节点不参加共识且不被选为主节点,只存储平台所采集的数据。改进后的共识机制不仅可以提高其存储效率,而且可有效解决树莓派存储容量问题。基于BPFT 改进共识机制的执行流程如图5所示。
在图5 中,0 代表客户端节点,1 代表主节点,2 和3 代表备份节点,4 代表部署在树莓派上的区块链节点。其具体步骤如下:
(1)客户端节点发起请求,请求消息经数字签名后发送给主节点。
(2)主节点监听到请求后,进入预准备(pre-pre⁃pare)阶段。主节点对消息签名进行验证,若不通过,则直接丢弃;若通过,则对请求进行编号,生成预准备消息,经数字签名后广播给其他节点。
(3)备份节点监听到主节点发出的预准备消息后,进入准备(prepare)阶段。备份节点对预准备消息签名进行验证,若通过,则生成准备消息,经数字签名后广播给其他节点。同时,把预准备消息和准备消息写入本地日志。
(4)节点对收到的准备消息进行消息验证,若通过,则将准备消息写入本地日志。当收集到2f+1 个来自不同节点(包括自身)准备消息,则向所有节点广播提交消息。
(5)在备份节点收集到2f+1 个提交消息后,向客户端节点发送答复消息,客户端收集到f+1 个答复消息后,则确认已经达成共识。
1.6 水产交易计量数据传输与存储系统的架构设计
本研究设计的水产交易计量数据传输与存储系统,是由数据采集层、传输层、数据层、服务层和应用层5 层结构组成。该系统可实现水产交易计量数据的采集、传输、存储、查询和监督预警等功能,系统架构如图6 所示。
在水产交易计量数据传输与存储系统架构中,数据采集层主要由电子秤、全球定位系统(GPS)、窄带物联网(NB-IOT)和树莓派等模块组成。电子秤和GPS 模块用来对计量数据进行采集和定位,树莓派模块将收集到的数据上传至区块链网络,NB-IOT模块负责将数据上传至网络层。在系统架构的传输层,基于Grpc 的Gossip 协议[18]是用来提高全网共识速度和安全的传输协议,TCP/IP 协议、WIFI、以太网和蓝牙等用来实现数据的传输。数据层主要用来进行数据的存储。服务层作为系统架构的核心,负责维护整个区块链系统的正常运行,由智能合约、加密算法、共识算法、秘钥管理和权限管理等模块组成。而应用层是在底层区块链的基础上利用其API 接口设计实现的一个集养殖户、收购商、监管部门为一体的信息安全管理平台,用来实现系统的业务需求。
1.7 系统功能设计方案
水产交易计量数据传输与存储系统采用模块化设计,由用户平台和数据采集平台两部分组成。其中,用户平台包括用户登录、用户管理、数据查询和监督预警等模块。数据采集平台用来部署树莓派的终端节点,分为数据采集模块和数据上链模块。该系统的用户平台中,用户登录模块可实现用户的注册和登录,用户管理模块可为水产交易中不同参与者分配不同的权限功能,数据查询模块为不同用户提供数据查询服务。系统采集到的所有计量数据,均以key-value 的方式存储在区块链的数据库中,将水产养殖户ID 和收购商ID 作为key 值,通过遍历key 键进行查询。而系统的监督预警模块为监管部门提供水产计量数据。系统功能模块结构如图7所示。
1.8 系统的平台选择
区块链技术,按准入规则可分为非许可链和许可链[19]。非许可链中的节点可随时加入或推出区块链网络,无需经过许可,且任何用户均可加入并进行交易操作。而在许可链中,每个节点都需要经过许可后才能加入网络,用户同样需要先进行身份的核实,然后才能完成相关操作。水产交易计量数据是水产养殖用户的商业机密,基于Hyperledger Fabric的平台,在加入区块链网络时需先经区块链上的组织审核,因而可以有效保证水产交易计量数据的传输与存储安全。
2 结果与分析
本研究使用基于树莓派和阿里云平台搭建的测试环境对所提出的模型进行了验证。试验中,树莓派配置为64 位4 核Cortex-A53 处理器、64 G 内存及ubuntu 20.10 系统。阿里云配置了4 核处理器、16 G运行内存、安装ubuntu 20.04 系统。软件采用Hy⁃perledger Fabric 1.4.3 和Docker 18.09。其中,Fabric区块链网络有6 个节点,其中orderer 节点提供排序服务生成新的区块,CA 节点负责系统证书管理,1个peer 节点部署在树莓派上。试验使用fabric 默认的LevelDB 数据库进行数据的存储。根据实际水产交易过程,系统针对不同用户需求开发出相应模块,用户填写相关信息完成系统注册后可根据需求登陆系统,输入不同交易批次可查询相关水产交易数据,用户登录和查询界面如图8 所示。
为验证系统的稳定性和数据传输完整性,试验通过PC 机模拟电子秤,以500 条/s 的频率进行数据的实时上传,测试结果如表2 所示。
由测试结果可知,在发送同样大小数据包的前提下,传统的数据传输系统存在丢包现象,无法完全接收所发送的数据。而本研究所设计的基于区块链技术的数据传输系统的数据传输成功率可达100%,丢包率相比传统传输系统更低,该系统的数据传输更安全。为验证该系统的数据上传和查询功能,试验中依次测试10~100 条数据在基于阿里云和基于树莓派不同情况下的结果。数据上传及查询的对比试验结果如图9 所示。
由图9 可知,在数据测试过程中时,基于树莓派模型的上链时间高于基于阿里云模型的所用时间,但随着测试数据量的增多,基于树莓派模型的上传速率却高于基于阿里云模型的上传速率。综合以上结果可知,本研究提出的水产交易计量数据的采集和传输模型,可有效实现数据的上传,且数据安全性更好。在请求上链速率一致的前提下,相比基于阿里云的数据运算,基于树莓派的数据运算速度更优,随着数据量的增加数据上传效率逐渐增强,更适合在实际水产交易中使用。
3 讨论
本研究针对目前水产交易中手动录入计量数据易篡改、易丢失的问题,构建了一套基于区块链技术的水产交易计量数据采集与传输安全模型。通过使用基于树莓派的数据采集平台,实现了数据的自动采集和上链,提高了实际操作效率,保证了数据来源的安全可靠,智能合约实现了计量数据传输与存储安全。通过对比基于树莓派和基于阿里云的性能,在请求上链速率一致的前提下,基于树莓派的数据上链速度更优,且随着数据量的增加数据上传效率逐渐增强。
通过基于PBFT 的改进共识机制,解决了树莓派存储容量问题,并提出了系统传输与存储架构及相应功能模块的设计方案。同时使用基于 Hy⁃perledger Fabric 平台搭建的测试环境分别对水产交易数据的上传和查询进行了验证。结果表明,本研究所提出的基于区块链技术的水产交易计量数据采集与传输系统可有效保证数据采集和存储的安全可靠,可为水产交易过程提供可信的计量数据。但由于树莓派本身计算能力和内存容量限制问题,本研究的模型相对传统区块链模型更易受到攻击,其有限的内存空间会随着数据量的增多而无法满足存储需求。在后续研究中,可针对树莓派存储容量和共识算法的性能提升方面进行深入研究。