CN114826653B - 一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质 - Google Patents

一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质 Download PDF

Info

Publication number
CN114826653B
CN114826653B CN202210234343.9A CN202210234343A CN114826653B CN 114826653 B CN114826653 B CN 114826653B CN 202210234343 A CN202210234343 A CN 202210234343A CN 114826653 B CN114826653 B CN 114826653B
Authority
CN
China
Prior art keywords
output
operation unit
legal
irreversible operation
user terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210234343.9A
Other languages
English (en)
Other versions
CN114826653A (zh
Inventor
冯志远
顾俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210234343.9A priority Critical patent/CN114826653B/zh
Publication of CN114826653A publication Critical patent/CN114826653A/zh
Application granted granted Critical
Publication of CN114826653B publication Critical patent/CN114826653B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例公开了一种基于区块链网络的凭证验证方法、系统及装置。所述方法包括:预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;用户终端本地部署有前M个级联的不可逆运算单元,用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到所述区块链网络,1≤M≤N‑1;所述区块链网络运行所述验证智能合约,将所述中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定目标输出包含于合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法。

Description

一种基于区块链网络的凭证验证方法、系统、装置、设备及存 储介质
技术领域
本说明书实施例涉及区块链领域,尤其涉及一种基于区块链网络的凭证验证方法、系统及装置。
背景技术
为了方便开展业务,业务方通常需要对用户进行验证,具体可以验证用户是否持有合法凭证,并在确定用户持有合法凭证的情况下开展业务。例如,商家在生产商品时,可以将防伪标识作为合法凭证印刷在商品包装上。实际购买商品的用户可以获取商品包装上的防伪标识,作为合法凭证向商家的服务端请求验证商品的真伪。
因此,用户通常可以根据自身持有的凭证,请求业务方开展相关业务。而业务方在接收到用户发送的业务请求后,可以针对请求中包含的用户凭证,也就是用户持有的凭证,验证是否是合法凭证。具体验证用户凭证是否是合法凭证,通常是业务方验证本地预先存储的合法凭证集合中是否包含用户凭证。
但这种凭证验证的方式存在较大的安全风险。例如,业务方被攻击,导致本地预先存储的合法凭证集合被篡改,从而可能使得合法凭证集合包含伪造凭证。
发明内容
为了解决上述技术问题,本说明书实施例提供了一种基于区块链网络的凭证验证方法、系统及装置。技术方案如下所示。
一种基于区块链网络的凭证验证方法,用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述方法包括:
所述用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到所述区块链网络;
所述区块链网络运行所述验证智能合约,将所述中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法。
一种基于区块链网络的凭证验证系统,所述系统包括用户终端和区块链网络;所述系统用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述用户终端用于:将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到所述区块链网络;
所述区块链网络用于:运行所述验证智能合约,将所述中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法。
一种基于区块链网络的凭证验证装置,应用于区块链网络;所述装置用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述装置包括:
接收单元,用于接收所述用户终端发送的中间结果;所述中间结果是所述用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,第M个不可逆运算单元的输出;
验证单元,用于运行所述验证智能合约,将所述中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法。
上述技术方案通过利用验证智能合约进行凭证验证,可以利用区块链数据难以篡改的性质,降低验证智能合约本身和合法输出集合被篡改的可能性,降低凭证验证过程中的安全风险。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种获取合法输出的原理示意图;
图2是本说明书实施例提供的一种基于区块链网络的凭证验证方法的流程示意图;
图3是本说明书实施例提供的一种基于区块链网络的凭证验证方法的原理示意图;
图4是本说明书实施例提供的一种商品溯源方法的原理示意图;
图5是本说明书实施例提供的一种基于区块链网络的凭证验证系统的结构示意图;
图6是本说明书实施例提供的一种基于区块链网络的凭证验证装置的结构示意图;
图7是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
为了方便开展业务,业务方通常需要对用户进行验证,具体可以验证用户是否持有合法凭证,并在确定用户持有合法凭证的情况下开展业务。
例如,商家在生产商品时,可以将防伪标识作为合法凭证印刷在商品包装上。实际购买商品的用户可以获取商品包装上的防伪标识,作为合法凭证向商家的服务端请求验证商品的真伪。
又例如,商家还可以将溯源码作为合法凭证印刷在商品包装上。实际购买商品的用户可以获取商品包装上的溯源码,作为合法凭证向商家的服务端请求查询商品相关信息。商品相关信息具体可以包括商品的生产信息、经销信息、物流信息、仓储信息、派送信息等。
因此,用户通常可以根据自身持有的凭证,请求业务方开展相关业务。
而业务方在接收到用户发送的业务请求后,可以针对请求中包含的用户凭证,也就是用户持有的凭证,验证是否是合法凭证。具体验证用户凭证是否是合法凭证,通常是业务方验证本地预先存储的合法凭证集合中是否包含用户凭证。
但这种凭证验证的方式存在较大的安全风险。例如,业务方被攻击,导致本地预先存储的合法凭证集合被篡改,从而可能使得合法凭证集合包含伪造凭证。
为了解决上述技术问题,本说明书实施例提供了一种基于区块链网络的凭证验证方法,将用于验证凭证是否是合法凭证的程序作为智能合约部署在区块链网络中,通过运行智能合约进行凭证合法性的验证。
该方法可以借助区块链网络中区块链数据难以篡改的性质,降低凭证验证过程的安全风险。
为了便于描述,将用于验证凭证是否是合法凭证的智能合约称为验证智能合约。
具体地,验证智能合约本身作为用于验证凭证的程序,可以锚定在区块链上,降低了用于验证凭证的程序被篡改的可能性。
在验证智能合约的凭证验证方式具体是,验证合法凭证集合中是否包含用户凭证的情况下,合法凭证集合也可以锚定在区块链上,从而降低了合法凭证集合被篡改的可能性。
进一步地,在上述方法中,验证智能合约可以通过零知识证明的方式进行凭证验证。
其中,零知识证明指的可以是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。在本说明书实施例中,零知识证明具体可以是用户在向验证智能合约提供不具有实际含义的信息的情况下,使得验证智能合约可以验证用户凭证是否是合法凭证。
在上述方法中,具体零知识证明的验证方式,可以是借助不可逆运算实现的。不可逆运算可以是无法根据输出反推得到输入的运算,例如,哈希运算。
为了便于理解,下面先提供一种具体的示例。
业务方预先针对合法凭证A,执行一次哈希运算得到B。其中,B不具有实际含义。业务方在具体部署验证智能合约时,验证智能合约中可以只包括B,而无需包括合法凭证A。
当具有待验证用户凭证X的用户需要基于验证智能合约进行凭证合法性验证时,可以针对X执行一次哈希运算得到Y,并将Y发送到区块链网络。其中,Y也不具有实际含义。
区块链网络在运行验证智能合约时,验证智能合约可以确定Y与B是否相同。如果Y与B相同,就可以基于哈希运算的特点,证明X与A相同,待验证用户凭证X实际为合法凭证A,验证通过。
其中,由于哈希运算无法根据输出反推得到输入,因此,只有拥有合法凭证A的用户才能通过哈希运算正向得到B,从而可以实现凭证的合法性验证,并且用户提供的是哈希运算结果,并不具有实际含义。
由于预先将实际用于验证的B存储到区块链网络中,借助区块链网络中区块链数据难以篡改的性质,可以降低B被篡改的可能性,也就降低了凭证验证过程的安全风险。
因此,在上述方法中,零知识证明的验证方式,可以是预先针对若干合法凭证分别执行预设不可逆运算,得到合法输出集合,并将合法输出集合部署在验证智能合约中,验证智能合约可以利用合法输出集合进行凭证合法性验证。
用户可以针对需要验证合法性的用户凭证,在用户端本地执行相同的预设不可逆运算,得到待验证输出,发送到区块链网络中,由验证智能合约验证合法输出集合中是否包含待验证输出。如果确定合法输出集合中包含待验证输出,则可以确定用户凭证是合法凭证;如果确定合法输出集合中不包含待验证输出,则可以确定用户凭证不是合法凭证。
通过这种零知识证明的验证方式,可以避免传输用户凭证的原数据,区块链网络中也无需使用合法凭证进行验证,无需在区块链网络中存储合法凭证的原数据,从而可以提高用户凭证和合法凭证的安全性。
具体地,合法凭证的生成可能存在一定的规律,如果被攻击方获取到大量合法凭证,则可能被攻击方破解合法凭证的生成方法,从而进行攻击。
因此,通过零知识证明可以提高用户凭证和合法凭证的安全性,也能够降低凭证验证过程的安全风险。
进一步的,上述方法中还提供了另一种零知识证明的验证方式。
为了便于理解,下面先提供一种具体的示例。
业务方预先针对合法凭证A,执行第一次哈希运算得到B,再针对B执行第二次哈希运算得到C。其中,B和C都不具有实际含义。业务方在具体部署验证智能合约时,验证智能合约中可以只包括C,而不会包括A和B。
当具有待验证用户凭证X的用户需要基于验证智能合约进行凭证合法性验证时,可以针对X执行相同的第一次哈希运算得到Y,并将Y发送到区块链网络。
区块链网络在运行验证智能合约时,可以针对Y执行相同的第二次哈希运算,得到待验证结果Z。Y和Z也不具有实际含义。如果Z与C相同,就可以证明Y与B相同,并且X与A相同,待验证用户凭证X与合法凭证A相同,凭证的合法性验证通过。
因此,在上述方法中,零知识证明的验证方式,可以是预先针对若干合法凭证分别执行预设不可逆运算,得到合法输出集合,预设不可逆运算中可以包括前后两次不可逆运算。之后将合法输出集合部署在验证智能合约中,验证智能合约可以利用合法输出集合进行凭证合法性验证。
用户可以针对需要验证合法性的用户凭证,在用户端本地执行预设不可逆运算中第一次不可逆运算,得到中间结果,发送到区块链网络中,由验证智能合约先基于中间结果执行预设不可逆运算中的第二次不可逆运算,得到待验证结果。
之后验证智能合约可以验证合法输出集合中是否包含待验证结果。如果确定合法输出集合中包含待验证结果,则可以确定用户凭证是合法凭证;如果确定合法输出集合中不包含待验证结果,则可以确定用户凭证不是合法凭证。
通过这种零知识证明的验证方式,可以避免传输用户凭证的原数据,区块链网络中也无需使用合法凭证进行验证,无需在区块链网络中存储合法凭证的原数据,从而可以提高用户凭证和合法凭证的安全性,降低凭证验证过程的安全风险。
此外,由于凭证验证的过程也需要进行不可逆运算,即使验证智能合约中部署的合法输出集合泄露,也无法通过反推输入得到中间结果进行攻击,提高了凭证验证过程的安全性,进一步降低凭证验证过程的安全风险。
下面结合附图,进一步解释本说明书实施例提供的一种基于区块链网络的凭证验证方法。
首先解释本方法流程所涉及的基本概念。
1、不可逆运算单元:不可逆运算单元可以是无法根据输出反推得到输入的运算单元,其中可以包括至少一种运算操作,具体可以是用于执行不可逆运算的程序。例如,不可逆运算单元可以执行哈希运算操作。
其中,不同的不可逆运算单元之间,所执行的运算操作可以相同,也可以不同,不可逆运算单元中可以包括一种或多种运算操作,只要无法根据不可逆运算单元的输出反推得到输入即可。
可选地,不可逆运算单元所执行的运算操作中可以包括哈希运算操作。可选地,不同的不可逆运算单元之间的哈希运算操作可以相同,也可以不同。
需要说明的是,在单个不可逆运算单元中,可以包含多种运算操作,所包含的多种运算操作中可以包括一种或多种不可逆运算操作。
例如,单个不可逆运算单元中,可以先执行加减运算操作,在执行哈希运算操作;也可以执行两次哈希运算操作。
通过单个不可逆运算单元中的多种不可逆运算操作,可以提高根据输出反推输入的难度,从而提高凭证验证过程的安全性。
可选地,如果根据某一运算单元的输出反推得到输入,需要极大的计算资源和较多时间,也可以将该运算单元看作是不可逆运算单元。例如,某一运算单元中使用非对称性密钥对中的一个密钥对输入数据进行加密得到输出,而破解该密钥对中的另一个密钥需要很多计算资源和时间,因此,这种加密操作可以看作是不可逆运算,该运算单元可以看作是不可逆运算单元。
2、合法输出集合:合法输出集合可以用于帮助验证智能合约进行凭证验证,其中包括了至少1个针对合法凭证进行不可逆运算得到的输出。合法输出集合中的数据本身没有实际含义,主要用于凭证验证。
具体地,业务方可以预先设置N个级联的不可逆运算单元,用于生成合法输出集合。其中第i个运算单元的输出是第i+1个运算单元的输入,i=1,2,3,...,N-1,N≥2。
在部署验证智能合约时,可以将单个合法凭证输入N个级联的不可逆运算单元的第1个不可逆运算单元中,得到第N个不可逆运算单元的输出,作为合法输出,添加到合法输出集合中。
为了便于理解,如图1所示,为本说明书实施例提供的一种获取合法输出的原理示意图。
其中包含3个级联的不可逆运算单元,分别为不可逆运算单元1、不可逆运算单元2和不可逆运算单元3。不可逆运算单元1的输出级联至不可逆运算单元2的输入;不可逆运算单元2的输出级联至哈希运算单元3的输入。
将合法凭证A输入不可逆运算单元1,可以得到不可逆运算单元1的输出B1,进而可以得到不可逆运算单元2的输出B2,以及不可逆运算单元3的输出C。
C可以作为合法输出,添加到合法输出集合中。
需要说明的是,用户如果持有合法凭证A,则可以通过不可逆运算单元1计算得到B1,将B1发送到区块链网络,以使验证智能合约基于不可逆运算单元2-3计算得到C。
或者,用户如果持有合法凭证A,则可以通过不可逆运算单元1-2计算得到B2,将B2发送到区块链网络,以使验证智能合约基于不可逆运算单元3计算得到C。
因此,用户可以通过发送B1或B2到区块链网络,验证自身凭证的合法性。
3、验证智能合约:验证智能合约可以是用于进行凭证验证的智能合约。具体可以是业务方为了验证用户凭证的合法性而部署在区块链上的智能合约。
可选地,业务方具体在开发验证智能合约时,可以将合法输出集合,以及用于生成合法输出集合的N个级联的不可逆运算单元部署在验证智能合约中,用于后续的凭证验证中对中间结果的验证。
当然,可选地,由于部署在验证智能合约中的不可逆运算单元是用于验证中间结果的,因此,可以只部署其中需要用于验证中间结果的不可逆运算单元。
例如,在将N个级联的不可逆运算单元中,第M个运算单元的输出作为中间结果的情况下,验证智能合约可以只部署第M+1到第N个不可逆运算单元,用于计算中间结果输入第M+1个后,第N个不可逆运算单元的输出,作为待验证输出进行验证。
需要注意的是,如果将多个级联的不可逆运算单元视为一条不可逆运算单元链,业务方可以基于合法凭证,利用不同的不可逆运算单元链得到一一对应的不同合法输出集合,并且可以将不同的不可逆运算单元链和不同的合法输出集合部署在同一验证智能合约中,或者将不同的不可逆运算单元链和对应的合法输出集合分别一一部署在不同的验证智能合约中。
在存在多条不可逆运算单元链的情况下,在验证用户凭证时,需要确定用户发送的中间结果在计算过程中所使用的不可逆运算单元链,从而可以进行凭证验证。本实施例并不限定具体的确定方法,可选地,可以是在用户发送中间结果到区块链网络时,同时携带所使用的不可逆运算单元链标识。
本方法流程主要针对一条不可逆运算单元链和一个对应的合法输出集合进行解释,可以理解的是,基于本方法流程,通过简单推理可以得到在区块链网络中部署有多条运算单元链和多个对应的合法输出集合的情况下,实现凭证验证的实施例。
在本方法流程中,区块链网络中可以包括验证智能合约。本方法流程可以用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法。
如图2所示,为本说明书实施例提供的一种基于区块链网络的凭证验证方法的流程示意图。
该方法可以用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法。
可以预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入。
可选地,可以预先将若干合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中。
具体地,可以预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中。由于合法输出集合中可以包括每个合法凭证对应的合法输出,因此,可以更全面准确地进行凭证验证。
需要说明的是,上述设置N个级联的不可逆运算单元,并且得到合法输出集合的执行主体并不限定,可以是业务方,也可以是业务方以外的其他方执行的。
验证智能合约中可以部署有级联的第M+1个到第N个不可逆运算单元和合法输出集合。
用户终端本地可以部署有前M个级联的不可逆运算单元,1≤M≤N-1。用户终端可以无需部署全部N个级联的不可逆运算单元,节约存储资源。其中,用户终端可以部署前N-1个级联的不可逆运算单元,这是因为第N-1个不可逆运算单元的输出可以作为中间结果,而第N个不可逆运算单元的输出无法作为中间结果。
当然,本方法流程并不限定用户终端和验证智能合约所具体部署的不可逆运算单元,用户终端和验证智能合约也可以部署全部N个级联的不可逆运算单元。
该方法可以至少包括以下步骤。
S101:用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到区块链网络。
可选地,用户终端具体在发送待验证中间结果时,可以是将待验证中间结果封装在一笔发给验证智能合约的交易中,发送到区块链网络中。
可选地,交易中可以包括用于表征M的内容,使得验证智能合约可以直接确定需要将中间结果输入的第M+1个不可逆运算单元。
S102:区块链网络运行验证智能合约,将中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出。
S103:在确定目标输出包含于合法输出集合的情况下,确定用户终端存储的目标凭证合法。
可选地,在确定目标输出不包含于合法输出集合的情况下,确定用户终端存储的目标凭证不合法。
上述方法流程通过利用验证智能合约进行凭证验证,可以利用区块链数据难以篡改的性质,降低验证智能合约本身和合法输出集合被篡改的可能性,降低凭证验证过程中的安全风险。
此外,还可以基于零知识证明实现凭证的合法性验证,从而避免用户的目标凭证或者合法凭证泄露,提高目标凭证和合法凭证的安全性,降低数据泄露引发的风险,保护用户隐私。
由于凭证验证的过程也需要进行不可逆运算,即使验证智能合约中部署的合法输出集合泄露,也无法通过反推得到中间结果进行攻击,提高了凭证验证过程的安全性。
1、关于目标凭证。
目标凭证具体可以是用户终端存储的任一需要进行凭证验证的凭证,可以用于请求在目标凭证通过凭证验证的情况下开展相关业务。为了便于描述,将该待验证的凭证称为目标凭证。
本方法流程并不限定具体用户终端获取目标凭证的方法。可以是用户在获取到实际商品后,从商品本身获取到目标凭证,例如,商品的防伪标识通常覆盖有涂层,用户可以购买具有无损涂层的商品,进而在刮开涂层后,可以将防伪标识作为目标凭证,用于请求验证商品的真伪。显然,在目标凭证通过凭证验证的情况下,可以证明商品不是伪造的。
也可以是用户终端直接从业务方获取目标凭证。例如,用户通过用户终端在网络商家中购买商品后,商家可以向用户终端返回一个商品码,用于查询商品当前的物流信息。用户终端可以将商品码作为目标凭证,用于请求目标凭证通过凭证验证的情况下,获取到对应商品当前的物流信息。用户终端可以多次进行物流信息的查询。
需要说明的是,合法凭证可以是业务方认证合法的凭证,可以是由业务方自身生成合法凭证,例如,商家针对商品生成唯一的商品码作为合法凭证。也可以是其他方生成凭证后,业务方确定合法的凭证,例如,针对数据支持部门生成的凭证,考试中心确定合法后,下发给报名考生。
2、关于中间结果。
在一种可选的实施例中,为了提高凭证验证的效率,区块链网络或者验证智能合约还可以针对接收到的中间结果,进行简单的筛选。
1)可选地,可以限定每个中间结果只能验证一次。对于重复验证的中间结果,可以直接确定用户终端验证失败。
本实施例可以提高凭证验证的安全性,降低安全风险,并且可以节约计算资源,提高凭证验证的效率。
需要说明的是,在任一中间结果经过一次验证后,由于该中间结果是通过网络传输的,并且该中间结果在区块链网络中进行验证,该中间结果可能被泄露,导致攻击方获取到。
如果该中间结果验证成功,则攻击方可以使用泄露的该中间结果通过验证。
而如果该中间结果验证失败,则重复验证会浪费计算资源,也无需进行验证。
因此,通过限定每个中间结果只能验证一次,对于重复验证的中间结果,可以直接确定用户终端验证失败,攻击方即使能够获取到验证过的中间结果,也无法通过凭证验证,从而可以提高凭证验证的安全性,也可以节约计算资源,提高凭证验证的效率。
本实施例还可以降低重放攻击的影响,如果攻击方截取用户终端发送的中间结果进行重放攻击,由攻击方将截取的中间结果重新发给区块链网络进行凭证验证,则攻击方也无法通过验证。
2)可选地,合法凭证可能存在更新为不合法凭证的情况。
例如,某一商品因为质量问题被下架,则该商品不会被实际的消费者购买到,可以将该商品的合法凭证更新为不合法凭证,避免不法分子使用该下架商品的合法凭证进行伪造。
而在某一合法凭证更新为不合法凭证的情况下,可选地,可以将对应的合法输出从合法输出集合中删除,或者标记为不合法输出。
可选地,也可以直接针对中间结果进行确定,在确定该中间结果是根据不合法凭证得到的情况下,可以直接确定用户终端验证失败。
本实施例可以提高凭证验证的安全性,降低安全风险,并且可以节约计算资源,提高凭证验证的效率。
3)可选地,如果当前接收到的中间结果,在验证智能合约过去的运行过程中出现过,具体可以是计算得出的,则可以直接确定用户终端验证失败。
本实施例可以提高凭证验证的安全性,降低安全风险,并且可以节约计算资源,提高凭证验证的效率。
由于针对接收到的中间结果,验证智能合约还需要通过后续级联的不可逆运算单元进行计算。而这些后续的不可逆运算单元的输出,也存在泄露的可能,并且后续的不可逆运算单元的输出也可能作为同一用户凭证的其他中间结果进行验证。
例如,针对第M个不可逆运算单元的输出(中间结果),在验证智能合约的验证过程中,可以得到第M+1至第N个不可逆运算单元的全部输出。即运行过程中可以包括第M+1个不可逆运算单元至第N-1个不可逆运算单元的输出。
而在运行过程泄露的情况下,攻击方可能获取到第M+1个不可逆运算单元至第N-1个不可逆运算单元的输出。攻击方可能利用第M+1个不可逆运算单元至第N-1个不可逆运算单元的输出,作为中间结果进行凭证验证。
如果本次验证的中间结果通过验证,则攻击方利用第M+1个不可逆运算单元至第N-1个不可逆运算单元的输出作为中间结果,也可以通过凭证验证。
因此,如果当前接收到的中间结果,在验证智能合约过去的运行过程中出现过,具体可以是计算得出的,则该中间结果可能是验证智能合约过去针对某个其他中间结果进行验证的过程中,某个不可逆运算单元的输出,从而可以直接确定用户终端验证失败。
在本实施例中,攻击方即使能够获取到验证智能合约的运行过程,也无法通过凭证验证,从而提高了凭证验证的安全性。
需要说明的是,在本实施例中,如果用户终端需要多次进行凭证验证,则可以从第M个不可逆运算单元的输出开始,倒序逐个获取输出作为中间结果。
具体可以是在第h个不可逆运算单元的输出作为中间结果进行验证后,可以在下一次凭证验证中获取第h-1个运算单元的输出作为中间结果进行凭证验证。h=2,3,...,M;
通过这种方式,用户终端可以避免中间结果在之前的凭证验证过程中被验证智能合约计算出。
上述三种可选的实施例可以互相组合。
因此,可选地,在将中间结果输入到部署的第M+1个不可逆运算单元之前,区块链网络运行验证智能合约执行的步骤还可以包括:在预设情况下,确定用户终端验证失败。
可选地,预设情况包括以下至少一种:已经验证过中间结果;在某一合法凭证更新为不合法凭证的情况下,确定中间结果是根据该不合法凭证得到的;在验证智能合约过去的运行过程中计算出中间结果。
本实施例可以通过预先筛选中间结果,提高凭证验证的安全性,降低安全风险,并且可以节约计算资源,提高凭证验证的效率。
本方法流程并不限定具体确定预设情况的方法,只要能够确定中间结果符合任一预设情况即可。
作为示例性说明,可选地,区块链网络可以针对验证智能合约维护一个非法中间结果集合。具体可以是由验证智能合约本身维护非法中间结果集合。
可选地,在验证智能合约验证过任一中间结果后,可以将该中间结果添加到非法中间结果集合中。在本实施例中,非法中间结果集合中可以包括验证智能合约已经验证过的中间结果,无论验证失败或成功。
可选地,在某一合法凭证更新为不合法凭证后,可以将该不合法凭证输入预先设置的N个级联的不可逆运算单元,得到第1个到第N-1个不可逆运算单元的输出,都添加到非法中间结果集合中。在本实施例中,非法中间结果集合中可以包括根据该不合法凭证得到的全部中间结果。
可选地,在验证智能合约验证过任一中间结果后,可以将验证该中间结果的过程中,每个不可逆运算单元的计算输出添加到非法中间结果集合中。在本实施例中,非法中间结果集合中可以包括验证智能合约过去的执行过程中计算出的不可逆运算单元输出。
上述三种可选的实施例可以互相组合。
可选地,具体在预设情况下,确定用户终端验证失败,可以包括:在确定接受到的中间结果包含于非法中间结果集合中的情况下,确定用户终端验证失败。
本实施例可以利用非法中间结果集合,预先筛选中间结果,提高凭证验证的安全性,降低安全风险,并且可以节约计算资源,提高凭证验证的效率。
此外,还可以通过保护中间结果或验证智能合约的方式提高凭证验证过程的安全性。
可选地,针对用户终端发送的中间结果,可以利用区块链网络的公钥进行加密,提高中间结果的安全性,降低中间结果泄露的可能性。
在一种可选的实施例中,区块链网络中可以部署有可信执行环境。可信执行环境是一种封闭的程序运行环境。在可信执行环境内运行程序时,外部无法通过软件或硬件获取到具体的运行过程。
因此,区块链网络运行验证智能合约,具体可以是区块链网络在本地部署的可信执行环境中运行验证智能合约,从而使得验证智能合约的运行过程无法泄露出去。
相对应地,用户终端发送的中间结果可以是使用验证智能合约对应的公钥加密,或者使用区块链网络中可信执行环境对应的公钥加密,从而使得只有验证智能合约或者可信执行环境中能够对中间结果进行解密,提高凭证验证过程的安全性。
而在可信执行环境中运行验证智能合约,可以降低运行过程中不可逆运算单元输出的泄露可能性,提高凭证验证过程的安全性。
可选地,验证智能合约中第M+1个到第N个不可逆运算单元可以在可信执行环境中运行。
3、关于多次凭证验证。
需要说明的是,用户终端可能需要基于同一目标凭证进行多次凭证验证。
例如,用户通过用户终端,在某网络商家预购了某件商品,商家可以将该商品的溯源码(合法凭证)安全地发送到用户终端。用户终端可以基于溯源码,向商家多次查询该商品当前的物流状态。换言之,用户终端需要基于同一溯源码,进行多次凭证验证,以便于多次查询同一商品的物流状态。
而在用户终端多次进行目标凭证合法性的验证情况下,用户终端可以多次使用同一中间结果进行凭证验证。
在一种可选的实施例中,为了提高凭证验证的安全性,在不同次凭证验证时,用户终端可以将同一目标凭证输入前M个级联的不可逆运算单元中第1个不可逆运算单元后,使用不同的不可逆运算单元的输出作为中间结果进行凭证验证。
例如,在第1次使用第M个不可逆运算单元的输出作为中间结果进行凭证验证后,在第2次发起凭证验证时,可以利用第M个不可逆运算单元以外,其他不可逆运算单元的输出作为中间结果进行凭证验证。
可选地,为了进一步提高凭证验证的安全性,用户终端针对本地部署的前M个级联的不可逆运算单元,倒序使用不可逆运算单元的输出作为中间结果。通过这种方式,用户终端可以避免中间结果在之前的凭证验证过程中被验证智能合约计算出,提高凭证验证的安全性。
因此,可选地,用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到区块链网络,可以包括:在用户终端第k次请求验证所存储的目标凭证的情况下(1≤k≤M),用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,将部署的第M-k+1个不可逆运算单元的输出作为中间结果发送到区块链网络。
可选地,验证智能合约中可以部署有第M-k+2个到第N个不可逆运算单元。
相对应地,验证智能合约可以针对用户终端的第k次凭证验证请求,将中间结果输入到部署的第M-k+2个不可逆运算单元,从而可以将第N个不可逆运算单元的输出作为目标输出;在确定目标输出包含于合法输出集合的情况下,确定用户终端存储的目标凭证合法。
因此,可选地,将中间结果输入到部署的第M+1个不可逆运算单元,可以包括:将中间结果输入到部署的第M-k+2个不可逆运算单元。
4、关于凭证验证通过。
在一种可选的实施例中,在用户终端存储的目标凭证确定合法后,就可以开展相应的业务。
本方法流程并不限定具体的业务,可以是返回相应的数据,也可以是收集用户信息,也可以是证明商品的真伪等。
可选地,业务具体可以是获取目标凭证所对应的业务数据集合。
例如,合法凭证具体可以是商品的溯源码,对应于该商品的相关信息,例如商品的生产信息、经销信息、物流信息、仓储信息、派送信息等。用户可以通过商品的溯源码,获取到商品的相关信息。
例如,合法凭证具体可以是用户的考生编号,对应于该用户的考试成绩或者考试证书。用户可以通过考生编号,获取到可信的考试成绩或者考试证书。
本方法流程并不限定业务数据集合具体的内容或形式,可选地,业务数据集合可以对应于合法凭证,也可以对应于合法输出。
本方法流程并不限定业务数据集合具体的存储位置。可选地,业务数据集合可以存储到业务方,例如业务方设备本地,也可以存储到区块链网络中。
本方法流程并不限定业务数据集合的存储形式,可选地,业务数据集合可以以明文形式或者密文形式存储。
本方法流程并不限定业务数据集合的数据来源,可选地,业务数据集合可以来源于业务方本身,例如,商品的生产地、生产日期、防伪标识、生产资质及生产许可等,都可以是商家提供并添加到业务数据集合中的。或者,考试成绩或证书可以是考试中心或相关部门添加到业务数据集合中的。可选地,业务数据集合也可以来源于业务方以外的其他方,例如,商品的物流信息,可以是中间商或者物流公司提供并添加到业务数据集合中的。
在一种可选的实施例中,由于业务数据集合的数据来源可能是来自于业务方或其他方,如果业务数据集合对应于合法凭证,则通常需要其他方也能够获取到合法凭证,从而可以确定相关业务数据需要添加到该合法凭证对应的业务数据集合中。
例如,商品的包装上具有溯源码,商品的中间经销商可以根据溯源码,将经销信息发送到区块链网络中,添加到溯源码对应的业务数据集合中。
可选地,为了提高合法凭证的安全性,可以使得业务数据集合对应于合法输出。由于合法输出泄露,也无法通过反推得到任一中间结果或者合法凭证,因此,使得其他方获取到合法输出可以提高安全性。其他方可以根据合法输出,确定相关业务数据需要添加到该合法输出对应的业务数据集合中。
例如,商品的包装上具有被涂层覆盖的溯源码,实际购买的消费者可以购买涂层无损的溯源码进行溯源。而商品的包装上还可以印刷溯源码对应的合法输出,负责运送商品的物流公司,可以将商品的物流信息发送到区块链网络中,添加到合法输出对应的业务数据集合中。
由于其他方无法获取到合法凭证,而合法输出的泄露并不会影响凭证验证过程的安全性,因此,本实施例可以提高合法凭证的安全性,降低凭证验证过程的安全风险。
在一种可选的实施例中,可以是业务方存储业务数据集合。
可选地,可以是业务方自身存储业务数据集合与合法凭证之间的对应关系,或者是业务数据集合与合法输出之间的对应关系。
可选地,业务方自身可以存储业务数据集合与合法凭证之间的对应关系,在确定目标输出包含于合法输出集合的情况下,可以由业务方确定目标输出对应的合法凭证,并进一步将该合法凭证对应的业务数据集合发送到用户终端。
可选地,业务方自身可以存储业务数据集合与合法输出之间的对应关系,在确定目标输出包含于合法输出集合的情况下,可以由业务方确定目标输出对应的业务数据集合,并发送到用户终端。
可选地,业务方存储的业务数据集合可以是以密文形式进行存储,提高业务数据集合的安全性。而具体对业务数据集合密文的解密可以参见下文解释。
在另一种可选的实施例中,可以将业务数据集合存储到区块链网络中,提高业务数据集合的安全性。
其中,可选地,由于区块链网络中无需存储合法凭证,因此,可以在区块链网络中存储业务数据集合与合法输出之间的对应关系。还可以提高合法凭证的安全性。
当然,可选地,区块链网络中也可以存储业务数据集合与合法凭证之间的对应关系,为了提高合法凭证的安全性,可以将该对应关系存储到区块链网络的可信执行环境中。
可选地,区块链网络还可以存储有合法输出集合中任一合法输出对应的业务数据集合。
在确定目标输出包含于合法输出集合的情况下,区块链网络可以将目标输出对应的业务数据集合返回到用户终端。
本实施例可以在用户终端通过验证的情况下,快速高效地返回业务数据集合。
进一步地,为了提高业务数据集合的安全性,可以将业务数据集合以密文形式存储在区块链网络中,降低业务数据集合明文从区块链网络中泄露的可能性。因此,区块链网络可以存储有合法输出集合中任一合法输出对应的业务数据集合密文。
下面针对业务数据集合的密文形式进行解释。
本实施例并不限定业务数据集合的加密方法。作为示例性说明,可选地,可以是将业务数据集合对应的合法凭证作为密钥进行对称加密,使得只有拥有合法凭证的用户可以进行解密。可选地,在区块链网络存储业务数据集合密文的情况下,也可以是采用区块链网络自身的密钥进行加密,例如,区块链网络的公钥。可选地,在业务方存储业务数据集合密文的情况下,也可以是采用业务方自身的密钥进行加密,例如,业务方的公钥。
相对应地,在返回业务数据集合时,需要针对业务数据集合密文进行解密。
本实施例并不限定业务数据集合密文具体的解密方法,只要能够成功解密即可。
可选地,在业务数据集合密文是针对业务数据集合,利用对应的合法凭证作为密钥进行对称加密的情况下,如果确定目标输出包含于合法输出集合,区块链网络可以将目标输出对应的业务数据集合密文返回到用户终端,用户终端可以使用自身存储的目标凭证对业务数据集合密文进行解密,得到业务数据集合明文。
可选地,在业务数据集合密文是针对业务数据集合,利用区块链网络的公钥进行加密的情况下,如果确定目标输出包含于合法输出集合,区块链网络可以针对目标输出对应的业务数据集合密文,利用区块链网络的私钥进行解密,得到业务数据集合明文返回到用户终端。
需要说明的是,由于需要将业务数据集合返回到用户终端,因此,在传输业务数据集合的过程中,也可以通过加密提高业务数据集合的安全性。
可选地,区块链网络中可以部署有可信执行环境;合法输出集合中任一合法输出对应的业务数据集合以密文形式存储在区块链网络中。
将目标输出对应的业务数据集合返回到用户终端,可以包括:在可信执行环境中执行以下步骤:针对目标输出对应的业务数据集合密文,利用第一解密密钥进行解密,并将解密结果通过与用户终端约定的第二加密密钥进行加密,将加密结果返回到用户终端。
关于可信执行环境。
可信执行环境可以保护业务数据集合密文的解密过程以及解密出的业务数据集合明文,提高第一解密密钥和业务数据集合明文的安全性,降低从区块链网络泄露第一解密密钥或者业务数据集合明文的可能性。
而通过与用户终端约定的第二加密密钥进行加密,可以在业务数据集合返回用户终端的过程中,提高业务数据集合的明文的安全性。
关于第一解密密钥。
第一解密密钥可以是用于解密目标输出对应的业务数据集合密文。本实施例并不限定业务数据集合的加密方式,而第一解密密钥可以根据业务数据集合的加密方式确定。
可选地,可以是利用业务方公钥对每个需要存储的业务数据集合进行加密,第一解密密钥可以是业务方私钥。需要说明的是,业务方公钥和业务方私钥可以是业务方针对业务数据集合所配置的一对公私钥对。
可选地,可以是利用区块链网络的公钥对每个需要存储的业务数据集合进行加密,第一解密密钥可以是区块链网络中对应的私钥。具体地,区块链网络的公钥可以是可信执行环境本身配置的公钥,对应的私钥可以是可信执行环境本身配置的对应私钥。
可选地,也可以是利用区块链网络自身生成的对称密钥,或者一对公私钥对中的公钥,对每个需要存储的业务数据集合进行加密,第一解密密钥可以是对应的对称密钥,或者公私钥对中的私钥。
需要说明的是,由于业务数据集合中数据的来源并不限定,可以是业务方或者其他方,因此,在业务数据集合以密文形式存储在区块链网络中的情况下,业务方或者其他方可以将相关业务数据明文上传到区块链网络中,由区块链网络加密后添加到业务数据集合中。
业务方或者其他方也可以将相关业务数据明文加密,具体可以是利用区块链网络的公钥进行加密,发送到区块链网络中,直接将相关业务数据密文添加到业务数据集合中。
关于第二加密密钥。
为了提高传输业务数据集合的安全性,可以通过传输加密的方式,对业务数据集合明文进行加密,再由用户终端进行解密。
第二加密密钥可以是区块链网络与用户终端预先约定的。
可选地,第二加密密钥可以是区块链网络与用户终端预先约定的对称密钥,也可以是区块链网络与用户终端预先约定的一对公私钥对中的公钥。
利用第二加密密钥对业务数据集合明文的加密过程,也可以在区块链网络的可信执行环境中执行,提高安全性。
用户终端在获取到加密结果后,可以利用对应第二加密密钥的第二解密密钥进行解密,从而得到业务数据集合明文。
通过上述方法流程,可以利用区块链数据难以篡改的性质,避免验证智能合约本身或合法输出集合被篡改,降低凭证验证过程中的安全风险。
此外,还可以基于零知识证明实现凭证的合法性验证,从而避免用户的目标凭证或者合法凭证泄露,提高目标凭证和合法凭证的安全性,降低数据泄露引发的风险,保护用户隐私。
由于凭证验证的过程也需要进行不可逆运算,即使验证智能合约中部署的合法输出集合泄露,也无法通过反推得到中间结果进行攻击,提高了凭证验证过程的安全性。
上述方法流程中,还可以通过筛选中间结果,提高凭证验证的安全性,提高凭证验证的效率。还可以利用加密和可信执行区域,提高业务数据集合的安全性。
为了便于理解,如图3所示,是本说明书实施例提供的一种基于区块链网络的凭证验证方法的原理示意图。
其中包括用户终端和区块链网络。预先设置有N个级联的不可逆运算单元。
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中。
用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1。
验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和合法输出集合。
用户终端可以将本地存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到区块链网络。
区块链网络运行验证智能合约,将中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出,判断目标输出是否包含于合法输出集合。
在确定目标输出包含于合法输出集合的情况下,确定用户终端存储的目标凭证合法。
而在之后的第2次凭证验证中,验证智能合约中部署有级联的第M个到第N个不可逆运算单元。
用户终端可以将本地存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M-1个不可逆运算单元的输出作为中间结果发送到区块链网络。
区块链网络运行验证智能合约,将中间结果输入到部署的第M个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出,判断目标输出是否包含于合法输出集合。
在确定目标输出包含于合法输出集合的情况下,确定用户终端存储的目标凭证合法。
为了便于进一步理解,下面提供一种具体的应用实施例。
溯源是区块链一个很重要的应用场景。产品溯源信息产生的流程是生产厂商为生产商品添加唯一标识码,我们称之为溯源码,同时将生产信息关联到该唯一标识码。
随着溯源码在经销商、仓储、物流等过程流转中,中间商会将相关流程信息关联到该溯源码并存证上链。
当商品到达终端消费者手中时,其可以通过APP等工具识别该溯源码,从区块链上将溯源码关联信息全部获取并展示出来。例如,消费者可以校验商品的真伪。
传统的溯源码是一段可识别字符串,通常是一段Url信息。在流转过程中,明文提供给各个中间商,即溯源码处于暴露状态。在该过程中存在如下风险:该溯源码被恶意中间商替换,用于假货销售;恶意中间商使用消费者终端工具识别了该溯源码,导致该溯源码到消费者手中时存在了扫码记录;中间商根据大量的商品溯源码信息推导出品牌商生成的溯源码规则等。同时,区块链上存储的都是明文未加密溯源码信息,当该区块链链被恶意攻击造成溯源码信息泄露时,其后果较为严重。
因此,在本实施例中,可以预先设置4个级联的不可逆运算单元,具体可以是4个级联的哈希运算单元,用于执行哈希运算操作。任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤3,其输出级联至第i+1个不可逆运算单元的输入。
如图4所示,是本说明书实施例提供的一种商品溯源方法的原理示意图。
其中,设置某一商品真实的溯源码为A,将A输入到4个级联的不可逆运算单元中第1个不可逆运算单元中,得到第4个不可逆运算单元的输出C。
输出C可以作为溯源码对应的合法输出上链,用于后续凭证验证以及对应一个业务数据集合。
生产厂商可以将该商品的生产信息利用区块链网络的公钥加密,存储到C对应的业务数据集合中。
进一步地,该商品可以进入后续的中间流转过程。
在中间流转过程中,各个中间商可以获取到C,通过C将流转过程中的溯源环节上链。具体可以是将中间商基于该商品生成的流转信息利用区块链网络的公钥加密,和C一起发送到区块链网络中。区块链网络可以将流转信息的密文存储到C对应的业务数据集合中。
流转信息例如,经销信息、仓储信息和物流信息等。
在这一过程中,中间商不知道真实的溯源码是什么,提高了真实溯源码的安全性。
并且,由于A是利用4个级联的不可逆运算单元得到C,通过C无法反推得到A。
消费者收到商品后,可以刮开涂层,得到真实的溯源码A。需要说明的是,如果涂层受损,则可能真实的溯源码泄露,消费者可以选择只购买涂层无损的商品。
得到A的消费者可以将A输入到4个级联的不可逆运算单元中第1个不可逆运算单元中,可以得到第1个不可逆运算单元的输出B1。之后可以将B1发送到区块链网络中的验证智能合约,验证智能合约可以将B1输入到4个级联的不可逆运算单元中第2个不可逆运算单元中,可以得到第4个不可逆运算单元的输出C,从而证明消费者用户真实溯源码A,可以将C对应的业务数据集合返回到消费者终端。具体返回方式可以参见上述方法流程。
同理,得到A的消费者可以将A输入到4个级联的不可逆运算单元中第1个不可逆运算单元中,可以得到第2个不可逆运算单元的输出B2,也可以得到第3个不可逆运算单元的输出B3。
B2和B3都可以发送到区块链网络,由验证智能合约计算得到输出C,证明消费者是拥有真实溯源码的消费者。
并且,每次用于凭证验证的中间结果(例如,B1-B3)可以记录在区块链上。而已经通过凭证验证的中间结果无法再次通过凭证验证。因此,其他人不能够进行重放攻击。
因此,上述实施例可以使得各个中间商关联到真实溯源码,但看不到真实溯源码,并且消费者可以通过零知识证明的方式,证明自己持有真实溯源码,从而可以获取到生产信息和流转信息。
对应于上述方法流程,本说明书还提供了一种对应的系统实施例。
如图5所示,为本说明书实施例提供的一种基于区块链网络的凭证验证系统的结构示意图。
该系统包括用户终端201和区块链网络202。
该系统用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入。
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和合法输出集合;用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1。
用户终端201可以用于:将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M个不可逆运算单元的输出作为中间结果发送到区块链网络502。
区块链网络202用于:运行验证智能合约,将中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定目标输出包含于合法输出集合的情况下,确定用户终端存储的目标凭证合法。
上述系统实施例的其他解释可以参见上述方法流程。
对应于上述方法流程,本说明书还提供了一种对应的装置实施例。
如图6所示,为本说明书实施例提供的一种基于区块链网络的凭证验证装置的结构示意图。
该装置可以应用于区块链网络;该装置可以用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法。
预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入。
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和合法输出集合;用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1。
该装置可以包括以下单元。
接收单元301,用于接收用户终端发送的中间结果;中间结果是用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,第M个不可逆运算单元的输出。
验证单元302,用于运行验证智能合约,将中间结果输入到部署的第M+1个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定目标输出包含于合法输出集合的情况下,确定用户终端存储的目标凭证合法。
上述装置实施例的其他解释可以参见上述方法流程。
本说明书实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种基于区块链网络的凭证验证方法中区块链网络执行的步骤、或者用户终端执行的步骤。
图7示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种基于区块链网络的凭证验证方法中区块链网络执行的步骤、或者用户终端执行的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。

Claims (10)

1.一种基于区块链网络的凭证验证方法,用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述方法包括:
在所述用户终端第k次请求验证所存储的目标凭证的情况下,1≤k≤M,所述用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,将部署的第M-k+1个不可逆运算单元的输出作为中间结果发送到所述区块链网络;
所述区块链网络运行所述验证智能合约,将所述中间结果输入到部署的第M-k+2个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法;所述验证智能合约中部署有第M-k+2个到第N个不可逆运算单元。
2.根据权利要求1所述的方法,在将所述中间结果输入到部署的第M+1个不可逆运算单元之前,所述区块链网络运行所述验证智能合约执行的步骤还包括:
在预设情况下,确定所述用户终端验证失败;所述预设情况包括以下至少一种:
已经验证过所述中间结果;
在某一合法凭证更新为不合法凭证的情况下,确定所述中间结果是根据该不合法凭证得到的;
在所述验证智能合约过去的运行过程中计算出所述中间结果。
3.根据权利要求1所述的方法,所述区块链网络中部署有可信执行环境;
所述验证智能合约中第M+1个到第N个不可逆运算单元在所述可信执行环境中运行。
4.根据权利要求1所述的方法,所述区块链网络还存储有所述合法输出集合中任一合法输出对应的业务数据集合;
在确定所述目标输出包含于所述合法输出集合的情况下,所述方法还包括:
将所述目标输出对应的业务数据集合返回到所述用户终端。
5.根据权利要求4所述的方法,所述区块链网络中部署有可信执行环境;所述合法输出集合中任一合法输出对应的业务数据集合以密文形式存储在所述区块链网络中;
所述将所述目标输出对应的业务数据集合返回到所述用户终端,包括:
在所述可信执行环境中执行以下步骤:针对所述目标输出对应的业务数据集合密文,利用第一解密密钥进行解密,并将解密结果通过与所述用户终端约定的第二加密密钥进行加密,将加密结果返回到所述用户终端。
6.一种基于区块链网络的凭证验证方法,应用于区块链网络;所述方法用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述方法包括:
接收所述用户终端发送的中间结果;所述中间结果是所述用户终端第k次请求验证所存储的目标凭证的情况下,1≤k≤M,所述用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,第M-k+1个不可逆运算单元的输出;
运行所述验证智能合约,将所述中间结果输入到部署的第M-k+2个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法;所述验证智能合约中部署有第M-k+2个到第N个不可逆运算单元。
7.一种基于区块链网络的凭证验证系统,所述系统包括用户终端和区块链网络;所述系统用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述用户终端用于:在所述用户终端第k次请求验证所存储的目标凭证的情况下,1≤k≤M,将存储的目标凭证输入到部署的第1个不可逆运算单元后,将第M-k+1个不可逆运算单元的输出作为中间结果发送到所述区块链网络;
所述区块链网络用于:运行所述验证智能合约,将所述中间结果输入到部署的第M-k+2个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法;所述验证智能合约中部署有第M-k+2个到第N个不可逆运算单元。
8.一种基于区块链网络的凭证验证装置,应用于区块链网络;所述装置用于通过区块链网络中的验证智能合约验证用户终端存储的目标凭证是否合法;预先设置N个级联的不可逆运算单元,N≥2,任一不可逆运算单元为:无法根据输出反推得到输入的运算单元;对于第i个不可逆运算单元,1≤i≤N-1,其输出级联至第i+1个不可逆运算单元的输入;
预先将每个合法凭证输入到N个级联的不可逆运算单元中的第1个运算单元,得到第N个运算单元的输出并添加到合法输出集合中;所述验证智能合约中部署有级联的第M+1个到第N个不可逆运算单元和所述合法输出集合;所述用户终端本地部署有前M个级联的不可逆运算单元,1≤M≤N-1;
所述装置包括:
接收单元,用于接收所述用户终端发送的中间结果;所述中间结果是所述用户终端第k次请求验证所存储的目标凭证的情况下,1≤k≤M,所述用户终端将存储的目标凭证输入到部署的第1个不可逆运算单元后,第M-k+1个不可逆运算单元的输出;
验证单元,用于运行所述验证智能合约,将所述中间结果输入到部署的第M-k+2个不可逆运算单元,将第N个不可逆运算单元的输出作为目标输出;在确定所述目标输出包含于所述合法输出集合的情况下,确定所述用户终端存储的所述目标凭证合法;所述验证智能合约中部署有第M-k+2个到第N个不可逆运算单元。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求6所述的方法。
10.一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如权利要求6所述的方法。
CN202210234343.9A 2022-03-10 2022-03-10 一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质 Active CN114826653B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210234343.9A CN114826653B (zh) 2022-03-10 2022-03-10 一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210234343.9A CN114826653B (zh) 2022-03-10 2022-03-10 一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114826653A CN114826653A (zh) 2022-07-29
CN114826653B true CN114826653B (zh) 2024-04-16

