本发明涉及一种基于区块链的追溯系统和一种尤其使能够拆分和/或合并可追溯项目的方法。
背景技术:
1、基于区块链的系统和方法越来越多用于供应链等以追溯商品和商品组件的流向,尤其使能够在发现缺陷时召回产品、在事故发生时识别故障点,并在整个供应链中给消费者信心。这导致各个领域的追溯解决方案的市场迅速扩大,这不仅限于商品。
2、例如,在医疗保健相关行业中发现了此类追溯解决方案以打击产品假冒、满足不同司法管辖区的法规遵从性和保护产品制造商、供应商等的品牌形象。
3、以前,产品条码、射频识别(rfid)标签等已被用于产品追溯,但这些并非没有自身的问题和不足。
4、基于区块链的追溯系统已经开发出来,它们解决了一些已知问题,并提供了诸如促进各方或实体之间的信息交换等好处。ibm food trusttm和originatrailtm就是两个这样的系统。
5、已知的基于区块链的追溯系统的众多问题之一是可能没有隐私保护机制,使得所有实体都可以知道一些或所有生产产品或产品组件的人,哪些实体与每个其他实体链接或集成,以及生产、供应和销售了多少。然而,这些数据中的大部分都包括所有者不愿分享的商业秘密或机密商业信息。
6、需要一种基于区块链的追溯系统和方法,它提供即使不是全部但尽可能多的数据机密性、数据可验证性、身份匿名性、身份不可链接性、支持拆分/合并可追溯项目和追溯记录的遍历。
7、发明目的
8、本发明的一个目的是提供一种新颖的基于区块链的追溯系统和方法。
9、本发明的另一目的是在某种程度上缓解或消除与已知基于区块链的追溯系统和方法相关的一个或多个问题。
10、本发明的再另一个目的是提供一种基于区块链的追溯系统和方法,它提供即使不是全部但尽可能多的数据机密性、数据可验证性、身份匿名性、身份不可链接性、支持拆分/合并可追溯项目和追溯记录的遍历。
11、上述目的通过独立权利要求的特征的组合来实现;从属权利要求公开了本发明的其他有利实施例。
12、本领域的技术人员将从以下描述中得出本发明的其他目的。因此,以上目的陈述不是穷尽的,而是只用来说明本发明的许多目的。
技术实现思路
1、在第一主要方面,本发明提供一种提供基于区块链的追溯服务的计算机实现的方法,包括以下步骤:(a)对于来自与可追踪项目的一组参数的各自的参数相关联的一组秘密s的每个秘密si,生成证明pi以提供一组证明p,所述一组参数的每个参数具有来自一组标识符i的标识符idi;(b)基于来自与所述可追踪项目的所述一组参数的各自的参数相关联的一组公共数据加密密钥pk的公共数据加密密钥pki和所述可追溯项目的信息m生成密文c;(c)对于每对标识符和公共数据加密密钥(i,pk)重复步骤(b);(d)对于所述可追溯项目的所述一组参数的每个参数的所述生成的密文c、所述各自的标识符、所述各自的秘密的散列值和所述各自的证明上传到所述区块链;(e)在所述区块链中验证所述一组已上传的证明p;和(f)一旦验证所述一组证明p,存储已验证的数据在所述区块链中。
2、已验证的数据包括可追溯项目的一组参数的每个参数的标识符、秘密的散列和秘密的密文。
3、优选地,已验证的数据被存储为可追溯项目的参数的一组标识符、秘密的散列和密文以及可追溯项目的参数的一组标识符。
4、可追溯项目可以包括产品。可追溯项目的参数可以包括用于制造产品的成分和/或组件。
5、在第二主要方面,本发明提供一种用于提供基于区块链的追溯服务的系统,所述系统包括用于存储计算机可读指令的存储器和用于执行所述计算机可读指令的处理器,使得当所述处理器执行所述计算机可读指令时,其配置计算机或服务器以执行本发明的第一主要方面的所述步骤。
6、在第三主要方面,本发明提供一种提供基于区块链的追溯服务的计算机实现方法,包括以下步骤:在与所述区块链相关联的所述实体链中的第一个实体处,将可追溯项目的一组参数的每个参数的各自的密文c、各自的标识符idi、各自的秘密si的散列值和各自的证明pi上传到所述区块链,每个参数的所述密文c是从来自与所述可追溯项目的所述一组参数的各自的参数相关联的一组公共数据加密密钥pk和所述可追溯项目的信息m生成,然后将每个参数的所述秘密si传递给所述实体链中的下一个实体;所述实体链中的所述下一个实体使用所述接收到的秘密si和每个参数的其自己的公共数据加密密钥pki来上传每个参数的对应的密文c、对应的标识符idi、所述对应的秘密si的散列值和对应的证明pi,然后将每个参数的其自己的秘密snew传递给所述实体链中的再下一个实体。
7、将每个参数的秘密si传递给实体链中的下一个实体的步骤是在离链实现的,即在区块链之外。
8、本
技术实现要素:
部分不是必然公开定义本发明的必不可少的全部特征;本发明可在于所公开特征的子组合来实现。
1.一种提供基于区块链的追溯服务的计算机实现的方法,包括以下步骤:
2.根据权利要求1所述的方法,其中,与所述可追溯项目的所述一组参数的各自的参数相关联的所述一组秘密s的每个秘密si包括随机秘密。
3.根据权利要求1所述的方法,其中,所述方法包括为所述可追溯项目的新的参数生成新的标识符idnew。
4.根据利要求3所述的方法,其中,所述方法包括为所述可追溯项目的所述新的参数生成新的秘密snew。
5.根据权利要求4所述的方法,其中,所述方法的步骤(d)包括:对于每对新的标识符和证明(i,p),将所述新的标识符idnew、所述新的秘密snew的散列值、所述对应的密文c和所述对应的证明上传到所述区块链。
6.根据权利要求5所述的方法,其中,对于链中的每个实体,将所述可追溯项目的所述一组参数的每个参数的所述新的标识idnew、所述新的秘密snew的散列值、所述对应的密文c和所述对应的证明上传到所述区块链后,将每个参数的所述新的秘密snew传递给所述实体链中的下一个实体,其中所述传递步骤是在所述区块链之外实现的。
7.根据权利要求6所述的方法,其中,所述实体链中的所述下一个实体使用所述接收到的秘密snew和其自己的公共数据加密密钥pki重复步骤(d),来生成每个参数的新的秘密snew并将每个参数的所述新的秘密snew传递给所述实体链中的再下一个实体。
8.根据权利要求7所述的方法,其中,所述实体链中的实体从所述区块链检索加密数据,并使用所有与自身和所述实体链中位于其上方的其他实体相关联的所述公共数据加密密钥pk的对应的私有数据解密密钥sk解密所述加密数据。
9.根据权利要求1所述的方法,其中,所述证明包括零知识证明。
10.一种用于提供基于区块链的追溯服务的系统,所述系统包括:
11.一种提供基于区块链的追溯服务的计算机实现方法,包括以下步骤:
12.根据权利要求11所述的方法,其中,所述实体链中的所述再下一个实体使用每个参数的所述接收到的秘密si和每个参数的其自己的公共数据加密密钥pki来将密文c、对应的标识符idi、所述对应的秘密si的散列值和对应的证明pi上传,然后将每个参数的其自己的秘密snew传递给所述实体链中的又再下一个实体。
13.根据权利要求11所述的方法,其中,所述实体链中的所述再下一个实体从所述区块链检索加密数据,并使用所有与自身和所述实体链中位于其上方的其他实体相关联的所述公共数据加密密钥pk的对应的私有数据解密密钥sk解密所述加密数据。
14.根据权利要求11所述的方法,其中,所述对应的证明包括零知识证明。