CN110555772B - 凭证验证方法、装置、设备与可读存储介质 - Google Patents
凭证验证方法、装置、设备与可读存储介质 Download PDFInfo
- Publication number
- CN110555772B CN110555772B CN201910851095.0A CN201910851095A CN110555772B CN 110555772 B CN110555772 B CN 110555772B CN 201910851095 A CN201910851095 A CN 201910851095A CN 110555772 B CN110555772 B CN 110555772B
- Authority
- CN
- China
- Prior art keywords
- rights
- certificate
- verification
- interests
- server
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
- H04L9/3252—Cryptographic 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 involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及区块链技术,公开了一种凭证验证方法,包括:若检测到基于权益凭证发起的验证请求,则从验证请求对应的区块链的合约数据表中,获取权益凭证的服务内容和权益凭证的兑现记录;获取验证请求的验证密钥、权益凭证的服务项目以及权益凭证对应的服务端的签名公钥,并基于验证密钥、服务项目和签名公钥,验证服务内容;若服务内容验证通过,则获取权益凭证的兑现附言,并基于兑现附言,验证兑现记录;若兑现记录验证通过,则确定权益凭证有效。本发明还公开了一种凭证验证装置、设备和计算机可读存储介质。本发明的权益凭证验证不需要服务端参与,同时,利用密码学技术和区块链特性,在实现隐私保护的同时,实现自主验证。
Description
技术领域
本发明涉及区块链(Blockchain)技术领域,尤其涉及凭证验证方法、装置、设备与可读存储介质。
背景技术
近年来,随着金融科技(Fintech),尤其是互联网金融的不断发展,互联网交易越来越多,交易产品也越来越多样,交易过程中,往往会遇到交易对象不是实体物品,而是一种权益凭证的时候,如各类预付卡,兑换券等,由于权益凭证的使用与费用支付的时间并不同步,买方往往是费用支付一段时间后,才去享受权益凭证对应的服务,并且,权益凭证一般由卖方提供,且相应的兑换数据保存在卖方私有的数据库中,这使得一旦出现纠纷,如卖家不承认出售过权益凭证,或者权益凭证已被兑换等,买方在无法享受权益凭证对应的服务的同时,也很难进行追责。
也即现有的权益凭证的验证需要卖方诚实参与,买方自身无法单独进行权益凭证的有效验证以进行追责。
发明内容
本发明的主要目的在于提出一种凭证验证方法、装置、设备与计算机可读存储介质,旨在实现权益凭证的自主验证。
为实现上述目的,本发明提供一种凭证验证方法,所述凭证验证方法包括如下步骤:
若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;
获取所述权益凭证的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;
若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;
若所述兑现记录验证通过,则确定所述权益凭证有效。
优选地,所述服务内容包括服务承诺、服务标识和第一数字签名;
所述基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容的步骤包括:
基于所述验证密钥和所述服务项目,计算对应的待验证承诺,并确定所述待验证承诺是否与所述服务承诺一致;
若是,则使用所述签名公钥验证所述第一数字签名是否是对全局唯一加密凭证的有效签名,若是,则确定所述服务内容验证通过,其中,所述全局唯一加密凭证由所述服务承诺和所述服务标识生成。
优选地,所述兑现记录包括加密交易限制信息和第二数字签名;
所述基于所述兑现附言,验证所述兑现记录的步骤包括:
基于所述兑现附言,验证所述加密交易限制信息是否正确;
若正确,则使用所述签名公钥验证所述第二数字签名是否是对所述加密交易限制信息的有效签名,若是,则确定所述兑现记录验证通过。
优选地,所述若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录的步骤之前,所述凭证验证方法还包括:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端;
检测所述区块链的合约数据表中是否存在所述加密交易限制信息,若存在,则确定所述权益凭证完成兑现;
其中,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中。
优选地,所述若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端的步骤包括:
若检测到基于所述权益凭证发起的兑现请求,则获取所述权益凭证的兑现附言,并基于所述兑现附言和预设块高,生成对应的交易限制信息;
获取所述服务端的数据公钥,并使用所述数据公钥对所述交易限制信息进行加密,以得到所述加密交易限制信息,并将所述加密交易限制信息发送至所述服务端。
优选地,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端在接收到所述加密交易限制信息时,使用所述数据公钥对应的数据私钥解密所述加密交易限制信息,以得到所述交易限制信息;
所述服务端验证所述交易限制信息的所述兑现附言是否合理;
若所述服务端确定所述兑现附言合理,则使用所述服务端的签名私钥对所述加密交易限制信息进行签名,生成所述第二数字签名,并将所述第二数字签名和所述加密交易限制信息上传至所述区块链的合约数据表中。
优选地,所述若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端的步骤包括:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息和所述权益凭证的零知识证明,并将所述加密交易限制信息和所述零知识证明发送至所述服务端;
所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端将所述加密交易限制信息和所述零知识证明上传至所述区块链,由所述区块链基于所述零知识证明验证所述权益凭证的兑现记录;
其中,若验证通过,则所述区块链标记所述权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中。
优选地,所述若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端的步骤之前,所述凭证验证方法还包括:
若检测到基于所述权益凭证发起的购买请求,则将预设的验证密钥发送至所述服务端;
接收所述服务端基于所述购买请求发送的所述权益凭证对应的全局唯一加密凭证、所述服务端的签名公钥和所述全局唯一加密凭证的第一数字签名,并核实所述区块链的合约数据表中是否存在所述全局唯一加密凭证、所述签名公钥和所述第一数字签名,其中,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证,并使用所述签名公钥对所述全局唯一加密凭证进行签名,以得到所述第一数字签名;
若存在,则确定所述权益凭证购买完成。
优选地,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证的步骤包括:
所述服务端在接收到所述验证密钥时,基于所述验证密钥和所述权益凭证对应的服务项目,生成对应的服务承诺;
所述服务端基于所述服务承诺和所述区块链的服务标识,生成所述全局唯一加密凭证。
此外,为实现上述目的,本发明还提供一种凭证验证装置,所述凭证验证装置包括:
检测模块,用于若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;
验证模块,用于获取所述权益凭证的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;
所述验证模块,还用于若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;
确定模块,用于若所述兑现记录验证通过,则确定所述权益凭证有效。
优选地,所述服务内容包括服务承诺、服务标识和第一数字签名,所述验证模块还用于:
基于所述验证密钥和所述服务项目,计算对应的待验证承诺,并确定所述待验证承诺是否与所述服务承诺一致;
若是,则使用所述签名公钥验证所述第一数字签名是否是对全局唯一加密凭证的有效签名,若是,则确定所述服务内容验证通过,其中,所述全局唯一加密凭证由所述服务承诺和所述服务标识生成。
优选地,所述兑现记录包括加密交易限制信息和第二数字签名,所述验证模块还用于:
基于所述兑现附言,验证所述加密交易限制信息是否正确;
若正确,则使用所述签名公钥验证所述第二数字签名是否是对所述加密交易限制信息的有效签名,若是,则确定所述兑现记录验证通过。
优选地,所述检测模块还用于:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端;
检测所述区块链的合约数据表中是否存在所述加密交易限制信息,若存在,则确定所述权益凭证完成兑现;
其中,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中。
优选地,所述检测模块还用于:
若检测到基于所述权益凭证发起的兑现请求,则获取所述权益凭证的兑现附言,并基于所述兑现附言和预设块高,生成对应的交易限制信息;
获取所述服务端的数据公钥,并使用所述数据公钥对所述交易限制信息进行加密,以得到所述加密交易限制信息,并将所述加密交易限制信息发送至所述服务端。
优选地,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端在接收到所述加密交易限制信息时,使用所述数据公钥对应的数据私钥解密所述加密交易限制信息,以得到所述交易限制信息;
所述服务端验证所述交易限制信息的所述兑现附言是否合理;
若所述服务端确定所述兑现附言合理,则使用所述服务端的签名私钥对所述加密交易限制信息进行签名,生成所述第二数字签名,并将所述第二数字签名和所述加密交易限制信息上传至所述区块链的合约数据表中。
优选地,所述检测模块还用于:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息和所述权益凭证的零知识证明,并将所述加密交易限制信息和所述零知识证明发送至所述服务端;
所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端将所述加密交易限制信息和所述零知识证明上传至所述区块链,由所述区块链基于所述零知识证明验证所述权益凭证的兑现记录;
其中,若验证通过,则所述区块链标记所述权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中。
优选地,所述检测模块还用于:
若检测到基于所述权益凭证发起的购买请求,则将预设的验证密钥发送至所述服务端;
接收所述服务端基于所述购买请求发送的所述权益凭证对应的全局唯一加密凭证、所述服务端的签名公钥和所述全局唯一加密凭证的第一数字签名,并核实所述区块链的合约数据表中是否存在所述全局唯一加密凭证、所述签名公钥和所述第一数字签名,其中,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证,并使用所述签名公钥对所述全局唯一加密凭证进行签名,以得到所述第一数字签名;
若存在,则确定所述权益凭证购买完成。
优选地,所述检测模块还用于:
所述服务端在接收到所述验证密钥时,基于所述验证密钥和所述权益凭证对应的服务项目,生成对应的服务承诺;
所述服务端基于所述服务承诺和所述区块链的服务标识,生成所述全局唯一加密凭证。
此外,为实现上述目的,本发明还提供一种凭证验证设备,所述凭证验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的凭证验证程序,所述凭证验证程序被所述处理器执行时实现如上所述的凭证验证方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有凭证验证程序,所述凭证验证程序被处理器执行时实现如上所述的凭证验证方法的步骤。
本发明提出的凭证验证方法,若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;获取所述验证请求的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;若所述兑现记录验证通过,则确定所述权益凭证有效。本发明的权益凭证验证不需要服务端参与,利用区块链的不可篡改的特性,从区块链中下载相应的证明,来证实权益凭证有效,实现自主验证,并且,在验证过程中,需要验证密钥,也即在购买之初,采用密码学技术对其进行了加密,因此,第三方无法获知并验证权益凭证的内容,从而保护了服务提供方的商业机密和买方的个人隐私。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明凭证验证方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例设备可以是PC机或服务器设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及凭证验证程序。
其中,操作系统是管理和控制凭证验证设备与软件资源的程序,支持网络通信模块、用户接口模块、凭证验证程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
在图1所示的凭证验证设备中,所述凭证验证设备通过处理器1001调用存储器1005中存储的凭证验证程序,并执行下述凭证验证方法各个实施例中的操作。
基于上述硬件结构,提出本发明凭证验证方法实施例。
参照图2,图2为本发明凭证验证方法第一实施例的流程示意图,所述方法包括:
步骤S10,若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;
步骤S20,获取所述验证请求的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;
步骤S30,若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;
步骤S40,若所述兑现记录验证通过,则确定所述权益凭证有效。
本实施例凭证验证方法运用于理财机构或者银行等金融机构的凭证验证设备中,凭证验证设备可以是终端、机器人或者PC设备,为描述方便,凭证验证设备以凭证设备进行描述,在具体实施时,凭证设备可以是金融机构内部员工所使用的设备,也可以是金融机构对外发行的软硬件系统,由用户自行安装在自己的终端设备上所形成的凭证设备等。凭证设备可通过网络通讯与服务端对接,并且凭证设备与服务端存在区块链,其中,服务端为权益凭证的服务提供方,负责对外发售相关的权益凭证,而持有凭证设备的用户为买方,可通过网络通讯向服务端购买或者兑现权益凭证,并能自主验证权益凭证,而区块链则记录凭证设备与服务端之间的交易行为。
本实施例的凭证设备,在检测到基于权益凭证发起的验证请求时,从区块链的合约数据表中下载验证所需的服务内容和兑现记录,并依次验证服务内容和兑现记录,若两者都验证通过,则确定权益凭证有效,即,权益凭证为有效证据,可通过权益凭证进行追责,验证过程中,由于区块链不可篡改的特性,无需服务端参与,凭证设备自主就能完成。
以下将对各个步骤进行详细说明:
步骤S10,若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录。
在本实施例中,若是遇到纠纷,或者买方需要取得权益凭证的公开验证,则可以通过凭证设备发起验证请求,在具体实施时,凭证设备可以是买方的手机等移动终端。
若凭证设备检测到基于权益凭证发起的验证请求,则从验证请求对应的区块链的合约数据表中下载权益凭证对应的服务内容和兑现记录,也即区块链的合约数据表中记录有凭证设备与服务端之间的交易行为,具体包括服务内容和兑现记录,其中,服务内容是权益凭证对应的服务项目,即权益凭证对应的具体服务是什么,而兑现记录则是权益凭证是否兑现。由于区块链不可篡改的特性,因此,凭证设备从区块链中下载相关的服务内容和兑现记录更具公正性,也能确保相关数据真实。
步骤S20,获取所述权益凭证的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容。
在本实施例中,凭证设备依次对服务内容和兑现进行进行验证,首先,在对服务内容进行验证时,需要先获取验证密钥,其中,验证密钥为买方在购买当前权益凭证时所预设的一个密钥,即验证密钥原则上只有买方知道,因此,在具体实施时,凭证设备可通过接收买方输入的验证密钥来获取权益凭证的验证密钥,接着,获取权益凭证的服务项目,以及权益凭证对应的服务端的签名公钥,其中,签名公钥在区块链上可知,因此,连接区块链的凭证设备可以获取到,然后,凭证设备根据验证密钥、服务项目和签名公钥验证服务内容。
具体的,所述服务内容包括服务承诺、服务标识和第一数字签名,步骤S20包括:
步骤a,基于所述验证密钥和所述服务项目,计算对应的待验证承诺,并确定所述待验证承诺是否与所述服务承诺一致;
在该步骤中,凭证设备具体从区块链的合约数据表中下载下来的服务内容包括服务承诺、服务标识和第一数字签名,在对服务内容进行验证的过程中,用验证密钥和服务项目,计算待验证承诺,并确定待验证承诺是否与从区块链的合约数据表中下载下来的服务承诺一致。
其中,待验证承诺的计算具体为:
获取第一公开参数G和第二公开参数H,并基于所述验证密钥、所述服务项目、所述第一公开参数、所述第二公开参数和预设公式,计算对应的待验证承诺,并确定所述待验证承诺是否与所述服务承诺一致。
在该步骤中,凭证设备获取第一公开参数G和第二公开参数H,其中,G和H为事先公开的参数,在具体实施时,由监管仲裁方通过可信的信道公开,因此,凭证设备可获取到,然后,根据验证密钥、服务项目、预设公式,G和H,计算待验证承诺。
在本实施例中,预设公式优选为椭圆曲线公式,即待验证承诺=验证密钥r*第一公开参数G+Encode(服务项目)*第二公开参数H,其中,Encode是公开的编码函数,在这里,是将服务项目转换成数值。
在另一实施例中,为了通用性考虑,对于非整数类型的服务项目的服务项目的值,可以使用哈希函数Hash作为Encode函数。
需要说明的是,服务承诺是买方通过凭证设备购买权益凭证时,通过上述计算方法得出,并储存在区块链的合约数据表中,因此,只需验证当前计算得出的待验证承诺是否与区块链的合约数据表中的服务承诺一致。
步骤b,若是,则使用所述签名公钥验证所述第一数字签名是否是对全局唯一加密凭证的有效签名,若是,则确定所述服务内容验证通过,其中,所述全局唯一加密凭证由所述服务承诺和所述服务标识生成。
若确定计算所得待验证承诺与在区块链的合约数据表中下载下来的服务承诺一致,则进一步使用服务端的签名公钥验证第一数字签名是否是全局唯一加密凭证的有效签名,也即验证服务端是否知道并承认过当前权益凭证,需要解释的是第一数字签名由服务端使用签名私钥对全局唯一加密凭证进行签名所得,因此,需要使用服务端的签名公钥进行验证。
其中,可以理解的,全局唯一加密凭证可以由服务承诺单独生成,也即在验证之前,由服务端计算得到当前权益凭证的服务承诺(具体计算方法与上述计算待验证承诺类似,并且验证密钥由买方通过凭证设备发送给服务端),并使用签名私钥对服务承诺进行签名,从而得到第一数字签名,但由于在极小概率下可能出现r与Encode(服务项目)的值相同,导致两个权益凭证的服务承诺相同的情况,为了防止此种情况发生,本实施例优选引入一个全局唯一的标识号——服务标识,在验证之前,服务端用服务承诺和服务标识组成全局唯一加密凭证,并对其签名,以得到第一数字签名,服务标识是一个全局的只增不减的单增序列数,对任一条历史记录中的服务标识一旦生成,不会对同一个表内数据的删减而改变,服务标识的获取可以利用区块链智能合约执行的事务原子性获得,这里不再详述,而凭证设备在验证过程中获取到的服务标识,是从区块链的合约数据表中下载下来的。
步骤S30,若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录。
在本实施例中,若凭证设备确定权益凭证的服务内容验证通过,则进一步获取权益凭证的兑现附言,其中,兑现附言是指买方在购买当前权益凭证时所设置的,并且是服务端的服务提供方认可的信息,如当前权益凭证可在服务提供方指定的301-501号店使用,买方在购买之初可通过凭证设备设置“在301号店使用”作为兑现附言,然后,凭证设备基于当前权益凭证的兑现附言,验证权益凭证在区块链中的兑现记录。
具体的,所述兑现记录包括加密交易限制信息和第二数字签名,步骤S30包括:
步骤c,基于所述兑现附言,验证所述加密交易限制信息是否正确;
在该步骤中,凭证设备根据当前权益凭证的兑现附言,验证加密交易限制信息是否正确,具体的验证过程为:
获取所述服务端的数据公钥,以及所述权益凭证对应的预设块高,基于所述兑现附言、所述预设块高和所述数据公钥,验证所述加密交易限制信息是否正确。
具体的,在验证之前,凭证设备获取兑现附言和预设块高,并基于兑现附言和预设块高生成交易限制信息,也即,交易限制信息=(预设块高,兑现附言),接着,使用服务端的数据公钥对交易限制信息进行加密,得到加密交易限制信息,因此,在验证过程中,只需验证E_condition=E_PK_data_s(maxBlockNumber,claimMessage)是否成立,其中,E_condition为加密交易限制信息,maxBlockNumber为预设块高,claimMessage为兑现附言,PK_data_s为服务端的数据公钥,也即验证加密交易限制信息的明文是否与密文对应上。
步骤d,若正确,则使用所述签名公钥验证所述第二数字签名是否是对所述加密交易限制信息的有效签名,若是,则确定所述兑现记录验证通过。
若E_condition=E_PK_data_s(maxBlockNumber,claimMessage)的等式成立,即加密交易限制信息验证正确,则使用服务端的签名公钥,验证第二数字签名是否是对加密交易限制信息的有效签名,也即确定服务端是否知道并承认过加密交易限制信息,其中,第二数字签名为服务端使用其签名私钥对加密交易限制信息进行签名所得,因此,凭证设备用签名公钥来验证第二数字签名是否是对加密交易限制信息的有效签名。
若第二数字签名是对加密交易限制信息的有效签名,则确定兑现记录验证通过。
步骤S40,若所述兑现记录验证通过,则确定所述权益凭证有效。
在本实施例中,若凭证设备确定当前权益凭证的服务内容和兑现记录都验证通过,则确定当前权益凭证有效,可作为证据向监管仲裁方展示。
可以理解的,若服务内容和/或兑现记录验证不通过,则确定当前权益凭证无效,不能作为证据进行追责。
本实施例若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;获取所述验证请求的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;若所述兑现记录验证通过,则确定所述权益凭证有效。本发明的权益凭证验证不需要服务端参与,利用区块链的不可篡改的特性,从区块链中下载相应的证明,来证实权益凭证有效,实现自主验证,并且,在验证过程中,需要验证密钥,也即在购买之初,采用密码学技术对其进行了加密,因此,第三方无法获知并验证权益凭证的内容,从而保护了服务提供方的商业机密和买方的个人隐私。
进一步地,基于本发明凭证验证方法第一实施例,提出本发明凭证验证方法第二实施例。
凭证验证方法的第二实施例与凭证验证方法的第一实施例的区别在于,步骤S10之前,凭证验证方法还包括:
步骤S50,若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端;
步骤S60,检测所述区块链的合约数据表中是否存在所述加密交易限制信息,若存在,则确定所述权益凭证完成兑现;
其中,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中。
本实施例若检测到基于权益凭证发起的兑现请求,则需要将加密交易限制信息发给服务端,而服务端将加密交易限制信息上传至区块链的合约数据表中,当在区块链的合约数据表中检测到加密交易限制信息时,确定权益凭证兑现完成。
以下将对各个步骤进行详细说明:
步骤S50,若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端。
在本实施例中,若凭证设备检测到基于权益凭证发起的兑现请求,则确定权益凭证的加密交易限制信息,并将该加密交易限制信息发送至服务端,也即,买方通过凭证设备兑现权益凭证时,需确定权益凭证的加密交易限制信息,再将加密交易限制信息发送给服务端,以供服务端进行确认,可以理解的,权益凭证是由服务端发行的,在买方持有权益凭证,并且需要兑现时,需要向服务端进行兑现,而兑现所需证明,则为加密交易限制信息。
其中,步骤S50包括:
步骤e,若检测到基于所述权益凭证发起的兑现请求,则获取所述权益凭证的兑现附言,并基于所述兑现附言和预设块高,生成对应的交易限制信息;
在该步骤中,若凭证设备检测到基于权益凭证发起的兑现请求,则获取权益凭证的兑现附言,并根据兑现附言和预设块高,生成对应的交易限制信息,其中,预设块高为凭证设备根据当前区块链节点对应的块高,加上一个合理上限,如当前区块链节点的块高+10,即为预设块高,合理上限可根据实际情况进行调整,可以理解的,区块链节点的块高随交易的产生而不断增加,为保证交易的安全性,需要设置一个合理上限,确保后续区块链在验证兑现记录时,当前区块链节点的块高不会超过预设块高,类似现有手机验证码的有效时间,在有效时间内才能进行验证。而兑现附言则可以是任意服务端认可的信息,如当前权益凭证“在301号店使用”,最后生成condition=(maxBlockNumber,claimMessage),其中,condition为交易限制信息,maxBlockNumber为预设块高,claimMessage为兑现附言。
步骤f,获取所述服务端的数据公钥,并使用所述数据公钥对所述交易限制信息进行加密,以得到所述加密交易限制信息,并将所述加密交易限制信息发送至所述服务端。
接着,凭证设备获取服务端的数据公钥,该数据公钥在区块链中可知,并使用数据公钥对交易限制信息进行加密,从而得到加密交易限制信息,并将加密交易限制信息发送给服务端。
步骤S60,检测所述区块链的合约数据表中是否存在所述加密交易限制信息,若存在,则确定所述权益凭证完成兑现;
其中,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中。
在本实施例中,凭证设备在将加密交易限制信息发送给服务端后,只需在区块链的合约数据表中确定是否存在与发给服务端一致的加密交易限制信息,若存在,则确定当前权益凭证兑现完成。
其中,具体的,交易流程为:凭证设备将加密交易限制信息发送给服务端,服务端在接收到加密交易限制信息时,根据加密交易限制信息,验证凭证设备发起的兑现请求是否有效,具体确定当前权益凭证是否有效,当前权益凭证是否未被兑现等,并在确定兑现请求有效时,服务端才将加密交易限制信息上传至区块链的合约数据表中。
进一步的,在服务端将加密交易限制信息上传至区块链的合约数据表中的过程中,包括:
步骤g,所述服务端在接收到所述加密交易限制信息时,使用所述数据公钥对应的数据私钥解密所述加密交易限制信息,以得到所述交易限制信息;
在该步骤中,由于加密交易限制信息加密时用的是服务端的数据公钥,因此,服务端在接收到加密交易限制信息时,使用对应的数据私钥对加密交易限制信息进行解密,从而得到交易限制信息,由于交易限制信息由兑现附言和预设块高组成,因此也即得到当前权益凭证对应的预设块高和兑现附言。
步骤h,所述服务端验证所述交易限制信息的所述兑现附言是否合理;
接着,服务端验证兑现附言是否合理,具体验证过程为:
将兑现附言与服务端对应的预设兑现附言进行比较,确定兑现附言是否在预设兑现附言中,如,服务端针对权益凭证预设的兑现附言为“在301-501号店使用”,那么当兑现附言在301-501号店之间,如“在302号店使用”,则认为兑现附言合理。
步骤i,若所述服务端确定所述兑现附言合理,则使用所述服务端的签名私钥对所述加密交易限制信息进行签名,生成所述第二数字签名,并将所述第二数字签名和所述加密交易限制信息上传至所述区块链的合约数据表中。
服务端在确定兑现附言合理后,需要留下证据,证明自己知道并承认过加密交易限制信息,因此,服务端使用签名私钥对加密交易限制信息进行签名,生成第二数字签名,最后,将加密交易限制信息和第二数字签名上传至区块链的合约数据表中。
本实施例为后续能准确的验证权益凭证,在兑现权益凭证时,需要将加密交易限制信息作为证据发送给服务端,以供服务端签名,再由服务端上传至区块链的合约数据表中,使得后续凭证设备从区块链的合约数据表中下载下来的信息是可信的,服务端无法抵赖的,从而提高权益凭证的自主验证的可行性。
进一步地,基于本发明凭证验证方法第一、第二实施例,提出本发明凭证验证方法第三实施例。
凭证验证方法的第三实施例与凭证验证方法的第一、第二实施例的区别在于,步骤S50包括:
步骤j,若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息和所述权益凭证的零知识证明,并将所述加密交易限制信息和所述零知识证明发送至所述服务端;
所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
步骤k,所述服务端将所述加密交易限制信息和所述零知识证明上传至所述区块链,由所述区块链基于所述零知识证明验证所述权益凭证的兑现记录;
其中,若验证通过,则所述区块链标记所述权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中。
本实施例凭证设备在将权益凭证的加密交易限制信息发送给服务端时,还一并把零知识证明发送过去,以便服务端将加密交易限制信息和零知识证明上传至区块链时,区块链基于零知识证明验证当前权益凭证的兑现记录,若验证通过,才将加密交易限制信息保存在合约数据表中,此时,权益凭证的兑现才完成。
以下将对各个步骤进行详细说明:
步骤j,若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息和所述权益凭证的零知识证明,并将所述加密交易限制信息和所述零知识证明发送至所述服务端。
在本实施例中,在买方通过凭证设备购买到权益凭证后,可以通过凭证设备向服务端提供证明自己知道验证密钥来兑现相应的服务项目,但由于区块链在交易生效前需要广播证明数据的明文,也即需将验证密钥广播,然而,若是将验证密钥广播出去,将给买方带来损失,因此,不能直接广播验证密钥的明文来完成兑现,在本实施例中,使用绑定加密交易限制信息的零知识证明来解决这一问题。
需要解释的是,零知识证明zk_proof(zero-knowledge proof)指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
在这里,若凭证设备检测到基于权益凭证发起的兑现请求,则确定权益凭证的加密交易限制信息和零知识证明,其中,加密交易限制信息的确定可参见上一实施例,在此不再赘述,而零知识证明的确定过程,具体包括:
获取预设随机参数a和b,并获取所述权益凭证的服务承诺、服务项目和验证密钥,基于所述服务承诺、所述服务项目、所述验证密钥、所述随机参数a和b,生成零知识证明。
在该步骤中,买方通过凭证设备选取两个独立的随机参数a和b,并且不公开,只有买方知道,然后计算v_item_i=Encode(item_i),其中,v_item_i为项目数值,item_i为服务项目,接着计算z0=hash(G||H||serviceCommitment||T1||E_condition),其中,T1=a*G+b*H,G和H为公开参数,serviceCommitment为服务承诺,E_condition为加密交易限制信息,而符号||表示字符串之后加上字符串,如A||B:指在A字符串之后附加B字符串,例如“ab”||“c”=“abc”。
接着,计算z1=a-z0*r,其中,r为验证密钥,接着,计算z2=b-z0*v_item_i,最后,通过z0、z1、z2组成零知识证明,即零知识证明zk_proof=(z0,z1,z2)。
最后,凭证设备将加密交易限制信息和零知识证明发送给服务端。
需要说明的是,由于零知识证明的本意在于证明且不泄露自身的私密信息,因此,凭证设备可根据实际情况选择相应的参数来生成零知识证明。
进一步地,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
步骤k,所述服务端将所述加密交易限制信息和所述零知识证明上传至所述区块链,由所述区块链基于所述零知识证明验证所述权益凭证的兑现记录;
其中,若验证通过,则所述区块链标记所述权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中。
在该步骤中,服务端同样需要核实兑现请求的有效性,具体步骤与上一实施例类似,在此不再赘述。
在确定兑现请求有效时,服务端将加密交易限制信息和零知识证明上传至区块链中,由区块链基于零知识证明验证权益凭证的兑现记录。具体的验证过程包括:
确定等式T2=z1*G+z2*H+z0*serviceCommitment是否成立,并在确定等式成立时,验证等式z0=hash(G||H||serviceCommitment||T2||E_condition)是否成立,若验证通过,则区块链标记权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中,具体的,在验证通过后,区块链通过智能合约产生一个交易,并进行以下操作:
标记权益凭证在合约数据表中对应的记录为已兑现,具体附加一个Used标记字段,再将加密交易限制信息和第二数字签名保存在合约数据表中。
需要说明的是,买方的在购买权益凭证时,区块链就已记录了相关的交易信息,包括服务承诺和服务标识,因此,在将权益凭证在合约数据表中对应的记录标记为已兑现时,实际是标记(serviceCommitment,serviceId)为已兑现。
进一步地,在区块链验证兑现记录过程中,还包括:
确定serviceCommitment,serviceId是否存在于T_coupon合约数据表中,且未被兑现,没有发现Used标记字段,并且兑现记录中的签名公钥PK_sig_s’与兑现请求中的签名公钥PK_sig_s相同,同时,当前区块链节点的块高没有超过预设块高maxBlockNumber。然后才去计算等式T2=z1*G+z2*H+z0*serviceCommitment是否成立,验证等式z0=hash(G||H||serviceCommitment||T2||E_condition)是否成立。
本实施例在权益凭证兑现过程中,为避免验证密钥被区块链广播,采用零知识证明来证明兑现请求的有效性,使得兑现过程安全且隐秘,在后续验证过程中不会被人轻易破解,使得后续的验证过程更加安全可信,提高权益凭证自主验证的可行性。
进一步地,基于本发明凭证验证方法第一、第二、第三实施例,提出本发明凭证验证方法第四实施例。
凭证验证方法的第四实施例与凭证验证方法的第一、第二、第三实施例的区别在于,步骤S50之前,凭证验证方法还包括:
步骤S70,若检测到基于所述权益凭证发起的购买请求,则将预设的验证密钥发送至所述服务端;
步骤S80,接收所述服务端发送的所述权益凭证对应的全局唯一加密凭证、所述服务端的签名公钥和所述全局唯一加密凭证的第一数字签名,并核实所述区块链中是否存在所述全局唯一加密凭证、所述签名公钥和所述第一数字签名,其中,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证,并使用所述签名公钥对所述全局唯一加密凭证进行签名,以得到所述第一数字签名;
若存在,则确定所述权益凭证购买完成。
本实施例若检测到基于权益凭证发起的购买请求,区块链会记录本次交易,因此,只需检测区块链中是否存在相应的记录即可确定购买完成。
具体的:
步骤S70,若检测到基于所述权益凭证发起的购买请求,则将预设的验证密钥发送至所述服务端。
在本实施例中,若凭证设备检测到买方基于权益凭证发起的购买请求,则将预设的验证密钥发送至服务端,其中,预设密钥是买方选取的随机数,可以理解的,本次交易必然涉及金钱,由于金钱对后续的验证没有贡献,在此省略不提。
步骤S80,接收所述服务端基于所述购买请求发送的所述权益凭证对应的全局唯一加密凭证、所述服务端的签名公钥和所述全局唯一加密凭证的第一数字签名,并核实所述区块链中是否存在所述全局唯一加密凭证、所述签名公钥和所述第一数字签名,其中,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证,并使用所述签名公钥对所述全局唯一加密凭证进行签名,以得到所述第一数字签名;
若存在,则确定所述权益凭证购买完成。
在本实施中,凭证设备接收服务端基于购买请求发送的当前权益凭证对应的全局唯一加密凭证,服务端的签名公钥和全局唯一加密凭证的第一数字签名,并且去区块链中核实是否存在一样的全局唯一加密凭证,服务端的签名公钥和第一数字签名,若存在,则确定权益凭证购买完成。
其中,在凭证设备将验证密钥发送至服务端之后,服务端根据验证密钥和权益凭证对应的服务项目生成全局唯一加密凭证,再使用服务端的签名公钥对全局唯一加密凭证进行签名,从而得到第一数字签名,再将全局唯一加密凭证和第一数字签名返回给凭证设备。
具体的,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证的步骤包括:
步骤l,所述服务端在接收到所述验证密钥时,基于所述验证密钥和所述权益凭证对应的服务项目,生成对应的服务承诺;
步骤m,所述服务端基于所述服务承诺和所述区块链的服务标识,生成所述全局唯一加密凭证。
服务端根据验证密钥和第一公开参数G,计算rG=r*G,r为验证密钥,G为公开参数中椭圆曲线上的第一公开参数,*是椭圆曲线上的标量乘法运算,例如3*G=G+G+G,其中,需要说明的是,rG也可以由凭证设备计算并发送至服务端。
接着,服务端计算服务项目的整数表达值——服务项目数值v_item_i=Encode(item_i),其中,Encode是公开的编码函数,目的自安于将item_i转化成数值类型,因此也可用哈希函数Hash代替。
接着,服务端计算私密承诺serviceCommitment=rG+v_item_i*H,再使用签名私钥对私密承诺进行签名,当然,为避免出现两个服务承诺相同的情况,服务端还需调用区块链的智能合约接口,获得一个全局唯一的标识号——服务标识,同时,为使得下一服务标识与当前服务标识区别,更新区块链上下一服务标识,具体使得下一服务标识+1,即服务标识serviceId是一个全局的只增不减的单增序列数,对任一条历史记录中的serviceId一旦生成,不会因对同一个表内数据的删减而改变。serviceId可以很容易利用区块链智能合约执行的事务原子性获得,这里不再详述。
服务端再通过服务承诺和服务标识,生成全局唯一加密凭证,即unique_c=(serviceCommitment,serviceId),其中,unique_c为全局唯一加密凭证,服务端再使用其签名私钥对unique_c进行签名,生成第一数字签名:Sig_c=Sig_SK_sig_s(unique_c),其中,Sig_c为第一数字签名,SK_sig_s为服务端的签名私钥。
最后,服务端调用区块链智能合约接口,将(unique_c,PK_sig_s,Sig_c)保存到未被兑现的合约数据表中,也即,相关记录没有附加Used标记字段,基于区块链不可篡改特性,每一次对合约数据表的操作都会留下不可更改的记录。
进一步地,凭证设备核实区块链的合约数据表中是否存在全局唯一加密凭证、服务端的签名公钥和第一数字签名的具体过程为:
凭证设备计算serviceCommitment’=rG+Encode(item_i),其中,serviceCommitment’为待验证承诺,再从unique_c中提取serviceCommitment,验证serviceCommitment’是否等于serviceCommitment;若验证通过,则继续验证服务端的数字证书,验证服务端与签名公钥的关联关系,即确定服务端知道并承认过权益凭证,具体的,服务端在对外发行权益凭证之前,需向监管仲裁方发送签名公钥和相关证明材料,如营业执照等,登记申请自己的数字证书,监管仲裁方核实服务端的身份,并用CA的根证书为服务端颁发对应的数字证书,监管仲裁方保存以上颁发的数字证书和服务端真实身份的对应关系,事后可以通过验证证书中的签名公私钥来确定服务端的身份。
凭证设备接着去区块链的合约数据表中核实unique_c,PK_sig_s,Sig_c是否存在,若存在,凭证设备则向服务端发送确认消息,确认已收到正确的权益凭证,否则联系服务端进行更正,具体可向服务端发送错误消息,以及错误对象,即哪一证明参数不对,以供服务端进行更正。
本实施例在购买权益凭证的过程中,使用凭证设备的验证密钥等,对权益凭证的交易信息进行加密,隐匿了权益凭证的内容,从而保护服务提供方的商业机密和买方的个人隐私,并且将服务端的签名公钥等作为交易证据上传至区块链,使得服务端无法抵赖曾经出售过相关的权益凭证,提高后续权益凭证自主验证的可行性。
本发明还提供一种凭证验证装置。本发明凭证验证装置包括:
检测模块,用于若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;
验证模块,用于获取所述权益凭证的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;
所述验证模块,还用于若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;
确定模块,用于若所述兑现记录验证通过,则确定所述权益凭证有效。
进一步地,所述服务内容包括服务承诺、服务标识和第一数字签名,所述验证模块还用于:
基于所述验证密钥和所述服务项目,计算对应的待验证承诺,并确定所述待验证承诺是否与所述服务承诺一致;
若是,则使用所述签名公钥验证所述第一数字签名是否是对全局唯一加密凭证的有效签名,若是,则确定所述服务内容验证通过,其中,所述全局唯一加密凭证由所述服务承诺和所述服务标识生成。
进一步地,所述兑现记录包括加密交易限制信息和第二数字签名,所述验证模块还用于:
基于所述兑现附言,验证所述加密交易限制信息是否正确;
若正确,则使用所述签名公钥验证所述第二数字签名是否是对所述加密交易限制信息的有效签名,若是,则确定所述兑现记录验证通过。
进一步地,所述检测模块还用于:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端;
检测所述区块链的合约数据表中是否存在所述加密交易限制信息,若存在,则确定所述权益凭证完成兑现;
其中,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中。
进一步地,所述检测模块还用于:
若检测到基于所述权益凭证发起的兑现请求,则获取所述权益凭证的兑现附言,并基于所述兑现附言和预设块高,生成对应的交易限制信息;
获取所述服务端的数据公钥,并使用所述数据公钥对所述交易限制信息进行加密,以得到所述加密交易限制信息,并将所述加密交易限制信息发送至所述服务端。
进一步地,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端在接收到所述加密交易限制信息时,使用所述数据公钥对应的数据私钥解密所述加密交易限制信息,以得到所述交易限制信息;
所述服务端验证所述交易限制信息的所述兑现附言是否合理;
若所述服务端确定所述兑现附言合理,则使用所述服务端的签名私钥对所述加密交易限制信息进行签名,生成所述第二数字签名,并将所述第二数字签名和所述加密交易限制信息上传至所述区块链的合约数据表中。
进一步地,所述检测模块还用于:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息和所述权益凭证的零知识证明,并将所述加密交易限制信息和所述零知识证明发送至所述服务端;
所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端将所述加密交易限制信息和所述零知识证明上传至所述区块链,由所述区块链基于所述零知识证明验证所述权益凭证的兑现记录;
其中,若验证通过,则所述区块链标记所述权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中。
进一步地,所述检测模块还用于:
若检测到基于所述权益凭证发起的购买请求,则将预设的验证密钥发送至所述服务端;
接收所述服务端基于所述购买请求发送的所述权益凭证对应的全局唯一加密凭证、所述服务端的签名公钥和所述全局唯一加密凭证的第一数字签名,并核实所述区块链的合约数据表中是否存在所述全局唯一加密凭证、所述签名公钥和所述第一数字签名,其中,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证,并使用所述签名公钥对所述全局唯一加密凭证进行签名,以得到所述第一数字签名;
若存在,则确定所述权益凭证购买完成。
进一步地,所述检测模块还用于:
所述服务端在接收到所述验证密钥时,基于所述验证密钥和所述权益凭证对应的服务项目,生成对应的服务承诺;
所述服务端基于所述服务承诺和所述区块链的服务标识,生成所述全局唯一加密凭证。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有凭证验证程序,所述凭证验证程序被处理器执行时实现如上所述的凭证验证方法的步骤。
其中,在所述处理器上运行的凭证验证程序被执行时所实现的方法可参照本发明凭证验证方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种凭证验证方法,其特征在于,所述凭证验证方法包括如下步骤:
若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;
获取所述权益凭证的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;
若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;
若所述兑现记录验证通过,则确定所述权益凭证有效。
2.如权利要求1所述的凭证验证方法,其特征在于,所述服务内容包括服务承诺、服务标识和第一数字签名;
所述基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容的步骤包括:
基于所述验证密钥和所述服务项目,计算对应的待验证承诺,并确定所述待验证承诺是否与所述服务承诺一致;
若是,则使用所述签名公钥验证所述第一数字签名是否是对全局唯一加密凭证的有效签名,若是,则确定所述服务内容验证通过,其中,所述全局唯一加密凭证由所述服务承诺和所述服务标识生成。
3.如权利要求1所述的凭证验证方法,其特征在于,所述兑现记录包括加密交易限制信息和第二数字签名;
所述基于所述兑现附言,验证所述兑现记录的步骤包括:
基于所述兑现附言,验证所述加密交易限制信息是否正确;
若正确,则使用所述签名公钥验证所述第二数字签名是否是对所述加密交易限制信息的有效签名,若是,则确定所述兑现记录验证通过。
4.如权利要求1-3任一项所述的凭证验证方法,其特征在于,所述若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录的步骤之前,所述凭证验证方法还包括:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端;
检测所述区块链的合约数据表中是否存在所述加密交易限制信息,若存在,则确定所述权益凭证完成兑现;
其中,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中。
5.如权利要求4所述的凭证验证方法,其特征在于,所述若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端的步骤包括:
若检测到基于所述权益凭证发起的兑现请求,则获取所述权益凭证的兑现附言,并基于所述兑现附言和预设块高,生成对应的交易限制信息;
获取所述服务端的数据公钥,并使用所述数据公钥对所述交易限制信息进行加密,以得到所述加密交易限制信息,并将所述加密交易限制信息发送至所述服务端。
6.如权利要求5所述的凭证验证方法,其特征在于,所述服务端在接收到所述加密交易限制信息时,基于所述加密交易限制信息,验证所述兑现请求是否有效,并在确定所述兑现请求有效时,所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端在接收到所述加密交易限制信息时,使用所述数据公钥对应的数据私钥解密所述加密交易限制信息,以得到所述交易限制信息;
所述服务端验证所述交易限制信息的所述兑现附言是否合理;
若所述服务端确定所述兑现附言合理,则使用所述服务端的签名私钥对所述加密交易限制信息进行签名,生成第二数字签名,并将所述第二数字签名和所述加密交易限制信息上传至所述区块链的合约数据表中。
7.如权利要求4所述的凭证验证方法,其特征在于,所述若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端的步骤包括:
若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息和所述权益凭证的零知识证明,并将所述加密交易限制信息和所述零知识证明发送至所述服务端;
所述服务端将所述加密交易限制信息上传至所述区块链的合约数据表中的步骤包括:
所述服务端将所述加密交易限制信息和所述零知识证明上传至所述区块链,由所述区块链基于所述零知识证明验证所述权益凭证的兑现记录;
其中,若验证通过,则所述区块链标记所述权益凭证的兑现记录为已兑现,并将所述加密交易限制信息保存在所述合约数据表中。
8.如权利要求4所述的凭证验证方法,其特征在于,所述若检测到基于所述权益凭证发起的兑现请求,则确定所述权益凭证的加密交易限制信息,并将所述加密交易限制信息发送至所述服务端的步骤之前,所述凭证验证方法还包括:
若检测到基于所述权益凭证发起的购买请求,则将预设的验证密钥发送至所述服务端;
接收所述服务端基于所述购买请求发送的所述权益凭证对应的全局唯一加密凭证、所述服务端的签名公钥和所述全局唯一加密凭证的第一数字签名,并核实所述区块链的合约数据表中是否存在所述全局唯一加密凭证、所述签名公钥和所述第一数字签名,其中,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证,并使用所述签名公钥对所述全局唯一加密凭证进行签名,以得到所述第一数字签名;
若存在,则确定所述权益凭证购买完成。
9.如权利要求8所述的凭证验证方法,其特征在于,所述服务端基于所述验证密钥和所述权益凭证对应的服务项目生成所述全局唯一加密凭证的步骤包括:
所述服务端在接收到所述验证密钥时,基于所述验证密钥和所述权益凭证对应的服务项目,生成对应的服务承诺;
所述服务端基于所述服务承诺和所述区块链的服务标识,生成所述全局唯一加密凭证。
10.一种凭证验证装置,其特征在于,所述凭证验证装置包括:
检测模块,用于若检测到基于权益凭证发起的验证请求,则从所述验证请求对应的区块链的合约数据表中,获取所述权益凭证的服务内容和所述权益凭证的兑现记录;
验证模块,获取所述权益凭证的验证密钥、所述权益凭证的服务项目以及所述权益凭证对应的服务端的签名公钥,并基于所述验证密钥、所述服务项目和所述签名公钥,验证所述服务内容;
所述验证模块,还用于若所述服务内容验证通过,则获取所述权益凭证的兑现附言,并基于所述兑现附言,验证所述兑现记录;
确定模块,用于若所述兑现记录验证通过,则确定所述权益凭证有效。
11.一种凭证验证设备,其特征在于,所述凭证验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的凭证验证程序,所述凭证验证程序被所述处理器执行时实现如权利要求1至9中任一项所述的凭证验证方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有凭证验证程序,所述凭证验证程序被处理器执行时实现如权利要求1至9中任一项所述的凭证验证方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910851095.0A CN110555772B (zh) | 2019-09-06 | 2019-09-06 | 凭证验证方法、装置、设备与可读存储介质 |
PCT/CN2020/111798 WO2021043063A1 (zh) | 2019-09-06 | 2020-08-27 | 凭证验证方法、装置、设备与可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910851095.0A CN110555772B (zh) | 2019-09-06 | 2019-09-06 | 凭证验证方法、装置、设备与可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110555772A CN110555772A (zh) | 2019-12-10 |
CN110555772B true CN110555772B (zh) | 2023-03-21 |
Family
ID=68739781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910851095.0A Active CN110555772B (zh) | 2019-09-06 | 2019-09-06 | 凭证验证方法、装置、设备与可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110555772B (zh) |
WO (1) | WO2021043063A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110555772B (zh) * | 2019-09-06 | 2023-03-21 | 深圳前海微众银行股份有限公司 | 凭证验证方法、装置、设备与可读存储介质 |
CN111339188B (zh) * | 2020-02-20 | 2023-10-31 | 百度在线网络技术(北京)有限公司 | 基于区块链的媒介内容处理方法、装置、设备和介质 |
CN113688356A (zh) * | 2020-05-18 | 2021-11-23 | 国家广播电视总局广播电视科学研究院 | 数字媒体内容的权益控制方法、装置、设备及存储介质 |
CN111738857B (zh) * | 2020-06-28 | 2021-07-06 | 深圳前海微众银行股份有限公司 | 应用于区块链的隐匿支付证明的生成与验证方法及装置 |
CN112116474B (zh) * | 2020-09-21 | 2023-12-05 | 京东科技信息技术有限公司 | 电子合同的验证方法、装置、电子设备及存储介质 |
CN112287040B (zh) * | 2020-10-30 | 2022-11-04 | 深圳前海微众银行股份有限公司 | 一种基于区块链的权益合并方法、装置、设备及介质 |
CN112633890B (zh) * | 2020-12-22 | 2024-04-05 | 深圳前海微众银行股份有限公司 | 一种基于区块链的隐匿权益证明的验证方法及装置 |
CN113139209B (zh) * | 2021-04-15 | 2023-09-26 | 中国科学院软件研究所 | 一种基于原子性签名的可验证凭据实现方法和系统 |
CN113094748B (zh) * | 2021-04-20 | 2024-01-19 | 西安交通大学 | 一种基于区块链的可认证匿名电商评价机制的实现方法 |
CN112990925B (zh) * | 2021-04-21 | 2021-08-10 | 支付宝(杭州)信息技术有限公司 | 资产凭证的管理方法及装置 |
CN113259094B (zh) * | 2021-04-21 | 2022-03-25 | 山东大学 | 一种通用的层级签名加密系统与构建方法 |
CN113806807B (zh) * | 2021-09-22 | 2024-02-13 | 合肥工业大学 | 一种基于隐私合约的网约车系统与方法 |
CN113746640B (zh) * | 2021-09-26 | 2024-03-01 | 网易(杭州)网络有限公司 | 数字凭证使用方法、装置、计算机设备及存储介质 |
CN114124494B (zh) * | 2021-11-12 | 2023-06-30 | 中国联合网络通信集团有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN116192540B (zh) * | 2023-05-05 | 2023-07-11 | 敏于行(北京)科技有限公司 | 动态组合可验证凭证的验证方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762741B2 (en) * | 2009-01-29 | 2014-06-24 | Microsoft Corporation | Privacy-preserving communication |
EP3767878A1 (en) * | 2015-03-27 | 2021-01-20 | Black Gold Coin, Inc. | A system and a method for personal identification and verification |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
US20180144345A1 (en) * | 2016-11-23 | 2018-05-24 | Kim Wagner | Assurance exchange |
CN108764874B (zh) * | 2018-05-17 | 2021-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的匿名转账方法、系统及存储介质 |
CN109446842A (zh) * | 2018-10-31 | 2019-03-08 | 深圳电通信息技术有限公司 | 一种基于区块链和分布式账本的版权权益交易方法及装置 |
CN109951511A (zh) * | 2019-01-08 | 2019-06-28 | 上海大学 | 基于区块链平台的买方卖方安全数字水印协议生成方法 |
CN109922077B (zh) * | 2019-03-27 | 2021-06-04 | 北京思源理想控股集团有限公司 | 一种基于区块链的身份认证方法及其系统 |
CN110555772B (zh) * | 2019-09-06 | 2023-03-21 | 深圳前海微众银行股份有限公司 | 凭证验证方法、装置、设备与可读存储介质 |
-
2019
- 2019-09-06 CN CN201910851095.0A patent/CN110555772B/zh active Active
-
2020
- 2020-08-27 WO PCT/CN2020/111798 patent/WO2021043063A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN110555772A (zh) | 2019-12-10 |
WO2021043063A1 (zh) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555772B (zh) | 凭证验证方法、装置、设备与可读存储介质 | |
CN110473105B (zh) | 一种区块链交易结算方法、系统及相关设备 | |
US10826702B2 (en) | Secure authentication of user and mobile device | |
CN110135819B (zh) | 一种基于区块链的第三方可信数据交易系统及方法 | |
Kim et al. | E-commerce payment model using blockchain | |
EP1397787B1 (en) | System and method of bootstrapping a temporary public -key infrastructure from a cellular telecommunication authentication and billing infrastructure | |
CN108476227A (zh) | 用于设备推送供应的系统和方法 | |
US20130254053A1 (en) | System and method for completing a transaction with a payment terminal | |
US20100153273A1 (en) | Systems for performing transactions at a point-of-sale terminal using mutating identifiers | |
WO2018094529A1 (en) | System, process and device for e-commerce transactions | |
TWI654574B (zh) | 結合區塊鏈電子票券交易系統及其電子票券交易方法 | |
CN110535648A (zh) | 电子凭证生成及验证和密钥控制方法、装置、系统和介质 | |
US9124571B1 (en) | Network authentication method for secure user identity verification | |
AU2014265054A1 (en) | Systems and methods for software based encryption | |
CN107690771A (zh) | 服务提供商证书管理 | |
KR101702748B1 (ko) | 이중 암호화를 이용한 사용자 인증 방법과 시스템 및 기록매체 | |
KR20190043117A (ko) | 블록체인 기반의 결제 방법 및 이를 이용한 지급 결제 서버 | |
JP2009503967A (ja) | 単一の物理デバイスを用いた保護されたトランザクションの制御方法、それに対応する物理デバイス、システム及びコンピュータプログラム | |
JP2016201099A (ja) | デジタル取引方法および装置 | |
JP2018529137A (ja) | サービス認証のための方法および装置 | |
Sung et al. | Mobile Payment Based on Transaction Certificate Using Cloud Self‐Proxy Server | |
KR20070065852A (ko) | 인증번호를 이용한 제품의 정품 인증 방법 | |
TWI665624B (zh) | 網路商城之身份驗證方法 | |
EP2916509A1 (en) | Network authentication method for secure user identity verification | |
JP2009043012A (ja) | 決済システム、店舗装置、決済機関装置および決済方法 |
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 |