CN113327142A - 基于区块链的数据处理方法及装置 - Google Patents
基于区块链的数据处理方法及装置 Download PDFInfo
- Publication number
- CN113327142A CN113327142A CN202010129003.0A CN202010129003A CN113327142A CN 113327142 A CN113327142 A CN 113327142A CN 202010129003 A CN202010129003 A CN 202010129003A CN 113327142 A CN113327142 A CN 113327142A
- Authority
- CN
- China
- Prior art keywords
- data
- bill
- driving
- ticket
- verification
- 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.)
- Pending
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
- G06Q30/00—Commerce
- G06Q30/04—Billing or invoicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/123—Tax preparation or submission
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种基于区块链的数据处理方法及装置,该方法包括:获取数据核销请求和第一签名信息。若基于第一签名信息确定该数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,以验证行车路段票据的真实性。若每张行车路段票据皆为真实票据,则获取行车记录数据,若行车记录数据中包括每张行车路段票据中包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中的数据转移量以及待核销总票中的数据转移总量确定待核销总票是否合规。若待核销总票为合规票据,则基于待核销总票进行数据核销。采用本申请实施例,可提高票据的真实性,以及报销效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法及装置。
背景技术
随着我国经济的迅速增长,货运装卸量的大幅提升,货运规模也随之扩大,因此,给货运的管理、调度明显增加了难度。当前,高速路的行车路段对应的行车路段票据主要分为两种类型,其中一种类型是由政府收费的路段,因此其所开具的行车路段票据的票据类型为财政票据。另一种是由企业贷款修的路,因此由企业所开具的行车路段票据的票据类型为***。一般来说,财政票据的实际开具方为财政厅,而***的实际开具方为税局。而对于跑长途运输的司机来说,货车执行一次运输任务,所经过的行车路段往往不止一条,因此,在进行票据核销时,对于相同或不同类型的多张票据往往需要分多次才能完成核销,且在现有的管理***中,货车走错路线不容易被发现,并且可能存在司机提供不符合实际情况的票据进行核销的情况发生。
发明内容
本申请实施例提供一种基于区块链的数据处理方法及装置,可提高票据的真实性,以及提高票据报销效率。
第一方面,本申请实施例提供了一种基于区块链的数据处理方法,该方法包括:
核销节点获取第一用户发送的数据核销请求,以及上述数据核销请求携带的上述第一用户对上述数据核销请求的第一签名信息,上述数据核销请求中包括上述第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,其中,上述待核销总票中包括数据转移总量,每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量;
上述核销节点根据上述第一签名信息验证上述数据核销请求的合法性,若确定上述数据核销请求为合法请求,则基于上述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据上述开票数据确定上述至少一张行车路段票据的真实性;
若上述至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据上述第一车辆标识获取上述行车起止时间内上述车辆的行车记录数据,若上述行车记录数据中包括上述至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在上述行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及上述数据转移总量确定上述待核销总票是否为合规票据;
若上述待核销总票为合规票据,则基于上述待核销总票进行数据核销。
第二方面,本申请实施例提供了一种基于区块链的数据处理装置,该装置包括:
核销请求获取模块,用于获取第一用户发送的数据核销请求,以及上述数据核销请求携带的上述第一用户对上述数据核销请求的第一签名信息,上述数据核销请求中包括上述第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,其中,上述待核销总票中包括数据转移总量,每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量;
第一处理模块,用于根据上述第一签名信息验证上述数据核销请求的合法性,若确定上述数据核销请求为合法请求,则基于上述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据上述开票数据确定上述至少一张行车路段票据的真实性;
第二处理模块,用于若上述至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据上述第一车辆标识获取上述行车起止时间内上述车辆的行车记录数据,若上述行车记录数据中包括上述至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在上述行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及上述数据转移总量确定上述待核销总票是否为合规票据;
数据核销模块,用于若上述待核销总票为合规票据,则基于上述待核销总票进行数据核销。
结合第二方面,在一种可能的实施方式中,上述第一处理模块包括身份验证单元,上述身份验证单元包括:
公钥获取子单元,用于从公钥存储区块中获取上述目标用户对应的目标用户公钥;
签名解密子单元,用于基于上述目标用户公钥对上述第一签名信息进行解密以得到第一哈希值;
用户身份确定单元,用于对上述数据核销请求进行哈希运算以得到第二哈希值,若上述第一哈希值与上述第二哈希值相同,则确定上述数据核销请求为合法请求。
结合第二方面,在一种可能的实施方式中,上述每张行车路段票据中包括票据类型;上述第一处理模块包括第一票据获取单元,上述第一票据获取单元包括:
第一区块获取子单元,用于根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,并根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块,以及上述票据数据存储区块的第二签名信息;
区块验证子单元,用于从上述公钥存储区块中获取上述票据服务节点对应的节点公钥,并基于上述节点公钥对上述第二签名信息进行解密以得到第三哈希值;
开票数据获取子单元,用于从上述票据数据存储区块中获取第四哈希值,若上述第三哈希值与上述第四哈希值相同,则根据上述票据标识从上述票据数据存储区块中获取对应的开票数据。
结合第二方面,在一种可能的实施方式中,上述每张行车路段票据中包括票据类型;上述第一处理模块包括第二票据获取单元,上述第二票据获取单元包括:
第二区块获取子单元,用于根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,并根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块;
区块处理子单元,用于从上述公钥存储区块中获取上述票据服务节点对应的节点公钥,若基于上述节点公钥对上述票据数据存储区块解密成功,则根据上述票据标识从解密后的上述票据数据存储区块中获取对应的开票数据。
结合第二方面,在一种可能的实施方式中,上述第一处理模块还包括票据验证单元,上述票据验证单元包括:
第一票据哈希确定子单元,用于基于开票时间对从区块链中获取到的每张开票数据进行排序,并计算排序后的开票数据对应的第五哈希值;
第二票据哈希确定子单元,用于对上述至少一张行车路段票据进行哈希运算以得到第六哈希值,若上述第五哈希值与上述第六哈希值相同,则确定上述至少一张行车路段票据中每张行车路段票据皆为真实票据。
结合第二方面,在一种可能的实施方式中,上述第二处理模块包括行车记录数据获取单元和待核销总票验证单元,上述行车记录数据获取单元具体用于:
根据上述第一车辆标识从对应的行车记录仪中获取上述行车起止时间内上述车辆的行车记录数据。
结合第二方面,在一种可能的实施方式中,上述装置还包括核销记录上链模块,上述核销记录上链模块包括:
核销记录生成单元,用于接收上述第一用户发送的已核销确认信息,并根据上述已核销确认信息生成数据核销记录;
核销记录共识单元,用于将上述数据核销记录以及上述已核销确认信息发送至区块链***中的共识节点,以使各共识节点根据上述已核销确认信息确定对上述数据核销记录的校验结果;
核销记录存储单元,用于接收上述区块链***中各共识节点发送的校验结果,并根据各校验结果确定对上述数据核销记录的共识结果,当确定对上述数据核销记录达成共识时,将包括上述数据核销记录的数据核销记录存储区块添加至上述区块链。
第三方面,本申请实施例提供了一种终端设备,该终端设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
在本申请实施例,核销节点获取第一用户发送的数据核销请求,以及数据核销请求携带第一用户对数据核销请求的第一签名信息。其中,数据核销请求中包括第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,待核销总票中包括数据转移总量,至少一张行车路段票据中每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量。根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据。若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。若待核销总票为合规票据,则基于待核销总票进行数据核销。采用本申请实施例,可提高报销效率以及票据真实性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链***的结构示意图;
图2是本申请实施例提供的基于区块链的数据处理方法的一流程示意图;
图2a是本申请实施例提供的验证第一签名信息的过程示意图;
图2b是本申请实施例提供的确定票据数据存储区块的应用场景示意图;
图2c是本申请实施例提供的区块链和区块的结构示意图;
图3是本申请实施例提供的基于区块链的数据处理方法的另一流程示意图;
图4是本申请实施例提供的基于区块链的数据处理装置的一结构示意图;
图5是本申请实施例提供的基于区块链的数据处理装置的另一结构示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种区块链***的结构示意图。如图1所示,区块链***是指用于进行区块链节点与区块链节点之间数据共享的***。其中,区块链***中可以包括多种类型的区块链节点,例如,如图1所示的核销节点1、核销节点2、核销节点3、票据服务节点1、票据服务节点2等。为方便描述,可将核销节点和票据服务节点等都简称为节点,其中每个节点都与其他节点具有连接关系。可以理解的是,区块链***中的任一节点可以是任意形式的计算设备,如服务器、终端等,在此不做限制。应当理解,终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternet device,MID)等,在此不做限制。每个节点在进行正常工作时可以接收输入信息,并基于接收到的输入信息维护该区块链***内的共享数据。其中,共识过程是由预先选好的节点(即共识节点)控制的。为了保证区块链***内的信息互通,区块链***中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链***中的任意区块链节点接收到输入信息时,区块链***中的其他区块链节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链***中全部区块链节点上存储的数据均一致。应当理解,整个区块链***是由各个节点共同维护的,共识节点可以是基于区块链***的共识机制从区块链***包括的多个节点中预先确定出的节点,例如共识节点可以是如图1所示的核销节点1,核销节点2、核销节点3。
其中,对于区块链***中的每个区块链节点,均具有与其对应的区块链节点标识,而且区块链***中的每个区块链节点均可以存储有区块链***中其他区块链节点的区块链节点标识,以便后续根据其他区块链节点的区块链节点标识,将生成的区块广播至区块链***中的其他区块链节点。每个区块链节点中可维护一个如下表所示的区块链节点标识列表,将区块链节点名称和区块链节点标识对应存储至该区块链节点标识列表中。其中,区块链节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该区块链节点的信息,表1中仅以IP地址为例进行说明。
区块链节点名称 | 区块链节点标识 |
区块链节点1 | 117.114.151.174 |
区块链节点2 | 117.116.189.145 |
… | … |
区块链节点N | 119.123.789.258 |
表1
本申请实施例提供的基于区块链的数据处理方法,可广泛适用于区块链***。本申请实施例中的方法,核销节点可获取第一用户发送的数据核销请求,以及数据核销请求携带第一用户对数据核销请求的第一签名信息。其中,数据核销请求中包括第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,待核销总票中包括数据转移总量,至少一张行车路段票据中每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量。根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据。若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。若待核销总票为合规票据,则基于待核销总票进行数据核销。采用本申请实施例,可提高报销效率以及票据真实性。
下面将结合图2至图6分别对本申请实施例提供的方法及相关装置分别进行详细说明。本申请实施例提供的方法中可包括用于获取数据核销请求和第一签名信息、基于第一签名信息验证数据核销请求的合法性、获取区块链中存储的开票数据、基于开票数据验证数据核销请求中包括的行车路段票据的真实性、获取行车记录数据、基于行车记录数据验证行车路段票据的有效性、基于行车路段票据确定待核销总票是否合规,根据待核销总票进行数据核销等数据处理阶段。其中,上述各个数据处理阶段的实现方式可参见如下图2至图3所示的实现方式。
请参见图2,图2为本申请实施例提供的基于区块链的数据处理方法的一流程示意图。本申请实施例提供的方法可以包括如下步骤S201至S204:
S201、获取第一用户发送的数据核销请求,以及数据核销请求携带的第一用户对数据核销请求的第一签名信息。
在一些可行的实施方式中,核销节点通过接收第一用户通过用户终端发送/提交的数据核销请求,可得到数据核销请求携带的第一用户对该数据核销请求的第一签名信息,以及信息核验请求中包括的第一用户所驾驶车辆的第一车辆标识、行车起止时间、第一用户的数据接收账户、待核销总票以及至少一张行车路段票据等。其中,待核销总票中包括数据转移总量,上述至少一张行车路段票据中的每张行车路段票据中可包括票据标识、开票时间、行车路段、数据转移量以及票据类型等,在此不做限制。不难理解的是,上述核销节点可以是负责数据核销的机构/单位所对应的节点。例如,核销节点可以是货运公司或物流公司对应的节点等,在此不做限制。数据核销请求可以是第一用户基于用户终端发送的用于申请数据核销的请求。例如,数据核销请求可以是负责运输货物的货运司机所发送的过路费核销请求等,在此不做限制。第一车辆标识可以是第一用户所驾驶车辆的车牌号码等,在此不做限制。应当理解的是,一个车辆标识可用于唯一标记一辆车。其中,行车起止时间可包括行车开始时间和行车结束时间。例如,假设第一用户为货运司机,则行车起止时间可以为货运司机完成某次运输任务时的开始时间和结束时间,这里,运输任务的开始时间可以是货运司机在拉货起始地的发车时间,运输任务的结束时间可以是货运司机到达货物接收地时的收车时间。待核销总票为第一用户根据至少一张行车路段票据所生成的总票据。也就是说,待核销总票为行车起止时间内所经过的所有路段对应的总票据,因此,待核销总票中可包括数据转移总量,即所有收费路段的过路费总和。行车路段票据为每段行车路段对应的票据,其中,每张行车路段票据中包括的票据标识可用于唯一标记一张行车路段票据。在本申请实施例中,行车路段票据可包括***和财政票,因此,行车路段票据的票据类型可包括***类型和财政票类型。不难理解的是,不同票据类型的票据是由不同的票据服务节点开具且添加至区块链中的。例如,***类型对应的***是由税局节点开具且上链的,而财政票类型对应的财政票是由财政厅节点所开具且添加至区块链中的。
S202、根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。
在一些可行的实施方式中,核销节点可基于第一签名信息验证所接收到的数据核销请求的合法性。不难理解的是,上述数据核销请求所携带的第一签名信息为第一用户对该数据核销请求的内容进行加密后所生成的签名信息。例如,第一用户可基于第一用户私钥对数据核销请求中包括的内容进行加密,以生成第一签名信息,并将数据核销请求和第一签名信息进行拼接后发送至核销节点。其中,当核销节点获取到携带第一签名信息的数据核销请求时,可基于第一用户对应的第一用户身份标识从区块链的公钥存储区块中获取第一用户对应的第一用户公钥,然后,基于第一用户公钥对第一签名信息进行解密,可得到第一哈希值。进一步地,核销节点再基于哈希算法对数据核销请求中的内容执行哈希运算,可得到第二哈希值。应当理解的是,通过比较第一哈希值与第二哈希值,可确定发送该数据核销请求的第一用户的用户身份是否为合法身份。也就是说,通过验证发送数据核销请求的用户的身份合法性,可确定所发送的数据核销请求的合法性,即是否有人冒充第一用户发送了数据核销请求。这里,若第一哈希值与第二哈希值相同,则可确定数据核销请求为合法请求。反之,若第一哈希值与第二哈希值不相同,则可确定数据核销请求为非法请求,即有人冒充第一用户发送了该数据核销请求,因此可拒绝该数据核销请求。不难理解的是,哈希算法是一种单向密码体制,即它是一个从明文到密文的不可逆映射,只有加密过程,没有解密过程,同时哈希算法可以将任意长度的输入数据经过变化以后得到固定长度的输出,且如果输入数据中有任意一个字符的变化,都必将导致最终输出的哈希值不同。本申请实施例中所用到的哈希算法包括MD系列哈希算法、SHA哈希算法以及SM3杂凑算法等,在此不做限制,其中MD系列哈希算法包括MD2,MD4和MD5等,SHA哈希算法包括SHA-1,SHA-224,SHA-256,SHA-384,SHA-512等。为方便描述,本申请实施例所提到的哈希算法皆以SHA-256算法为例进行说明。
例如,请参见图2a,图2a是本申请实施例提供的验证第一签名信息的过程示意图。如图2a所示,当第一用户基于用户终端发起一个数据核销请求时,为保障数据核销请求中所包括的内容的有效性和安全性,第一用户可基于哈希算法对要传输的内容(例如数据核销请求中包括的第一车辆标识、行车起止时间、待核销总票、至少一张行车路段票据)进行哈希运算,可得到对应的哈希值,再通过第一用户私钥对生成的该哈希值进行加密,可得到第一签名信息。然后,第一用户通过将数据核销请求与第一签名信息进行拼接后,可将拼接后得到的数据发送给区块链***中的核销节点。当核销节点接收到由第一用户所发送的数据时,首先会将接收到的数据进行解析,以得到分离后的数据核销请求和第一签名信息。再通过从区块链的公钥存储区块中获取所述第一用户对应的第一用户公钥,可基于第一用户公钥对第一签名信息进行解密,以得到解密后的哈希值,即第一哈希值,同时基于哈希算法对分离得到的数据核销请求中所包括的内容进行哈希运算,可得到第二哈希值。最后核销节点通过对第一哈希值和第二哈希值进行对比分析,可得到对数据核销请求的校验结果。
在一些可行的实施方式中,若核销节点确定第一用户所发送的数据核验请求为合法请求,则核销节点可基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,以根据获取到的开票数据确定至少一张行车路段票据中每张行车路段票据的真实性。应当理解的是,行车路段票据是第一用户向核销节点发送的、且包含于数据核销请求中的票据,而开票数据则是由对应的票据服务节点添加至区块链中的、不可篡改的票据。也就是说,只有当第一用户发送的行车路段票据与区块链中同一票据标识对应的开票数据相同时,才能确定第一用户所发送的上述行车路段票据的真实性。
具体地,在本申请实施例中,核销节点可根据每张行车路段票据的票据类型确定出每张行车路段票据对应的票据服务节点。再结合每张行车路段票据的开票时间,可从区块链中确定出对应的票据数据存储区块,以及该票据数据存储区块的第二签名信息。例如,请参见图2b,图2b是本申请实施例提供的确定票据数据存储区块的应用场景示意图。其中,核销节点中存储了不同票据服务节点对应的区块标识索引表,每个区块标识索引表中包括不同时间段内所生成的区块对应的区块标识,其中,一个区块标识用于唯一标记一个区块。如图2b所示,票据服务节点可包括财政厅节点和税局节点,其中,财政厅节点对应区块标识索引表1,税局节点对应区块标识索引表2。如图2b所示,假设数据核销请求中共包括4张行车路段票据,分别为行车路段票据1、行车路段票据2、行车路段票据3和行车路段票据4,其中每张行车路段票据中皆包括票据类型、票据标识、开票时间、行车路段以及数据转移量等内容。进一步地,如图2b所示,以行车路段票据1为例,阐述根据票据类型和开票时间确定对应的票据数据存储区块。其中,行车路段票据1的票据类型为财政票,因此通过票据类型,可确定行车路段票据1对应的票据服务节点为财政厅节点,并进一步可确定出行车路段票据1对应的区块标识索引表为区块标识索引表1。如图2b所示,行车路段票据1的开票时间为2020.2.19 13:03:58,其所属的区块生成时间范围为2020.2.19 08:00:00~15:59:59。由图2b可知,在区块标识索引表1中,在区块生成时间范围2020.2.19 08:00:00~15:59:59内所生成的区块对应的区块标识为区块标识2。因此,根据确定出的区块标识2,即可从区块链中获取到该区块标识2对应的票据数据存储区块,以便于后续可进一步根据行车路段票据1中包括的票据标识68712858,从该票据数据存储区块中获取到对应的开票数据。
应当理解的是,当从区块链中获取到票据数据存储区块以及票据服务节点对票据数据存储区块中所包括的内容的第二签名信息后,核销节点可通过从公钥存储区块中获取票据服务节点对应的节点公钥,并基于节点公钥对第二签名信息进行解密以得到第三哈希值。然后,再从上述票据数据存储区块中获取第四哈希值,进而可将第三哈希值与第四哈希值进行比较,以确定该票据数据存储区块是否为对应的票据服务节点所上链的。这里,若第三哈希值与第四哈希值相同,则可确定票据数据存储区块确实为对应的票据服务节点所上链,因此可进一步根据票据标识从该票据数据存储区块中获取对应的开票数据。应当理解的是,上述第四哈希值可以是票据数据存储区块的区块头中包括的默克尔树根。
不难理解的是,每个区块可由区块头和区块体组成,其中,区块头中封装了区块的版本号、前一区块的哈希值、时间戳、难度值、随机数、默克尔树根等数据内容,区块体中包括了完整的业务数据。为便于理解,请参见图2c,图2c是本申请实施例提供的区块链和区块的结构示意图。如图2c所示的区块链中至少可以包含图2c所示的区块N,区块N+1和区块N+2,其中,N可以为正整数。应当理解的是,每个区块可由区块头和区块体组成。其中,区块头中封装了区块的版本号、前一区块的哈希值、时间戳、难度值、随机数、默克尔树根等数据内容,区块体中包括完整的交易数据。例如区块体中可包括交易数据1,交易数据2,…,交易数据m等,其中,m为正整数。进一步地,如图2c所示,本申请实施例以区块N+1为例,阐述该区块N+1的区块结构。区块N+1可由图2c所示的区块头和区块体组成,其中区块头中可以包含区块的版本号、前一区块的哈希值(即图2c所示的区块N的哈希值)、时间戳、计算的难度值、为生成区块N+1所设置的随机数,以及本区块的默克尔树根(这里本区块即区块N+1)等。此外,如图2c所示的区块体中可以包含区块N+1生成之前、区块N生成之后的这段时间内从交易池中所获取并打包的交易数据1、交易数据2、交易数据3和交易数据4等,在此不做限制。其中,这些交易数据可以通过默克尔树的形式组织在一起。
应当理解的是,默克尔树的构建过程是一个递归计算散列值的过程。以图2c所示的区块N+1的区块体中包括的交易数据1、交易数据2、交易数据3和交易数据4为例,基于SHA256算法可分别计算得到交易数据1对应的哈希值1(即Hash1),交易数据2对应的哈希值2(即Hash2),交易数据3对应的哈希值3(即Hash3),交易数据4对应的哈希值4(即Hash4)。进一步的,将Hash1和Hash2串联起来,继续做散列变换,可以得到图2所示的哈希值12(即Hash12),以此类推,将Hash3和Hash4串联起来做散列变换,可以得到图2所示的哈希值34(即Hash34),从而可以进一步将Hash12和Hash34串联起来进行散列变换以得到哈希值1234(即Hash1234)。进而可将该最后得到的所有交易数据的哈希值作为该区块数据中的默克尔树根。可以看出,默克尔树的可扩展性很好,不管交易数据有多少,最后都可以产生一个默克尔树以及固定长度的默克尔树根。
可选的,在本申请实施例中,由于不同票据类型的开票数据都是由对应的票据服务节点添加至区块链中的。因此,若票据服务节点在生成区块时,对自身生成并上链的每个区块都基于自身对应的节点私钥进行了加密,则当核销节点根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,以及根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块后,核销节点还可以从公钥存储区块中获取票据服务节点对应的节点公钥,然后,基于节点公钥对获取到的票据数据存储区块进行解密。其中,若基于节点公钥对票据数据存储区块解密成功,则可根据票据标识从解密后的票据数据存储区块中获取对应的开票数据。反之,若基于节点公钥对上述票据数据存储区块解密不成功,则说明该票据数据存储区块不是由对应的票据服务节点所加密并上链的,因此可拒绝第一用户的数据核销请求。
进一步地,在一些可行的实施方式中,当核销节点基于票据标识,从区块链中获取到对应的开票数据后,当且仅当每张行车路段票据与区块链中对应的开票数据相同时,可确定数据核销请求中包括的行车路段票据为真实票据。具体地,核销节点可基于开票时间,对从区块链中获取到的每张开票数据进行排序,然后计算排序后的所有开票数据对应的第五哈希值。进一步地,核销节点可对数据核销请求中包括的所有行车路段票据进行哈希运算,以得到第六哈希值。其中,数据核销请求中包括的各张行车路段票据也可以是根据开票时间进行排序的,且开票数据的排序规则与行车路段票据的排序规则相同。例如,排序规则可以是按照开票时间从早到晚排序的,或者,也可以是按照开票时间从晚到早排序的,在此不做限制。应当理解的是,当第五哈希值与第六哈希值相同时,则可确定数据核销请求中包括的所有行车路段票据中每张行车路段票据皆为真实票据。
举例来说,假设数据核销请求中包括行车路段票据1、行车路段票据2、行车路段票据3和行车路段票据4,且行车路段票据1的开票时间<行车路段票据2的开票时间<行车路段票据3的开票时间<行车路段票据4的开票时间。其中,根据行车路段票据1中包括的票据标识,从区块链中获取到对应的开票数据1,根据行车路段票据2中包括的票据标识,从区块链中获取到了对应的开票数据2,以此类推,根据行车路段票据3中包括的票据标识,从区块链中获取到对应的开票数据3,根据行车路段票据4中包括的票据标识,从区块链中获取到了对应的开票数据4。因此,通过对各行车路段票据进行哈希运算,可得到第六哈希值=SHA256(行车路段票据1+行车路段票据2+行车路段票据3+行车路段票据4),通过对各开票数据进行哈希计算,可得到第五哈希值=SHA256(开票数据1+开票数据2+开票数据3+开票数据4),其中,当第五哈希值与第六哈希值相同时,可确定出数据核销请求中包括的每张行车路段票据皆为真实票据。
S203、若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据,若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。
在一些可行的实施方式中,若至少一张行车路段票据中每张行车路段票据皆为真实票据,则可根据第一车辆标识获取行车起止时间内车辆的行车记录数据。其中,若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在行车起止时间内,则可根据每张行车路段票据中包括的数据转移量以及待核销总票中包括的数据转移总量确定该待核销总票是否为合规票据。
具体地,核销节点可根据第一车辆标识从对应的行车记录仪中,获取行车起止时间内该车辆的行车记录数据。其中,行车记录数据中通常可包括时间、行车轨迹等,在此不做限制。应当理解的是,当且仅当每张行车路段票据中包括的行车路段皆属于上述行车轨迹中包括的行车路段时,且每张行车路段票据的开票时间都在上述行车记录数据包括的时间内时,才可确定第一用户所发送的行车路段票据为有效票据。即第一用户提交的用于数据核销的行车路段票据确实为执行某次指定的运输任务时的票据。其中,当确定每张行车路段票据皆为真实票据且是有效票据后,即可提取各张行车路段票据中包括的数据转移量,并计算各个数据转移量之和。应当理解的是,一张行车路段票据中包括一个数据转移量。其中,当上述各个数据转移量之和等于待核销总票中包括的数据转移总量时,即可确定待核销总票为合规票据。
S204、若待核销总票为合规票据,则基于待核销总票进行数据核销。
在一些可行的实施方式中,若待核销总票为合规票据,则核销节点即可根据待核销总票进行数据核销。具体地,当确定待核销总票为合规票据之后,核销节点可将待核销总票中包括的数据转移总量确定为待核销数据量,并从自身的数据存储账户中向第一用户的数据接收账户中转移上述待核销数据量。
在本申请实施例中,核销节点可获取第一用户发送的数据核销请求,以及数据核销请求携带第一用户对数据核销请求的第一签名信息。其中,数据核销请求中包括第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,待核销总票中包括数据转移总量,至少一张行车路段票据中每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量。根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据。若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。若待核销总票为合规票据,则基于待核销总票进行数据核销。采用本申请实施例,可提高报销效率以及票据真实性。
请参见图3,图3是本申请实施例提供的基于区块链的数据处理方法的另一流程示意图。本申请实施例提供的方法可通过如下步骤S301至S306提供的实现方式进行说明:
S301、获取第一用户发送的数据核销请求,以及数据核销请求携带的第一用户对数据核销请求的第一签名信息。
S302、根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。
S303、若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据,若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。
S304、若待核销总票为合规票据,则基于待核销总票进行数据核销。
其中,步骤S301至步骤S304的具体实现方式可以参见图2对应的实施例中对步骤S201至步骤S204的描述,这里不再进行赘述。
S305、接收第一用户发送的已核销确认信息,根据已核销确认信息生成数据核销记录,将数据核销记录以及已核销确认信息发送至区块链***中的共识节点。
在一些可行的实施方式中,当第一用户确定自身的数据接收账户中接收到待核销数据量后,即可向核销节点发送已核销确认信息。这里,已核销确认信息中可包括数据核销时间、组成待核销总票的各张行车路段票据对应的票据标识、已核销数据量、数据发送方账户(即核销节点的数据存储账户)、数据接收方账户(即第一用户的数据接收账户)等内容。且第一用户发送的已核销确认信息已基于第一用户对应的第一用户私钥进行加密。其中,当核销节点接收到第一用户发送的已核销确认信息后,即可根据第一用户对应的第一用户公钥进行解密,并在解密成功后,根据已核销确认信息生成数据核销记录。其中,数据核销记录中可包括数据核销时间、组成待核销总票的各张行车路段票据对应的票据标识、已核销数据量、数据发送方账户(即核销节点的数据存储账户)、数据接收方账户(即第一用户的数据接收账户)等。进而,核销节点可将数据核销记录以及已核销确认信息发送至区块链***中的共识节点,以使各共识节点可根据已核销确认信息确定对数据核销记录的校验结果,并将确定出的校验结果返回给上述核销节点。应当理解的是,本申请实施例中的共识节点可以是基于区块链***的共识机制从区块链***包括的多个节点中预先确定出的节点,例如,共识机制包括但不限于工作量证明(Proof of Work,PoW)共识机制、权益证明(Proofof Stake,PoS)共识机制、股权授权证明(Delegated Proof of Stake,DPoS)共识机制、实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)、重要性证明(Proofof Importance,POI)共识机制、参与度证明(Proof of Participation,POP)共识机制,等等,在此不做限制。
S306、接收区块链***中各共识节点发送的校验结果,并根据各校验结果确定对数据核销记录的共识结果,当确定对数据核销记录达成共识时,将包括数据核销记录的数据核销记录存储区块添加至区块链。
在一些可行的实施方式中,核销节点通过接收区块链***中各共识节点发送的校验结果,可根据各校验结果确定对数据核销记录的共识结果。具体地,若接收到的各共识节点所返回的校验结果中,校验通过的比例不小于预设通过比例时,即可确定各共识节点对数据核销记录达成了共识。进而,可将包括数据核销记录的数据核销记录存储区块添加至区块链中。因此,当后续再接收到第一用户发送的数据核销请求时,即可根据数据核销请求中包括的各行车路段票据的票据标识,查看区块链中是否存在某条数据核销记录中包括了上述任一行车路段票据的票据标识。其中,若区块链中存在任一条数据核销记录中包括上述任一行车路段票据的票据标识,则拒绝第一用户的数据核销请求。若区块链中的所有数据核销记录中皆不包括上述任一个票据标识,且基于第一签名信息确定数据核销请求为合法请求,则可进一步执行上述步骤301至步骤305中所描述的实现方式。
在本申请实施例中,核销节点可获取第一用户发送的数据核销请求,以及数据核销请求携带第一用户对数据核销请求的第一签名信息。其中,数据核销请求中包括第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,待核销总票中包括数据转移总量,至少一张行车路段票据中每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量。根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据。若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。若待核销总票为合规票据,则基于待核销总票进行数据核销。进一步地,可接收第一用户发送的已核销确认信息,并根据已核销确认信息生成数据核销记录。然后将数据核销记录以及已核销确认信息发送至区块链***中的共识节点。接收区块链***中各共识节点发送的校验结果,并根据各校验结果确定对数据核销记录的共识结果,当确定对数据核销记录达成共识时,将包括数据核销记录的数据核销记录存储区块添加至区块链。采用本申请实施例,可提高报销效率以及票据真实性,降低票据重复报销的可能性,适用性高。
请参见图4,图4是本申请实施例提供的基于区块链的数据处理装置的一结构示意图。本申请实施例提供的基于区块链的数据处理装置包括:
核销请求获取模块41,用于获取第一用户发送的数据核销请求,以及上述数据核销请求携带的上述第一用户对上述数据核销请求的第一签名信息,上述数据核销请求中包括上述第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,其中,上述待核销总票中包括数据转移总量,每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量;
第一处理模块42,用于根据上述第一签名信息验证上述数据核销请求的合法性,若确定上述数据核销请求为合法请求,则基于上述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据上述开票数据确定上述至少一张行车路段票据的真实性;
第二处理模块43,用于若上述至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据上述第一车辆标识获取上述行车起止时间内上述车辆的行车记录数据,若上述行车记录数据中包括上述至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在上述行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及上述数据转移总量确定上述待核销总票是否为合规票据;
数据核销模块44,用于若上述待核销总票为合规票据,则基于上述待核销总票进行数据核销。
进一步地,请参见图5,图5是本申请实施例提供的基于区块链的数据处理装置的另一结构示意图。其中:
在一些可行的实施方式中,上述第一处理模块42包括身份验证单元421,上述身份验证单元421包括:
公钥获取子单元4211,用于从公钥存储区块中获取上述目标用户对应的目标用户公钥;
签名解密子单元4212,用于基于上述目标用户公钥对上述第一签名信息进行解密以得到第一哈希值;
用户身份确定单元4213,用于对上述数据核销请求进行哈希运算以得到第二哈希值,若上述第一哈希值与上述第二哈希值相同,则确定上述数据核销请求为合法请求。
在一些可行的实施方式中,上述每张行车路段票据中包括票据类型;上述第一处理模块42包括第一票据获取单元422,上述第一票据获取单元422包括:
第一区块获取子单元4221,用于根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,并根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块,以及上述票据数据存储区块的第二签名信息;
区块验证子单元4222,用于从上述公钥存储区块中获取上述票据服务节点对应的节点公钥,并基于上述节点公钥对上述第二签名信息进行解密以得到第三哈希值;
开票数据获取子单元4223,用于从上述票据数据存储区块中获取第四哈希值,若上述第三哈希值与上述第四哈希值相同,则根据上述票据标识从上述票据数据存储区块中获取对应的开票数据。
在一些可行的实施方式中,上述每张行车路段票据中包括票据类型;上述第一处理模块42包括第二票据获取单元423,上述第二票据获取单元423包括:
第二区块获取子单元4231,用于根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,并根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块;
区块处理子单元4232,用于从上述公钥存储区块中获取上述票据服务节点对应的节点公钥,若基于上述节点公钥对上述票据数据存储区块解密成功,则根据上述票据标识从解密后的上述票据数据存储区块中获取对应的开票数据。
在一些可行的实施方式中,上述第一处理模块42还包括票据验证单元424,上述票据验证单元424包括:
第一票据哈希确定子单元4241,用于基于开票时间对从区块链中获取到的每张开票数据进行排序,并计算排序后的开票数据对应的第五哈希值;
第二票据哈希确定子单元4242,用于对上述至少一张行车路段票据进行哈希运算以得到第六哈希值,若上述第五哈希值与上述第六哈希值相同,则确定上述至少一张行车路段票据中每张行车路段票据皆为真实票据。
在一些可行的实施方式中,上述第二处理模块43包括行车记录数据获取单元431和待核销总票验证单元432,上述行车记录数据获取单元431具体用于:
根据上述第一车辆标识从对应的行车记录仪中获取上述行车起止时间内上述车辆的行车记录数据。
在一些可行的实施方式中,上述装置还包括核销记录上链模块45,上述核销记录上链模块45包括:
核销记录生成单元451,用于接收上述第一用户发送的已核销确认信息,并根据上述已核销确认信息生成数据核销记录;
核销记录共识单元452,用于将上述数据核销记录以及上述已核销确认信息发送至区块链***中的共识节点,以使各共识节点根据上述已核销确认信息确定对上述数据核销记录的校验结果;
核销记录存储单元453,用于接收上述区块链***中各共识节点发送的校验结果,并根据各校验结果确定对上述数据核销记录的共识结果,当确定对上述数据核销记录达成共识时,将包括上述数据核销记录的数据核销记录存储区块添加至上述区块链。
具体实现中,上述基于区块链的数据处理装置可通过其内置的各个功能模块执行如上述图2至图3中各个步骤所提供的实现方式。例如,上述核销请求获取模块41可用于执行上述各个步骤中获取数据核销请求,以及数据核销请求携带的第一签名信息等实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。上述第一处理模块42可用于执行上述各个步骤中根据上述第一签名信息验证上述数据核销请求的合法性、从区块链中获取开票数据、基于开票数据确定行车路段票据的真实性等相关步骤所描述的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。上述第二处理模块43可用于执行上述各个步骤中获取行车记录数据、基于行车记录数据验证行车路段票据的有效性、基于行车路段票据确定待核销总票是否合规等实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。上述数据核销模块44可用于执行上述各个步骤中根据待核销总票进行数据核销等实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。上述核销记录上链模块45可用于执行上述各个步骤中接收已核销确认信息、根据上述已核销确认信息生成数据核销记录、对数据核销记录进行共识、确定达成共识时将数据核销记录上链等实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
在本申请实施例中,基于区块链的数据处理装置可获取第一用户发送的数据核销请求,以及数据核销请求携带第一用户对数据核销请求的第一签名信息。其中,数据核销请求中包括第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,待核销总票中包括数据转移总量,至少一张行车路段票据中每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量。根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据。若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。若待核销总票为合规票据,则基于待核销总票进行数据核销。进一步地,可接收第一用户发送的已核销确认信息,并根据已核销确认信息生成数据核销记录。然后将数据核销记录以及已核销确认信息发送至区块链***中的共识节点。接收区块链***中各共识节点发送的校验结果,并根据各校验结果确定对数据核销记录的共识结果,当确定对数据核销记录达成共识时,将包括数据核销记录的数据核销记录存储区块添加至区块链。采用本申请实施例,可提高报销效率以及票据真实性,降低票据重复报销的可能性,适用性高。
请参见图6,图6是本申请实施例提供的终端设备的结构示意图。如图6所示,本实施例中的终端设备可以包括:一个或多个处理器501、存储器502以及收发器503。其中,上述处理器501、存储器502和收发器503可通过总线504连接。具体地,收发器503可以是通信模块、收发电路。应用在本申请实施例中,收发器503用于执行上述实施例中所涉及的向共识节点发送数据核销记录和已核销确认信息,接收共识节点发送的校验结果等操作。存储器502用于存储计算机程序,该计算机程序包括程序指令,处理器501用于执行存储器502中存储的程序指令。
应当理解,在一些可行的实施方式中,上述处理器501可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。
具体实现中,上述终端设备可通过其内置的各个功能模块执行如上述图2至图3中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
在本申请实施例中,终端设备可获取第一用户发送的数据核销请求,以及数据核销请求携带第一用户对数据核销请求的第一签名信息。其中,数据核销请求中包括第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,待核销总票中包括数据转移总量,至少一张行车路段票据中每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量。根据第一签名信息验证数据核销请求的合法性,若确定数据核销请求为合法请求,则基于至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据开票数据确定至少一张行车路段票据的真实性。若至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据第一车辆标识获取行车起止时间内车辆的行车记录数据。若行车记录数据中包括至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张票据的开票时间都在行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及数据转移总量确定待核销总票是否为合规票据。若待核销总票为合规票据,则基于待核销总票进行数据核销。进一步地,可接收第一用户发送的已核销确认信息,并根据已核销确认信息生成数据核销记录。然后将数据核销记录以及已核销确认信息发送至区块链***中的共识节点。接收区块链***中各共识节点发送的校验结果,并根据各校验结果确定对数据核销记录的共识结果,当确定对数据核销记录达成共识时,将包括数据核销记录的数据核销记录存储区块添加至区块链。采用本申请实施例,可提高报销效率以及票据真实性,降低票据重复报销的可能性,适用性高。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2至图3中各个步骤所提供的基于区块链的数据处理方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者上述终端设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
Claims (10)
1.一种基于区块链的数据处理方法,其特征在于,所述方法包括:
核销节点获取第一用户发送的数据核销请求,以及所述数据核销请求携带的所述第一用户对所述数据核销请求的第一签名信息,所述数据核销请求中包括所述第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,其中,所述待核销总票中包括数据转移总量,每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量;
所述核销节点根据所述第一签名信息验证所述数据核销请求的合法性,若确定所述数据核销请求为合法请求,则基于所述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据所述开票数据确定所述至少一张行车路段票据的真实性;
若所述至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据所述第一车辆标识获取所述行车起止时间内所述车辆的行车记录数据,若所述行车记录数据中包括所述至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在所述行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及所述数据转移总量确定所述待核销总票是否为合规票据;
若所述待核销总票为合规票据,则基于所述待核销总票进行数据核销。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
所述核销节点从公钥存储区块中获取所述第一用户对应的第一用户公钥;
所述核销节点基于所述第一用户公钥对所述第一签名信息进行解密以得到第一哈希值;
所述核销节点对所述数据核销请求进行哈希运算以得到第二哈希值,若所述第一哈希值与所述第二哈希值相同,则确定所述数据核销请求为合法请求。
3.根据权利要求1所述方法,其特征在于,所述每张行车路段票据中包括票据类型;所述基于所述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,包括:
所述核销节点根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,并根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块,以及所述票据数据存储区块的第二签名信息;
所述核销节点从所述公钥存储区块中获取所述票据服务节点对应的节点公钥,并基于所述节点公钥对所述第二签名信息进行解密以得到第三哈希值;
所述核销节点从所述票据数据存储区块中获取第四哈希值,若所述第三哈希值与所述第四哈希值相同,则根据所述票据标识从所述票据数据存储区块中获取对应的开票数据。
4.根据权利要求1所述方法,其特征在于,所述每张行车路段票据中包括票据类型;所述基于所述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,包括:
所述核销节点根据每张行车路段票据的票据类型确定出每张行车路段票据的票据服务节点,并根据每张行车路段票据的开票时间,从区块链中确定出对应的票据数据存储区块;
所述核销节点从所述公钥存储区块中获取所述票据服务节点对应的节点公钥,若基于所述节点公钥对所述票据数据存储区块解密成功,则根据所述票据标识从解密后的所述票据数据存储区块中获取对应的开票数据。
5.根据权利要求1所述的方法,其特征在于,所述根据所述开票数据确定所述至少一张行车路段票据的真实性,包括:
所述核销节点基于开票时间对从区块链中获取到的每张开票数据进行排序,并计算排序后的开票数据对应的第五哈希值;
所述核销节点对所述至少一张行车路段票据进行哈希运算以得到第六哈希值,若所述第五哈希值与所述第六哈希值相同,则确定所述至少一张行车路段票据中每张行车路段票据皆为真实票据。
6.根据权利要求1所述方法,其特征在于,所述根据所述第一车辆标识获取所述行车起止时间内所述车辆的行车记录数据,包括:
所述核销节点根据所述第一车辆标识从对应的行车记录仪中获取所述行车起止时间内所述车辆的行车记录数据。
7.根据权利要求1所述的方法,其特征在于,所述基于所述待核销总票进行数据核销之后,所述方法还包括:
所述核销节点接收所述第一用户发送的已核销确认信息,并根据所述已核销确认信息生成数据核销记录;
所述核销节点将所述数据核销记录以及所述已核销确认信息发送至区块链***中的共识节点,以使各共识节点根据所述已核销确认信息确定对所述数据核销记录的校验结果;
所述核销节点接收所述区块链***中各共识节点发送的校验结果,并根据各校验结果确定对所述数据核销记录的共识结果,当确定对所述数据核销记录达成共识时,将包括所述数据核销记录的数据核销记录存储区块添加至所述区块链。
8.一种基于区块链的数据处理装置,其特征在于,所述装置包括:
核销请求获取模块,用于获取第一用户发送的数据核销请求,以及所述数据核销请求携带的所述第一用户对所述数据核销请求的第一签名信息,所述数据核销请求中包括所述第一用户所驾驶车辆的第一车辆标识、行车起止时间、待核销总票以及至少一张行车路段票据,其中,所述待核销总票中包括数据转移总量,每张行车路段票据中包括票据标识、开票时间、行车路段、数据转移量;
第一处理模块,用于根据所述第一签名信息验证所述数据核销请求的合法性,若确定所述数据核销请求为合法请求,则基于所述至少一张行车路段票据中包括的票据标识,从区块链中获取对应的开票数据,并根据所述开票数据确定所述至少一张行车路段票据的真实性;
第二处理模块,用于若所述至少一张行车路段票据中每张行车路段票据皆为真实票据,则根据所述第一车辆标识获取所述行车起止时间内所述车辆的行车记录数据,若所述行车记录数据中包括所述至少一张行车路段票据中,每张行车路段票据包括的行车路段,且每张行车路段票据的开票时间都在所述行车起止时间内,则根据每张行车路段票据中包括的数据转移量以及所述数据转移总量确定所述待核销总票是否为合规票据;
数据核销模块,用于若所述待核销总票为合规票据,则基于所述待核销总票进行数据核销。
9.一种终端设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129003.0A CN113327142A (zh) | 2020-02-28 | 2020-02-28 | 基于区块链的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129003.0A CN113327142A (zh) | 2020-02-28 | 2020-02-28 | 基于区块链的数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113327142A true CN113327142A (zh) | 2021-08-31 |
Family
ID=77413365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010129003.0A Pending CN113327142A (zh) | 2020-02-28 | 2020-02-28 | 基于区块链的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113327142A (zh) |
-
2020
- 2020-02-28 CN CN202010129003.0A patent/CN113327142A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019203848B2 (en) | Methods and devices for protecting sensitive data of transaction activity based on smart contract in blockchain | |
CN109889504B (zh) | 去中心化数据访问权交易方法及*** | |
CN109741056B (zh) | 一种电子凭证上传的方法及装置 | |
CN110245186B (zh) | 一种基于区块链的业务处理方法及相关设备 | |
CN111369338B (zh) | 基于区块链的数据处理方法及装置 | |
US7249258B2 (en) | Method and system for assuring an original | |
CN108694330B (zh) | 物联网数据管理方法、平台及设备 | |
KR20180128968A (ko) | 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템 | |
US20120324229A1 (en) | System and method for generating keyless digital multi-signatures | |
CN105809450A (zh) | 电子***的生成和验证方法及*** | |
CN111460525B (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN112288434B (zh) | 隐私交易方法、装置、零知识证明***和隐私交易架构模型 | |
CN110633963A (zh) | 电子票据处理方法、装置、计算机可读存储介质和设备 | |
CN110995673A (zh) | 基于区块链的案件证据管理方法、装置、终端及存储介质 | |
CN111461852A (zh) | 一种基于区块链的数据处理方法、装置及可读存储介质 | |
CN113010861B (zh) | 一种基于区块链的融资事务中的身份验证方法和*** | |
CN111491024A (zh) | 一种基于区块链的银行函证方法、***、终端及存储介质 | |
CN111461799B (zh) | 数据处理方法、装置、计算机设备及介质 | |
CN111353893A (zh) | 基于区块链的交易数据处理方法及装置 | |
CN111311341A (zh) | 票据处理方法、设备及介质 | |
CN114239066A (zh) | 基于区块链的合同处理方法及相关设备 | |
CN110766403A (zh) | 基于区块链的数据处理装置、方法及存储介质 | |
CN111324666B (zh) | 基于区块链的数据处理方法及装置 | |
CN111369332A (zh) | 基于区块链的数据处理方法及装置 | |
CN113327142A (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 |