1.一种基于区块链和多重签名技术的防伪溯源方法,其特征在于:具体方法步骤如下:
A. 基于多重签名的溯源信息上链方法
A1. 生成密钥对:数字证书认证中心CA实现密钥初始化,包括生成第一层加密的超级节点公钥PKS=(IDS,Random1)和超级节点私钥SKS=(IDS,Hash(PKS)),以及第二层加密中的普通节点公钥PKN=(IDN,Random2)和普通节点私钥SKN=(IDN,Hash(PKN));
其中 为超级节点的ID,Random1为RSA算法产生超级节点公钥时生成的随机数,Hash(PKS)为由超级节点公钥PKS使用Hash函数加密算法SHA‑256生成的Hash值;IDN为普通节点的ID,Random2为RSA算法产生普通节点公钥时生成的随机数,Hash(PKN)为由普通节点公钥PKN使用Hash函数加密算法SHA‑256生成的Hash值;
A2. 若系统中有多个超级节点和多个普通节点,则重复步骤A1,生成多重密钥对,否则跳转到步骤A3;
A3. 多重签名:使用超级节点公钥PKS=(IDS,Random1)对待签名溯源信息M={m1,m2,…,mi}加密生成密文M’={m’1,m’2,…,m’i}(i=1,2,…,n),其中m’i代表对mi分组第一次加密后的结果,再使用普通节点公钥PKN=(IDN,Random2)加密生成M’’={m’’1,m’’2,…,m’’i}(i=1,
2,…,n),其中 代表对mi分组第二次加密后的结果;其中mi表示需要分别加密的分组溯源信息;
A4. 若系统中有多个超级节点和多个普通节点,则重复步骤A3,对消息执行多次签名,否则跳转到步骤A5;
A5. 消息验证:存储系统节点在数字证书认证中心CA获取普通节点N的私钥SKN=(IDN,Hash(PKN)),从数字证书认证中心CA获取普通节点N的公钥,对消息M’’签名验证,并得到结果M’;根据超级节点私钥SKS=(IDS,Hash(PKS)),从数字证书认证中心CA获取超级节点的公钥,并对消息M’进行验证;
A6. 若系统中有多个超级节点和多个普通节点,则重复步骤A5,对消息执行多次签名验证;有效信息验证签名通过后,将溯源信息M发送到溯源信息存储系统接口;
B. 基于星际文件系统的多层级链上存储:溯源信息M发送到溯源信息存储系统接口后,对溯源信息M基于星际文件系统进行存储;
步骤A3中所述M为待签名溯源信息,对溯源信息M进行分组M={m1,m2,…,mi},(i=1,2,…n);其中mi表示需要分别加密的分组溯源信息;数字证书认证中心CA生成非对称秘钥对,对每一个分组加密;加密后的溯源消息集合构成密文消息集合;
步骤A6中所述验证签名通过,具体内容为:
基于多重签名的溯源信息上链方法是一种多重非对称加密算法,若有n个签名者,验证者至少收到m个签名,才认为签名有效消息验证通过,其中n≥m≥1,并且n和m是由系统定义的参数。
2.根据权利要求1所述的基于区块链和多重签名技术的防伪溯源方法,其特征在于:步骤A1中所述的超级节点由政府、监管部门、质检部门中的一个或多个构成超级节点;
步骤A1中所述的普通节点由生产者、物流平台、仓储平台、消费者中的一个或多个构成普通节点。
3.根据权利要求1所述的基于区块链和多重签名技术的防伪溯源方法,其特征在于:步骤B中所述星际文件系统为一种包含映射功能的分布式文件系统,所述分布式文件系统可以将文件分成相同大小的若干块,再计算各块的组合从而构建文件的检索表,这样可以实现将文件块分布式存放在不同服务器集群的目的;实现永久的、去中心化保存和共享文件,通过文件内容生成独立哈希值来标识文件,相同内容的文件在系统中只会存在一份。
4.根据权利要求1所述的基于区块链和多重签名技术的防伪溯源方法,其特征在于:步骤B中所述基于星际文件系统的多层级链上存储的架构分为三层,分别为数据层、业务层、接口层,各层的功能如下:
1)数据层包含IPFS云存储集群和区块链共识节点,所述IPFS云存储集群用来存储溯源数据信息,所述区块链共识节点仅仅保存溯源数据信息的Hash特征值,这样可以极大提升区块链系统的共识速度,减少多媒体溯源数据冗余;
2)业务层主要实现溯源信息的可靠存储功能,并预留了智能合约接口;业务层接收接口层发送的数据访问请求,并向数据层中的节点发送查询数据的指令;业务层包含对用户访问数据的权限控制,对用户CA证书身份的鉴定,溯源信息的统一格式处理功能;通过智能合约模块,通过自定义合约实现数据的查询,数据上链的功能,并预留定制化开发的合约接口;
3)接口层包含溯源信息管理系统和用户访问接口,提供用户的溯源数据存储接口、查询接口、删除接口与用户交互的数据接口,并把接口获取的数据发送到业务层,由业务层对数据进行处理。
5.根据权利要求1所述的基于区块链和多重签名技术的防伪溯源方法,其特征在于:步骤B中基于星际文件系统的多层级链上存储,具体步骤如下:B1:溯源信息M发送到溯源信息存储系统接口后,接口层封装请求并向业务层发起添加溯源信息的请求Radd,添加溯源信息的请求Radd包含溯源记录信息与签名信息;
B2:业务层收到添加信息的请求Radd后,首先根据公钥Rpk验证签名以核实数据发送者的身份,若签名验证通过,则生成添加记录请求RIPFS和RBC,并发送RIPFS消息给星际文件系统存储节点IPFSP,同时发送RBC消息到区块链共识节点;
B3:星际文件系统存储节点收到RIPFS消息后,查询区块链共识节点,检索是否存在发起请求节点编号为IDN,且签名时间为t2的消息;若检索成功,则说明溯源信息记录已经同时保存在星际文件系统存储节点IPFSP和区块链共识节点上,添加溯源记录成功,并向业务层发送保存信息成功的通知;若星际文件系统存储节点没有检索到节点编号为IDN,且签名时间为t2的消息,在周期T后重新检索,若连续n个周期都没有检索到,则认为添加溯源记录失败,向业务层发送保存信息失败的通知,其中T和n由系统管理员根据实际情况设定。
6.根据权利要求5所述的基于区块链和多重签名技术的防伪溯源方法,其特征在于:步骤B1中所述加溯源信息的请求 ,具体如下:Radd=AddMsg//SigRSK(H(AddMsg));
其中,AddMsg={IDR,IPFSp,MR,Rpk,t1},包含发起请求节点R的编号IDR,星际文件系统存储节点IPFSP,图文信息溯源记录MR,发起请求节点R的公钥Rpk,发起请求的时间t1,为了防止请求的内容被篡改,将使用发起请求节点R私钥Rsk进行签名。
7.根据权利要求6所述的基于区块链和多重签名技术的防伪溯源方法,其特征在于:步骤B2中所述添加记录请求RIPFS和RBC,具体为:RIPFS={IDN, MR, t2};
RBC={IDN, Hash(Radd), t2};
其中RIPFS为包含图片、视频、文件中一种或多种格式的多媒体溯源数据信息,RBC是溯源数据信息的Hash特征值信息,星际文件系统存储节点和区块链节点分别保存不同类型的信息,这样可以极大提升区块链系统的共识速度,减少多媒体溯源数据冗余。