一种基于区块链的票据处理方法及装置与流程

文档序号:18303825发布日期:2019-07-31 10:37阅读:283来源:国知局
一种基于区块链的票据处理方法及装置与流程

本发明实施例涉及金融科技(fintech)领域,尤其涉及一种基于区块链(blockchain)的票据处理方法及装置。



背景技术:

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,区块链技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对技术提出的更高的要求。

供应链金融是一种融资模式,其参与者涉及金融机构、上下游企业(包括供应商、经销商等企业),金融机构作为票据发行方具有全流程把控的利益需求。供应链金融在区块链系统上进行票据登记,可实现将票据资产数字化,方便企业根据自身需求进行票据转让以获得现金流支持。

票据交易过程中,交易双方企业将票据交易的信息写入区块链系统,区块链系统对该票据交易进行共识,以保障票据交易的安全性。但此方式中,除交易双方企业以外的企业也可以读取到该票据交易的信息,不利于票据交易的隐私性。



技术实现要素:

本发明实施例提供一种基于区块链的票据处理方法及装置,用以在区块链系统中,保障票据交易隐私性。

本发明实施例提供的一种基于区块链的票据处理方法,包括:

授权服务器向第一使用方发送票据生成指示,所述票据生成指示包括指定票据金额;

所述授权服务器接收所述第一使用方发送的第一票据信息,所述第一票据信息包括使用所述第一使用方的公钥加密的第一密文,所述第一密文包括所述第一使用方生成的第一票据随机数和第一票据金额;所述第一票据随机数用于表征票据的所有者;

所述授权服务器在确定所述第一票据信息验证通过后,生成所述第一票据信息的签名;所述第一票据信息验证通过为使用所述第一使用方的私钥解密出所述第一密文且所述第一票据金额与所述指定票据金额一致;

所述授权服务器向区块链系统发送票据上链交易,以使所述区块链系统在对所述票据上链交易中的所述第一票据信息的签名验证通过后根据所述第一票据信息生成第一票据凭证并存储;所述第一票据凭证用于表征所述第一使用方具有所述第一票据金额的票据。

上述技术方案中,第一使用方向授权服务器发送包括有第一密文的第一票据信息,第一密文为第一使用方向采用第一使用方的公钥进行加密后的密文,授权服务器知晓第一使用方的私钥,并采用第一使用方的私钥对第一密文进行解密,从而保障区块链系统中,除第一使用方和授权服务器以外的其他节点并不能读取第一密文,保障了区块链系统中票据交易的隐私性。进一步的,授权服务器对第一票据信息进行验证,即判断第一票据金额是否与指定票据金额一致,当验证通过后,则生成票据上链交易发送至区块链系统中,区块链系统仅对票据上链交易中的签名进行验证,也就是说,区块链系统无需对第一使用方的第一密文进行解密,更无需对第一使用方的第一票据金额进行验证,本技术方案避免了区块链系统对票据金额进行验证,区块链系统仅验证票据上链交易中的签名,减少了区块链系统的验证工作,运行速度较快,且占用内存少。

可选的,还包括:

所述授权服务器接收所述第一使用方发送的支付票据请求,所述支付票据请求包括所述第一票据凭证的标识、第二票据信息和第三票据信息;所述第二票据信息用于生成表征所述第一使用方在支付后的第二票据凭证;所述第三票据信息用于生成表征第二使用方收到所述第一使用方的支付后的第三票据凭证;所述授权服务器在确定所述支付票据请求验证通过后,生成所述第二票据信息的签名和所述第三票据信息的签名并发送给所述第一使用方,以使所述第一使用方向所述区块链系统发送票据支付交易,所述票据支付交易用于所述区块链系统生成第二票据凭证、第三票据凭证,并设置所述第一票据凭证为已使用票据。

上述技术方案中,还提供了一种票据支付方式,第一使用方向授权服务器发送支付票据请求,其中包括第一票据凭证的标识、第二票据信息和第三票据信息,授权服务器判断支付票据请求是否通过验证,若是,则生成票据支付交易发送至区块链系统中,区块链系统仅对票据支付交易中的签名进行验证,避免区块链系统对支付票据请求进行验证,减少了区块链系统的验证工作,运行速度较快,且占用内存少。

可选的,所述第二票据信息包括使用所述第一使用方的公钥加密的第二密文,所述第二密文包括第二票据随机数和第二票据金额;所述第三票据信息包括使用所述第二使用方的公钥加密的第三密文;所述第三密文包括第三票据随机数和第三票据金额;

所述授权服务器确定所述支付票据请求验证通过,包括:

所述授权服务器使用所述第一使用方的私钥解密所述第二密文,使用所述第二使用方的私钥解密所述第三密文;

所述授权服务器根据所述第一票据凭证的标识,从所述区块链系统中确定所述第一票据金额;

所述授权服务器判断所述第二票据金额、第三票据金额之和是否与所述第一票据金额一致,若一致,则确定所述支付票据请求验证通过。

上述技术方案中,第一使用方对第二票据金额进行加密、第二使用方对第三票据金额进行加密,且授权服务器知晓第一使用方的私钥和第二使用方的私钥,从而可以对第二密文和第三密文解密,确定出第二票据金额和第三票据金额,从而实现整个区块链系统中,除第一使用方和授权服务器以外的其他节点并不能读取第二密文、除第二使用方和授权服务器以外的其他节点并不能读取第三密文,保障了区块链系统中票据交易的隐私性。进一步的,授权服务器对支付票据请求进行验证,判断第二票据金额、第三票据金额之和是否与第一票据金额一致,若一致,则生成签名信息发送至第一使用方,第一使用方向区块链系统发送票据支付交易,区块链系统仅对票据支付交易中的签名进行验证,无需验证票据交易金额,减少区块链系统的验证工作。此外,通过上述方式,可以实现支付票据的可拆分,提高票据处理的灵活性,解决现有技术中商业票据流转困难、不可拆分的问题。

可选的,还包括:

所述授权服务器接收所述第一使用方发送的去授权请求;所述去授权请求包括所述第一票据凭证的标识、第四票据信息;所述第四票据信息包括使用所述第一使用方的公钥加密的第四密文,所述第四密文包括第四票据随机数和第四票据金额;

所述授权服务器根据所述第一票据凭证的标识,从所述区块链系统中确定所述第一票据金额;使用所述第一使用方的私钥解密出所述第四密文;判断所述第四票据金额是否与所述第一票据金额一致,若是,则确定所述第四票据信息验证通过,并生成所述第四票据信息的签名;

所述授权服务器向所述区块链系统发送所述票据上链交易,以使所述区块链系统对所述票据上链交易中的所述第四票据信息的签名验证通过后根据所述第四票据信息生成第四票据凭证并存储,以及将所述第一票据凭证设定为已使用票据。

上述技术方案中,第一使用方可以将第一票据凭证授权至其他使用方使用,同时也可以收回授权,具体的,第一使用方生成第四票据信息,并向授权服务器发送去授权请求,授权服务器在确认第四票据金额与第一票据金额一致后,则可以确定生成第四票据信息的签名,进一步生成票据上链交易,以使得区块链系统生成第四票据凭证并存储,并将第一票据凭证设定为已使用票据,相当于通过该方式,实现第一使用方收回第一票据凭证的使用权,提高了区块系统中票据处理方法的灵活性。

可选的,所述第一票据信息还包括第一哈希值,所述第一哈希值是所述第一使用方对所述第一票据随机数进行哈希计算得到的;所述第一哈希值用于所述区块链系统验证使用方是否具有所述第一票据的票据使用权。

上述技术方案中,区块链系统通过验证使用方的第一哈希值,验证使用方是否具有第一票据的票据使用权,从而保障区块链系统中票据处理的秩序性,避免其他使用方滥用区块链系统中的票据凭证。

可选的,所述第一票据信息还包括所述第一使用方生成的干扰随机数,所述干扰随机数用于加密票据金额。

上述技术方案中,增加干扰随机数,用于加密票据金额,提高票据金额的安全性,防止其他使用方通过穷举得出票据金额信息。

相应的,本发明实施例还提供了一种基于区块链的票据处理方法,包括:

区块链系统接收票据上链交易,所述票据上链交易包括票据信息的签名和票据信息;所述票据信息包括使用使用方的公钥加密的密文;所述密文包括票据随机数和票据金额;所述票据信息的签名是授权服务器对所述票据信息验证通过后生成的;

所述区块链系统在对所述票据信息的签名验证通过后根据所述票据信息生成票据凭证并存储;所述票据凭证用于表征所述使用方具有所述票据金额的票据。

上述技术方案中,使用方向授权服务器发送包括有密文的票据信息,授权服务器对票据信息进行验证,当验证通过后,则生成票据上链交易发送至区块链系统中,区块链系统仅对票据上链交易中的签名进行验证,也就是说,区块链系统无需对使用方的密文进行解密,更无需对使用方的票据金额进行验证,本技术方案避免了区块链系统对票据金额进行验证,区块链系统仅验证票据上链交易中的签名,减少了区块链系统的验证工作,运行速度较快,且占用内存少。

可选的,还包括:

所述区块链系统接收票据支付交易,所述票据支付交易包括第一票据凭证的标识、第二票据信息、所述第二票据信息的签名、第三票据信息和所述第三票据信息的签名;所述第一票据凭证对应的第一票据为待使用的票据,所述第二票据信息用于生成表征收到所述第一票据的支付后的第二票据凭证;所述第三票据信息用于生成表征所述第一票据在支付后的第三票据凭证;

所述区块链系统在对所述第二票据信息的签名、所述第三票据信息的签名验证通过后,根据所述第二票据信息生成第二票据凭证并存储以及根据所述第三票据信息生成第三票据凭证并存储;

所述区块链系统设定所述第一票据凭证为已使用票据。

上述技术方案中,还提供了一种票据支付方式,区块链系统接收票据支付交易,对票据支付交易中的第二票据信息的签名、第三票据信息的签名进行验证,若验证通过,则生成第二票据凭证和第三票据凭证,区块链系统仅对票据支付交易中的签名进行验证,避免区块链系统对支付票据请求进行验证,减少了区块链系统的验证工作,运行速度较快,且占用内存少。此外,通过上述方式,可以实现支付票据的可拆分,提高票据处理的灵活性,解决现有技术中商业票据流转困难、不可拆分的问题。

相应的,本发明实施例还提供了一种基于区块链的票据处理装置,包括:

收发单元,用于向第一使用方发送票据生成指示,所述票据生成指示包括指定票据金额;

所述收发单元,还用于接收所述第一使用方发送的第一票据信息,所述第一票据信息包括使用所述第一使用方的公钥加密的第一密文,所述第一密文包括所述第一使用方生成的第一票据随机数和第一票据金额;所述第一票据随机数用于表征票据的所有者;

处理单元,用于在确定所述第一票据信息验证通过后,生成所述第一票据信息的签名;所述第一票据信息验证通过为使用所述第一使用方的私钥解密出所述第一密文且所述第一票据金额与所述指定票据金额一致;

所述收发单元,还用于向区块链系统发送票据上链交易,以使所述区块链系统在对所述票据上链交易中的所述第一票据信息的签名验证通过后根据所述第一票据信息生成第一票据凭证并存储;所述第一票据凭证用于表征所述第一使用方具有所述第一票据金额的票据。

可选的,所述处理单元,还用于:

控制所述收发单元接收所述第一使用方发送的支付票据请求,所述支付票据请求包括所述第一票据凭证的标识、第二票据信息和第三票据信息;所述第二票据信息用于生成表征所述第一使用方在支付后的第二票据凭证;所述第三票据信息用于生成表征第二使用方收到所述第一使用方的支付后的第三票据凭证;在确定所述支付票据请求验证通过后,生成所述第二票据信息的签名和所述第三票据信息的签名并发送给所述第一使用方,以使所述第一使用方向所述区块链系统发送票据支付交易,所述票据支付交易用于所述区块链系统生成第二票据凭证、第三票据凭证,并设置所述第一票据凭证为已使用票据。

可选的,所述第二票据信息包括使用所述第一使用方的公钥加密的第二密文,所述第二密文包括第二票据随机数和第二票据金额;所述第三票据信息包括使用所述第二使用方的公钥加密的第三密文;所述第三密文包括第三票据随机数和第三票据金额;

所述处理单元,具体用于:

使用所述第一使用方的私钥解密所述第二密文,使用所述第二使用方的私钥解密所述第三密文;

根据所述第一票据凭证的标识,从所述区块链系统中确定所述第一票据金额;

判断所述第二票据金额、第三票据金额之和是否与所述第一票据金额一致,若一致,则确定所述支付票据请求验证通过。

可选的,所述处理单元,还用于:

控制所述收发单元接收所述第一使用方发送的去授权请求;所述去授权请求包括所述第一票据凭证的标识、第四票据信息;所述第四票据信息包括使用所述第一使用方的公钥加密的第四密文,所述第四密文包括第四票据随机数和第四票据金额;

根据所述第一票据凭证的标识,从所述区块链系统中确定所述第一票据金额;使用所述第一使用方的私钥解密出所述第四密文;判断所述第四票据金额是否与所述第一票据金额一致,若是,则确定所述第四票据信息验证通过,并生成所述第四票据信息的签名;

向所述区块链系统发送所述票据上链交易,以使所述区块链系统对所述票据上链交易中的所述第四票据信息的签名验证通过后根据所述第四票据信息生成第四票据凭证并存储,以及将所述第一票据凭证设定为已使用票据。

可选的,所述第一票据信息还包括第一哈希值,所述第一哈希值是所述第一使用方对所述第一票据随机数进行哈希计算得到的;所述第一哈希值用于所述区块链系统验证使用方是否具有所述第一票据的票据使用权。