Family

ID=82528681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210234343.9A Active CN114826653B (zh) 2022-03-10 2022-03-10 一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114826653B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108876332A (zh) * 2018-06-04 2018-11-23 清华大学 一种基于生物特征标记认证的区块链安全交易方法及装置
CN110493007A (zh) * 2019-09-06 2019-11-22 腾讯科技(深圳)有限公司 一种基于区块链的信息验证方法、装置、设备及存储介质
KR20210069494A (ko) * 2019-12-03 2021-06-11 한국조폐공사 IoT 디바이스를 인증하며 IoT 디바이스의 무결성을 검증하는 방법 및 이를 이용한 컨트롤 디바이스
CN113204744A (zh) * 2021-04-07 2021-08-03 西安西电链融科技有限公司 一种基于分布式身份的软件授权系统及方法
CN113420277A (zh) * 2021-08-24 2021-09-21 北京微芯感知科技有限公司 基于智能合约的数字身份管理和验证方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188572A (zh) * 2019-05-22 2019-08-30 深圳前海微众银行股份有限公司 一种应用于区块链的可消耗凭证的验证方法和装置
CN113326327B (zh) * 2021-06-15 2022-04-19 支付宝(杭州)信息技术有限公司 一种基于区块链的凭证查询方法、系统及装置
CN113656497A (zh) * 2021-08-06 2021-11-16 支付宝(杭州)信息技术有限公司 一种基于区块链的数据验证方法和装置
CN113746640B (zh) * 2021-09-26 2024-03-01 网易(杭州)网络有限公司 数字凭证使用方法、装置、计算机设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108876332A (zh) * 2018-06-04 2018-11-23 清华大学 一种基于生物特征标记认证的区块链安全交易方法及装置
CN110493007A (zh) * 2019-09-06 2019-11-22 腾讯科技(深圳)有限公司 一种基于区块链的信息验证方法、装置、设备及存储介质
KR20210069494A (ko) * 2019-12-03 2021-06-11 한국조폐공사 IoT 디바이스를 인증하며 IoT 디바이스의 무결성을 검증하는 방법 및 이를 이용한 컨트롤 디바이스
CN113204744A (zh) * 2021-04-07 2021-08-03 西安西电链融科技有限公司 一种基于分布式身份的软件授权系统及方法
CN113420277A (zh) * 2021-08-24 2021-09-21 北京微芯感知科技有限公司 基于智能合约的数字身份管理和验证方法

Also Published As

Publication number Publication date
CN114826653A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
US11588637B2 (en) Methods for secure cryptogram generation
CN112822181B (zh) 跨链交易的验证方法、终端设备及可读存储介质
US8555072B2 (en) Attestation of computing platforms
CN112215608A (zh) 数据处理方法和装置
CN110035052B (zh) 一种查看历史交易信息的方法、装置及电子设备
CN109905360B (zh) 数据验证方法及终端设备
CN111770199B (zh) 一种信息共享方法、装置及设备
CN111160908B (zh) 基于区块链的供应链交易隐私保护系统、方法及相关设备
CN115174099A (zh) 基于区块链的版权资产授权方法及装置和电子设备
CN112948789B (zh) 身份认证方法及装置、存储介质及电子设备
Bojjagani et al. The use of iot-based wearable devices to ensure secure lightweight payments in fintech applications
CN117155549A (zh) 密钥分发方法、装置、计算机设备和存储介质
CN114826653B (zh) 一种基于区块链网络的凭证验证方法、系统、装置、设备及存储介质
US20240113898A1 (en) Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity
Akram et al. A secure and trusted channel protocol for the user centric smart card ownership model
CN115409511A (zh) 一种基于区块链的个人信息保护系统
CN113159774A (zh) 一种区块链中可监管零知识证明验证方法及系统
JP5847345B1 (ja) 情報処理装置、認証方法及びプログラム
Palmer et al. A protocol for anonymously establishing digital provenance in reseller chains (short paper)
WO2015176364A1 (zh) 支付方法、移动终端及用户识别卡、计算机存储介质
CN116681440A (zh) 数据交易方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant