具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施方式中并不一定按照本申请书示出和描述的顺序来执行相应方法的步骤。在一些其他实施方式中,其方法所包括的步骤可以比本申请所描述的更多或更少。此外,本申请中所描述的单个步骤,在其他实施方式中可能被分解为多个步骤进行描述;而本申请中所描述的多个步骤,在其他实施方式中也可能被合并为单个步骤进行描述。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
有鉴于此,本申请提供了一种在用户追踪时,利用零知识证明保护用户隐私,验证用户的接触史,从而实现目标用户追踪的技术方案。
在实现时,可以由对接了追踪管理平台的客户端获取所述追踪管理平台发布的特殊人员的身份标识。
然后,与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识。
如果存在,基于预设的零知识证明算法生成所述用户为目标追踪用户的零知识证明,并将所述零知识证明发送至所述追踪管理平台,以由所述追踪管理平台基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
通过以上技术方案,一方面,通过获取追踪管理平台发布的特殊人员的身份标识,并与客户端本地存储的用户接触人员列表进行比对,可以及时了解存在的风险,并在监测到风险时进行快速响应,通知相关人员或单位尽快采取措施;另一方面,通过零知识证明验证用户为目标追踪用户,可以在保护用户社交接触隐私信息的前提下,对用户的接触史进行验证,确定用户是否真的为目标追踪用户,保证对目标用户追踪的真实可靠。
接下来对本申请实施例进行详细说明。
请参见图1,图1是本申请一示例性实施例示出的一种基于零知识证明的用户追踪方法的流程图,如图1所示,所述方法应用于客户端,所述客户端对接了追踪管理平台,包括以下步骤:
步骤101:获取所述追踪管理平台发布的特殊人员的身份标识;
步骤102:与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识;
步骤103:如果存在,基于预设的零知识证明算法生成所述用户为目标追踪用户的零知识证明,并将所述零知识证明发送至所述追踪管理平台,以由所述追踪管理平台基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
需要说明的是,上述客户端可以是被安装于移动终端上的客户端,例如用户智能手机上安装的APP,或笔记本电脑上安装的客户端软件,本申请对于何种移动终端不做限定。
另外,上述客户端可以是追踪管理平台开发的客户端,也可以是经过追踪管理平台认证的客户端,本申请对此不做限定。
而追踪管理平台可以由权威方进行控制,权威方可以是政府机构,也可以是行业组织,在本文中权威方并不限定于某个特定的组织或个人。
另外,也可以有多个权威方,分别负责不同的业务。例如,发布特殊人员身份标识的权威方,或与目标追踪用户对接的权威方,本申请对此不做限定。
在本实施例中,客户端可以获取追踪管理平台发布的特殊人员的身份标识。
其中,追踪管理平台在发布特殊人员的身份标识时,可以基于预设时间定时进行发布,也可以在确认特殊人员之后及时进行发布,本申请对此不做限定。
在一个例子中,安装了客户端的移动终端可以通过网络,获取追踪管理平台发布的特殊人员身份列表,该列表中包含了已发布的所有特殊人员的身份标识。
在另一个例子中,上述客户端也可以监听追踪管理平台的发布事件,在追踪管理平台每发布一次特殊人员的身份标识后及时进行获取。
在示出的一种实施方式中,所述特殊人员包括传染病感染者,所述用户包括潜在的传染病接触者,所述目标追踪用户包括确定的传染病接触者。
追踪管理平台可以通过发布传染病感染者的身份标识,使得用户可以通过客户端及时了解存在的风险,并确认自身是否与传染病感染者发生过接触,也即是否属于传染病接触者。其中,在确定用户是否为传染病接触者之前,可以将用户认定为潜在的传染病接触者。
而为了进一步切断传染病传播链,实行更加严格的检测,可以将特殊人员定义为传染病感染者和传染病接触者。在发布时,可以将传染病感染者和传染病接触者分别进行发布,也可以一起进行发布。
在示出的一种实施方式中,所述传染病感染者的身份标识,和/或所述传染病接触者的身份标识。
例如,特殊人员的身份标识可以是传染病感染者的身份标识;也可以是传染病接触者的身份标识;还可以是传染病感染者的身份标识和传染病接触者的身份标识。
除了上述示例的传染病追踪场景,本申请还可以用于其他多种追踪场景。例如,特殊人员可以是有过吸毒前科的人员,假设该人员出现复吸时,追踪管理平台可以通过排查接触者并进行追踪,最终找到贩毒人员并采取相应措施。对于具体为何种场景,本申请对此不做限定,本领域技术人员可以根据需要自行应用上述技术方案。
值得说明的是,除了通过上述步骤101至步骤103的技术方案确认目标追踪用户,当用户已经在线下被确认为特殊人员或目标追踪用户时,可以通过客户端直接将用户的身份标识发送至追踪管理平台,以由追踪管理平台在确定用户为目标追踪用户或特殊人员之后,将用户的身份标识进行发布。
在示出的一种实施方式中,将所述用户的身份标识发送至所述追踪管理平台,以由所述追踪管理平台在确定所述用户为目标追踪用户或所述特殊人员之后,将所述用户的身份标识进行发布。
例如,当用户在线下被确诊为传染病感染者时,可以直接将用户的身份标识发送至追踪管理平台,由追踪管理平台根据用户的确诊记录或者由工作人员进行核实确认后,将用户的身份标识作为特殊人员的身份标识进行发布。
又如,假设用户和传染病感染者认识,在追踪管理平台将传染病感染者的身份标识发布之前,就已经知晓自身属于传染病接触者,那么用户可以通过客户端上报身份标识,由追踪管理平台根据用户的接触记录或者由工作人员进行核实确认后,将用户的身份标识进行发布。
在生成上述特殊人员的身份标识,以及用户的身份标识时,为了保护隐私信息,可以调用预设的生成算法生成随机匿名标识。
例如,可以将用户的身份证号码或手机号等信息的数据摘要作为身份标识。
进一步的,为了方便追踪,梳理出接触时间线,还可以基于预设的时间周期,调用预设的生成算法为用户生成的随机匿名标识。
在示出的一种实施方式中,上述身份标识可以是由客户端基于预设的时间周期,调用预设的生成算法为用户生成的随机匿名标识。
例如,客户端可以每间隔固定时间或根据预设的时间点,调用预设的生成算法根据当前时间戳和用户相关信息,为用户生成随机匿名标识,作为用户的身份标识。
经过上述过程,用户最终的身份标识可以是以身份标识列表的形式发送和存储的。
可以理解的是,追踪管理平台在发布特殊人员的身份标识时,可以获取特殊人员使用的客户端为特殊人员生成的身份标识列表进行发布。
例如,用户在线下确诊为传染病感染者时,可以将过去几天内客户端生成的身份标识列表发送至追踪管理平台,由追踪管理平台进行发布。
在本实施例中,可以将上述获取到的特殊人员的身份标识,与客户端本地存储的用户接触人员列表进行比对,确定用户接触人员列表中是否存在与特殊人员的身份标识重合的身份标识。其中,用户接触人员列表包括与用户的接触距离达到阈值的其他用户对应的身份标识。
由前述可知,客户端可以为用户生成自身的身份标识列表,并存储身份标识列表,以及将身份标识列表发送至追踪管理平台,由于身份标识列表中的身份标识为随机匿名标识,因此可以在一定程度上保护用户隐私。
除此之外,客户端还可以生成用户接触人员列表,该用户接触人员列表记录了与用户接触距离达到阈值的其他用户对应的身份标识。
举例来说,假设追踪管理平台发布的传染病感染者的身份标识列表为SID1B、SID2B、……、SIDnB,该列表中的身份标识由传染病感染者使用的客户端为感染者生成。而用户在获取到上述传染病感染者的身份标识列表之后,与用户使用的客户端本地存储的用户接触人员列表进行比对,将两个列表进行交叉匹配。
继续举例,假设用户接触人员列表为SID1C、SID2B、SID3C、SID5D……,则可以确定出SID2B为两个列表中都存在的身份标识,说明用户与传染病感染者有过接触。然后,客户端可以通知用户与传染病感染者有过接触,并提示用户采取隔离措施,以及触发后续步骤103,告知追踪管理平台用户存在接触史,并在生成零知识证明之后向追踪管理平台发送。
客户端在构建上述用户接触人员列表时,可以基于追踪的严格程度,由本领域技术人员对接触的判定规则进行设定。
优选的,在示出的一种实施方式中,所述客户端可以通过近距离无线通讯技术与其他用户的客户端建立通信;接收所述其他用户的客户端发送的其他用户的身份标识;当所述用户与所述其他用户的接触距离在预设的第一距离阈值范围内时,将所述其他用户的身份标识添加至所述客户端本地存储的所述用户接触人员列表;或者,当所述用户与所述其他用户的接触距离在预设的第二距离阈值范围内时,且接触时长达到预设的时间阈值时,将所述其他用户的身份标识添加至所述客户端本地存储的所述用户接触人员列表;其中,所述第一距离阈值小于所述第二距离阈值。
其中,本申请对采用何种近距离无线通讯技术不做限制,本领域技术人员可以根据实际需求采用基于蓝牙技术、无线保真技术、RFID非接触式射频识别技术或NFC近场通信技术等。
举例来说,请参见图2,图2是本申请一示例性实施例示出的一种基于零知识证明的用户追踪方法的示意图。其中,假设用户A所在客户端为客户端A,用户B、用户C和用户D对应的客户端分别为客户端B、客户端C和客户端D,并且上述四个客户端所在的设备都开启了自身的蓝牙功能。
如图2所示,假设客户端B、客户端C和客户端D都处于客户端A所在设备的蓝牙最大通信距离内,则客户端A可以和客户端B、客户端C和客户端D建立通信,并分别接收客户端B、客户端C和客户端D发送的用户B、用户C和用户D对应的身份标识。
接下来,客户端A需要基于预设的接触判定规则,确定是否将用户B、用户C和用户D对应的身份标识添加至用户A的接触人员列表。
如图2所示,由于用户A与用户B的接触距离在预设的第一距离阈值范围内,因此可以将用户B的身份标识SID1B添加至用户A的客户端本地存储的所述用户接触人员列表。
由于用户A与用户C的接触距离在预设的第二距离阈值范围内,并且因为第一距离阈值小于第二距离阈值,所以还可以追加判断用户A与用户C的接触距离是否达到了预设的时间阈值,如果是,则可以将用户C的身份标识SID2C添加至用户A的客户端本地存储的所述用户接触人员列表。
由于用户D在用户A的第二距离阈值范围之外,因此虽然客户端A可以和客户端D建立通信,但是由于用户D不符合接触判定规则,所以不属于用户A的接触人员,用户C的身份标识SID3D无需添加至用户A的接触人员列表。
因此,图2所示的用户A的接触人员列表包含的身份标识为SID1B和SID2C。
同样的,在示出的一种实施方式中,所述客户端可以向所述其他用户的客户端发送所述用户的身份标识,以由所述其他用户的客户端基于所述用户与所述其他用户的接触距离,确定是否存储所述用户的身份标识。
继续举例,如图2所示,客户端A也可以向客户端B、客户端C和客户端D发送用户A的身份标识SID1A,以由客户端B、客户端C和客户端D分别基于上述客户端A的判断过程,确定是否存储用户A的身份标识,具体过程参考上文即可,在此不做赘述。
另外,客户端在通过近距离无线通讯技术与其他用户的客户端建立通信时,还可以记录建立通信连接的时间点,以及断开通信连接的时间点。
可以理解的是,如图2所示,客户端B、客户端C和客户端D三者之间也可以彼此建立通信连接,具体过程参见上述客户端A的描述即可,在此不再赘述。
值得说明的是,由于用户接触人员列表中记录了用户社交活动信息,属于用户隐私信息,同样需要进行保护。
在本实施例中,响应于上述步骤102在客户端本地存储的用户接触人员列表中查找到特殊人员的身份标识,触发后续步骤103。
在本实施例中,可以基于预设的零知识证明算法生成所述用户为目标追踪用户的零知识证明,并将所述零知识证明发送至所述追踪管理平台,以由所述追踪管理平台基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
其中,零知识证明(Zero-Knowledge Proof)是一种基于概率的验证方法,是指证明者让验证者相信某个断言为真,且整个过程不泄露“断言为真”之外的任何知识。
也就是说,零知识证明是指证明者能够在不向验证者提供任何有用的知识的情况下,通过提供可公开的信息使验证者相信某个论断是正确的。顾名思义,零知识证明,就是既可以证明论断正确,又不泄露任何知识,即提供给外界的知识为零。
在实际应用中,开发人员可以通过零知识证明开发工具,获得用于供证明者生成证明的证明生成程序,以及用于供验证者验证证明的证明验证程序。
例如,客户端作为证明者,可以将隐私信息和可公开信息输入至证明生成程序,生成用户为目标追踪用户的零知识证明,并将零知识证明发送至追踪管理平台。而追踪管理平台作为验证者,可以获取客户端提供的可公开信息,将可公开信息输入至证明验证程序,实现对零知识证明的验证。在上述过程中,客户端不透露任何知识即可让追踪管理平台相信用户为目标追踪用户,也即特殊人员的身份标识存在于用户的接触人员列表中。
其中,为了防止对可公开信息进行伪造,保证可公开信息的真实性,客户端可以在生成零知识证明之前,就将可公开信息发送至追踪管理平台进行存储。进一步的,为了保证可公开信息传输的完整性,同时保证检验的效率,可以将可公开信息以默克尔树的形式存储。
值得说明的是,为了保护用户社交活动隐私信息,可以将基于客户端本地存储的用户接触人员列表构造第二默克尔树作为可公开信息发送至追踪管理平台。
在示出的一种实施方式中,可以基于所述客户端本地存储的用户的身份标识列表构造第一默克尔树;其中,所述用户的身份标识列表包括所述用户的客户端为所述用户生成的随机匿名标识的集合;基于所述客户端本地存储的用户接触人员列表构造第二默克尔树;将所述第一默克尔树和所述第二默克尔树发送至所述追踪管理平台进行存储;其中,所述追踪管理平台还存储了基于所述特殊人员的身份标识列表构造的所述第三默克尔树;所述特殊人员的身份标识列表包括所述特殊人员的客户端为所述特殊人员生成的随机匿名标识的集合。
举例来说,客户端可以按照预设的规则发送至管理平台进行存储,例如可以定时将上述第一默克尔树和第二默克尔树发送至追踪管理平台进行存储,也可以响应于预设的不同逻辑,将第一默克尔树和第二默克尔树分别发送至追踪管理平台进行存储,本申请对此不做限定,本领域技术人员可以根据需要自行设置。
另外,关于如何构造上述默克尔树,本领域技术人员容易实现,本申请对此不做赘述。
在一个例子中,根据前述可知,当用户在线下确诊为传染病感染者时,可以将过去几天内客户端生成的用户自身的身份标识列表发送至追踪管理平台,由追踪管理平台根据预先存储的基于用户身份标识列表构造第一默克尔树进行比对,核实用户发送的身份标识列表是否真实,并在确认用户为传染病感染者之后,将用户的身份标识列表作为特殊人员的身份标识列表进行发布。
在另一个例子中,根据前述可知,当用户确认传染病感染者的身份标识存在于用户接触人员列表中时,需要生成用户为传染病接触者的零知识证明。而为了验证作为可公开信息的第二默克尔树和第三默克尔树的真实性,追踪管理平台可以将客户端提供的第二默克尔树和第三默克尔树,与追踪管理平台预先存储的第二默克尔树和第三默克尔树进行比对。其中,客户端也可以仅提供第二默克尔树的根值和第三默克尔树的根值,由追踪管理平台计算预先存储的第二默克尔树和第三默克尔树分别对应的根值,并进行比对来确认作为可公开信息的第二默克尔树和第三默克尔树的真实性。
为了提高零知识证明的效率,可以基于上述默克尔树做默克尔证明,即证明步骤102中重合的身份标识分别存在于第二默克尔树和第三默克尔树中,故零知识证明可以包括所述特殊人员的身份标识存在于所述第二默克尔树的第一默克尔证明,以及所述特殊人员的身份标识存在于所述第三默克尔树的第二默克尔证明。
在示出的一种实施方式中,上述零知识证明可以包括默克尔证明。
进一步的,可以将所述用户接触人员列表、所述特殊人员的身份标识列表、所述第二默克尔树以及所述第三默克尔树输入至所述预设的零知识证明算法对应的证明生成程序,生成所述用户为目标追踪用户的零知识证明;其中,所述零知识证明包括所述特殊人员的身份标识存在于所述第二默克尔树的第一默克尔证明,以及所述特殊人员的身份标识存在于所述第三默克尔树的第二默克尔证明;确定基于所述用户接触人员列表构造的所述第二默克尔树的根值;确定基于所述特殊人员的身份标识列表构造的所述第三默克尔树的根值;将所述零知识证明、所述第二默克尔树的根值和第三默克尔树的根值发送至所述追踪管理平台。
举例来说,用户接触人员列表ListC-A为SID1C、SID2B、SID3C、SID5D……,基于用户接触人员列表构造的第二默克尔树为MerkleRootC-A,特殊人员的身份标识列表ListS-B为SID1B、SID2B、……、SIDnB,基于特殊人员的身份标识列表构造的第三默克尔树为MerkleRootS-B。
那么客户端可以将用户接触人员列表ListC-A、特殊人员的身份标识列表ListS-B、第二默克尔树MerkleRootC-A以及第三默克尔树输入MerkleRootS-B至预设的零知识证明算法对应的证明生成程序ProofGen,生成所述用户为目标追踪用户的零知识证明Proof,即Proof=ProofGen(ListC-A,ListS-B,MerkleRootC-A,MerkleRootS-B)。
然后,客户端可以确定MerkleRootC-A的根值,以及MerkleRootS-B的根值,并发送至追踪管理平台。
在示出的一种实施方式中,追踪管理平台可以基于所述接收到的第二默克尔树的根值和第三默克尔树的根值,确定是否存在预先存储的所述第二默克尔树和所述第三默克尔树;如果存在,将所述零知识证明、所述第二默克尔树的根值和第三默克尔树的根值输入至所述预设的零知识证明算法对应的证明验证程序,验证所述零知识证明的正确性。
继续举例,追踪管理平台在接收到上述零知识证明Proof、MerkleRootC-A的根值以及MerkleRootS-B的根值之后,可以先对MerkleRootC-A的根值和MerkleRootS-B的根值进行校验,确定是否预先存储的默克尔树中是否存在根值相同的默克尔树,验证客户端发送的默克尔树的根值的可靠性。
然后可以验证零知识证明Proof的正确性,将所述零知识证明、MerkleRootC-A的根值和MerkleRootS-B的根值,输入至所述预设的零知识证明算法对应的证明验证程序ProofVerify,确定对零知识证明验证的结果Result,即Result=ProofVerify(Proof,MerkleRootC-A,MerkleRootS-B)。
其中,如果Result为True则说明用户与特殊人员有过接触,属于目标追踪用户,需要采取进一步措施,而如果Result为False则说明用户并非目标追踪用户。
需要说明的是,对于默克尔证明的具体原理,在此不做赘述,这并不影响本领域技术人员根据本说明书实现本申请要保护的技术方案。
除了可以将上述默克尔树预先存储于追踪管理平台,还可以利用区块链的特性,将上述技术方案中涉及的数据上链存证,以及从链上获取相关数据。
进一步的,在示出的一种实施方式中,上述客户端以及追踪管理平台可以接入区块链。
上述客户端可以将第一默克尔树和第二默克尔树,分别发布至区块链进行存证,以由追踪管理平台从区块链上获取第一默克尔树和第二默克尔树。
同样的,追踪管理平台可以将特殊人员的身份标识,以及第三默克尔树分别发布至区块链进行存证。
可以理解的是,上述区块链可以存证客户端发布的第一默克尔树和第二默克尔树;还可以存证追踪管理平台发布的特殊人员的身份标识,以及第三默克尔树。
请参见图3,图3是本申请一示例性实施例示出的一种基于零知识证明的用户追踪方法的应用场景示意图。
其中,客户端可以按照预设的规则或时间周期,将第一默克尔树和第二默克尔树上链存证。其中,第一默克尔树基于为用户生成的随机匿名标识构成的用户身份标识列表构造,第二默克尔树基于客户端本地存储的用户接触人员列表构造。
如图3所示,区块链上存证了用户A对应的第一默克尔树MerkleRootA1和第二默克尔树MerkleRootA2,以及用户B对应的第一默克尔树MerkleRootB1和第二默克尔树MerkleRootB2。另外,区块链上还存证了追踪管理平台发布的特殊人员的身份标识列表ListC1,以及ListC1对应的第三默克尔树MerkleRootC3。
在一个例子中,当用户A在线下确诊为传染病感染者时,可以通过客户端将过去几天的用户身份标识列表ListA1发送给追踪管理平台,追踪管理平台可以从链上获取该用户对应的默克尔树MerkleRootA1,通过将用户身份标识列表ListA1与链上获取的默克尔树MerkleRootA1进行比对,确定用户发送的身份标识列表ListA1的真实性,并在确认真实性之后将用户的身份标识列表ListA1作为特殊人员的身份标识列表发布至区块链。
在另一个例子中,用户B可以通过客户端可以监听区块链上的发布事件,从链上获取追踪管理平台发布的特殊人员的身份标识列表ListC1,并与本地存储的用户接触人员列表ListB2进行比对,假设比对结果为存在重合的身份标识SID5C,那么用户B可以通过客户端生成用户B为目标追踪用户的零知识证明。
接下来继续以用户B为例,对零知识证明的生成和验证过程进行描述。
在生成零知识证明时,用户B通过客户端还可以从链上获取追踪管理平台发布的特殊人员的身份标识列表ListC1对应的第三默克尔树MerkleRootC3,并将用户B的接触人员列表ListB2、特殊人员的身份标识列表ListC1、用户B对应的第二默克尔树MerkleRootB2以及特殊人员对应的第三默克尔树MerkleRootC3输入至预设的零知识证明算法对应的证明生成程序,生成用户B为目标追踪用户的零知识证明。
其中,该零知识证明包含两个默克尔证明,分别为特殊人员的身份标识SID5C存在于第二默克尔树MerkleRootB2的第一默克尔证明,和特殊人员的身份标识SID5C存在于第三默克尔树MerkleRootC3的第二默克尔证明。即,特殊人员的身份标识不仅存在与用户B接触人员列表ListB2中,还存在于特殊人员的身份标识列表ListC1中。
进一步的,可以将生成的零知识证明和MerkleRootB2的根值,以及MerkleRootC3的根值发送至追踪管理平台,以由追踪管理平台分别进行数据的可靠性验证和对零知识证明的验证。
追踪管理平台可以响应于接收到的MerkleRootB2的根值和MerkleRootC3的根值,从链上获取MerkleRootB2和MerkleRootC3,并计算MerkleRootB2的根值和MerkleRootC3的根值,将计算的结果和接收到的根值分别进行比对,当比对通过时,说明数据真实可靠,可以继续进行零知识证明的验证,而当比对未通过,说明数据不可靠,无需进行零知识证明。
然后,在验证零知识证明时,追踪管理平台可以将零知识证明、MerkleRootB2的根值和MerkleRootC3的根值,输入至预设的零知识证明算法对应的证明验证程序,验证零知识证明的正确性。
如果上述零知识证明验证通过,则可以确认用户B为目标追踪用户。
进一步的,追踪管理平台可以要求用户B上传用户身份标识列表ListB1,并获取链上存证的用户B对应的默克尔树MerkleRootB1进行比对,在比对成功之后,将用户B的身份标识列表ListB1作为特殊人员的身份标识列表进行发布。
在以上技术方案中,一方面,通过获取追踪管理平台发布的特殊人员的身份标识,并与客户端本地存储的用户接触人员列表进行比对,可以及时了解存在的风险,并在监测到风险时进行快速响应,通知相关人员或单位尽快采取措施;另一方面,通过零知识证明验证用户为目标追踪用户,可以在保护用户社交接触隐私信息的前提下,对用户的接触史进行验证,确定用户是否真的为目标追踪用户,保证对目标用户追踪的真实可靠。
请参见图4,图4是本申请一示例性实施例示出的另一种基于零知识证明的用户追踪方法的流程图,如图4所示,所述方法应用于追踪管理平台,所述追踪管理平台对接了客户端,包括以下步骤:
步骤401:发布特殊人员的身份标识,以由所述客户端在获取到所述特殊人员的身份标识时,与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识;
步骤402:接收所述客户端基于预设的零知识证明算法生成的所述用户为目标追踪用户的零知识证明,基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
在本实施例中,追踪管理平台可以发布特殊人员的身份标识,以由所述客户端在获取到所述特殊人员的身份标识时,与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识。
其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识。
在示出的一种实施方式中,上述追踪管理平台可以接收所述用户的身份标识,在确定所述用户为目标追踪用户或所述特殊人员之后,将所述用户的身份标识进行发布。
在示出的一种实施方式中,所述特殊人员包括传染病感染者,所述用户包括潜在的传染病接触者,所述目标追踪用户包括确定的传染病接触者。
在示出的一种实施方式中,所述特殊人员的身份标识,包括:
所述传染病感染者的身份标识,和/或所述传染病接触者的身份标识。
在示出的一种实施方式中,所述身份标识包括所述客户端基于预设的时间周期,调用预设的生成算法为所述用户生成的随机匿名标识。
在示出的一种实施方式中,上述追踪管理平台可以存储所述客户端发送的第一默克尔树和第二默克尔树。
其中,所述第一默克尔树基于所述客户端本地存储的用户的身份标识列表构造;所述用户的身份标识列表包括所述用户的客户端为所述用户生成的随机匿名标识的集合;所述第二默克尔树基于所述客户端本地存储的用户接触人员列表构造。
进一步的,上述追踪管理平台还可以存储基于所述特殊人员的身份标识列表构造的所述第三默克尔树。
其中,所述特殊人员的身份标识列表包括所述特殊人员的客户端为所述特殊人员生成的随机匿名标识的集合。
在本实施例中,追踪管理平台可以接收所述客户端基于预设的零知识证明算法生成的所述用户为目标追踪用户的零知识证明,基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
在示出的一种实施方式中,所述零知识证明包括默克尔证明。
进一步的,上述追踪管理平台可以接收所述零知识证明、所述第二默克尔树的根值,以及第三默克尔树的根值。
其中,所述零知识证明包括所述特殊人员的身份标识存在于所述第二默克尔树的第一默克尔证明,以及所述特殊人员的身份标识存在于所述第三默克尔树的第二默克尔证明;所述第二默克尔树的根值基于所述用户接触人员列表构造的所述第二默克尔树确定;所述第三默克尔树的根值基于所述特殊人员的身份标识列表构造的所述第三默克尔树确定。
在示出的一种实施方式中,上述追踪管理平台可以基于所述接收到的第二默克尔树的根值和第三默克尔树的根值,确定是否存在预先存储的所述第二默克尔树和所述第三默克尔树;如果存在,将所述零知识证明、所述第二默克尔树的根值和第三默克尔树的根值输入至所述预设的零知识证明算法对应的证明验证程序,验证所述零知识证明的正确性。
在示出的一种实施方式中,上述追踪管理平台可以接收所述用户的身份标识列表,在确定所述用户为目标追踪用户或所述特殊人员之后,基于所述接收到的所述用户的身份标识列表构建默克尔树,并与预先存储的所述第一默克尔树进行比较;若一致,将所述用户作为目标追踪用户或所述特殊人员,发布所述用户的身份标识列表。
在示出的一种实施方式中,所述客户端以及所述追踪管理平台可以接入区块链;所述区块链上存证了所述客户端发布的所述第一默克尔树和所述第二默克尔树。
进一步的,所述追踪管理平台可以将所述特殊人员的身份标识,以及所述第三默克尔树分别发布至所述区块链进行存证。
在以上技术方案中,一方面,通过获取追踪管理平台发布的特殊人员的身份标识,并与客户端本地存储的用户接触人员列表进行比对,可以及时了解存在的风险,并在监测到风险时进行快速响应,通知相关人员或单位尽快采取措施;另一方面,通过零知识证明验证用户为目标追踪用户,可以在保护用户社交接触隐私信息的前提下,对用户的接触史进行验证,确定用户是否真的为目标追踪用户,保证对目标用户追踪的真实可靠。
上述应用于追踪管理平台的基于零知识证明的用户追踪方法的具体细节,在之前描述的应用于客户端的基于零知识证明的用户追踪方法流程中进行了详细的描述,本领域技术人员可以参考关于应用于客户端的基于零知识证明的用户追踪方法的相关描述,此处不再赘述。
结合上述图3中提供的一种基于零知识证明的用户追踪方法的应用场景示意图,和图2、图4提供的基于零知识证明的用户追踪方法的流程图,请参见图5,图5是本申请一示例性实施例示出的一种基于零知识证明的用户追踪方法的流程示意图,该方法可应用于传染病接触者追踪场景中,包括以下步骤:
其中,客户端A可以用于支持并执行图5中所示的方法流程步骤S501、S502、S505和S508,客户端B可以用于支持并执行图5中所示的方法流程步骤,S503、S504、S506和S512-S515,传染病追踪管理平台可以用于支持并执行图5中所示的方法流程步骤S507、S509-S511和S516-S522。
下面将结合附图5从客户端A、客户端B和传染病追踪管理平台三端进行描述。如图5所示,假设用户A为线下确诊的感染者,而用户B为通过线上追踪确认到的传染病接触者。
请参见步骤S501-S504,客户端A和客户端B分别会在本地生成用户身份标识列表和用户接触人员列表。
由前述可知,客户端可以为用户生成两个身份标识列表,一个是用户身份标识列表,可以记录客户端基于预设的时间周期,调用预设的生成算法为用户生成的随机匿名标识;另一个是接触人员列表,可以记录与用户接触距离达到阈值的其他用户对应的身份标识。
步骤S501:生成用户A的身份标识列表ListA1。
步骤S502:生成用户A的接触人员列表ListA2。
步骤S503:生成用户B的身份标识列表ListB1。
步骤S504:生成用户B的接触人员列表ListB2。
其中,用户身份标识列表的生成规则可以参见前述实施例的描述,而接触人员列表的生成规则可以参见图2示出的实施例的描述,在此不再赘述。
请参见步骤S505-S507,客户端A、客户端B和传染病追踪管理平台可以向区块链发起发布交易,将相应的数据发送至区块链,以由区块链响应于发布交易,将接收到的数据发布至区块链中进行存证。
其中,区块链上还可以部署智能合约,该智能合约用于管理上述数据,区块链可以响应于上述发布交易,调用智能合约中的发布逻辑,将上述数据发布至区块链中进行存证。
步骤S505:客户端A可以将MerkleRootA1和MerkleRootA2上链存证。
其中,MerkleRootA1由客户端A基于ListA1构造,MerkleRootA2由客户端A基于ListA2构造。
步骤S506:客户端B可以将MerkleRootB1和MerkleRootB2上链存证。
其中,MerkleRootB1由客户端B基于ListB1构造,MerkleRootB2由客户端B基于ListB2构造。
值得说明的是,客户端A和客户端B可以基于预设的时间周期将数据上链存证,也可以响应于预设的触发规则将数据上链存证。
步骤S507:传染病追踪管理平台可以将ListC1,以及ListC1对应的MerkleRootC3上链存证。
对于传染病追踪管理平台来说,可以在基于预设时间定时进行发布传染病感染者的身份标识列表ListC1,也可以在确认传染病感染者之后及时进行发布ListC1,并且在发布ListC1的同时,可以将ListC1对应的MerkleRootC3一同上链存证。
请参见步骤S508-S511,描述了用户A在线下确诊传染病之后的过程。
步骤S508:用户A在线下确诊传染病之后,可以将ListA1发送至传染病追踪管理平台进行发布,但传染病追踪管理平台在发布之前会对ListA1的可靠性进行校验。
步骤S509:传染病追踪管理平台可以从区块链上获取MerkleRootA1。
步骤S510:传染病追踪管理平台可以将ListA1和MerkleRootA1进行比对,确定用户A发送的ListA1的可靠性。
步骤S511:传染病追踪管理平台可以在比对成功后将ListA1发布至区块链。
请参见步骤S512-S515,描述了用户B在线上监测传染病感染者的身份标识,并在确认自身与感染者发生接触后生成零知识证明的过程。
步骤S512:客户端B可以获取传染病追踪管理平台发布的感染者的ListC1,还可以获取ListC1对应的MerkleRootC3。
上述区块链可以部署智能合约,并在传染病追踪管理平台发布感染者的ListC1之后生成传染病感染者发布事件,客户端B可以监听并响应于该传染病感染者发布事件,获取感染者的ListC1。
步骤S513:客户端B可以将获取到的感染者的ListC1与用户B的接触人员列表ListB2进行匹配,确定ListC1中是否存在与ListB2重合的感染者的身份标识。
步骤S514:生成用户B为目标追踪用户的零知识证明。
由前述可知,当ListC1和ListB2中存在重合的感染者的身份标识时,可以将从链上获取到的ListC1和MerkleRootC3,以及客户端B本地存储的ListB2和MerkleRootB2输入至预设的零知识证明算法对应的证明生成程序,生成用户B为目标追踪用户的零知识证明。
步骤S515:客户端B可以向传染病追踪管理平台发送零知识证明、MerkleRootB2的根值和MerkleRootC3的根值。
由前述可知,由于MerkleRootB2和MerkleRootC3作为生成零知识证明的公开参数,可以作为可公开信息发送至验证方用于验证,而出于隐私保护的考虑,基于默克尔树的特性,可以计算出MerkleRootB2和MerkleRootC3分别对应的根值用于验证。
接下来请参见步骤S516-S518,描述了传染病追踪管理平台对上述零知识证明进行验证的过程。
在接收到上述零知识证明、MerkleRootB2的根值和MerkleRootC3的根值之后,传染病追踪管理平台可以先对MerkleRootB2的根值和MerkleRootC3的根值的可靠性进行验证。
步骤S516:获取MerkleRootB2和MerkleRootC3。
步骤S517:将MerkleRootB2和MerkleRootB2的根值进行比对,以及将MerkleRootC3和MerkleRootC3的根值进行比对。
如果比对都成功,说明用户B发送的数据是真实可靠的,没有经过伪造。
步骤S518:传染病追踪管理平台对上述零知识证明进行验证。
传染病追踪管理平台可以将零知识证明、MerkleRootB2的根值和MerkleRootC3的根值,输入至预设的零知识证明算法对应的证明验证程序,验证零知识证明的正确性。
接下来请参见步骤S519-S522,描述了零知识证明验证通过之后的过程。
步骤S519:获取ListB1。
传染病追踪管理平台在确认用户为传染病接触者,也就是目标追踪用户之后,可以通知用户B将ListB1进行上传。
接下来,类似于步骤S509-S511,传染病追踪管理平台需要对用户B上传的ListB1进行可靠性验证,并在验证通过之后将ListB1进行发布。
步骤S520:传染病追踪管理平台可以从区块链上获取MerkleRootB1。
步骤S521:传染病追踪管理平台可以将ListB1和MerkleRootB1进行比对,确定用户B发送的ListB1的可靠性。
步骤S522:传染病追踪管理平台可以在比对成功后将ListB1发布至区块链。
需要说明的是,传染病追踪管理平台还可以将传染病感染者和传染病接触者作为不同的类型进行发布,并设置不同的优先级以便于分配用于追踪的资源。另外,对于传染病感染者还可以根据病情等级设置警告等级,而对于传染病接触者可以根据接触程度不同进行划分,本申请对此不做限定,本领域技术人员可以根据需要自行选择。
可以理解的是,通过划分不同的发布类型,不仅可以有利于传染病追踪管理平台对资源的调配,还可以使得用户可以根据不同的风险程度采取不同程度的应对措施。进一步的,还可以更有力的对传播链进行溯源,以及及时发现具有更强传播能力的变异病毒。
在以上技术方案中,一方面,通过获取追踪管理平台发布的特殊人员的身份标识,并与客户端本地存储的用户接触人员列表进行比对,可以及时了解存在的风险,并在监测到风险时进行快速响应,通知相关人员或单位尽快采取措施;另一方面,通过零知识证明验证用户为目标追踪用户,可以在保护用户社交接触隐私信息的前提下,对用户的接触史进行验证,确定用户是否真的为目标追踪用户,保证对目标用户追踪的真实可靠。
与上述方法实施例相对应,本申请还提供了装置的实施例。
与上述方法实施例相对应,本申请还提供了一种基于零知识证明的用户追踪装置的实施例。本申请的基于零知识证明的用户追踪装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请一示例性实施例示出的一种的基于零知识证明的用户追踪装置所在电子设备的硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参见图7,图7是本申请一示例性实施例示出的一种基于零知识证明的用户追踪装置的框图,如图7所示,所述基于零知识证明的用户追踪装置700可以应用在前述图6所示的电子设备中,包括:
获取单元701,获取所述追踪管理平台发布的特殊人员的身份标识;
比对单元702,与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识;
生成单元703,如果存在,基于预设的零知识证明算法生成所述用户为目标追踪用户的零知识证明,并将所述零知识证明发送至所述追踪管理平台,以由所述追踪管理平台基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
其中,上述客户端对接了追踪管理平台。
在一实施例中,所述装置700还包括:
发布单元704,将所述用户的身份标识发送至所述追踪管理平台,以由所述追踪管理平台在确定所述用户为目标追踪用户或所述特殊人员之后,将所述用户的身份标识进行发布。
在一实施例中,所述特殊人员包括传染病感染者,所述用户包括潜在的传染病接触者,所述目标追踪用户包括确定的传染病接触者。
在一实施例中,所述特殊人员的身份标识,包括:
所述传染病感染者的身份标识,和/或所述传染病接触者的身份标识。
在一实施例中,所述身份标识包括所述客户端基于预设的时间周期,调用预设的生成算法为所述用户生成的随机匿名标识。
在一实施例中,所述装置700还包括:
通信单元705,所述客户端通过近距离无线通讯技术与其他用户的客户端建立通信;
接收单元706,接收所述其他用户的客户端发送的其他用户的身份标识;
第一判断单元707,当所述用户与所述其他用户的接触距离在预设的第一距离阈值范围内时,将所述其他用户的身份标识添加至所述客户端本地存储的所述用户接触人员列表;或者,
第二判断单元708,当所述用户与所述其他用户的接触距离在预设的第二距离阈值范围内时,且接触时长达到预设的时间阈值时,将所述其他用户的身份标识添加至所述客户端本地存储的所述用户接触人员列表;其中,所述第一距离阈值小于所述第二距离阈值。
在一实施例中,所述装置700还包括:
第一发送单元709,所述客户端向所述其他用户的客户端发送所述用户的身份标识,以由所述其他用户的客户端基于所述用户与所述其他用户的接触距离,确定是否存储所述用户的身份标识。
在一实施例中,所述装置700还包括:
第一构造单元710,基于所述客户端本地存储的用户的身份标识列表构造第一默克尔树;其中,所述用户的身份标识列表包括所述用户的客户端为所述用户生成的随机匿名标识的集合;
第二构造单元711,基于所述客户端本地存储的用户接触人员列表构造第二默克尔树;
第二发送单元712,将所述第一默克尔树和所述第二默克尔树发送至所述追踪管理平台进行存储;其中,所述追踪管理平台还存储了基于所述特殊人员的身份标识列表构造的所述第三默克尔树;所述特殊人员的身份标识列表包括所述特殊人员的客户端为所述特殊人员生成的随机匿名标识的集合。
在一实施例中,所述零知识证明包括默克尔证明;
所述生成单元703进一步:
将所述用户接触人员列表、所述特殊人员的身份标识列表、所述第二默克尔树以及所述第三默克尔树输入至所述预设的零知识证明算法对应的证明生成程序,生成所述用户为目标追踪用户的零知识证明;其中,所述零知识证明包括所述特殊人员的身份标识存在于所述第二默克尔树的第一默克尔证明,以及所述特殊人员的身份标识存在于所述第三默克尔树的第二默克尔证明;
确定基于所述用户接触人员列表构造的所述第二默克尔树的根值;
确定基于所述特殊人员的身份标识列表构造的所述第三默克尔树的根值;
将所述零知识证明、所述第二默克尔树的根值和第三默克尔树的根值发送至所述追踪管理平台。
在一实施例中,所述客户端以及所述追踪管理平台接入了区块链;所述区块链上存证了所述追踪管理平台发布的所述特殊人员的身份标识,以及所述第三默克尔树;
所述装置700还包括:
上链单元713,将所述客户端将所述第一默克尔树和所述第二默克尔树,分别发布至所述区块链进行存证,以由所述追踪管理平台从所述区块链上获取所述第一默克尔树和所述第二默克尔树。
请参见图8,图8是本申请一示例性实施例示出的另一种基于零知识证明的用户追踪装置的框图,如图8所示,所述基于零知识证明的用户追踪装置800可以应用在前述图6所示的电子设备中,包括:
发布单元801,发布特殊人员的身份标识,以由所述客户端在获取到所述特殊人员的身份标识时,与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识;
验证单元802,接收所述客户端基于预设的零知识证明算法生成的所述用户为目标追踪用户的零知识证明,基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
其中,所述追踪管理平台对接了客户端。
在一实施例中,所述装置800还包括:
接收单元803,接收所述用户的身份标识,在确定所述用户为目标追踪用户或所述特殊人员之后,将所述用户的身份标识进行发布。
在一实施例中,所述特殊人员包括传染病感染者,所述用户包括潜在的传染病接触者,所述目标追踪用户包括确定的传染病接触者。
在一实施例中,所述特殊人员的身份标识,包括:
所述传染病感染者的身份标识,和/或所述传染病接触者的身份标识。
在一实施例中,所述身份标识包括所述客户端基于预设的时间周期,调用预设的生成算法为所述用户生成的随机匿名标识。
在一实施例中,所述装置800还包括:
第一存储单元804,存储所述客户端发送的第一默克尔树和第二默克尔树;其中,所述第一默克尔树基于所述客户端本地存储的用户的身份标识列表构造;所述用户的身份标识列表包括所述用户的客户端为所述用户生成的随机匿名标识的集合;所述第二默克尔树基于所述客户端本地存储的用户接触人员列表构造;
第二存储单元805,存储基于所述特殊人员的身份标识列表构造的所述第三默克尔树;其中,所述特殊人员的身份标识列表包括所述特殊人员的客户端为所述特殊人员生成的随机匿名标识的集合。
在一实施例中,所述零知识证明包括默克尔证明;
所述验证单元802进一步:
接收所述零知识证明、所述第二默克尔树的根值,以及第三默克尔树的根值;其中,所述零知识证明包括所述特殊人员的身份标识存在于所述第二默克尔树的第一默克尔证明,以及所述特殊人员的身份标识存在于所述第三默克尔树的第二默克尔证明;所述第二默克尔树的根值基于所述用户接触人员列表构造的所述第二默克尔树确定;所述第三默克尔树的根值基于所述特殊人员的身份标识列表构造的所述第三默克尔树确定。
在一实施例中,所述验证单元802进一步:
基于所述接收到的第二默克尔树的根值和第三默克尔树的根值,确定是否存在预先存储的所述第二默克尔树和所述第三默克尔树;
如果存在,将所述零知识证明、所述第二默克尔树的根值和第三默克尔树的根值输入至所述预设的零知识证明算法对应的证明验证程序,验证所述零知识证明的正确性。
在一实施例中,所述接收单元803进一步:
接收所述用户的身份标识列表,在确定所述用户为目标追踪用户或所述特殊人员之后,基于所述接收到的所述用户的身份标识列表构建默克尔树,并与预先存储的所述第一默克尔树进行比较;
若一致,将所述用户作为目标追踪用户或所述特殊人员,发布所述用户的身份标识列表。
在一实施例中,所述客户端以及所述追踪管理平台接入了区块链;所述区块链上存证了所述客户端发布的所述第一默克尔树和所述第二默克尔树;
所述装置800还包括:
第二发布单元806,所述追踪管理平台将所述特殊人员的身份标识,以及所述第三默克尔树分别发布至所述区块链进行存证。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于客户端设备实施例、装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与用户身份验证逻辑对应的机器可执行指令,所述处理器被促使:
获取所述追踪管理平台发布的特殊人员的身份标识;
与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识;
如果存在,基于预设的零知识证明算法生成所述用户为目标追踪用户的零知识证明,并将所述零知识证明发送至所述追踪管理平台,以由所述追踪管理平台基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
与上述方法实施例相对应,本说明书还提供了另一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与用户身份验证逻辑对应的机器可执行指令,所述处理器被促使:
发布特殊人员的身份标识,以由所述客户端在获取到所述特殊人员的身份标识时,与所述客户端本地存储的用户接触人员列表进行比对,确定所述用户接触人员列表中是否存在与所述特殊人员的身份标识重合的身份标识;其中,所述用户接触人员列表包括与所述用户的接触距离达到阈值的其他用户对应的身份标识;
接收所述客户端基于预设的零知识证明算法生成的所述用户为目标追踪用户的零知识证明,基于所述零知识证明算法对所述零知识证明进行验证,并在验证通过时将所述用户确定为目标追踪用户。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中基于零知识证明的用户追踪方法的各个步骤。对上述基于零知识证明的用户追踪方法的各个步骤的详细描述请参见之前的内容,不再重复。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施方式可提供为方法、系统或计算机程序产品。因此,本说明书的实施方式可采用完全硬件实施方式、完全软件实施方式或结合软件和硬件方面的实施方式的形式。而且,本说明书的实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。