发明内容
本申请实施例提供了一种物品防伪溯源方法,有助于辨别物品的真伪。所述技术方案如下:
第一方面,提供了一种物品防伪溯源方法,所述方法包括:
业务系统生成目标物品的物品标识、电子标签标识和物品属性标识之间的关联关系,所述物品标识用于标识所述目标物品,所述电子标签标识用于标识与所述目标物品关联的电子标签,所述物品属性标识用于标识所述目标物品的物品属性;
所述业务系统将所述物品标识、所述电子标签标识和所述物品属性标识之间的关联关系存储至区块链系统或存储系统;
所述业务系统生成所述目标物品的物品流通信息,所述物品流通信息是所述目标物品在流通环节中所需的信息;
所述业务系统将所述物品流通信息存储至所述存储系统,得到所述物品流通信息的存储地址,以及计算所述物品流通信息的哈希值,设置所述目标物品的物品属性,所述物品属性包括所述目标物品的权属属性和流通状态,所述权属属性包括所述目标物品的权属方,所述流通状态用于指示所述目标物品所处的流通阶段;
所述业务系统根据所述物品标识、所述电子标签标识和所述物品属性标识之间的关联关系,将所述物品流通信息的存储地址、哈希值和所述物品属性存储至所述区块链系统。
可选地,所述业务系统将所述物品流通信息的存储地址、哈希值和所述物品属性存储至所述区块链系统之后,还包括:
所述区块链系统向所述业务系统返回上链交易回执;
所述业务系统解析所述上链交易回执,获得上链状态信息;
所述业务系统将所述上链状态信息存储至所述存储系统,得到所述上链状态信息的存储地址,以及计算所述上链状态信息的哈希值;
所述业务系统将所述上链状态信息的存储地址和哈希值存储至所述区块链系统。
可选地,所述方法还包括:
所述业务系统在所述区块链系统部署溯源服务合约、n个上链合约、n个不可替代通证NFT合约,所述n个上链合约与所述n个NFT合约一一关联,相关联的一个上链合约和一个NFT合约对应一个物品类型,所述溯源服务合约包括所述n个上链合约与所述n个NFT合约之间的关联关系,所述n为正整数;
所述溯源服务合约用于提供物品溯源服务接口,以供所述业务系统调用;所述上链合约用于存储所述物品流通信息的存储地址和哈希值;所述NFT合约用于生成所述物品属性标识以及存储所述物品属性。
可选地,所述权属属性还包括所述权属方的权限,所述流通状态包括销售状态,所述销售状态包括待售、新售、或已售;所述业务系统生成目标物品的物品标识、电子标签标识和物品属性标识之间的关联关系之前,还包括:
所述业务系统通过生产商服务在所述目标物品出厂前,根据所述物品标识调用所述物品溯源服务接口,以通过所述溯源服务合约调用所述目标物品的物品类型对应的NFT合约,为所述目标物品生成NFT ID作为所述物品属性标识;
相应地,所述业务系统设置所述目标物品的物品属性,包括:
所述业务系统通过所述生产商服务将所述目标物品的物品属性中的权属属性中的权属方设置为生产商标识、权限设置为所有权,以及将所述目标物品的物品属性中的流通状态设置为待售;
相应地,所述业务系统根据所述物品标识、所述电子标签标识和所述物品属性标识之间的关联关系,将所述物品属性存储至所述区块链系统,包括:
所述业务系统通过所述生产商服务根据所述NFT ID调用对应的NFT合约将所述物品属性存储至对应的NFT合约的存储空间中。
可选地,所述业务系统生成所述目标物品的物品流通信息,包括:
所述业务系统通过所述生产商服务在所述目标物品出厂前,获取所述目标物品的物品生产信息,所述物品生产信息为所述目标物品在生产环节的物品流通信息;
所述方法还包括:
所述业务系统通过所述生产商服务将所述物品标识、所述电子标签标识、所述物品属性标识以及所述物品生产信息存储至所述电子标签的存储空间中。
可选地,所述业务系统根据所述物品标识、所述电子标签标识和所述物品属性标识之间的关联关系,将所述物品流通信息的存储地址和哈希值存储至所述区块链系统,包括:
所述业务系统通过中间商服务或销售商服务根据所述电子标签中存储的所述物品标识调用所述物品溯源服务接口,以通过所述溯源服务合约获得所述目标物品的物品类型对应的上链合约地址;根据所述上链合约地址调用对应的上链合约将所述物品流通信息的存储地址和哈希值存储至对应的上链合约的存储空间中。
可选地,所述权属属性还包括所述权属方的权限,所述流通状态包括销售状态,所述销售状态包括待售、新售、或已售;所述业务系统设置所述目标物品的物品属性,包括:
所述业务系统通过销售商服务在所述目标物品销售前,将所述目标物品的物品属性中的权属属性中的权属方设置为销售商标识、权限设置为销售权,以及将所述目标物品的物品属性中的流通状态设置为新售;
相应地,所述业务系统根据所述物品标识、所述电子标签标识和所述物品属性标识之间的关联关系,将所述物品属性存储至所述区块链系统,包括:
所述业务系统通过所述销售商服务根据所述电子标签中存储的所述物品标识调用所述物品溯源服务接口,以通过所述溯源服务合约调用所述目标物品的物品类型对应的NFT合约,将所述物品属性存储至对应的NFT合约的存储空间中;
所述方法还包括:
所述业务系统通过所述销售商服务在所述目标物品售出时,根据所述电子标签中存储的所述物品标识调用所述物品溯源服务接口,以通过所述溯源服务合约调用所述目标物品的物品类型对应的NFT合约,获得对应的NFT合约中存储的所述物品属性;将获得的所述物品属性作为销售授权许可凭证。
可选地,所述业务系统设置所述目标物品的物品属性,包括:
所述业务系统通过所述销售商服务在所述目标物品销售后,将所述目标物品的物品属性中的权属属性的权属方设置为消费者标识、权限设置为所有权,或者,将所述目标物品的物品属性中的权属属性的权属方设置预设标识、权限设置为管理权,以及将所述目标物品的物品属性中的流通状态设置为已售;
相应地,所述业务系统根据所述物品标识、所述电子标签标识和所述物品属性标识之间的关联关系,将所述物品属性存储至所述区块链系统,包括:
所述业务系统通过所述销售商服务根据所述电子标签中存储的所述物品标识调用所述物品溯源服务接口,以通过所述溯源服务合约调用所述目标物品的物品类型对应的NFT合约,将所述物品属性存储至对应的NFT合约的存储空间中。
可选地,所述方法还包括:
用户设备从所述电子标签中获取溯源标识和物品流通信息,所述溯源标识为所述物品标识、所述电子标签标识、所述物品属性标识中的一个或多个;
所述用户设备向所述业务系统发送物品溯源请求,所述物品溯源请求携带所述溯源标识;
所述业务系统根据所述溯源标识从所述区块链系统中获取存储的物品属性,以及从所述区块链系统中获取存储的物品流通信息的存储地址和哈希值;将从所述区块链系统获取到的哈希值作为第一哈希值;根据从所述区块链系统获取到的物品流通信息的存储地址,从所述存储系统中获取物品流通信息,验证从所述存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性;在从所述存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性均验证通过的情况下,计算从所述存储系统中获取到的物品流通信息的哈希值作为第二哈希值;
所述业务系统在所述第一哈希值与所述第二哈希值相同的情况下,将从所述区块链系统获取到的物品属性和从所述存储系统中获取到的所述物品流通信息作为物品溯源结果;
所述业务系统将所述物品溯源结果发送给所述用户设备,以供所述用户设备进行显示。
可选地,所述方法还包括:
用户设备从所述电子标签中获取溯源标识和物品流通信息,所述溯源标识为所述物品标识、所述电子标签标识、所述物品属性标识中的一个或多个;
所述用户设备根据所述溯源标识从所述区块链系统中获取存储的物品属性,以及从所述区块链系统中获取存储的物品流通信息的存储地址和哈希值;
所述用户设备将从所述区块链系统获取到的哈希值作为第一哈希值;
所述用户设备根据从所述区块链系统获取到的物品流通信息的存储地址,从所述存储系统中获取物品流通信息,验证从所述存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性;
所述用户设备在从所述存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性均验证通过的情况下,计算从所述存储系统中获取到的物品流通信息的哈希值作为第二哈希值;
所述用户设备在所述第一哈希值与所述第二哈希值相同的情况下,将从所述区块链系统获取到的物品属性和从所述存储系统中获取到的所述物品流通信息作为物品溯源结果;
所述用户设备显示所述物品溯源结果。
在本申请中,将物品流通过程中各个成员的物品流通信息存储至存储系统,将物品流通信息的存储地址和哈希值存储在区块链系统上,保证了溯源信息的完整性、透明性、不可篡改性。另外,通过设置物品属性,可以实时查看目标物品在流通过程中的权属属性和流通状态,通过展示物品属性,防止非授权销售,消除用户对物品来源的怀疑。同时,通过电子标签标识与物品属性标识绑定,在目标物品已出售的情况下,通过该电子标签标识可以查询到物品属性中的流通状态是已售,如此能够防止电子标签的二次使用或复制,保证了一物一码。
第二方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的物品防伪溯源方法中业务系统执行的操作。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的物品防伪溯源方法中业务系统执行的操作。
第四方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的物品防伪溯源方法中业务系统执行的操作。
可以理解的是,上述第二方面、第三方面、第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
本申请实施例提供的物品防伪溯源系统可以应用于工业、农业、消费等领域,本申请实施例对此不作限定。
下面对本申请实施例提供的物品防伪溯源系统进行说明。
图1是本申请实施例提供的一种物品防伪溯源系统的示意图。参见图1,该物品防伪溯源系统可以包括业务系统101、存储系统102和区块链系统103。
业务系统101用于物品流通信息的生成、上链、更新、查询、管理和信息溯源等服务。存储系统102用于物品流通信息和上链状态信息的存储。区块链系统103用于实现上链、查询等操作。
业务系统101可以提供一码一物的物品防伪溯源和授权许可溯源服务。
存储系统102可以存储物品流通信息和上链状态信息。可选地,存储系统102可以是中心化存储系统,也可以是去中心化存储系统,该去中心化存储系统可以是IPFS(InterPlanetary File System,星际文件系统)、Swarm等。其中,去中心化存储系统能够支持文本、图片、视频等多种类型数据的存储,可以满足不同业务场景的需要。
对于区块链系统103,区块链分为公有链、私有链和联盟链,公有链用于任何用户之间传递信任,私有链用于企业或机构的内部业务,而联盟链则用于跨实体的联合业务。对于联盟链,一个成员要加入联盟链,需要根据这个成员提供的数字证书(DigitalCertificate)验证成员身份,通过身份验证后,才可加入联盟链来参与业务流程。联盟链各成员可通过智能合约实现业务自动化,消除人工处理存在的差错。
可选地,区块链系统103可以是联盟链系统,如该联盟链系统可以是HyperledgerFabric系统等。当然,区块链系统103也可以根据业务情况设置为其他区块链系统。
此外,区块链的NFT(Non-Fungible Token,不可替代通证)合约将实体数字化,便于实体的流转和管理,具有非同质化、不可替换等特点,即两个NFT之间不具备直接的替代关系,一个NFT可以表示现实世界中唯一的一个物体。由于NFT的这种独特性,因此,可将其用来管理物品在流通过程中的属性。可选地,本申请实施例采用的NFT合约可以为ERC721合约。
业务系统101、存储系统102和区块链系统103可以执行下文图2实施例所述的物品防伪溯源方法,来实现对物品信息的溯源,以据此实现物品的真伪鉴别。
基于以上描述,本申请实施例以如下几个假设条件为例来对物品防伪溯源方法进行说明,当然,实际应用中,也不限于以下条件。
1、区块链系统103采用Hyperledger Fabric联盟链系统;
2、联盟链成员包括生产商、物流商、销售商,分别对应物品的生产、运输和销售这三个流通环节;
3、NFT合约标准采用ERC721;
4、存储系统102采用IPFS;
5、物品为酒类商品。
下面对本申请实施例提供的物品防伪溯源方法进行详细地解释说明。
图2是本申请实施例提供的一种物品防伪溯源方法的流程图。参见图2,该方法包括以下步骤。
步骤201:系统初始配置。
建立区块链系统,在一些情况下,可以采用联盟链系统,并将物品流通各个环节的成员加入该联盟链系统。物品流通各个环节的成员,包括但不限于生产商、中间商(包括但不限于物流商)、销售商,在获得授权后可以加入该联盟链系统,并获取相应的业务处理权限。
1、联盟链节点部署
生产商、中间商、销售商部署各自的联盟链节点,并组成联盟链系统,即组成区块链系统。生产商、中间商、销售商这三者分别在本地创建各自的公私钥对。也即,生产商具有自己的一个公钥和一个私钥,中间商具有自己的一个公钥和一个私钥,销售商具有自己的一个公钥和一个私钥。
对应于生产商、中间商、销售商,业务系统中可以包括生产商服务、中间商服务、销售商服务。此处的服务可以指组成业务系统的实体设备,比如可以是终端或服务器,或者也可以指业务系统中的软件模块,本申请实施例对此不作限定。
2、联盟链成员身份验证
生产商、物流商、销售商分别利用各自的公钥和身份信息从第三方电子签名中心获得数字证书,并据此通过该联盟链系统的身份验证机制加入该联盟链系统。生产商、物流商、销售商加入该联盟链系统后,该联盟链系统就允许生产商、物流商、销售商在该联盟链系统进行相应的业务处理。
3、链上链外的物品流通信息的格式定义
定义生产商服务、物流商服务、销售商服务生成的物品流通信息对应的上链信息的格式。该上链信息可以包括物品流通信息的存储地址和哈希值、上链状态信息的存储地址和哈希值,该上链状态信息是将物品流通信息的存储地址和哈希值存储至区块链系统后得到的。所述的哈希值可以根据哈希算法进行哈希运算得到,此哈希算法可以包括但不限于是SHA-2(Secure Hash Algorithm 2,安全散列算法2)、SHA-256等。
其中,生产商服务、物流商服务、销售商服务生成的物品流通信息对应的上链信息的格式可以如下表1所示。
表1
数据项 |
内容 |
物品流通信息的存储地址 |
IPFS存储地址 |
物品流通信息的哈希值 |
哈希值 |
物品流通信息的上链状态信息的存储地址 |
IPFS存储地址 |
物品流通信息的上链状态信息的哈希值 |
哈希值 |
本申请实施例仅以上表1为例对物品流通信息对应的上链信息的格式进行说明,上表1并不对本申请实施例构成限定。
其中,生产商服务生成的物品流通信息的格式可以如下表2所示。
表2
数据项 |
内容 |
物品标识 |
由生产商指定的物品编号 |
电子标签标识 |
电子标签的tag ID |
物品属性标识 |
由ERC721合约确定的NFT ID |
生产时间 |
YYYY:MM:DD:HH:SS |
产品原材料 |
水、小麦、高粱、大米等 |
加工工艺 |
固态发酵等 |
出厂年限 |
5年、8年、10年等 |
出厂时间 |
YYYY:MM:DD:HH:SS |
数字证书 |
生产商的数字证书的存储链接 |
数字签名 |
生产商利用自己的私钥对上述内容的签名 |
本申请实施例仅以上表2为例对生产商服务生成的物品流通信息的格式进行说明,上表2并不对本申请实施例构成限定。
其中,中间商服务生成的物品流通信息的格式可以如下表3所示。
表3
数据项 |
内容 |
物品标识 |
由生产商指定的商品编号 |
电子标签标识 |
电子标签的tag ID |
物品属性标识 |
由ERC721合约确定的NFT ID |
物流商基本信息 |
公司名称等注册信息 |
运输时间 |
起点终点时间:YYYY:MM:DD:HH:SS |
运输公司 |
航运、海运等公司 |
运输路线 |
运输路径:起点-中间点-终点 |
数字证书 |
中间商的数字证书的存储链接 |
数字签名 |
中间商利用自己的私钥对上述内容的签名 |
本申请实施例仅以上表3为例对中间商服务生成的物品流通信息的格式进行说明,上表3并不对本申请实施例构成限定。
其中,销售商服务生成的物品流通信息的格式可以如下表4所示。
表4
本申请实施例仅以上表4为例对销售商服务生成的物品流通信息的格式进行说明,上表4并不对本申请实施例构成限定。
其中,生产商服务、物流商服务、销售商服务获得的上链状态信息的格式可以如下表5所示。溯源数据是指物品流通信息的存储地址和哈希值。
表5
数据项 |
内容 |
物品标识 |
由生产商指定的物品编号 |
电子标签标识 |
电子标签的tag ID |
物品属性标识 |
由ERC721合约确定的NFT ID |
上链交易ID |
溯源数据上链时对应的交易ID |
区块高度 |
溯源数据上链时对应的区块高度 |
合约地址 |
溯源数据上链时对应的上链合约地址 |
数字签名 |
上链者利用自己的私钥对上述内容的签名 |
本申请实施例仅以上表5为例对上链状态信息的格式进行说明,上表5并不对本申请实施例构成限定。
步骤202:智能合约部署。
业务系统在区块链系统部署溯源服务合约、n个上链合约和n个NFT合约,n为正整数。n个上链合约与n个NFT合约一一关联,相关联的一个上链合约和一个NFT合约对应一个物品类型。也即,同类物品具有相互关联的上链合约和NFT合约。溯源服务合约包括n个上链合约与n个NFT合约之间的关联关系,也即上链合约与NFT合约两者的关联关系由溯源服务合约管理。
溯源服务合约用于提供物品溯源服务接口,以供业务系统调用。业务系统可通过调用溯源服务合约实现物品的相关信息的上链。上链合约用于存储各个流通环节生成的物品流通信息的存储地址和哈希值。NFT合约用于生成物品属性标识,并用于存储和维护物品属性。
下面对溯源服务合约、上链合约和NFT合约的部署进行具体说明。
1、NFT合约部署
业务系统为每类物品部署一个NFT合约,用于为物品生成NFT以及更新物品属性。
2、上链合约部署
业务系统为每类物品部署一个上链合约。上链合约实现各个流通环节中成员的信息上链、溯源查询等功能。其中,在上链合约中可以记录有各个流通环节中成员的公钥、身份信息、权限等信息。
3、溯源服务合约部署
业务系统部署一个溯源服务合约。溯源服务合约可提供物品溯源服务接口,且可以管理上链合约与NFT合约两者的关联关系。溯源服务合约可以实现包括NFT生成、物品属性更新、上链合约地址管理、溯源服务等操作。
在溯源服务合约中将每类物品对应的上链合约和NFT合约进行关联,也即将上链合约和NFT合约这两者的关联关系记录在溯源服务合约中。
在完成上述步骤201所述的系统初始配置和步骤202所述的智能合约部署后,就可以据此实现在物品流通过程中对物品的相关信息的存储,以据此实现物品的防伪溯源。具体地,参见图3,此物品防伪溯源过程可以包括如下步骤301-步骤305。
在步骤301中,业务系统生成目标物品的物品标识、电子标签标识和物品属性标识之间的关联关系。
在步骤302中,业务系统将该物品标识、该电子标签标识和该物品属性标识之间的关联关系存储至区块链系统或存储系统。
在步骤303中,业务系统生成目标物品的物品流通信息,该物品流通信息是目标物品在流通环节中所需的信息。
在步骤304中,业务系统将该物品流通信息存储至存储系统,得到该物品流通信息的存储地址,以及计算该物品流通信息的哈希值,设置目标物品的物品属性。
在步骤305中,业务系统根据该物品标识、该电子标签标识和该物品属性标识之间的关联关系,将该物品流通信息的存储地址、哈希值和该物品属性存储至区块链系统。
接下来对上述物品防伪溯源过程进行具体说明:
步骤203:生产商的物品流通信息的存储与上链。
业务系统通过生产商服务为目标物品分配物品标识、电子标签标识和物品属性标识,并将该物品标识、该电子标签标识和该物品属性标识之间的关联关系存储至区块链系统或存储系统。
1、物品标识处理
物品标识用于标识目标物品。物品标识(记为Thing ID)可以由生产商服务确定,物品标识可以包括但不限于Batch ID(产品批次)和Product ID(商品编号)等。
2、电子标签标识处理
电子标签标识用于标识与目标物品关联的电子标签。生产商服务可以读取电子标签的Tag ID,每个电子标签具有全局唯一的Tag ID,将读取到的tag ID作为电子标签标识。
3、物品属性标识处理
物品属性标识用于标识目标物品的物品属性。生产商服务可以在目标物品出厂前,根据目标物品的物品标识调用物品溯源服务接口,以通过溯源服务合约调用目标物品的物品类型对应的NFT合约,为目标物品生成一个新的NFT,返回一个具有唯一性的NFT ID,将NFT ID作为物品属性标识。利用NFT ID可以管理物品属性。
4、物品属性设置和存储
该物品属性包括目标物品的权属属性和流通状态。该权属属性包括在当前流通环节时目标物品的权属方,进一步还可以包括该权属方的权限,权属方采用权属方标识来界定,比如在生产环节可以将生产商的公钥作为权属方标识,权属方的权限可以包括但不限于所有权、销售权、管理权等。该权属属性可以如下表6所示。其中,对于表6所示的售后环节,也可以在目标物品售出后先将目标物品的权属属性设置为{预设标识,管理权},后续买家可以根据销售信息(包括但不限于购物发票等)将其修改为{消费者标识,所有权}。
该流通状态用于指示目标物品所处的流通阶段,该流通状态可以包括但不限于销售状态,该销售状态可以包括待售、新售、或已售,该销售状态可以如下表7所示。
表6
流通环节 |
权属属性 |
生产环节 |
{生产商标识,所有权} |
销售环节 |
{销售商标识,销售权} |
售后环节 |
{消费者标识,所有权} |
本申请实施例仅以上表6为例对目标物品的权属属性进行说明,上表6并不对本申请实施例构成限定。
表7
销售状态 |
状态说明 |
待售 |
表示物品尚未在市场上销售 |
新售 |
表示物品正在销售,并且为首次出售 |
已售 |
表示物品已经销售,无法再作为新品出售 |
本申请实施例仅以上表7为例对目标物品的销售状态进行说明,上表7并不对本申请实施例构成限定。
基于上述说明,生产商服务可以将目标物品的物品属性中的权属属性中的权属方设置为生产商标识、权限设置为所有权,以及将目标物品的物品属性中的流通状态设置为待售。此生产商标识可以为生产商的公钥,当然也可以为其他能够用于标识生产商的信息,本申请实施例对此不作限定。
之后,生产商服务根据NFT ID调用溯源服务合约,以通过溯源服务合约调用NFTID对应的NFT合约来将上述设置的物品属性存储至该NFT合约的存储空间中。
5、标识绑定
生产商服务可以将分配给目标物品的物品标识、电子标签标识、物品属性标识三者绑定,也即,生成目标物品的物品标识、电子标签标识和物品属性标识之间的关联关系。该关联关系可以存储于区块链系统中,具体可以存储于上链合约的存储空间中。或者,该关联关系可以存于链外的存储系统中。如此,可以确保该关联关系不可篡改。
6、生产商的物品流通信息生成
生产商服务可以在目标物品出厂前,获取目标物品的物品生产信息,该物品生产信息为目标物品在生产环节的物品流通信息。
具体地,生产商服务可以按照表2所示的格式生成物品生产信息。该物品生产信息包括但不限于:物品标识、电子标签标识、物品属性标识、生产时间、产品原材料、加工工艺、质量等级、检测/认证信息、数字证书、数字签名等。该物品生产信息还可以包含文件信息(比如图片、视频、文档等文件的信息),该文件信息可以为该文件的存储地址和哈希值,该文件存储于链外的存储系统。
7、生产商的物品流通信息存储
生产商服务可以将该物品生产信息保存在存储系统中,获得该物品生产信息的存储地址,以及计算该物品生产信息的哈希值。
8、生产商的物品流通信息上链
(1)获得上链合约地址
生产商服务可以根据目标物品的物品标识调用物品溯源服务接口,以通过溯源服务合约获得目标物品的物品类型对应的上链合约地址。
(2)物品流通信息上链
生产商服务可以根据上链合约地址调用对应的上链合约,将该物品生产信息的存储地址和哈希值保存在该上链合约的存储空间中。
(3)上链状态信息生成
区块链系统在将该物品生产信息的存储地址和哈希值保存在该上链合约的存储空间中后,也即在上链合约处理成功后,向业务系统的生产商服务返回上链交易回执(transaction receipt)。生产商服务解析上链交易回执,得到上链状态信息。该上链状态信息的格式可以如上表5所示,其中可以包括交易ID、区块高度、交易状态等。
(4)上链状态信息存储
生产商服务可以将该上链状态信息保存在存储系统中,获得该上链状态信息的存储地址,以及计算该上链状态信息的哈希值。
(5)上链状态信息上链
生产商服务将该上链状态信息的存储地址和哈希值存储至区块链系统,具体可以保存在上链合约的存储空间中。
9、生产商写电子标签
生产商服务将目标物品的物品标识、电子标签标识和物品属性标识以及物品生产信息存储至电子标签的存储空间中。具体地,可以利用电子标签读写器在电子标签的存储空间写入信息,信息内容包括但不限于以下几项信息:(1)标签信息,包括物品标识(ThingID)、电子标签标识(tag ID)、物品属性标识(NFT ID);(2)规格信息,包括不限于生产时间、产品原材料、加工工艺、质量等级、检测认证等;(3)区块链信息,包括不限于上链交易ID、区块高度、合约地址等;(4)签名信息,是指生产商利用自己的私钥对上述信息的签名。
步骤204:中间商的物品流通信息的存储与上链。
1、获得上链合约地址
中间商获得目标物品后,就会得到与目标物品关联的电子标签,然后读取电子标签中的存储信息。中间商服务可以根据电子标签中存储的物品标识调用物品溯源服务接口,以通过溯源服务合约获得目标物品的物品类型对应的上链合约地址。
2、物品流通信息生成
中间商服务可以获取目标物品的物品中间信息,该物品中间信息为目标物品在中间环节(包括但不限于物流环节)的物品流通信息。具体地,中间商服务可以按照表3所示的格式生成物品中间信息。
3、物品流通信息存储
中间商服务可以将该物品中间信息保存在存储系统中,获得该物品中间信息的存储地址,以及计算该物品中间信息的哈希值。
4、物品流通信息上链
中间商服务可以根据该上链合约地址调用对应的上链合约将该物品中间信息的存储地址和哈希值存储至对应的上链合约的存储空间中。
5、上链状态信息生成
区块链系统在将该物品中间信息的存储地址和哈希值保存在该上链合约的存储空间中后,也即在上链合约处理成功后,向业务系统的中间商服务返回上链交易回执。中间商服务解析上链交易回执,得到上链状态信息。该上链状态信息的格式可以如上表5所示,其中可以包括交易ID、区块高度、交易状态等。
6、上链状态信息存储
中间商服务可以将该上链状态信息保存在存储系统中,获得该上链状态信息的存储地址,以及计算该上链状态信息的哈希值。
7、上链状态信息上链
中间商服务将该上链状态信息的存储地址和哈希值存储至区块链系统,具体可以保存在上链合约的存储空间中。
8、物品属性设置和存储
中间商服务可以将目标物品的物品属性中的权属属性中的权属方设置为中间商标识、权限设置为所有权,以及将目标物品的物品属性中的流通状态设置为待售。此中间商标识可以为中间商的公钥,当然也可以为其他能够用于标识中间商的信息,本申请实施例对此不作限定。
之后,中间商服务根据电子标签中存储的NFT ID调用溯源服务合约,以通过溯源服务合约调用NFT ID对应的NFT合约来将上述设置的物品属性存储至该NFT合约的存储空间中。
步骤205:销售商的物品流通信息的存储与上链。
1、获得销售授权许可
销售商获得目标物品后,就会得到与目标物品关联的电子标签,然后读取电子标签中的存储信息。销售商服务可以在目标物品销售前,将目标物品的物品属性中的权属属性中的权属方设置为销售商标识、权限设置为销售权,以及将目标物品的物品属性中的流通状态设置为新售。其中,销售商标识可以为销售商的公钥,当然也可以为其他能够用于标识销售商的信息,本申请实施例对此不作限定。
之后,销售商服务可以发起物品属性更新申请以获得销售授权许可。具体地,销售商服务可以根据电子标签中存储的物品标识调用物品溯源服务接口,以通过溯源服务合约调用目标物品的物品类型对应的NFT合约,将上述设置的物品属性存储至对应的NFT合约的存储空间中。此存储至NFT合约的存储空间中的物品属性即为销售商的销售授权许可凭证。
2、销售授权许可溯源展示
销售商可以在销售阶段向用户展示物品属性,以证明自身具有销售授权许可。具体地,销售商服务在目标物品售出时,根据电子标签中存储的物品标识调用物品溯源服务接口,以通过溯源服务合约调用目标物品的物品类型对应的NFT合约,获得对应的NFT合约中存储的物品属性;将获得的物品属性作为销售授权许可凭证。之后,销售商可以将此销售授权许可凭证展示给用户,以证明自身具有销售授权许可。
由于物品属性存储于区块链,且其具有读写公开透明、不可篡改或伪造、可溯源等特点,因此,将销售授权许可凭证展示给用户,能够增强用户信任,促进销售,同时可以避免未经授权的销售。
此外,授权许可不限于销售授权许可,可以根据业务需要进行应用扩展,如在物流环节,也可以设置运输授权许可等,本申请实施例对此不作限定。
3、物品属性更新
在用户购买目标物品的情况下,销售商需要及时更新物品属性。
具体地,销售商服务在目标物品销售后,将目标物品的物品属性中的权属属性的权属方设置为消费者标识、权限设置为所有权,或者,将目标物品的物品属性中的权属属性的权属方设置预设标识、权限设置为管理权,以及将目标物品的物品属性中的流通状态设置为已售。销售商服务根据电子标签中存储的物品标识调用物品溯源服务接口,以通过溯源服务合约调用目标物品的物品类型对应的NFT合约,将上述设置的物品属性存储至对应的NFT合约的存储空间中。
值得说明的是,由于物品属性保存在NFT合约中,同时,电子标签标识和物品属性标识(即NFT ID)唯一绑定。当目标物品已出售后,销售商服务将会更新物品属性,因此,如果出现电子标签被复制或复用,则在物品防伪溯源时,通过电子标签查询物品属性即可发现目标物品已出售,并展示在防伪溯源结果中,从而有效防止了电子标签的复制或复用,实现了安全可靠的一码一物。
4、获取上链合约地址
销售商服务可以根据电子标签中存储的物品标识调用物品溯源服务接口,以通过溯源服务合约获得目标物品的物品类型对应的上链合约地址。
5、物品流通信息生成
销售商服务可以获取目标物品的物品销售信息,该物品销售信息为目标物品在销售环节的物品流通信息。具体地,销售商服务可以按照表4所示的格式生成物品销售信息。
6、物品流通信息存储
销售商服务可以将该物品销售信息保存在存储系统中,获得该物品销售信息的存储地址,以及计算该物品销售信息的哈希值。
7、物品流通信息上链
销售商服务可以根据该上链合约地址调用对应的上链合约将该物品销售信息的存储地址和哈希值存储至对应的上链合约的存储空间中。
8、上链状态信息生成
区块链系统在将该物品销售信息的存储地址和哈希值保存在该上链合约的存储空间中后,也即在上链合约处理成功后,向业务系统的销售商服务返回上链交易回执。销售商服务解析上链交易回执,得到上链状态信息。该上链状态信息的格式可以如上表5所示,其中可以包括交易ID、区块高度、交易状态等。
9、上链状态信息存储
销售商服务可以将该上链状态信息保存在存储系统中,获得该上链状态信息的存储地址,以及计算该上链状态信息的哈希值。
10、上链状态信息上链
销售商服务将该上链状态信息的存储地址和哈希值存储至区块链系统,具体可以保存在上链合约的存储空间中。
步骤206:物品流通信息溯源。
物品流通信息溯源支持云端溯源和本地自助溯源两种方式。下面分别对这两种方式进行说明。
1、云端溯源服务
(1)用户设备从电子标签中获取溯源标识和物品流通信息,溯源标识为物品标识、电子标签标识、物品属性标识中的一个或多个。
(2)用户设备向业务系统发送物品溯源请求,该物品溯源请求携带溯源标识。
进一步地,用户设备还可以将从电子标签中获取到的物品流通信息也发送给业务系统,由业务系统验证此物品流通信息的格式正确性、信息完整性和签名正确性,并向用户设备返回验证结果。
(3)业务系统根据该溯源标识从区块链系统中获取存储的物品属性,以及从区块链系统中获取存储的物品流通信息的存储地址和哈希值;将从区块链系统获取到的哈希值作为第一哈希值;根据从区块链系统获取到的物品流通信息的存储地址,从存储系统中获取物品流通信息,验证从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性;在从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性均验证通过的情况下,计算从存储系统中获取到的物品流通信息的哈希值作为第二哈希值。
进一步地,如果从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性这三个中的任意一个验证失败,则业务系统向用户设备返回溯源失败信息,用户设备可以显示该溯源失败信息。
(4)业务系统在第一哈希值与第二哈希值相同的情况下,将从区块链系统获取到的物品属性和从存储系统中获取到的物品流通信息作为物品溯源结果。
进一步地,如果第一哈希值与第二哈希值不同,则业务系统向用户设备返回溯源失败信息,用户设备可以显示该溯源失败信息。
可选的,在上述业务系统的溯源过程中还可以利用区块链系统和存储系统存储的上链状态信息的有关信息来验证上链交易的存在性、成功状态等。
(5)业务系统将物品溯源结果发送给用户设备,以供用户设备进行显示。
用户设备根据预设的条件,将物品在生产、物流、销售等流通环节相关的物品流通信息向用户进行综合展示,具体可以将物品流通信息导入到溯源客户端进行展示,所展示的内容范围可以根据实际业务需求来确定,本申请实施例对此不作限定。
2、本地自助溯源服务
用户设备可以先进行溯源用户注册,具体地,用户设备可以生成本地公私钥对,并在业务系统注册该公钥,可选的,在注册时需要将该公钥与用户设备的身份信息绑定。之后,用户设备可以进行本地溯源权限申请,具体地,用户设备可以利用自身的公钥、购物发票等信息调用溯源服务合约,申请并获得本地溯源权限。用户设备在调用溯源服务合约时所需提交的信息可以根据业务需求指定。
之后,用户设备可以通过调用溯源服务合约从区块链系统获取目标物品在生产、物流、销售等流通环节的物品流通信息的存储地址以及对应的哈希值,具体操作如下所述。
(1)用户设备从电子标签中获取溯源标识和物品流通信息,溯源标识为物品标识、电子标签标识、物品属性标识中的一个或多个。
(2)用户设备根据溯源标识从区块链系统中获取存储的物品属性,以及从区块链系统中获取存储的物品流通信息的存储地址和哈希值。
(3)用户设备将从区块链系统获取到的哈希值作为第一哈希值。
(4)用户设备根据从区块链系统获取到的物品流通信息的存储地址,从存储系统中获取物品流通信息,验证从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性。
用户设备验证从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性的操作可以通过用户设备安装的自助溯源工具或第三方工具实现。
(5)用户设备在从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性均验证通过的情况下,计算从存储系统中获取到的物品流通信息的哈希值作为第二哈希值。
进一步地,如果从存储系统获取到的物品流通信息的格式正确性、信息完整性和签名正确性这三个中的任意一个验证失败,则用户设备可以显示该溯源失败信息。
(6)用户设备在第一哈希值与第二哈希值相同的情况下,将从区块链系统获取到的物品属性和从存储系统中获取到的物品流通信息作为物品溯源结果。
用户设备比对第一哈希值和第二哈希值是否相同的操作可以通过用户设备安装的自助溯源工具或第三方工具实现。
进一步地,如果第一哈希值与第二哈希值不同,则用户设备可以显示该溯源失败信息。
(7)用户设备显示物品溯源结果。
用户设备根据预设的条件,将物品在生产、物流、销售等流通环节相关的物品流通信息向用户进行综合展示,具体可以将物品流通信息导入到溯源客户端进行展示,所展示的内容范围可以根据实际业务需求来确定,本申请实施例对此不作限定。
可选的,在上述用户设备的溯源过程中,用户设备还可以调用溯源服务合约从区块链系统和存储系统获取上链状态信息的有关信息来验证上链交易的存在性、成功状态等。
本申请实施例提供的物品防伪溯源方法,将物品流通过程中各个成员的物品流通信息存储至存储系统,并将物品流通信息的存储地址和哈希值存储在区块链系统上,保证了溯源信息的完整性、透明性、不可篡改性。
另外,通过设置物品属性,可以实时查看目标物品在流通过程中的权属属性和流通状态。通过展示物品属性,防止非授权销售,消除用户对物品来源的怀疑。
同时,通过电子标签标识与物品属性标识绑定,在目标物品已出售的情况下,通过该电子标签标识可以查询到物品属性中的流通状态是已售,如此能够防止电子标签的二次使用或复制,保证了一物一码。
图4为本申请实施例提供的一种计算机设备的结构示意图。上述的业务系统可以由该计算机设备实现。如图4所示,计算机设备4包括:处理器40、存储器41以及存储在存储器41中并可在处理器40上运行的计算机程序42,处理器40执行计算机程序42时实现上述实施例中的物品防伪溯源方法中由业务系统执行的操作。
计算机设备4可以是通用计算机设备或专用计算机设备。在具体实现中,计算机设备4可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备或嵌入式设备中的一个或多个,本申请实施例不限定计算机设备4的类型。本领域技术人员可以理解,图4仅仅是计算机设备4的举例,并不构成对计算机设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器40可以是中央处理单元(Central Processing Unit,CPU),处理器40还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器41在一些实施例中可以是计算机设备4的内部存储单元,比如计算机设备4的硬盘或内存。存储器41在另一些实施例中也可以是计算机设备4的外部存储设备,比如计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括计算机设备4的内部存储单元也包括外部存储设备。存储器41用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,比如计算机程序的程序代码等。存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在该存储器中并可在该至少一个处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。