APP下载

基于区块链的供应链溯源模型研究①

2022-08-24邵黑龙

关键词:账本共识区块

邵黑龙, 于 瓅

(安徽理工大学计算机科学与工程学院,安徽 淮南 232001)

0 引 言

供应链是指产品从生产商、运输商、销售商到最终客户的系统,在这个体系中,各个环节相互协调,共同构成产品的生命周期,供应链溯源是指产品在生命周期内产生的加工信息、物流信息和销售信息的追踪。传统的供应链溯源是通过监管部门调取企业内部数据进行查询和追踪,然而这种溯源模式存在以下几点问题:第一,企业作为不可靠的中心化个体,具有篡改数据的潜在风险;第二,现有的供应链溯源系统仅记录产品的生产信息和销售信息,对物流信息缺少监管。这种方式减少了产品的质量安全保证;第三,当前供应链系统涉及企业众多,数据不关联。因此,构建不可篡改、全方面一体化的供应链溯源模型极为重要。

区块链技术作为一种去中心化的分布式账本技术,具有不可篡改,可追溯的特性,十分适合作为溯源模型的支撑技术。当前随着区块链技术的发展,越来越多的国家和企业重视区块链技术,本文总结了区块链技术的发展历程和技术原理,分析当前溯源系统存在的问题,提出了一种高性能、整体化的基于区块链技术的供应链溯源模型。

1 相关研究

1.1 区块链技术

区块链技术起源于中本聪在2008年提出的《Bitcoin:A Peer-to-Peer Electronic Crash System》一文[1],该文将公私钥加密,数字签名等密码学技术,结合P2P通信、工作量证明(Proofof work,Po W)和时间戳等技术实现了去中心化的数字货币交易系统。随后莱特币、达世币、未来币相继被提出,以数字货币为主的区块链技术被称为区块链1.0。2013年,Buterin提出了以太坊[2]平台,实现了智能合约,智能合约的概念在1994被密码学家Nick首次提出,他认为智能合约是一段按照事先规则自动执行的程序。在以太坊中,将预先设定的代码上传到区块链上,当向合约地址发起交易时,合约代码自动执行,智能合约也被称为区块链2.0。随着区块链技术的不断发展,其应用领域也逐渐从金融扩展到教育,医疗,物流等领域,该种模式下的区块链技术被称为区块链3.0。

区块链3.0的基础架构分为数据层,网络层,共识层和应用层[3],如图1所示。

图1 区块链3.0基础架构

数据层包含了区块链的基本数据结构,如区块结构和账本结构,区块的结构可分为区块头和区块体,以比特币为例,区块头中包含前一区块的hash值、时间戳、Merkel根、随机数nonce值等字段,区块体中则包含当前系统中未执行的交易。区块链的账本结构主要为链式结构,目前也有研究者提出树状结构和图状结构的区块链账本结构。

网络层主要包含区块链系统的组网方式和传播协议,区块链系统的节点具有平等、自治、分布的特点,因此,组网方式为对等式网络(Peer-topeernetwork,P2P)。对于区块消息的传播,以太坊和比特币的传播协议是基于TCP协议实现,Hyperledger Fabric则是基于Gossip协议实现洪泛传播。

共识层主要包含区块链的共识协议,当前共识算法主要分为两类:证明类和投票类。证明类共识算法指节点通过某种方式证明自己具有区块的发布权。如Po W,PoS等。证明类算法为了抵御女巫攻击(恶意节点创造多个虚假身份),需要设置一定的证明难度,如在比特币中,Po W共识算法需要节点不停寻找随机数并计算hash值,当hash值满足系统的难度需求时,则代表该节点具有当前系统的区块发布权。PoS算法则是节点证明自己持有的权益,权益大的节点更容易获得区块的发布权。投票类共识算法指备份节点对主节点发起的区块进行投票,当票数达到一定阈值时,该区块被共识,节点将该区块加入本地区块链。如Paxos[4],PBFT[5],Raft[6]等。相较于证明类共识算法,投票类算法的吞吐量更高,但随着节点数目的增多,投票类算法的通信复杂度提高,存在通信阻塞的问题。

应用层为区块链在具体领域的功能实现,根据应用领域的不同,区块链可分为公有链,联盟链和私有链,公有链上的数据公开,所有节点可以随意进出,不适合企业和监管部门使用,私有链只保留了区块链可追溯,难篡改的特点,失去了去中心化的特性。因此本模型采用联盟链形式,企业和监管部门作为共识节点,分别维护系统账本,既避免了中心化,也保证了数据的隐私性。

1.2 研究现状

基于区块链的溯源技术一直是学者们研究的热点,如张朝栋等人[7]提出一种基于侧链的供应链溯源系统,该系统使用以太坊侧链扩容技术部署智能合约,将交易的哈希值同步到以太坊主链,但该系统打包使用以太币,存在代币价格不稳定的问题。王志烨等人[8]提出一种基于区块链的农产品柔性可信溯源系统,并采用“一环节一账本”的系统模式,能够对系统信息动态溯源。陈飞等人[9]提出一种基于区块链的食品溯源系统,并以猪肉供应链为例分析了溯源流程。禹忠等人[10]基于Fabric平台实现了对药品的生产信息,物流信息及使用信息的溯源。上述溯源系统都有自身点,但均基于已有平台构建,缺乏对模型整体的设计,因此,设计了基于区块链溯源模型的整体化架构。