可选的,所述第一票据信息还包括所述第一使用方生成的干扰随机数,所述干扰随机数用于加密票据金额。

相应的,本发明实施例还提供了一种基于区块链的票据处理装置,包括:

收发单元,用于接收票据上链交易,所述票据上链交易包括票据信息的签名和票据信息;所述票据信息包括使用使用方的公钥加密的密文;所述密文包括票据随机数和票据金额;所述票据信息的签名是授权服务器对所述票据信息验证通过后生成的;

处理单元,用于在对所述票据信息的签名验证通过后根据所述票据信息生成票据凭证并存储;所述票据凭证用于表征所述使用方具有所述票据金额的票据。

可选的,所述处理单元,还用于:

控制所述收发单元接收票据支付交易,所述票据支付交易包括第一票据凭证的标识、第二票据信息、所述第二票据信息的签名、第三票据信息和所述第三票据信息的签名;所述第一票据凭证对应的第一票据为待使用的票据,所述第二票据信息用于生成表征收到所述第一票据的支付后的第二票据凭证;所述第三票据信息用于生成表征所述第一票据在支付后的第三票据凭证;

在对所述第二票据信息的签名、所述第三票据信息的签名验证通过后,根据所述第二票据信息生成第二票据凭证并存储以及根据所述第三票据信息生成第三票据凭证并存储;

设定所述第一票据凭证为已使用票据。

相应的,本发明实施例还提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于区块链的票据处理方法。

相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述基于区块链的票据处理方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种供应链金融的示意图;

图2为本发明实施例提供的一种系统架构的示意图;

图3为本发明实施例提供的一种基于区块链的票据上链的流程示意图;

图4为本发明实施例提供的一种基于区块链的票据支付的流程示意图;

图5为本发明实施例提供的一种基于区块链的票据处理装置的结构示意图;

图6为本发明实施例提供的一种基于区块链的票据处理装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

供应链金融是一种融资模式,其参与者包括金融机构、核心企业、上下游企业(包括供应商、经销商等企业)。供应链金融以核心企业为依托,以真实贸易为前提,将核心企业的企业信用作为金融活动的核心风控因素,通过对核心企业的应收账款质押、货权质押等手段,向供应链上下游企业提供综合性金融产品和服务。如图1所示,核心企业向供应商采购原材料并支付商业票据,供应商为使生产可以正常进行,将手中持有的核心企业开具的商业票据以一定成本向金融机构融资,金融机构有权决定是否接受核心企业的商业票据并发放款项给供应商。

图2示例性的示出了本发明实施例提供的一种基于区块链的票据处理方法所适用的系统架构,该系统架构可以包括授权服务器、使用方和区块链系统,授权服务器即供应链金融中的金融机构内的服务器,使用方即供应链金融中的核心企业或上下游企业(包括供应商、经销商等企业)内的服务器。

授权服务器和使用方之间、使用方和使用方之间可以进行链上通信或链下通信,其中,链上通信理解为授权服务器和使用方为区块链系统上的节点,授权服务器和使用方在区块链系统上进行点对点通信或使用方和使用方在区块链系统上进行点对点通信。

在生产部署环境中,该系统架构要求金融机构的节点为多活部署,即授权服务器的部署个数为f+1,其中,f为共识算法的容错节点数。

为了更好的解释本发明,如表1所示,先对本发明实施例所涉及的数据做相关说明。

表1

基于上述描述,图3示例性的示出了本发明实施例提供的一种基于区块链的票据上链的流程,该流程涉及到授权服务器、区块链系统、第一使用方。

如图3所示,该流程具体包括:

步骤301,授权服务器发送票据生成指示至第一使用方。

票据生成指示包括指定票据金额,以金融机构给企业a初始化“金额为100的票据凭证x”为例,则金融机构中的服务器即授权服务器,企业a中的服务器即第一使用方,票据生成指示中包括“指定票据金额为100”。

步骤302,第一使用方生成第一票据信息。

本发明实施例中,第一票据信息可以包括第一密文,该第一密文是第一使用方根据自身公钥(第一使用方的公钥)进行加密后的信息,第一密文中包括第一使用方生成的第一票据随机数和第一票据金额。此处,票据随机数及理解为用于表征票据的所有者的参数,能提供票据随机数的企业才能使用该票据。

可选的,第一使用方在接收到票据生成指示后,先在本地生成并记录第一票据随机数,并采用第一使用方的公钥对第一票据随机数和第一票据金额组成的内容加密以生成第一密文。

此外,第一使用方还可以生成干扰随机数,干扰随机数用于加密票据金额。可以采用第一使用方的公钥对第一票据随机数、干扰随机数和第一票据金额组成的内容加密以生成第一密文,通过该方式生成的第一密文增加了第一票据金额的隐蔽性,防止他人通过第一票据随机数和第一密文穷举得出第一票据金额。

举个例子,第一票据随机数为“aaaa…aaaa”共32个字节,干扰随机数为“bbbb…bbbb”共32个字节,第一票据金额为“100”共3个字节,则第一密文可以通过公式cx=pka(rx1+rx2+valuex)=pka(aaaa…aaaabbbb…bbbb100),即第一密文cx为使用pka对长度为67字节的内容加密结果。此处,“a”即代表公司a,“x”即代表票据凭证x。

本发明实施例中,第一票据信息还可以包括第一哈希值,第一哈希值是第一使用方对第一票据随机数进行哈希计算得到的,示例性的,hx=hash(rx1),第一哈希值用于区块链系统验证使用方是否具有第一票据凭证的票据使用权,可在下述实施例中具体描述。

步骤303,第一使用方将第一票据信息发送至授权服务器。

步骤304,授权服务器使用第一使用方的私钥解密第一密文,并判断第一票据信息是否验证通过。

第一使用方中存储第一使用方的公钥和私钥,其中,私钥为第一使用方和授权服务器共同持有,公钥为全网公开,授权服务器可以根据第一使用方标识,确定第一使用方的私钥,用于对第一密文进行解密,从中确定出第一密文中的第一票据金额,进一步可以判断第一票据金额与指定票据金额是否一致,若一致,则确定第一票据信息通过验证,否则,确定第一票据信息未通过验证。

可选的,授权服务器在对第一票据信息进行验证时,还可以先验证第一票据金额是否为非负,若非负,则再判断第一票据金额与指定票据金额是否一致,否则,直接确定第一票据信息未通过验证。也就是说,授权服务器对第一票据信息进行金额验证的过程可以为两步,即金额非负验证和等式配平验证。

此外,授权服务器中还可以存储有票据标识到公钥、私钥的映射关系,第一票据信息中包括票据标识,授权服务器可以根据第一票据信息中的票据标识确定第一使用方的私钥,用于对第一密文进行解密。

步骤305,授权服务器在确定第一票据信息验证通过后,生成第一票据信息的签名。

步骤306,授权服务器生成票据上链交易。

票据上链交易的交易类型即为“票据上链”,相当于新生成的票据信息存储至区块链系统,票据上链交易包括第一票据信息和第一票据信息的签名,相当于包括第一密文、第一哈希值、票据标识、授权服务器签名等。

步骤307,授权服务器将票据上链交易发送至区块链系统。

步骤308,区块链系统对票据上链交易中的第一票据信息的签名进行验证。

区块链系统判断第一票据信息的签名是否通过验证,即判断授权服务器的签名是否合法,若合法,及确定第一票据信息的签名通过验证,否则,不通过验证。

步骤309,区块链系统在确定签名验证通过后,根据第一票据信息生成第一票据凭证并存储。

区块链系统确定第一票据信息的签名通过验证之后,相当于确定授权服务器认证的“第一票据信息验证通过”为正确的,即确定出第一票据信息为合法信息,可以根据第一票据信息生成对应的第一票据凭证,并记录到区块链系统中,既代表着第一使用方具有第一票据金额的票据。

本发明实施例中,授权服务器对第一使用方生成的第一票据信息进行验证,若验证通过,即生成该第一票据信息的签名,进而区块链系统对授权服务器的签名进行验证,无需区块链系统中每个节点对第一票据信息进行验证,节省了验证过程中的运算量,有效提高区块链系统中票据上链的处理效率。

需要说明的是,在票据上链之后,即在区块链系统中记录有第一使用方的第一票据凭证之后,第一票据凭证还未被使用方使用,此时,第一票据中可以没有第一票据随机数,也就是说,第一票据随机数可以代表第一票据凭证是否被使用,当第一票据凭证被使用后,该第一票据凭证中即记录有第一票据随机数。当然,也可以说,第一票据凭证中存在第一票据随机数,当第一票据凭证还未被使用方使用时,该第一票据随机数的值为空,当第一票据凭证已被使用方使用时,该第一票据随机数的值不为空。

进一步的,第一票据凭证中还可以记录有第一密文、第一哈希值等信息,其中,第一密文用于确定第一票据凭证的票据金额,第一哈希值用于区块链系统验证使用方是否具有第一票据凭证的票据使用权,具体说明详见下述其他实施例。

在票据凭证上链之后,第一使用方则可以使用该已经上链后的第一票据凭证,使用过程涉及第二使用方,具体环境下,公司a向企业b支付金额为70,公司a将票据凭证x(票据金额为100)支付给企业b,企业b生成票据凭证z(票据金额为70),并找零企业a票据凭证y(票据金额为30)。此时,公司a为第一使用方,公司b为第二使用方,票据凭证x为第一票据凭证,票据凭证y为第二票据凭证,票据凭证z为第三票据凭证。

如图4所示,为本发明实施例提供的一种基于区块链的票据支付的流程,该流程涉及区块链系统、授权服务器、第一使用方和第二使用方。

第一使用方生成第二票据信息,第二票据信息用于生成表征第一使用方在支付后的第二票据凭证。第二票据信息可以包括使用第一使用方的公钥加密的第二密文,第二密文包括第二票据随机数和第二票据金额。具体实现中,第一使用方先在本地并记录关于第二票据凭证(票据凭证y)的第二票据随机数、第二干扰随机数,可以根据第二票据随机数计算第二哈希值,如,hy,hy=hash(ry1),并采用第一使用方的公钥对第二票据随机数、第二干扰随机数、第二票据金额组成的内容加密以生成第二密文,如,cy=pka(ry1+ry2+valuey),此处,“a”即代表公司a,“y”即代表票据凭证y。

第二使用方生成第三票据信息,第三票据信息用于生成表征第二使用方收到第一使用方的支付后的第三票据凭证。第三票据信息包括使用第二使用方的公钥加密的第三密文,第三密文包括第三票据随机数和第三票据金额。具体实现中,第二使用方先在本地生成并记录关于第三票据(票据凭证z)的第三票据随机数、第三干扰随机数,可以根据第三票据随机数计算第三哈希值,如,hz,hz=hash(rz1),并采用第二使用方的公钥对第三票据随机数、第三干扰随机数、第三票据金额组成的内容加密以生成第三密文,如,cz=pkb(rz1+rz2+valuez),此处,“b”即代表公司b,“z”即代表票据凭证z。

此处,使用方可以在生成密文的同时,生成票据的标识,例如,第一使用方在生成第一密文的同时,生成第一票据的标识,并将票据标识同票据信息一同发送至授权服务器,当然,授权服务器也可以根据接收到的密文,在授权服务器中生成票据标识,在此不做限定。

步骤401,第二使用方将第三票据信息发送至第一使用方。

步骤402,第一使用方生成支付票据请求。

第一票据凭证即本发明实施例中的待使用的票据。第一使用方接收到第三票据信息之后,根据第一票据凭证的标识、第二票据信息和第三票据信息,生成支付票据请求,相当于,支付票据请求中包括第一票据凭证的标识、第二票据信息和第三票据信息。

步骤403,第一使用方发送支付票据请求至授权服务器。

步骤404,授权服务器对支付票据请求进行验证。

本发明提供一种具体的验证方式,授权服务器使用第一使用方的私钥解密第二密文,确定第二密文中的第二票据金额;使用第二使用方的私钥解密第三密文,确定第三密文中的第三票据金额。授权服务器根据第一票据凭证的标识,从区块链系统中索引到第一票据凭证,使用第一使用方的私钥解密第一票据凭证中的第一密文,从而确定出第一票据金额。授权服务器判断第二票据金额、第三票据金额之和是否与第一票据金额一致,若一致,则确定支付票据请求验证通过。

步骤405,授权服务器在确定支付票据请求验证通过后,生成第二票据信息的签名和第三票据的签名。

本发明实施例中,授权服务器在确定支付票据请求验证通过后,可以生成第二票据信息的签名和第三票据信息的签名,即生成两个签名用于证明支付票据请求验证通过。此外,授权服务器还可以生成第二票据信息和第三票据信息的共同签名,即生成一个签名用于证明支付票据请求验证通过。

步骤406,授权服务器将第二票据信息的签名和第三票据信息的签名发送至第一使用方。

步骤407,第一使用方向区块链系统发送票据支付交易。

步骤408,区块链系统对第二票据信息的签名、第三票据信息的签名验证。

步骤409,区块链系统对第二票据信息的签名、第三票据信息的签名验证通过后,生成第二票据凭证、第三票据凭证并存储。

本发明实施例中,存在使用方向区块链系统发送票据支付交易,且该票据支付交易通过授权服务器的验证,但是该使用方没有该第一票据凭证的使用权的情况,因此,区块链系统还需要验证使用方是否有第一票据凭证的使用权。具体的,使用方会向区块链系统发送用于指示拥有第一票据凭证的票据随机数,区块链系统根据该票据随机数计算哈希值,若计算出的哈希值与第一票据凭证的第一哈希值相同,则确定该使用方拥有第一票据凭证的使用权。补充说明,第一票据凭证的使用权可以是生成第一票据信息的第一使用方持有,也可以是其他使用方持有,当第一使用方将第一随机数发送至某个使用方,则该使用方即可以拥有该第一票据凭证的使用权。

当区块链系统确定使用方有第一票据凭证的使用权后,还需要验证该第一票据凭证是否已经被使用过,也就是说,票据凭证仅可以使用一次,被使用后,即被设定为已使用票据(无效票据)。由上述对第一随机数的说明可知,当第一票据凭证未被使用时,第一票据随机数的值为空;当第一票据凭证已被使用时,第一票据随机数的值不为空,则区块链系统可以判断第一票据凭证中的第一票据随机数的值是否为空,若为空,则代表该第一票据凭证可以使用。

该技术方案中,设定票据凭证为一次性使用,票据凭证一旦被使用则设定该票据凭证为无效票据,避免使用方多次使用票据,造成交易混乱的问题。

步骤410,区块链系统设置第一票据凭证为已使用票据。

区块链系统生成第二票据凭证、第三票据凭证之后,即代表该第一票据凭证已经被使用,区块链系统需要对该第一票据凭证进行标记。

本发明实施例中,第一使用方可以将第一票据凭证的使用权授权给其他使用方,同样也可以将第一票据凭证的使用权收回。具体环境下,企业c授权企业a票据凭证x的使用权后,企业c依然拥有该票据凭证x的使用权,且企业c的使用权优于企业a的使用权,若企业c需取消授权,则可通过一笔交易花费票据凭证x以生成等额的票据凭证t,票据凭证t的票据随机数归企业c拥有,同时票据凭证x不可再次交易。此时,公司c为第一使用方,公司a为其他使用方,票据凭证x为第一票据凭证,票据凭证t为第四票据凭证。

具体的,第一使用方生成第四票据信息,第四票据信息中可以包括使用第一使用方的公钥加密的第四密文,第四密文包括第四票据随机数和第四票据金额。第一使用方将记录有第一票据凭证的标识、第四票据信息的去授权请求发送至授权服务器;授权服务器根据第一票据凭证的标识,从区块链系统中索引到第一票据凭证,并解密第一票据凭证中的第一密文,进而确定第一票据金额;授权服务器使用第一使用方的私钥解密出第四密文,确定出第四票据金额,判断第四票据金额是否与第一票据金额一致,若是,则确定第四票据信息验证通过,并生成第四票据信息的签名。授权服务器根据第四票据信息和第四票据信息的签名,向区块链系统发送票据上链交易,区块链系统对票据上链交易中的第四票据信息的签名进行验证,若验证通过,则根据第四票据信息生成第四票据凭证并存储,同时将第一票据凭证设定为已使用票据。

本发明实施例中,也可以是授权服务器将第四票据信息的签名发送至第一服务器,第一服务器生成票据上链交易,区块链系统对票据上链交易中的第四票据信息的签名进行验证。

上述技术方案中,第一使用方向授权服务器发送包括有第一密文的第一票据信息,第一密文为第一使用方向采用第一使用方的公钥进行加密后的密文,授权服务器知晓第一使用方的私钥,并采用第一使用方的私钥对第一密文进行解密,从而保障区块链系统中,除第一使用方和授权服务器以外的其他节点并不能读取第一密文,保障了区块链系统中票据交易的隐私性。进一步的,授权服务器对第一票据信息进行验证,即判断第一票据金额是否与指定票据金额一致,当验证通过后,则生成票据上链交易发送至区块链系统中,区块链系统仅对票据上链交易中的签名进行验证,也就是说,区块链系统无需对第一使用方的第一密文进行解密,更无需对第一使用方的第一票据金额进行验证,本技术方案避免了区块链系统对票据金额进行验证,区块链系统仅验证票据上链交易中的签名,减少了区块链系统的验证工作,运行速度较快,且占用内存少。

基于同一发明构思,图5示例性的示出了本发明实施例提供的一种基于区块链的票据处理装置的结构,该装置可以执行基于区块链的票据处理的流程。

收发单元501,用于向第一使用方发送票据生成指示,所述票据生成指示包括指定票据金额;

所述收发单元501,还用于接收所述第一使用方发送的第一票据信息,所述第一票据信息包括使用所述第一使用方的公钥加密的第一密文,所述第一密文包括所述第一使用方生成的第一票据随机数和第一票据金额;所述第一票据随机数用于表征票据的所有者;

处理单元502,用于在确定所述第一票据信息验证通过后,生成所述第一票据信息的签名;所述第一票据信息验证通过为使用所述第一使用方的私钥解密出所述第一密文且所述第一票据金额与所述指定票据金额一致;

所述收发单元501,还用于向区块链系统发送票据上链交易,以使所述区块链系统在对所述票据上链交易中的所述第一票据信息的签名验证通过后根据所述第一票据信息生成第一票据凭证并存储;所述第一票据凭证用于表征所述第一使用方具有所述第一票据金额的票据。

可选的,所述处理单元502,还用于:

控制所述收发单元501接收所述第一使用方发送的支付票据请求,所述支付票据请求包括所述第一票据凭证的标识、第二票据信息和第三票据信息;所述第二票据信息用于生成表征所述第一使用方在支付后的第二票据凭证;所述第三票据信息用于生成表征第二使用方收到所述第一使用方的支付后的第三票据凭证;在确定所述支付票据请求验证通过后,生成所述第二票据信息的签名和所述第三票据信息的签名并发送给所述第一使用方,以使所述第一使用方向所述区块链系统发送票据支付交易,所述票据支付交易用于所述区块链系统生成第二票据凭证、第三票据凭证,并设置所述第一票据凭证为已使用票据。

可选的,所述第二票据信息包括使用所述第一使用方的公钥加密的第二密文,所述第二密文包括第二票据随机数和第二票据金额;所述第三票据信息包括使用所述第二使用方的公钥加密的第三密文;所述第三密文包括第三票据随机数和第三票据金额;

所述处理单元502,具体用于:

使用所述第一使用方的私钥解密所述第二密文,使用所述第二使用方的私钥解密所述第三密文;

根据所述第一票据凭证的标识,从所述区块链系统中确定所述第一票据金额;

判断所述第二票据金额、第三票据金额之和是否与所述第一票据金额一致,若一致,则确定所述支付票据请求验证通过。

可选的,所述处理单元502,还用于:

控制所述收发单元501接收所述第一使用方发送的去授权请求;所述去授权请求包括所述第一票据凭证的标识、第四票据信息;所述第四票据信息包括使用所述第一使用方的公钥加密的第四密文,所述第四密文包括第四票据随机数和第四票据金额;

根据所述第一票据凭证的标识,从所述区块链系统中确定所述第一票据金额;使用所述第一使用方的私钥解密出所述第四密文;判断所述第四票据金额是否与所述第一票据金额一致,若是,则确定所述第四票据信息验证通过,并生成所述第四票据信息的签名;

向所述区块链系统发送所述票据上链交易,以使所述区块链系统对所述票据上链交易中的所述第四票据信息的签名验证通过后根据所述第四票据信息生成第四票据凭证并存储,以及将所述第一票据凭证设定为已使用票据。

可选的,所述第一票据信息还包括第一哈希值,所述第一哈希值是所述第一使用方对所述第一票据随机数进行哈希计算得到的;所述第一哈希值用于所述区块链系统验证使用方是否具有所述第一票据的票据使用权。

可选的,所述第一票据信息还包括所述第一使用方生成的干扰随机数,所述干扰随机数用于加密票据金额。

基于同一发明构思,图6示例性的示出了本发明实施例提供的一种基于区块链的票据处理装置的结构,该装置可以执行基于区块链的票据处理的流程。

收发单元601,用于接收票据上链交易,所述票据上链交易包括票据信息的签名和票据信息;所述票据信息包括使用使用方的公钥加密的密文;所述密文包括票据随机数和票据金额;所述票据信息的签名是授权服务器对所述票据信息验证通过后生成的;

处理单元602,用于在对所述票据信息的签名验证通过后根据所述票据信息生成票据凭证并存储;所述票据凭证用于表征所述使用方具有所述票据金额的票据。

可选的,所述处理单元602,还用于:

控制所述收发单元601接收票据支付交易,所述票据支付交易包括第一票据凭证的标识、第二票据信息、所述第二票据信息的签名、第三票据信息和所述第三票据信息的签名;所述第一票据凭证对应的第一票据为待使用的票据,所述第二票据信息用于生成表征收到所述第一票据的支付后的第二票据凭证;所述第三票据信息用于生成表征所述第一票据在支付后的第三票据凭证;

在对所述第二票据信息的签名、所述第三票据信息的签名验证通过后,根据所述第二票据信息生成第二票据凭证并存储以及根据所述第三票据信息生成第三票据凭证并存储;

设定所述第一票据凭证为已使用票据。

基于同一发明构思,本发明实施例还提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于区块链的票据处理方法。

基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述基于区块链的票据处理方法。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1