G06Q30/04 G06Q20/38
1.一种票据处理方法,其特征在于,所述方法应用于区块链节点设备,所述方法包括:
接收票据开具用户为票据申请用户生成的目标票据信息;
在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥;
当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证;
若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
2.根据权利要求1所述的方法,其特征在于,对所述目标票据信息的转移请求包括:从票据管理用户发送的第一转移请求,所述当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,包括:
根据所述第一转移请求中携带的目标票据标识,在区块链中查询与所述目标票据标识对应的目标票据信息;
提取所述第一转移请求中携带的所述票据管理用户的私钥作为待验证私钥;
验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第二公钥匹配;
若匹配,则验证成功,否则验证失败。
3.根据权利要求2所述的方法,其特征在于,所述第一转移请求中携带的目标票据标识为所述票据管理用户根据所述票据报销用户标识所对应用户端发送的关键信息得到;
所述关键信息为所述票据报销用户标识所对应用户端根据票据申请用户标识所对应用户端发送的票据凭证文件得到的,所述票据凭证文件由所述票据开具用户标识所对应用户端在生成所述目标票据信息后发送给所述票据申请用户标识所对应用户端的。
4.根据权利要求1所述的方法,其特征在于,对所述目标票据信息的转移请求包括:从票据申请用户发送的第一转移请求,所述当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,包括:
提取所述第二转移请求中携带的所述票据申请用户的私钥作为待验证私钥;
验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第一公钥匹配;
若匹配,则验证成功,否则验证失败。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,包括:
对所述目标票据信息进行更新,所述更新包括:删除所述目标票据信息中的第一公钥,并在所述目标票据信息中添加所述票据报销用户在所述区块链网络上对应的第三公钥。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述转移请求中包括的报销用户标识对所述目标票据信息进行转移处理之后,所述方法还包括:
接收所述票据报销用户标识所对应用户端发送的票据存储请求,所述存储请求包括票据内容加密数据,所述票据内容加密数据包括:所述票据报销用户所对应用户端使用票据报销用户私钥对目标票据信息中包括的票据内容进行加密后得到的数据;
在所述区块链中存储所述存储请求中包括的票据内容加密数据。
7.根据权利要求6所述的方法,其特征在于,所述在所述区块链中存储所述存储请求中包括的票据内容加密数据,包括:
对所述票据内容加密数据进行广播,以使得所述区块链中的节点设备对所述票据内容加密数据进行共识校验;
若所述区块链中的节点设备对所述票据内容加密数据校验通过,则将所述票据内容加密数据打包成第一区块,并将所述第一区块链接至所述区块链中。
8.一种票据处理装置,其特征在于,包括:
接收单元,用于接收票据开具用户为票据申请用户生成的目标票据信息;
存储单元,用于在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥;
验证单元,用于当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证;
转移单元,用于若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
9.一种区块链节点设备,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的票据处理方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令适于由处理器加载并执行如权利要求1-7任一项所述的票据处理方法。
本申请涉及互联网技术领域,尤其涉及一种票据处理方法、设备及介质。
发票是单位和个人在购销商品、提供或接收服务以及从事其他经营活动中,所开具和收取的业务凭证,是会计核算的原始依据,也是审计机关、税务机关执法检查的重要依据,发票可以是纸质发票,也可以是电子发票。随着经济和科技的发展,电子发票以其便捷性、环保型、低成本、高效率等优势逐步取代了传统的纸质发票,电子发票在报销领域甚至可以做到无票报销,深受企业和用户的喜爱,但是电子发票的管理制度还未完全完善,电子发票在报销中可能存在重复报销以及虚假报销的风险,因此,避免电子发票被重复报销以及被虚假报销,是当前亟需解决的问题。
本申请实施例提出了一种票据处理方法、设备及介质,有助于避免票据出现重复报销的情况,同时简化票据开具和处理流程。
一方面,本申请实施例提供了一种票据处理方法,所述方法应用于区块链节点设备,所述方法包括:
接收票据开具用户为票据申请用户生成的目标票据信息;
在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥;
当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证;
若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
另一方面,本申请实施例提供了一种区块链节点设备,该设备具有实现上述票据处理方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括:
接收单元,用于接收票据开具用户为票据申请用户生成的目标票据信息;
存储单元,用于在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥;
验证单元,用于当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证;
转移单元,用于若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
另一方面,本申请实施例提供了一种区块链节点设备,该设备包括存储器、处理器,存储器存储一组程序代码,处理器调用存储器中存储的程序代码,用于执行上述票据处理方法所涉及到的操作。
另一方面,本申请实施例提供了一种计算机可读存储介质,用于储存为区块链节点设备所用的计算机程序指令,其包含用于执行上述票据处理方法所涉及的程序。
采用本申请实施例,区块链节点设备首先接收票据开具用户为票据申请用户生成的目标票据信息,然后在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥,当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,最后若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,由于票据申请用户只有一次对目标票据信息的转移权限,在进行转移后票据报销用户可以使用私钥对目标票就信息签名,从而其他用户无法再次获取到目标票据信息,保证了票据申请用户只能报销一次目标票据信息所指示的票据。
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的票据处理系统架构示意图;
图1b是本申请实施例提供的一种区块链的结构示意图;
图2是本申请实施例提供的一种票据处理方法的流程示意图;
图3是本申请实施例提供的另一种票据处理方法的流程示意图;
图4是本申请实施例提供的一种区块链节点设备的结构示意图;
图5是本申请实施例提供的另一种区块链节点设备的结构示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了更好的理解本发明实施例公开的一种票据处理方法、设备及介质,下面首先对本发明实施例适用的系统架构进行描述。
请参见图1a,如图1a所示,票据处理系统架构包括第一区块链节点设备、第二区块链节点设备、第三区块链节点设备、第四区块链节点设备和区块链网络。其中,第一区块链节点设备可以为票据开具用户在区块链中对应的设备,第二区块链节点设备可以为票据申请用户在区块链中对应的设备,第三区块链节点设备可以为票据管理用户在区块链中对应的设备,第四区块链节点设备可以为票据报销用户在区块链中对应的设备。第一区块链节点设备、第二区块链节点设备、第三区块链节点设备和第四区块链节点设备可以是客户端或者服务器,本申请实施例不做限定。其中,客户端可以为以下任一种:终端、独立的应用程序、API(Application Programming Interface,应用程序编程接口)或者SDK(SoftwareDevelopment Kit,软件开发工具包)。其中,终端可以包括但不限于:智能手机(如Android手机、iOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(MobileInternetDevices,简称MID)等设备,本发明实施例不做限定。
其中,区块链(Block Chain)是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证数据不可篡改和不可伪造的分布式账本。多个独立的分布式节点(即第一区块链节点设备)保存相同的记录。区块链技术实现了去中心化,成为了可信的数字资产存储、转移和交易的基石。以图1b所示的区块链的结构示意图为例,每当有新的数据需要写入区块链,这些数据会汇总到一个区块(block)中,添加在已有区块链的末端,通过共识算法保证每个节点新添加的区块是完全相同的。每个区块内记录了平台协议数据和/或活动公告数据,同时包含了前一个区块的哈希(hash)值,所有区块就是通过这种方式保存前一个区块中的hash值,按顺序相连,组成了区块链。区块链中下一个区块的区块头中会存储前一个区块的哈希值,当前一个区块中的指纹数据发生变化时,本区块的哈希值也会随之改变,因此通过上传至区块链网络中的指纹数据难以被篡改,在区块链上进行客户端与业务平台的交易实现了交易过程的公开透明,提高了指纹数据的可靠性。
本申请提供一种基于区块链的票据处理方法,旨在解决传统票据过程中电子票据被重复报销,报销票据的问题,同时简化票据开具和报销过程。在本申请提供的票据处理方法中,区块链节点设备首先接收票据开具用户为票据申请用户生成的目标票据信息,然后在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥,当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,最后若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,由于票据申请用户只有一次对目标票据信息的转移权限,在进行转移后票据报销用户可以使用私钥对目标票就信息签名,从而其他用户无法再次获取到目标票据信息,保证了票据申请用户只能报销一次目标票据信息所指示的票据。
请参见图2,图2是本申请实施例提供的一种票据处理方法的流程示意图,该方法中应用于区块链节点设备,该方法包括但不限于如下步骤S201~S204:
S201、接收票据开具用户为票据申请用户生成的目标票据信息。
在票据的开具和报销过程中,涉及到票据申请用户(如消费者)、票据开具用户(如开票企业)、票据管理用户(如税务局)、票据报销用户(如报销企业),其中,票据申请用户、票据开具用户、票据管理用户、票据报销用户可以分别通过各自关联的区块链节点设备将获取到的票据信息上传到区块链,或者从区块链中获取票据信息,相当于形成了一个税务链,票据信息可以在税务链上进行流转或者流通,并且票据信息是唯一的。在票据开具用户为票据申请用户生成目标票据信息后,票据开具用户可以将目标票据信息上传到区块链,使目标票据信息可以通过区块链流转到票据报销用户。
S202、在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥。
在获取到票据开具用户为票据申请用户生成的目标票据信息后,将目标票据信息上传到区块链,具体实现中,在区块链中存储所述目标票据信息,包括:对所述目标票据信息进行广播,以使得所述区块链中的节点设备对所述目标票据信息进行共识校验;若所述区块链中的节点设备对所述目标票据信息校验通过,则将所述关键信息打包成第一区块,并将所述第一区块链接至所述区块链中。如此,成功将目标票据信息存储到区块链中。
目标票据信息包括票据内容和票据签名,票据签名包括第一公钥和第二公钥,第二公钥为票据申请用户在区块链上对应的加密公钥,第二公钥为票据管理用户在区块链上对应的加密公钥,相当于票据开具用户将票据内容作为票据资产,同时发行到了票据申请用户在区块链上的地址和票据管理用户在区块链上的地址,其中,票据申请用户在区块链上的地址可以理解为消费者对应的第一公钥,票据管理用户在区块链上对应的地址可以理解为税务局对应的第二公钥,。
S203、当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证。
在接收到针对目标票据的转移请求时,发起转移请求的可能是票据管理用户,也可能是票据申请用户,由于转移请求中携带有待验证私钥,因此可以通过待验证私钥来进行匹配验证。在检测到待验证私钥与第一公钥匹配时,可确定转移请求是票据申请用户发送的,或者,在检测到待验证私钥与第二公钥匹配时,可确定转移请求是票据管理用户发送的。
在一种实现方式中,对所述目标票据信息的转移请求包括:从票据管理用户发送的第一转移请求,所述当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,包括:根据所述第一转移请求中携带的目标票据标识,在区块链中查询与所述目标票据标识对应的目标票据信息;提取所述第一转移请求中携带的所述票据管理用户的私钥作为待验证私钥;验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第二公钥匹配;若匹配,则验证成功,否则验证失败。票据申请用户和票据管理用户都有从区块链中转移目标票据信息的权限,因此,针对目标票据信息发送的转移请求可以是由票据管理用户发送的第一转移请求,此时,可以根据第一转移请求中携带的目标票据标识,在区块链中查询与目标票据标识对应的目标票据信息,从而,提取出第一转移请求中携带的票据管理用户的私钥作为待验证私钥,通过验证待验证私钥和目标票据信息中包括的第二公钥是否匹配,可以确定是否将目标票据信息转移给票据管理用户,若匹配成功则发起转移,若匹配失败则拒绝转移。
举例说明,票据管理用户对应税务局,税务局在区块链中存储有非常多的票据信息,在接收到税务局发送的第一转移请求时,首先需要根据第一转移请求中的目标票据信息标识来确定税务局是想要转移哪一个票据信息,在查到目标票据标识对应的目标票据信息后,检测第一转移请求中携带的私钥是否和税务局在区块链中对应的第二公钥匹配,若是,可以证明该第一转移请求确实是由税务局发起的,即身份验证成功,此时可以授予税务局对目标票据信息的转移权限,从而税务局可以将目标票据信息转移给票据报销用户标识对应的票据报销用户。
具体实现中,所述第一转移请求中携带的目标票据标识为所述票据管理用户根据所述票据报销用户标识所对应用户端发送的关键信息得到;所述关键信息为所述票据报销用户标识所对应用户端根据票据申请用户标识所对应用户端发送的票据凭证文件得到的,所述票据凭证文件由所述票据开具用户标识所对应用户端在生成所述目标票据信息后发送给所述票据申请用户标识所对应用户端的。第一转移请求中携带的目标票据标识为票据管理用户根据票据报销用户标识对应用户端发送的关键信息得到,关键信息例如可以是票号信息、开票用户信息、开票日期信息、开票金额信息中的一项或者多项,关键信息为票据报销用户标识对应用户端根据票据申请用户对应用户端发送的票据凭证文件得到,票据文件由票据开具用户标识对应用户端在生成目标票据信息后发送给票据申请用户的。其中,票据申请用户在通过区块链网络向票据开具用户发起票据开具请求之前,需要上传身份认证信息,在通过实名认证之后,票据开具用户才会响应该票据开具请求,从而向区块链发送为票据申请用户生成的目标票据信息。
举例说明,消费者向开票企业申请开具指定发票,开票企业在开具该指定发票之后生成一个发票凭证,发票凭证例如可以是一个PDF文件,并将发票凭证发送给消费者终端,消费者终端将该发票凭证送给报销企业终端,报销企业要向税务局获取该指定发票时,可以从该PDF文件中提出中关键信息,并将关键信息发送给税务局终端,以便税务局终端根据关键信息可以快速从大量发票中查出该指定发票。
在一种实现方式中,对所述目标票据信息的转移请求包括:从票据申请用户发送的第一转移请求,所述当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,包括:提取所述第二转移请求中携带的所述票据申请用户的私钥作为待验证私钥;验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第一公钥匹配;若匹配,则验证成功,否则验证失败。票据申请用户和票据管理用户都有从区块链中转移目标票据信息的权限,因此,针对目标票据信息发送的转移请求可以是由票据申请用户发送的第二转移请求,此时,可以直接提取出第二转移请求中携带的票据申请用户的私钥作为待验证私钥,通过验证待验证私钥和目标票据信息中包括的第一公钥是否匹配,可以确定是否将目标票据信息转移给票据申请用户,若匹配成功则发起转移,若匹配失败则拒绝转移。
举例说明,票据申请用户对应消费者,消费者通过等托管平台可以获取到发票,在接收到消费者发送的第二转移请求时,检测第二转移请求中携带的私钥是否和消费者在区块链中对应的第一公钥匹配,若是,可以证明该第二转移请求确实是由通过实名认证的消费者发起的,即身份验证成功过,此时可以授予消费者对目标票据信息的转移权限,从而,消费者可以通过等托管平台获取目标票据信息,从而消费者可以将目标票据信息转移给票据报销用户标识对应的票据报销用户。
S204、若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
当转移请求中携带的待验证私钥与第一公钥匹配时,则可以确定转移请求是由票据申请用户发送的,即票据申请用户可以通过待验证私钥将目标票据信息转走,当转移请求中携带的待验证私钥与第二公钥皮匹配时,则可以确定转移请求是由票据管理用户发送的,即票据管理用户可以通过待验证私钥将目标票据信息转走,进而,再由票据申请用户或者票据管理用户将目标票据信息转移给票据报销用户标识对应的票据报销用户,针对票据申请用户,即消费者来说,完成了票据的开具和报销流程。
在一种实现方式中,所述根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,包括:对所述目标票据信息进行更新,所述更新包括:删除所述目标票据信息中的第一公钥,并在所述目标票据信息中添加所述票据报销用户在所述区块链网络上对应的第三公钥。在将目标票据信息转移给票据报销用户标识对应的票据报销用户后,则需要对目标票据信息进行更新,即删除掉目标票据信息中的第一公钥,并在目标票据信息中添加票据报销用户在区块链网络上对应的第三公钥,如此,票据申请用户不在具备对目标票据信息的转移权限,只有票据报销用户通过自己的私钥才可以将目标票据信息进行转移,针对目标票据信息中的第二公钥,可以删除也可以不删除,通过保留第二公钥,票据管理用户还可以对目标票据信息进行处理,当票据报销用户的私钥和第三公钥匹配时,票据报销用户即可拥有用对目标票据信息的处理权限。
举例说明,现有的电子发票可以重复报销,特别是为个人用户开具的电子发票,与公司是没有关联的,并且电子发票一般以PDF的形式发送到消费者邮箱,因此消费者可以将发票进行复制,并将复制后的发票进行重复报销。在基于区块链的票据处理方法中,开票企业上传到区块链中的发票不是一个文件,可以理解为是一笔资产,资产是可以被转移的,资产持有方将资产转移出去后变不再持有这笔资产。消费者首先需要在区块链上进行实名认证,从而消费者可以用自己的私钥将票据资产转移到报销企业,此时消费者已经没有这笔票据资产了,如果要再次流转票据资产,只能由报销企业使用自己的私钥对票据资产再次进行转移。消费者在报销流程中要和区块链做很多交互,消费者可以用、钉钉或者其他平台托管发票,当使用托管发票时,用自己的私钥将票据资产签名后给报销企业,因此需要报销企业和平台对接,当消费者使用不同的平台时,需要报销企业和不同的平台对接,处理流程麻烦,本申请引入多重签名的方式,开票企业将票据资产发行到消费者地址和税局地址,此时报销企业可以既可以使用消费者私钥转走该票据资产,也可以使用税局私钥转走该票据资产,从而可以不再和平台对接,有助于提高处理效率。
本申请实施例提出了一种票据处理方法,该方法应用于区块链节点设备,区块链节点设备首先接收票据开具用户为票据申请用户生成的目标票据信息,然后在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥,当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,最后若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,由于票据申请用户只有一次对目标票据信息的转移权限,在进行转移后票据报销用户可以使用私钥对目标票就信息签名,从而其他用户无法再次获取到目标票据信息,保证了票据申请用户只能报销一次目标票据信息所指示的票据。
请参见图3,图3是本申请实施例提供的另一种票据处理方法的流程示意图。该方法应用于区块链节点设备,该方法包括但不限于如下步骤S301~S306:
S301、接收票据开具用户为票据申请用户生成的目标票据信息。
S302、在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥。
S303、当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证。
S304、若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
其中,上述步骤S301-步骤S304可参见图2中的步骤S201-步骤S204,此处不再赘述。
S305、接收所述票据报销用户标识所对应用户端发送的票据存储请求,所述存储请求包括票据内容加密数据,所述票据内容加密数据包括:所述票据报销用户所对应用户端使用票据报销用户私钥对目标票据信息中包括的票据内容进行加密后得到的数据。
票据报销用户在获取到目标票据信息后,可以从目标票据信息中获取票据内容,从而结束了票据申请用户针对目标票据信息的报销流程,此时,票据报销用户可以用自己的私钥对票据内容攻进行加密,并将加密后的票据内容上传到区块链中。
S306、在所述区块链中存储所述存储请求中包括的票据内容加密数据。
在一种实现方式中,所述在所述区块链中存储所述存储请求中包括的票据内容加密数据,包括:对所述票据内容加密数据进行广播,以使得所述区块链中的节点设备对所述票据内容加密数据进行共识校验;若所述区块链中的节点设备对所述票据内容加密数据校验通过,则将所述票据内容加密数据打包成第一区块,并将所述第一区块链接至所述区块链中。如此,票据报销用户将使用私加密后的票据内容上传到区块链。
本申请实施例提出了一种票据处理方法,该方法应用于区块链节点设备,区块链节点设备首先接收票据开具用户为票据申请用户生成的目标票据信息,然后在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥,当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,最后若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,由于票据申请用户只有一次对目标票据信息的转移权限,在进行转移后票据报销用户可以使用私钥对目标票就信息签名,从而其他用户无法再次获取到目标票据信息,保证了票据申请用户只能报销一次目标票据信息所指示的票据。
请参见图4,图4是本申请实施例提供的一种区块链节点设备的结构示意图,该区块链节点设备用于执行图2~图3对应的方法实施例中第一区块链节点设备所执行的步骤,该区块链节点设备包括:一个或多个处理器401;一个或多个输入设备402,一个或多个输出设备403和存储器404。上述处理器401、输入设备402、输出设备403和存储器404通过总线404连接。存储器402用于存储计算机程序,所述计算机程序包括程序指令,处理器401、输入设备402、输出设备403用于执行存储器404存储的程序指令,执行以下操作:
输入设备402接收票据开具用户为票据申请用户生成的目标票据信息;
处理器401在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥;
输入设备402当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证;
输出设备403若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
可见,本申请实施例提出了一种票据处理方法,该方法应用于区块链节点设备,区块链节点设备首先接收票据开具用户为票据申请用户生成的目标票据信息,然后在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥,当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,最后若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,由于票据申请用户只有一次对目标票据信息的转移权限,在进行转移后票据报销用户可以使用私钥对目标票就信息签名,从而其他用户无法再次获取到目标票据信息,保证了票据申请用户只能报销一次目标票据信息所指示的票据。
在一种实现方式中,对所述目标票据信息的转移请求包括:从票据管理用户发送的第一转移请求,处理器401当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,包括:
根据所述第一转移请求中携带的目标票据标识,在区块链中查询与所述目标票据标识对应的目标票据信息;
提取所述第一转移请求中携带的所述票据管理用户的私钥作为待验证私钥;
验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第二公钥匹配;
若匹配,则验证成功,否则验证失败。
在一种实现方式中,所述第一转移请求中携带的目标票据标识为所述票据管理用户根据所述票据报销用户标识所对应用户端发送的关键信息得到;
所述关键信息为所述票据报销用户标识所对应用户端根据票据申请用户标识所对应用户端发送的票据凭证文件得到的,所述票据凭证文件由所述票据开具用户标识所对应用户端在生成所述目标票据信息后发送给所述票据申请用户标识所对应用户端的。
在一种实现方式中,对所述目标票据信息的转移请求包括:从票据申请用户发送的第一转移请求,处理器401当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,包括:
提取所述第二转移请求中携带的所述票据申请用户的私钥作为待验证私钥;
验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第一公钥匹配;
若匹配,则验证成功,否则验证失败。
在一种实现方式中,处理器401根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,包括:
对所述目标票据信息进行更新,所述更新包括:删除所述目标票据信息中的第一公钥,并在所述目标票据信息中添加所述票据报销用户在所述区块链网络上对应的第三公钥。
在一种实现方式中,处理器401根据所述转移请求中包括的报销用户标识对所述目标票据信息进行转移处理之后,所述方法还包括:
接收所述票据报销用户标识所对应用户端发送的票据存储请求,所述存储请求包括票据内容加密数据,所述票据内容加密数据包括:所述票据报销用户所对应用户端使用票据报销用户私钥对目标票据信息中包括的票据内容进行加密后得到的数据;
在所述区块链中存储所述存储请求中包括的票据内容加密数据。
在一种实现方式中,处理器401在所述区块链中存储所述存储请求中包括的票据内容加密数据,包括:
对所述票据内容加密数据进行广播,以使得所述区块链中的节点设备对所述票据内容加密数据进行共识校验;
若所述区块链中的节点设备对所述票据内容加密数据校验通过,则将所述票据内容加密数据打包成第一区块,并将所述第一区块链接至所述区块链中。
请参见图5,图5是本申请实施例提供的一种区块链节点设备的结构示意图,该区块链节点设备用于执行图2~图3对应的方法实施例中第一区块链节点设备所执行的步骤,该区块链节点设备可包括:
接收单元501,用于接收票据开具用户为票据申请用户生成的目标票据信息;
存储单元502,用于在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥;
验证单元503,用于当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证;
转移单元504,用于若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理。
可见,本申请实施例提出了一种票据处理方法,该方法应用于区块链节点设备,区块链节点设备首先接收票据开具用户为票据申请用户生成的目标票据信息,然后在区块链中存储所述目标票据信息,所述目标票据信息包括票据内容和票据签名,所述票据签名包括:第一公钥和第二公钥,所述第一公钥为票据申请用户在区块链网络上对应的加密公钥,所述第二公钥为票据管理用户在所述区块链网络上对应的加密公钥,当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证,最后若匹配验证的结果为所述待验证私钥与所述第一公钥匹配、或者所述待验证私钥与所述第二公钥匹配,则响应所述转移请求,根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理,由于票据申请用户只有一次对目标票据信息的转移权限,在进行转移后票据报销用户可以使用私钥对目标票就信息签名,从而其他用户无法再次获取到目标票据信息,保证了票据申请用户只能报销一次目标票据信息所指示的票据。
在一种实现方式中,对所述目标票据信息的转移请求包括:从票据管理用户发送的第一转移请求,在当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证时,所述处理单元502,还包括:
根据所述第一转移请求中携带的目标票据标识,在区块链中查询与所述目标票据标识对应的目标票据信息;
提取所述第一转移请求中携带的所述票据管理用户的私钥作为待验证私钥;
验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第二公钥匹配;
若匹配,则验证成功,否则验证失败。
在一种实现方式中,所述第一转移请求中携带的目标票据标识为所述票据管理用户根据所述票据报销用户标识所对应用户端发送的关键信息得到;
所述关键信息为所述票据报销用户标识所对应用户端根据票据申请用户标识所对应用户端发送的票据凭证文件得到的,所述票据凭证文件由所述票据开具用户标识所对应用户端在生成所述目标票据信息后发送给所述票据申请用户标识所对应用户端的。
在一种实现方式中,对所述目标票据信息的转移请求包括:从票据申请用户发送的第一转移请求,在当接收到对所述目标票据信息的转移请求时,将所述转移请求中携带的待验证私钥和所述第一公钥进行匹配验证、或者将所述转移请求中携带的待验证私钥和所述第二公钥进行匹配验证时,所述处理单元502,还包括:
提取所述第二转移请求中携带的所述票据申请用户的私钥作为待验证私钥;
验证所述待验证私钥是否与查询到的所述目标票据信息中包括的第一公钥匹配;
若匹配,则验证成功,否则验证失败。
在一种实现方式中,在根据所述转移请求中包括的票据报销用户标识对所述目标票据信息进行转移处理时,所述处理单元502,还包括:
对所述目标票据信息进行更新,所述更新包括:删除所述目标票据信息中的第一公钥,并在所述目标票据信息中添加所述票据报销用户在所述区块链网络上对应的第三公钥。
在一种实现方式中,所述根据所述转移请求中包括的报销用户标识对所述目标票据信息进行转移处理之后,所述处理单元502,还包括:
接收所述票据报销用户标识所对应用户端发送的票据存储请求,所述存储请求包括票据内容加密数据,所述票据内容加密数据包括:所述票据报销用户所对应用户端使用票据报销用户私钥对目标票据信息中包括的票据内容进行加密后得到的数据;
在所述区块链中存储所述存储请求中包括的票据内容加密数据。
在一种实现方式中,在在所述区块链中存储所述存储请求中包括的票据内容加密数据时,所述处理单元502,还包括:
对所述票据内容加密数据进行广播,以使得所述区块链中的节点设备对所述票据内容加密数据进行共识校验;
若所述区块链中的节点设备对所述票据内容加密数据校验通过,则将所述票据内容加密数据打包成第一区块,并将所述第一区块链接至所述区块链中。
本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,可执行上述实施例中所执行的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
本文发布于:2023-04-14 14:59:26,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/2/86281.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |