掌桥专利:专业的专利平台
掌桥专利
首页

一种财税区块链的账本建立方法、装置及计算机设备

文献发布时间:2023-06-19 11:52:33


一种财税区块链的账本建立方法、装置及计算机设备

技术领域

本申请涉及区块链技术领域,尤其涉及一种财税区块链的账本建立方法、装置及计算机设备。

背景技术

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。

目前,较长采用的区块链分布式账本通常是按照交易时间将交易信息对应打包成交易区块依次链接构建而成的,或者根据交易时间采用有向无环图技术构建得到的。但在财税区块链中,通常会涉及对交易涉及的税务和发票的核查,这种按交易时间建立的分布式账本在核查时由于账本排布没有规律,核查花费的时间较多,效率低,所以,需要为财税区块链构建一种新的账本。

发明内容

本申请实施例提供了一种财税区块链的账本建立方法、装置及计算机设备,用于提供一种新的账本,提高财税区块链中账本的查询效率。

一方面,提供了一种财税区块链的账本建立方法,包括:

根据领取空白发票的发票领取交易生成发票领取块,并基于所述发票领取块建立发票领取链,其中,所述发票领取链由至少两个发票领取块按照发票标识的顺序依次链接构成,所述发票标识包括发票代码和发票号码,所述发票领取块用于记录空白发票领取信息;

当获得开具发票的开票交易时,确定所述开票交易使用的空白发票的第一发票标识,并建立所述开票交易对应的第一开票交易块与所述第一发票标识对应的发票领取块的对应关系,其中,所述第一开票交易块用于记录与所述开票交易对应的交易信息;

基于所述第一开票交易块和所述对应关系,建立发票开具链,其中,所述发票开具链由与同一个发票领取块具有对应关系的至少两个开票交易块依次链接构成;

基于所述发票领取链和所述发票开具链生成第一账本。

在一种可能的设计中,所述空白发票为用于抵扣的专用发票,则在基于所述第一开票交易块和所述对应关系,建立发票开具链之后,所述方法还包括:

当获得发票抵扣交易时,确定所述发票抵扣交易对应的第二发票标识;

根据所述第二发票标识,建立所述发票抵扣交易对应的第一发票抵扣块与所述第一开票交易块的对应关系,并基于所述第一发票抵扣块建立发票抵扣链;其中,所述发票抵扣链由同一个开票交易块对应的至少两个发票抵扣块依次链接构成,所述第一发票抵扣块用于记录与所述发票抵扣交易对应的抵扣信息;

基于所述发票领取链、所述发票开具链和所述发票抵扣链生成第二账本。

在一种可能的设计中,根据领取空白发票的发票领取交易生成发票领取块,具体包括:

按照预设时间将所述预设时间内产生的发票领取交易所对应的交易数据打包,生成所述发票领取块。

在一种可能的设计中,建立所述开票交易对应的第一开票交易块与所述第一发票标识对应的发票领取块的对应关系,包括:

对所述发票领取块记录的空白发票领取信息进行加密哈希运算,获得所述发票领取块对应的第一哈希值;

若所述第一发票标识对应的第一空白发票为所述发票领取块记录的空白发票中排序第一的空白发票,则将所述第一哈希值作为第一哈希指针添加到所述第一开票交易块的区块头部中,使得所述第一开票交易块通过所述第一哈希指针链接到所述发票领取块,其中,所述第一哈希指针为指向所述第一开票交易块存储位置的指针;

若所述第一空白发票为所述发票领取块记录的空白发票中除所述排序第一的空白发票之外的空白发票,则将获取与所述第一空白发票的第一发票标识相邻,且发票标识排列在所述第一发票标识之前的第二空白发票,并将所述第二空白发票对应的第二开票交易块的第二哈希值,作为第二哈希指针添加到所述第一开票交易块的区块头部中,使得所述第一开票交易块通过所述第二哈希指针链接到所述第二开票交易块,其中,所述第二哈希指针为指向所述第二交易开票交易块存储位置的指针。

在一种可能的设计中,建立所述发票抵扣交易对应的第一发票抵扣块与所述第一开票交易块的对应关系,包括:

对所述第一开票交易块记录的交易信息进行加密哈希运算,获得所述第一开票交易块对应的第三哈希值;