2 模型概述

主要介绍基于区块链的供应链溯源模型的基本结构,模型保持传统区块链系统的架构,但在模型的数据层使用物联网传感器设备采集原始数据,保证了数据的可靠性,在共识层模块使用改进的区块链共识算法增加系统吞吐量,在应用层实现了交互功能。溯源模型整体架构如图2所示。

图2 溯源模型整体架构图

2.1 数据层模块

模型的数据层主要包含对区块的打包上传和区块链账本的存储,本模型在数据采集端采用射频识别RFID,激光扫描器等设备对生产、物流等信息进行采集,并将数据上传到请求。共识节点收到采集端发来的请求消息,打包处理生成区块,当区块经过共识节点达成共识后,共识节点将区块加入本地区块链账本中。

2.2 网络层模块

在本模型中,网络成员主要包含数据采集端,共识节点和用户终端。数据采集端采集原始数据并上传请求到共识节点,各企业和监管部门作为共识节点以P2P组网方式通信并对数据信息达成共识,共识完成后,将数据信息加入本地区块链。用户终端对共识节点发起查询请求,节点返回响应结果,溯源模型的网络拓扑图如图3所示。

图3 溯源模型网络拓扑图

2.3 共识层模块

共识算法是区块链的核心,本模型对PBFT算法进行优化,通过多节点并行打包生成交易块,主节点生成聚合块并打包交易块的摘要,通过共识聚合块来完成多个交易块的确认阶段,相比较PBFT,在共识相同区块的情况下,该算法减少了节点间通信次数,增加了系统吞吐量,共识流程如图4所示。

图4 共识流程图

1)预提议阶段:各节点将打包好的交易信息生成交易块,并发送预提议消息给其他节点。

2)提议阶段:所有节点接收来自不同节点的预提议消息,验证有效性,验证通过后生成提议消息并广播给所有节点,与此同时,所有节点收集来自不同节点的具有相同轮数和视图的提议消息,如果收集2f+1个(包含自己),则将该交易块标记为proposed。

3)预准备阶段:主节点将所有标记为proposed的事务块的hash值打包生成聚合块,并将聚合块包含在预准备消息中发送给其他备份节点。

4)准备阶段:所有备份节点接收主节点发送的预准备消息后,验证有效性,验证通过后,生成准备消息并广播给所有节点,与此同时,节点收集来自不同节点的具有相同轮数和视图的准备消息,如果收集2f+1个(包含自己),则将该聚合块标记为prepared,并进入确认阶段。

5)确认阶段:所有节点进入确认阶段后,发送确认消息,与此同时,收集来自其他节点的具有相同轮数和视图的确认消息,若收集2f+1个,则将聚合块标记为committed,并将聚合块和其包含的交易块加入本地区块链末端。

2.4 应用层模块

应用层主要实现与终端用户的交互,如终端用户查询当前区块链账本状态,或对特定商品溯源等。实现方式为终端用户向服务端发送请求,服务端返回响应结果。

3 实验及结果

基于上述模型使用go编程语言实现溯源系统,模拟实验为在本地开启4个端口分别代表生产商、运输商、销售商和监管部门并作为共识节点和服务端节点,采集端以水果供应数据信息为例上传请求数据信息。实验使用postman软件测试,postman是一个可以模拟客户端发送http请求的接口测试工具。在实验中,待共识节点达成共识后,使用postman向服务端端口发送查询区块链状态请求,服务端返回当前区块链账本的所有区块状态,响应结果如图5所示。

图5 区块链账本状态

从图5中可以看到当前区块链账本中聚合块的区块体中包含交易块的hash值,交易块的区块体中则包含采集端上传的交易数据信息,这表明溯源系统实现了对交易块和聚合块的共识以及上链存储功能。

测试对某一交易数据进行溯源,选择其中一条交易,如{"data":{"name":"橘子","date":"2021-12-04 20:25:47","starting":"杭州市","destination":" 合 肥 市"}," Digest":"43fb3804b1ecc96f0d5adf2f8c93f44a770b453a734f5fde3 ff9b7560ace38a8"}其中Digest字段为该交易唯一摘要,向服务端发送post请求,请求body中包含该摘要43fb3804b1ecc96f0d5adf2f8c93f44a770b453a734f5fde3ff 9b7560ace38a8,服务端返回该摘要对应交易信息,如图6所示。

图6 唯一摘要溯源结果

从图6中可以看出,服务端根据客户端发来的包含指定唯一摘要的请求,返回该摘要对应的数据信息,且该数据信息存储在链上,表明系统实现了对特定数据信息的溯源追踪。

4 结 语

为了解决了传统供应链溯源存在数据易篡改,不完善等问题,提出一种基于区块链技术的供应链溯源模型,模型包含数据层、网络层、共识层和应用层整体化架构,基于该模型以水果商品为例实现了供应链溯源系统,实验结果表明,该系统能够对供应链过程的数据信息进行去中心化存储和可信溯源。在后续的工作中,我们将优化模型细节,实现更多功能。

猜你喜欢

账本共识区块
共识 共进 共情 共学:让“沟通之花”绽放
区块链:一个改变未来的幽灵
论思想共识凝聚的文化向度
区块链:主要角色和衍生应用
商量出共识
数说:重庆70年“账本”展示
丢失的红色账本
大树爷爷的账本
区块链+媒体业的N种可能
读懂区块链