若所述发票抵扣交易对应的第一抵扣发票为所述第一开票交易块中第一个用于抵扣的发票,则将所述第三哈希值作为第三哈希指针添加到所述第一发票抵扣块的区块头中,使得所述第一发票抵扣块通过所述第三哈希指针链接到所述第一开票交易块;其中,所述第三哈希指针为指向所述第一发票抵扣块存储位置的指针;

若所述发票抵扣交易对应的第一抵扣发票非所述第一开票交易块中第一个用于抵扣的发票,则获取与所述第一抵扣发票的发票标识相邻,且发票标识位于所述第一抵扣发票的发票标识之前的第二抵扣发票,并将所述第二抵扣发票对应的第二发票抵扣块的第四哈希值,作为第四哈希指针添加到所述第一发票抵扣块的区块头中,使得所述第一发票抵扣块通过所述第四哈希指针链接到所述第二发票抵扣块,其中,所述第四哈希指针为指向所述第二发票抵扣块存储位置的指针。

在一种可能的设计中,所述发票领取链、所述发票开具链和所述发票抵扣链排布方向各不相同。

第二方面,提供了一种财税区块链的账本建立装置,包括:

第一建立模块,用于根据领取空白发票的发票领取交易生成发票领取块,并基于所述发票领取块建立发票领取链,其中,所述发票领取链由至少两个发票领取块按照发票标识的顺序依次链接构成,所述发票标识包括发票代码和发票号码,所述发票领取块用于记录空白发票领取信息;

确定模块,用于当获得开具发票的开票交易时,确定所述开票交易使用的空白发票的第一发票标识,并建立所述开票交易对应的第一开票交易块与所述第一发票标识对应的发票领取块的对应关系,其中,所述第一开票交易块用于记录与所述开票交易对应的交易信息;

第二建立模块,用于基于所述第一开票交易块和所述对应关系,建立发票开具链,其中,所述发票开具链由与同一个发票领取块具有对应关系的至少两个开票交易块依次链接构成;

生成模块,用于基于所述发票领取链和所述发票开具链生成第一账本。

在一种可能的设计中,所述装置还包括第三建立模块,所述第三建立模块用于:

当获得发票抵扣交易时,确定所述发票抵扣交易对应的第二发票标识;

根据所述第二发票标识,建立所述发票抵扣交易对应的第一发票抵扣块与所述第一开票交易块的对应关系,并基于所述第一发票抵扣块建立发票抵扣链;其中,所述发票抵扣链由同一个开票交易块对应的至少两个发票抵扣块依次链接构成,所述第一发票抵扣块用于记录与所述发票抵扣交易对应的抵扣信息;

基于所述发票领取链、所述发票开具链和所述发票抵扣链生成第二账本。

在一种可能的设计中,所述第一建立模块具体用于:

按照预设时间将所述预设时间内产生的发票领取交易所对应的交易数据打包,生成所述发票领取块。

在一种可能的设计中,所述确定模块具体用于:

建立所述开票交易对应的第一开票交易块与所述第一发票标识对应的发票领取块的对应关系,包括:

对所述发票领取块记录的空白发票领取信息进行加密哈希运算,获得所述发票领取块对应的第一哈希值;

若所述第一发票标识对应的第一空白发票为所述发票领取块记录的空白发票中排序第一的空白发票,则将所述第一哈希值作为第一哈希指针添加到所述第一开票交易块的区块头部中,使得所述第一开票交易块通过所述第一哈希指针链接到所述发票领取块,其中,所述第一哈希指针为指向所述第一开票交易块存储位置的指针;

若所述第一空白发票为所述发票领取块记录的空白发票中除所述排序第一的空白发票之外的空白发票,则将获取与所述第一空白发票的第一发票标识相邻,且发票标识排列在所述第一发票标识之前的第二空白发票,并将所述第二空白发票对应的第二开票交易块的第二哈希值,作为第二哈希指针添加到所述第一开票交易块的区块头部中,使得所述第一开票交易块通过所述第二哈希指针链接到所述第二开票交易块,其中,所述第二哈希指针为指向所述第二交易开票交易块存储位置的指针。

在一种可能的设计中,所述第三建立模块具体用于:

对所述第一开票交易块记录的交易信息进行加密哈希运算,获得所述第一开票交易块对应的第三哈希值;

若所述发票抵扣交易对应的第一抵扣发票为所述第一开票交易块中第一个用于抵扣的发票,则将所述第三哈希值作为第三哈希指针添加到所述第一发票抵扣块的区块头中,使得所述第一发票抵扣块通过所述第三哈希指针链接到所述第一开票交易块;其中,所述第三哈希指针为指向所述第一发票抵扣块存储位置的指针;

若所述发票抵扣交易对应的第一抵扣发票非所述第一开票交易块中第一个用于抵扣的发票,则获取与所述第一抵扣发票的发票标识相邻,且发票标识位于所述第一抵扣发票的发票标识之前的第二抵扣发票,并将所述第二抵扣发票对应的第二发票抵扣块的第四哈希值,作为第四哈希指针添加到所述第一发票抵扣块的区块头中,使得所述第一发票抵扣块通过所述第四哈希指针链接到所述第二发票抵扣块,其中,所述第四哈希指针为指向所述第二发票抵扣块存储位置的指针。

在一种可能的设计中,所述发票领取链、所述发票开具链和所述发票抵扣链排布方向各不相同。

第三方面,提供一种计算机设备,所述计算机设备包括:

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

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中的任一方法包括的步骤。

第四方面,提供一种存储介质,该存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中的任一方法包括的步骤。

第五方面,提供一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得计算机设备能够执行第一方面中任一方法包括的步骤。

本申请的实施例提供的技术方案至少带来以下有益效果:

在本申请实施例中,可以将领取空白发票的发票领取交易生成多个发票领取块,建立由至少两个发票领取块依次链接构成的发票领取链,其中,发票领取块用于记录空白发票领取信息;当获得开具发票的开票交易时,可以确定开票交易使用的空白发票的第一发票标识,并建立开票交易对应的第一开票交易块与第一发票标识对应的发票领取块的对应关系,其中,第一开票交易块用于记录与开票交易对应的交易信息;并基于第一开票交易块和对应关系,建立发票开具链,其中,发票开具链由与同一个发票领取块具有对应关系的至少两个开票交易块依次链接构成;进而可以基于发票领取链和发票开具链生成第一账本。因此,可以实现对每个发票领取块下的开票交易进行归类统一管理,当需要查询某一发票对应的所有发票交易时,可以基于发票领取链直接跳转到发票领取链对应的发票开具链查找与该发票对应的所有发票交易信息,节约发票查询时间,提高查询效率,以及提高对发票交易信息的管理效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。

图1为相关技术中基于一条链式结构的分布式账本的结构示意图;

图2为相关技术中基于DAG技术构建的分布式账本的结构示意图;

图3为本申请实施例提供的财税区块链的账本建立方法的流程图;

图4为本申请实施例提供的建立发票抵扣链的流程图;

图5为本申请实施例提供的技术发票领取链、发票开具链和发票抵扣链生成的第二账本的结构示意图;

图6a为本申请实施例提供的财税区块链的账本建立装置结构示意图;

图6b为本申请实施例提供的另一财税区块链的账本建立装置结构示意图;

图7为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请实施例中,“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。

另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

下面对本申请实施例中涉及的部分概念进行介绍。

有向无环图,(Directed Acyclic Graph,DAG),是基于图的一种实现方式。其中,“有向”指的是有方向,准确的说应该是同一个方向,"无环"则指够不成闭环。DAG之所以不允许有向环的出现,是因为DAG可以保证结点交易的顺序,并通过该顺序找到主链,若出现有向环则可能造成系统紊乱。在DAG中,没有区块的概念,是直接将交易本身作为基本单元进行存储,这样就省去了将交易数据打包成交易块花费的时间。

以下介绍本申请的设计思路。

如前文所述,目前常用的区块链分布式账本有两种,一种是如图1所示的基于一条链式结构的分布式账本,这种分布式账本中可以将交易数据打包生成交易区块,并将生成的交易区块按照时间依次链接在一起,即可以从第一个区块即所谓的创世区块开始,新增的区块不断地被连到上一个区块的后面,形成一条链条。另一种是如图2所示的基于DAG技术构建的分布式账本,DAG是由交易单元组成的网络,可以异步并发写入交易数据,图2中一个圆圈表示一个交易单元。

然而对于同一张发票而言,至少包括空白发票领取交易、使用发票进行开票的开票交易这两种交易,根据交易时间的不同,两种交易相隔的时间可能很久,如1月份领取发票,3月份才使用1月份领取的发票进行开票。若按照交易时间构建账本,则可能使得同一张发票的两种交易分布在不同的交易区块或者交易单元中。这样,在财税业务中,当需要查看同一发票的交易数据时,可能需要到不同的区块或者单元中查找,所以花费时间多,查询效率低,不利于财税业务的管理。

鉴于此,本申请的申请人提供了一种新的财税区块链的账本建立方案,在该方案中,可以将同一张发票涉及的空白发票领取交易、开票交易区分处理,即,可以将预设时间内的空白发票交易和开票交易分别打包成发票领取块和开票交易块,进而可以基于发票领取块生成发票领取链,并可以根据开票交易对应的发票标识,找到与开票交易使用发票对应的发票领取区块,进而可以将与该发票领取区块对应的所有开票交易生成的开票交易块,按照发票标识依次链接成发票开具链。这样可以将同一发票的所有发票交易的归类管理,以便于核查账本,提高对财税区块链账本的查询效率。

在介绍完本申请实施例的设计思想之后,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。

本申请实施例中提供的技术方案可以应用于财税业务管理中,为了便于管理财税业务,可以建立与该财税业务对应的财税区块链多链发票系统。该财税区块链多链发票系统包括物品流通链、资金结算链和税务发票链,其中:

物品流通链,用于记录物品的起始交易,该起始交易产生于原始资源,如某种药田的面积和单位时间内的产量,某种矿藏的储量和单位时间内的产量等,物品的后续交易皆以此为基准。

资金结算链,用于记录资金结算交易。

税务发票链,用于记录税务业务和发票状态,在发票开具环节,开票信息并非由交易双方直接录入,而是可以把交易物品对应的资金和商品的流通交易作为开票的输入信息,由税务发票链上的约束条件来判断其流通交易的合理性,在合理的时候才生成开票信息,进行发票开具。约束条件例如原材料产量是否超出合理值,交易的频率是否正常等。

税务发票链中可以设置有税务机关节点,该节点可以用于进行空白发票交易、开票交易、发票抵扣交易等与发票相关的交易。

在具体的实践过程中,对于税务发票链的任一交易而言,均有对应的资金结算交易和物品流通交易作为消耗的输入状态。在税务发票开具交易完成后,对应的资金结算交易的开票状态随之锁定,无法再作为开票交易的输入状态,对应的物品流通交易的开票状态也随之锁定,无法再作为开票交易的输入状态。

在具体的实践过程中,基于前述财税区块链多链发票系统产生的与发票相关的交易都可以利用本申请实施例中的技术方案进行管理。

为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。

请参见图3,为本申请实施例提供的一种财税区块链的账本建立方法的流程图,该方法可以应用于前述财税区块链多链系统中,下面对该方法的流程进行描述。

步骤301:根据领取空白发票的发票领取交易生成发票领取块,并基于发票领取块建立发票领取链,其中,发票领取链由至少两个发票领取块按照发票标识的顺序依次链接构成,发票标识包括发票代码和发票号码,发票领取块用于记录空白发票领取信息。

在具体地实践过程中,单位和个人可以根据自身的发票需求向前文所述的税务发票链中设置的税务机关节点领取空白发票,即可以进行发票领取交易。进而在领取发票后,可以进行发票开具的开票交易等与发票相关的发票交易,本申请实施例中为了方便说明,以单位进行的发票交易为例进行具体说明。

在本申请实施例中,可以将领取空白发票的发票领取交易从发票交易中区分出来,将预设时间内产生的发票领取交易所对应的交易数据打包,生成发票领取块。每个发票领取块可以分为区块头部和区块数据两个部分,其中,区块头部中有一个哈希指针,这个哈希指针包含前一个发票领取块的哈希值,因此可以用于指向上一个发票领取块。进而,当根据多个预设时间产生多个发票领取块时,可以将不同预设时间产生的发票领取块,通过哈希指针按照发票标识的顺序依次链接起来,建立空白发票交易对应的发票领取链。因此,可以通过发票领取链对空白发票交易的进行统一管理,当需要查找空白发票时,可以提高对应空白发票交易所在发票领取块的查询速度。

例如,假设预设时间为1天,第一天A单位领取了1-100号空白发票,B单位领取了101-200号空白发票,第二天C单位领取了201-300号空白发票;进而可以将A单位领取的1-100号空白发票,B领取的101-200号空白发票打包成1号发票领取块,将C单为领取的201-300号空白发票打包成2号发票领取块,并将2号发票领取块链接在1号发票领取块后面。进而若第三天又有其他单位领取了空白发票,则可以将第三天领取的空白发票打包成3号发票领取块,并将3号发票领取块链接在2号发票领取块之后,依次类推,从而构建成发票领取链。

在本申请实施例中,发票标识包括发票代码和发票号码。其中,发票代码用于表征发票的种类,相同种类的多张发票其发票代码可能是相同的;发票代码一般为12位数字。发票号码是对发票的编号,一票一号,每张发票都有自己的号码;发票代码一般为8位数字。可以采用发票代码加发票号码的方式来辨别发票的真伪。

步骤302:当检测到开具发票的开票交易时,确定开票交易使用的空白发票的第一发票标识,并建立开票交易对应的第一开票交易块与第一发票标识对应的发票领取块的对应关系,其中,第一开票交易块用于记录与开票交易对应的交易信息。

本申请实施例中的第一开票交易块与发票领取块一样,也包区块头部和区块数据,区块头部中也有一个哈希指针,该哈希指针可以用于将第一开票交易块与其他区块链链接起。

在本申请实施例中,当获得开具发票的开票交易时,可以将开票交易对应的交易信息打包,生成第一开票交易块。交易信息可以包括交易物品的类型、数量、单价,交易的时间、交易的规则等与交易相关的信息。例如,可以将交易的物品类型、物品单价、物品数量打包生成第一开票交易块。

进一步地,还可以根据开票交易,确定出此次开票交易使用的发票的第一发票标识。因此可以根据第一发票标识,确定出第一发票标识对应的空白发票所在的发票领取块,从而建立第一开票交易块与该发票领取块的对应关系。

在本申请实施例中,第一开票交易块与该发票领取块的对应关系可能是第一开票交易块直接与该发票领取块链接,也可能是第一开票交易块通过其他开票交易块链接到该发票领取块上。

具体而言,在建立第一开票交易块与该发票领取块的对应关系时,可以先对发票领取块记录的空白发票领取信息进行加密哈希运算,获得发票领取块对应的第一哈希值。进而确定第一发票标识对应的第一空白发票是否为该发票领取块记录的所有空白发票中标识排序第一的空白发票。

若第一空白发票为发票领取区块记录的空白发票中排序第一的空白发票,则可以将第一哈希值作为第一哈希指针添加到第一开票交易块的区块头部中,使得第一开票交易块通过第一哈希指针链接到发票领取块。其中,第一哈希指针为指向第一开票交易块存储位置的指针。也就是说,可以通过第一哈希指针确定出与第一哈希指针对应的发票领取块的存储地址,并确定该存储地址中存储的发票领取块即为与第一开票交易块连接的发票领取块,进而可以将第一开票交易块链接到该发票领取块上,即将第一开票交易块与该发票领取块连接在一起。

其中,需要说明的是,本申请实施例中的链接是指将多个区块两两连接在一起,以便多个区块可以形成一条区块链。

进一步地,若第一空白发票为发票领取块记录的空白发票中除排序第一的空白发票之外的空白发票,即第一空白发票不是发票领取块中排序第一的空白发票,则可以根据第一空白发票的第一发票标识,获取到与第一发票标识相邻且发票标识排列在第一发票标识之前的第二空白发票。进而可以确定出使用第二空白发票进行的开票交易,以及该开票交易对应的第二开票交易块。那么,则可以对第二开票交易块对应的交易信息进行加密哈希运算,得到第二交易块的哈希值。从而可以将第二开票交易块的第二哈希值,作为第二哈希指针添加到第一开票交易块的区块头部中,使得第一开票交易块通过第二哈希指针链接到第二开票交易块。其中,第二哈希指针为指向第二交易开票交易块存储位置的指针。即,可以通过第二哈希指针,确定出与第一开票交易块对应的第二开票交易块的存储地址,并确定该存储地址中存储的第二开票交易块即为与第一开票交易块连接的开票交易块,进而将第一开票交易块链接到与第二开票块交易上。

步骤303:基于第一开票交易块和对应关系,建立发票开具链,其中,发票开具链由与同一个发票领取块具有对应关系的至少两个开票交易块依次链接构成。

在本申请实施例中,可以基于第一开票交易块和第一开票交易块与发票领取块的对应关系,建立发票开具链。如前文所述,若第一开票交易块中区块头部携带的哈希指针指向发票领取块,则可以将第一开票交易块直接链接到发票领取块中,建立发票开具链;若第一开票交易块中区块头部携带的哈希指针指向的是其他开票交易块,则可以将第一开票交易块链接到其他开票交易块上,通过其他开票交易块间接链接到发票领取块中,建立发票开具链。这样则可以将一个发票领取块对应的所有开票交易块按照发票标识顺序链接成发票开具链,便于通过发票开具链对开票交易块进行统一管理,从而可以提高查询开票交易块中的交易信息的效率,节约查询时间。

步骤304:基于发票领取链和发票开具链生成第一账本。

在本申请实施例中,发票领取链和发票开具链的排布方向不相同,例如,假设发票领取链为横向排布的区块链,则发票开具链可以是纵向排布的区块链。并且发票领取链中的每个发票领取块,都可能对应一条发票开具链,进而可以基于当发票领取链和发票开具链生成第一账本。这样即可以实现对每个发票领取块下的开票交易进行归类统一管理,当需要查询某一发票对应的所有发票交易时,可以基于发票领取链直接跳转到发票领取链对应的发票开具链查找与该发票对应的所有发票交易信息,从而可以节约发票查询时间,提高查询效率,以及提高对发票交易信息的管理效率。

在本申请实施例中,发票交易除了前述的空白发票交易和开票交易之外,根据空白发票的类型,当空白发票为可以用于税务抵扣的专用发票时,如增值税专用发票,还可以包括发票抵扣交易。

请参见图4,为建立发票抵扣链的流程图。本申请实施例中,当基于第一开票交易块和对应关系,建立发票开具链之后,若存在发票抵扣交易,还可以按照图4所示步骤执行发票抵扣交易。图4中的步骤包括:

步骤401:当获得发票抵扣交易时,确定发票抵扣交易对应的第二发票标识。

在本申请实施例中,当获得发票抵扣交易时,可以确定出该发票抵扣交易对应的抵扣发票,以及该抵扣发票的第二发票标识。该第二发票标识也包括发票代码和发票号码,所以可以根据第二发票标识来查找对应的发票。

步骤402:根据第二发票标识,建立发票抵扣交易对应的第一发票抵扣块与第一开票交易块的对应关系,并基于第一发票抵扣块建立发票抵扣链;其中,发票抵扣链由同一个开票交易块对应的至少两个发票抵扣块依次链接构成,第一发票抵扣块用于记录与所述发票抵扣交易对应的抵扣信息。

在本申请实施例中,第一发票抵扣块与第一开票交易块的对应关系可能是第一发票抵扣块与第一开票交易块直接相连,也可能是第一发票抵扣块通过其他发票抵扣与第一开票交易块间接相连。

具体而言,在建立第一发票抵扣块与第一开票交易块的对应关系时,可以先对第一开票交易块记录的交易信息进行加密哈希运算,获得第一开票交易块对应的第三哈希值。进而可以根据第二发票标识,确定发票抵扣交易对应的第一抵扣发票是否为第一开票交易块中所有可用于的抵扣发票中第一个用于抵扣的发票。

若发票抵扣交易对应的第一抵扣发票是第一开票交易块中第一个用于抵扣的发票,则可以将第三哈希值作为第三哈希指针添加到第一发票抵扣块的区块头中,使得第一发票抵扣块通过第三哈希指针链接到第一开票交易块;其中,第三哈希指针为指向第一发票抵扣块存储位置的指针。也就是说,可以通过第三哈希指针确定出与第一发票抵扣块对应的第一开票交易块的存储地址,并确定该存储地址中存储的第一开票交易块即为与第一发票抵扣块连接的开票交易块,进而可以将第一发票抵扣块链接到第一开票交易块上。

进一步地,若发票抵扣交易对应的第一抵扣发票不是第一开票交易块中第一个用于抵扣的发票,则可以从第一开票交易块中获取到与第一抵扣发票的发票标识相邻,且发票标识位于第一抵扣发票的发票标识之前的第二抵扣发票,进而可以确定出第二抵扣发票对应的第二发票抵扣块,并对第二发票抵扣块对应的发票抵扣信息进行加密哈希运算,得到与第二发票抵扣块对应的第四哈希值,将第四哈希值作为第四哈希指针添加到第一发票抵扣块的区块头中,使得第一发票抵扣块通过第四哈希指针链接到第二发票抵扣块,其中,第四哈希指针为指向第二发票抵扣块存储位置的指针。也就是说,可以通过第四哈希指针,确定出与第一发票抵扣块对应的第二发票抵扣块的存储地址,并确定该存储地址中存储的第二发票抵扣块即为与第一发票抵扣块连接的发票抵扣块,进而将第一发票抵扣块链接到与第二发票抵扣块上。

步骤403:基于发票领取链、发票开具链和发票抵扣链生成第二账本。

在本申请实施例中,发票领取链、发票开具链以及发票抵扣链可以分别向三个不同的方向进行排布,如图5所示,也可能出现发票领取链与发票抵扣链平行的情况。具体而言,在三条区块链中,发票领取链中的每个发票领取块,都可能对应一条发票开具链,发票开具链的每个开票交易块都可能对应一条发票抵扣链,即发票抵扣链与发票领取链之间不会存在交点。进而可以基于发票领取链、发票开具链和发票抵扣链生成第二账本,以便实现对同一发票涉及的所有发票交易的归类统一管理,当需要查询某一发票对应的发票交易时,可以根据发票标识,从发票领取链直接跳转到对应的发票开具链,进而从发票开具链跳转到发票抵扣链,不需要遍历所有的区块,从而可以发票交易的查询时间,提高查询效率,以及提高对发票交易信息的管理效率。

所以,通过上述方法,可以将领取空白发票的发票领取交易生成多个发票领取块,建立由至少两个发票领取块按照发票标识顺序依次链接构成的发票领取链。当获得开具发票的开票交易时,可以确定开票交易使用的空白发票的第一发票标识,并建立开票交易对应的第一开票交易块与第一发票标识对应的发票领取块的对应关系;并基于第一开票交易块和对应关系,建立发票开具链;进而可以基于发票领取链和发票开具链生成第一账本。这样可以实现对每个发票领取块下的开票交易进行归类统一管理,当需要查询某一发票对应的所有发票交易时,可以基于发票领取链直接跳转到发票领取链对应的发票开具链查找与该发票对应的所有发票交易信息,节约发票查询时间,提高查询效率,以及提高对发票交易信息的管理效率。

基于同一发明构思,本申请实施例还提供了一种财税区块链的账本建立装置,该财税区块链的账本建立装置能够实现前述的财税区块链的账本建立方法对应的功能。该财税区块链的账本建立装置可以是硬件结构、软件模块、或硬件结构加软件模块。该财税区块链的账本建立装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图6a所示,该财税区块链的账本建立装置包括第一建立模块601、确定模块602、第二建立模块603和生成模块604。其中:

第一建立模块601,用于根据领取空白发票的发票领取交易生成发票领取块,并基于发票领取块建立发票领取链,其中,发票领取链由至少两个发票领取块按照发票标识的顺序依次链接构成,发票标识包括发票代码和发票号码,发票领取块用于记录空白发票领取信息;

确定模块602,用于当获得开具发票的开票交易时,确定开票交易使用的空白发票的第一发票标识,并建立开票交易对应的第一开票交易块与第一发票标识对应的发票领取块的对应关系,其中,第一开票交易块用于记录与开票交易对应的交易信息;

第二建立模块603,用于基于第一开票交易块和对应关系,建立发票开具链,其中,发票开具链由与同一个发票领取块具有对应关系的至少两个开票交易块依次链接构成;

生成模块604,用于基于发票领取链和发票开具链生成第一账本。

在一种可能的设计中,请参见图6b,图6b所示的财税区块链的账本建立装置,还包括第三建立模块605,该第三建立模块605用于:

当获得发票抵扣交易时,确定发票抵扣交易对应的第二发票标识;

根据第二发票标识,建立发票抵扣交易对应的第一发票抵扣块与第一开票交易块的对应关系,并基于第一发票抵扣块建立发票抵扣链;其中,发票抵扣链由同一个开票交易块对应的至少两个发票抵扣块依次链接构成,第一发票抵扣块用于记录与发票抵扣交易对应的抵扣信息;

基于发票领取链、发票开具链和发票抵扣链生成第二账本。

在一种可能的设计中,第一建立模块601具体用于:

按照预设时间将预设时间内产生的发票领取交易所对应的交易数据打包,生成发票领取块。

在一种可能的设计中,确定模块602具体用于:

建立开票交易对应的第一开票交易块与第一发票标识对应的发票领取块的对应关系,包括:

对发票领取块记录的空白发票领取信息进行加密哈希运算,获得发票领取块对应的第一哈希值;

若第一发票标识对应的第一空白发票为发票领取块记录的空白发票中排序第一的空白发票,则将第一哈希值作为第一哈希指针添加到第一开票交易块的区块头部中,使得第一开票交易块通过第一哈希指针链接到发票领取块,其中,第一哈希指针为指向第一开票交易块存储位置的指针;

若第一空白发票为发票领取块记录的空白发票中除排序第一的空白发票之外的空白发票,则将获取与第一空白发票的第一发票标识相邻,且发票标识排列在第一发票标识之前的第二空白发票,并将第二空白发票对应的第二开票交易块的第二哈希值,作为第二哈希指针添加到第一开票交易块的区块头部中,使得第一开票交易块通过第二哈希指针链接到第二开票交易块,其中,第二哈希指针为指向第二交易开票交易块存储位置的指针。

在一种可能的设计中,第三建立模块605具体用于:

对第一开票交易块记录的交易信息进行加密哈希运算,获得第一开票交易块对应的第三哈希值;

若发票抵扣交易对应的第一抵扣发票为第一开票交易块中第一个用于抵扣的发票,则将第三哈希值作为第三哈希指针添加到第一发票抵扣块的区块头中,使得第一发票抵扣块通过第三哈希指针链接到第一开票交易块;其中,第三哈希指针为指向第一发票抵扣块存储位置的指针;

若发票抵扣交易对应的第一抵扣发票非第一开票交易块中第一个用于抵扣的发票,则获取与第一抵扣发票的发票标识相邻,且发票标识位于第一抵扣发票的发票标识之前的第二抵扣发票,并将第二抵扣发票对应的第二发票抵扣块的第四哈希值,作为第四哈希指针添加到第一发票抵扣块的区块头中,使得第一发票抵扣块通过第四哈希指针链接到第二发票抵扣块,其中,第四哈希指针为指向第二发票抵扣块存储位置的指针。

在一种可能的设计中,发票领取链、发票开具链和发票抵扣链排布方向各不相同。

关于上述实施例中的财税区块链的账本建立装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本公开各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

基于同一发明构思,本申请实施例中提供了一种计算机设备,该计算机设备可以是硬件结构、软件模块、或硬件结构加软件模块。该计算机设备可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图7,本申请实施例中的计算机设备包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本申请实施例中不限定处理器701与存储器702之间的具体连接介质,图7中是以处理器701和存储器702之间通过总线700连接为例,总线700在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线700可以分为地址总线、数据总线、控制总线等,为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在本申请实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前述的财税区块链的账本建立方法所包括的步骤。

其中,处理器701的硬件结构可以是CPU、DSP、ASIC等,以及存储器702的硬件结构可以是闪存、硬盘、多媒体卡、卡型存储器、RAM、SRAM等,此处就不再重复介绍了。

其中,处理器701是计算机设备的控制中心,可以利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。

可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的财税区块链的账本建立方法的步骤。

在一些可能的实施方式中,本申请提供的财税区块链的账本建立方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在财税区块链的账本建立方法对应的计算机设备上运行时,所述程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的财税区块链的账本建立方法中的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

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

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

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

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

相关技术
  • 一种财税区块链的账本建立方法、装置及计算机设备
  • 基于区块链的医疗健康档案建立方法、装置和计算机设备
技术分类

06120113083942