首页> 中国专利> 使用链下可信设备进行票据数据处理的方法和装置

使用链下可信设备进行票据数据处理的方法和装置

摘要

本说明书实施例提供了一种使用链下可信设备进行票据数据处理的方法和这种,所述方法由区块链节点执行,包括:执行第一交易,所述第一交易中包括至少一个票据标识,以用于将所述至少一个票据标识分配给第一链下可信设备;执行由所述第一链下可信设备发送的第二交易,所述第二交易中包括与所述至少一个票据标识分别对应的至少一个票据,以获取所述至少一个票据。

著录项

  • 公开/公告号CN112801797A

    专利类型发明专利

  • 公开/公告日2021-05-14

    原文格式PDF

  • 申请/专利号CN202110339765.8

  • 发明设计人 邱鸿霖;闫莺;张辉;

    申请日2021-03-30

  • 分类号G06Q40/04(20120101);H04L29/08(20060101);

  • 代理机构11309 北京亿腾知识产权代理事务所(普通合伙);

  • 代理人张静娟;周良玉

  • 地址 310000 浙江省杭州市西湖区西溪路556号8层B段801-11

  • 入库时间 2023-06-19 10:58:46

说明书

技术领域

本说明书实施例涉及区块链技术领域,更具体地,涉及一种使用链下可信设备进行票据数据处理的方法和装置。

背景技术

区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔交易,都会广播到全网的区块链节点,每个全节点都有全量的、一致的数据。由于区块链的上述特点,可将区块链例如开发为发票链,以用于发票的开票、流转业务。然而,在现有的发票链架构中,通过区块链中部署的智能合约进行全部发票操作,受限于区块链智能合约执行的性能,导致发票业务的开票吞吐量受限,难以扩展,在业务峰值时段(例如双十一时段)中可能无法满足业务需求。因此,需要一种更有效的票据处理方案。

发明内容

本说明书实施例旨在提供一种更有效的使用链下可信设备进行票据数据处理的方案,以解决现有技术中的不足。

为实现上述目的,本说明书一个方面提供一种使用链下可信设备进行票据数据处理的方法,所述方法由区块链节点执行,包括:

执行第一交易,所述第一交易中包括至少一个票据标识,以用于将所述至少一个票据标识分配给第一链下可信设备;

执行由所述第一链下可信设备发送的第二交易,所述第二交易中包括与所述至少一个票据标识分别对应的至少一个票据,以获取所述至少一个票据。

在一种实施方式中,执行第一交易包括,执行第一交易以使得在区块链中存入与第一链下可信设备关联的至少一个票据标识。

在一种实施方式中,所述第一交易中调用第一合约,所述第一合约的账户状态中记录有各个票据标识对应的票据信息,其中,执行第一交易包括,执行所述第一合约,以使得在所述第一合约的账户状态中记录对所述至少一个票据标识的分配。

在一种实施方式中,执行第一交易还包括,执行所述第一合约,以使得将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备包括,基于所述至少一个票据标识对应的数值范围,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备包括,基于所述至少一个票据标识对应的开票主体的标识,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第二交易中调用所述第一合约,执行由所述第一链下可信设备发送的第二交易还包括,执行所述第一合约,以使得在获取所述至少一个票据之后,将所述至少一个票据存入所述第一合约的账户状态中相应票据标识的票据信息中。

在一种实施方式中,所述方法还包括,在执行第二交易之后,执行第三交易,所述第三交易中调用所述第一合约,以使得基于各个票据标识的票据信息,确定等待所述第一链下可信设备处理的第一票据标识,在所述第一票据标识的票据信息中删除分配信息。

在一种实施方式中,所述第二交易中调用第二合约,所述第二合约中调用所述第一合约,其中,执行由所述第一链下可信设备发送的第二交易还包括,执行所述第二合约,以使得对所述至少一个票据进行验证,将经验证的至少一个票据提供给所述第一合约。

在一种实施方式中,所述第一链下可信设备为TEE设备,所述第二交易中还包括所述TEE设备对所述至少一个票据的签名,其中,对所述至少一个票据进行验证包括,使用预设的所述TEE设备的公钥对所述签名进行验证。

本说明书另一方面提供一种使用链下可信设备进行票据数据处理的方法,所述方法由第一链下可信设备执行,包括:

从区块链获取分配给第一链下可信设备的至少一个票据标识;

获取与所述至少一个票据标识分别对应的至少一个票据信息;

基于所述至少一个票据信息生成与所述至少一个票据标识分别对应的至少一个票据;

向所述区块链发送第二交易,所述第二交易中包括所述至少一个票据。

在一种实施方式中,所述第一链下可信设备为TEE设备,所述第二交易中还包括所述TEE设备对所述至少一个票据的签名。

本说明书另一方面提供一种使用链下可信设备进行票据数据处理的装置,所述装置部署于区块链节点,包括:

第一执行单元,配置为,执行第一交易,所述第一交易中包括至少一个票据标识,以用于将所述至少一个票据标识分配给第一链下可信设备;

第二执行单元,配置为,执行由所述第一链下可信设备发送的第二交易,所述第二交易中包括与所述至少一个票据标识分别对应的至少一个票据,以获取所述至少一个票据。

在一种实施方式中,所述第一执行单元还配置为,执行第一交易以使得在区块链中存入与第一链下可信设备关联的至少一个票据标识。

在一种实施方式中,所述第一交易中调用第一合约,所述第一合约的账户状态中记录有各个票据标识对应的票据信息,其中,所述第一执行单元还配置为,执行所述第一合约,以使得在所述第一合约的账户状态中记录对所述至少一个票据标识的分配。

在一种实施方式中,所述第一执行单元还配置为,执行所述第一合约,以使得将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第一执行单元还配置为,基于所述至少一个票据标识对应的数值范围,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第一执行单元还配置为,基于所述至少一个票据标识对应的开票主体的标识,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第二交易中调用所述第一合约,所述第二执行单元还配置为,执行所述第一合约,以使得在获取所述至少一个票据之后,将所述至少一个票据存入所述第一合约的账户状态中相应票据标识的票据信息中。

在一种实施方式中,所述装置还包括,第三执行单元,配置为,在执行第二交易之后,执行第三交易,所述第三交易中调用所述第一合约,以使得基于各个票据标识的票据信息,确定等待所述第一链下可信设备处理的第一票据标识,在所述第一票据标识的票据信息中删除分配信息。

在一种实施方式中,所述第二交易中调用第二合约,所述第二合约中调用所述第一合约,其中,所述第二执行单元还配置为,执行所述第二合约,以使得对所述至少一个票据进行验证,将经验证的至少一个票据提供给所述第一合约。

在一种实施方式中,所述第一链下可信设备为TEE设备,所述第二交易中还包括所述TEE设备对所述至少一个票据的签名,其中,所述第二执行单元还配置为,使用预设的所述TEE设备的公钥对所述签名进行验证。

本说明书另一方面提供一种使用链下可信设备进行票据数据处理的装置,所述装置部署于第一链下可信设备,包括:

第一获取单元,配置为,从区块链获取分配给第一链下可信设备的至少一个票据标识;

第二获取单元,配置为,获取与所述至少一个票据标识分别对应的至少一个票据信息;

生成单元,配置为,基于所述至少一个票据信息生成与所述至少一个票据标识分别对应的至少一个票据;

发送单元,配置为,向所述区块链发送第二交易,所述第二交易中包括所述至少一个票据。

在一种实施方式中,所述第一链下可信设备为TEE设备,所述第二交易中还包括所述TEE设备对所述至少一个票据的签名。

本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。

本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述任一项方法。

通过根据本说明书实施例的主发票链加链下可信设备的两层区块链架构,可通过链下设备对主链动态扩容,从而满足业务峰值时段的业务需求;在主发票链中通过在合约的账户状态中记录票据信息,使得用户、主发票链和链下设备可基于该票据信息协调进行票据处理;另外,当通过链下设备进行票据处理时,通过在与链下设备的连接断开之前一次性将多个票据写入主发票链,可大大减少主发票链上的交易数,从而提升了总体的业务吞吐量。

附图说明

通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:

图1示出根据本说明书实施例的开票系统示意图;

图2示出根据本说明书实施例的通过链下设备开具发票的方法流程图;

图3示出根据本说明书实施例的交易1(Tx1)的示意图;

图4示出了在主合约C1的账户状态中记录的包括各个发票号的发票信息的表格;

图5示出根据本说明书实施例的交易2(Tx2)的示意图;

图6示出根据本说明书实施例的交易3(Tx3)的示意图;

图7示出根据本说明书实施例的一种使用链下可信设备进行票据数据处理的装置700;

图8示出根据本说明书实施例的一种使用链下可信设备进行票据数据处理的装置800。

具体实施方式

下面将结合附图描述本说明书实施例。

图1示出根据本说明书实施例的开票系统示意图。如图1中所示,所述开票系统中包括发票链11、链下设备集群12、用户终端13。发票链11例如为联盟链,其中部署有主合约C1(合约名称例如为“Main”)和通信合约C2(合约名称例如为“Layer2”)。所述主合约C1为用于进行开票的合约,其中例如包括取票号函数(Num())、派票函数(Assign())、开票函数(Invoice())、接收函数(Receipt())和核查函数(Check())。所述通信合约C2用于向链下设备集群12发送待处理的发票号段,其中例如包括数据发送函数(Data())、结果返回函数(Result())、和连接断开函数(Close())。主合约C1通过调用通信合约C2可通过使用链下设备进行开票。

链下设备集群12包括多个用于进行开票的链下可信设备,图中示意示出设备D1、设备D2和设备D3,所述链下可信设备例如为包括可信执行环境(TEE)的设备,并且所述链下可信设备中设置有所述发票链的客户端。例如设备D1可通过其客户端从发票链任一节点读取发票链中的账本数据(如交易、收据、账户状态等)及其证明数据(例如Spv证明),并对账本数据进行验证,从而确保所述账本数据的可信性。设备D1在基于获取的账本数据从而获取分配给其的发票号段之后,可从用户终端13接收与所述发票号段对应的多个发票信息,基于多个发票信息生成与所述号段对应的多个发票,使用其硬件私钥对开具的多个发票进行数字签名,并将该多个发票和数字签名通过向发票链11发送交易而提供给发票链11。发票链11在从设备D1获取该开具的多个发票和数字签名之后,可通过预存的设备D1的硬件公钥验证上述数字签名,从而确保所述发票的可信性,并获取发票存入发票链11中。

用户终端13例如为商户1的终端设备,其中设置有所述发票链的客户端。当商户1希望通过发票链进行开票业务时,商户1预先通过向发票链节点(例如节点P1)发送交易而在发票链中申请发票号段(例如发票号1-500),该交易中例如调用主合约C1中的Num()函数,从而使得该交易在被执行时将发票号段1-500发给商户1。在执行该交易之后,可在主合约C1的账户状态中记录各个票号对应的商户,如将在下文描述的图4所示。

发票链11中的节点可通过发送交易设定由链下设备处理的发票号段,例如通过在该交易中调用主合约C1中的Assign()函数,将预定发票号段(例如发票号1-1000)分配给链下设备进行处理,并在主合约C1的账户状态中记录该信息。

商户1在希望通过发票链11对某个发票号进行开票时,查询主合约C1的账户状态,确定该发票号是由发票链11开具、还是由链下设备进行开具。如果基于主合约C1的账户状态确定由发票链11进行开具,则可通过发送调用主合约C1的Invoice()函数的交易,使得由发票链11进行对该发票的开具。如果基于主合约C1的账户状态确定由设备D1开具,则可通过由发票链11提供的设备D1的接口连接设备D1,以通过设备D1进行对该发票的开具。

设备D1在开具发票之后,可通过其客户端向发票链11发送交易,其中,在该交易中以至少一个发票为传入参数调用通信合约C2,在通信合约C2中调用主合约C1,从而将至少一个发票提供给发票链11中的主合约C1。主合约C1在获取至少一个发票之后,可将至少一个发票存入其账户状态中,以供后续的发票业务使用。

下文将详细描述上述票据处理过程。

图2示出根据本说明书实施例的通过链下设备开具发票的方法流程图。

如图2所示,该方法例如通过发票链11中的节点P2与链下设备D1共同执行。如上文所述,发票链11中的主合约C1自身可进行对发票的开具,也可通过调用通信合约C2以通过链下设备进行对发票的开具。发票链11可在业务高峰时段通过开启与链下设备的连接(例如与链下设备D1的连接),使用链下设备进行开票处理,从而可以实现更快的票据处理速度。在业务高峰时段之后,交易量下降,发票链11自身可及时地执行各个交易并完成开票,即不再需要链下设备,从而,可结束对链下设备的使用。下面将详细描述该方法中的各个步骤。

首先,在步骤S202,节点P2通过执行交易1锁定发票号段(例如1-1000)。

发票链11可基于业务高峰时段设定对链下设备集群的使用,例如针对双十一时段,可设定在11月11日零点之前开启与链下设备集群中各个设备的连接,并在11月11日24:00断开所述连接,以结束对链下设备的使用。

在发票链11与链下设备建立连接之后,发票链11中的节点可向发票链11中发送交易1,以对链下设备分配发票号段。该交易1中以发票号段(例如1-1000)为传入参数调用主合约C1中的派票函数(Assign()),以使得将发票号为1-1000的发票分配给链下设备集群12进行处理。图3示出根据本说明书实施例的交易1(Tx1)的示意图。如图3所示,该交易1由节点P1发送,调用主合约C1(Main)中的派票函数(Assign(a,b)),其中a为发票号段的起始号参数,b为发票号段的末尾号参数,在调用派票函数时,以“1,1000”为传入参数进行调用,表示对a赋值1,对b赋值1000。

节点P2中在执行交易1中的主合约C1中的Assign函数时,首先根据预定分配规则将发票号1-1000分配给多个链下设备。在一种实施方式中,所述预定分配规则为基于发票的发票号段范围进行分配,例如,将发票号模100之后的值小于20的票分配给设备D1,将发票号模100之后的值在20-40之间的票分配给设备D2等等。在一种实施方式中,所述预定分配规则为基于发票的商户名称(即开票单位)进行分配,例如,将与流量大的热点开票单位对应的发票号分配给设备D1、将与多个小流量的开票单位对应的发票号分配给设备D2,等等。可以理解,所述分配规则不限于上述两种分配规则,还可以基于其它算法基于发票号进行分配,或者还可以基于发票中的其它字段(如商品名称等)进行分配,在此不作限定。

图4示出了在主合约C1的账户状态中记录的包括各个发票号的发票信息的表格。如图4中所示,发票链11在如上文所述向商户1分发发票号段1-500之后,可在图4所示的表格中记录:发票号1-500的商户为商户1(User1),图4中还记录了,发票号501-1000对应的商户为商户2(User2)。例如,在主合约C1的Assign函数中设定了中基于发票号对应的商户将其分配给链下设备,例如将分给商户1的发票号分配给图1中的设备D1,将分给商户2的发票号分配给设备D2。从而,当执行交易1中的主合约C1的Assign函数时,首先基于图4所示表格确定发票号1-1000各自对应的商户,当确定发票号1-500对应于商户1,发票号501-1000对应于商户2之后,将发票号1-500分配给设备D1(Device1),将发票号501-1000分配给设备D2(Device2),并在图4所示的表格中的发票状态中对各个发票号分别记录对应的设备标识,以指示该发票号在等待相应的链下设备进行开具,也即,对这些发票号进行了锁定,使得发票链11不会对这些发票号对应的发票进行开具。另外,如图4所示,发票号1001对应的发票状态为已开具的发票号为1001的发票,表示该发票已由发票链11或链下设备开具,发票号1002对应的发票状态为空,表示该发票号对应的发票将由发票链11自身开具。

在步骤S204,节点P2在执行交易1时向设备D1发送对发票号段(例如1-500)的派票信息。

如上文参考图1所述,在交易1中的主合约C1中例如以设备D1标识和发票号段1-500为传入参数调用通信合约C2中的数据发送函数(Data())。节点P2在执行交易1时,在如上文所述修改主合约C1的账户状态之后,执行通信合约C2,从而在区块链11(即节点P2本地的区块链11的账本数据)中存入交易1的收据1,在该收据1中可包括通信合约C2的账户地址、设备D1的标识和发票号段1-500。

设备D1可对发票链11中的包括通信合约C2的账户地址和设备D1的标识的收据进行监听,从而可从发票链11读取到发送给其的信息。例如,设备D1在从发票链11读取到收据1及其证明数据(例如Spv证明)之后,通过证明数据对收据1进行验证,然后可从收据1中读取发票号段1-500,从而可确定发票链11已经将发票号段1-500分配给设备D1。

可以理解,虽然在该步骤中描述了,设备D1通过读取收据1获取分配给其的发票号段,本说明书实施例不限于此。例如,设备D1可通过读取主合约C1的账户状态从而从图4所示的表格中查询分配给其的发票号段。另外,虽然在该步骤中描述了通过调用通信合约C2向设备D1发送信息,本说明书不限于此,而是可以通过任何已知的向链外发送信息的方式向设备D1发送信息,例如,可通过执行未调用通信合约C2的交易,使得在发票链11中存入包括设备D1标识和分配发票号段的收据,以向设备D1发送信息。

在步骤S206,设备D1生成发票1-400。

再参考图1,商户1在从发票链11领到发票号段之后,在需要对其中的例如发票号1开具发票时,商户1首先通过其用户终端13在区块链11中查询发票号1的发票状态,即在主合约C1的账户状态中例如如图4所示的表格中进行查询。当确定发票号1的发票状态为“Device1”之后,用户终端13连接由发票链11提供的对设备D1的连接接口,从而与设备D1连接。

用户终端13在与设备D1建立连接之后,将发票号1的发票信息发送给设备D1,其中例如包括发票号、客户名称、商品名称、以及商户名称等信息。

设备D1在接收到发票号为“1”的发票信息之后,确定发票号1为由发票链11分配给其进行开具,然后基于从用户终端13接收的发票信息开具发票号为1的发票。通过同样的过程,设备D1在断开与发票链11的连接之前例如开具了发票1-400。

在步骤S208,设备D1发送交易2,以向发票链11发送发票1-发票400。

设备D1在生成发票1-400中的每个发票之后,并不通过分别发送多个交易而分别将各个发票发回给发票链11,而可以在与发票链11的连接断开之前通过一个交易一次性发回给发票链11。通过这样,对于例如400个发票,相比于通过发送400个交易将400个发票分别发回给发票链11,仅通过1个交易将400个发票一次性提供给发票链11,大大减少了发票链上执行的交易数,大大提升了发票链中的总体处理速度。

例如,如上文所述,在双十一时段,可设定在11月11日24:00结束对各个链下设备的使用。从而,设备D1在11月11日24:00之前确定在开具发票400之后停止开票,并向发票链11(例如节点P2)发送交易2,以将其处理的发票1-400发送给发票链11。

图5示出根据本说明书实施例的交易2(Tx2)的示意图。如图5所示,交易2由设备D1(Device1)发出,其中调用通信合约C2(Layer2)中的结果返回函数(Result()),并且对Result()的返回参数为由设备D1开具的发票1-400。

在步骤S210,节点P2执行交易2,以在本地存入发票1-400。

发票链11中的例如节点P2在执行上述由设备D1发送的交易2时,执行通信合约C2中的结果返回函数。所述结果返回函数包括对主合约C1中的接收函数(Receipt())的调用,从而在执行Result()时,以发票1-400为传入参数执行主合约C1中的Receipt()函数。在执行Receipt()函数时,在主合约C1中的账户状态中的如图4所示的表格中,将相应的发票存入相应的发票号的发票状态中,例如将发票1存入发票号1的发票状态中。

在步骤S212,设备D1发送交易3,以发送连接预关闭信息。

设备D1在如上文所述确定即将断开与发票链11的连接、并向发票链11发送其开具的发票1-400之后,可通过发送交易3以发送连接预关闭信息。

图6示出根据本说明书实施例的交易3(Tx3)的示意图。如图6所示,交易3由设备D1发出,其中调用通信合约C2(Layer2)中的连接断开函数(Close()),该连接断开函数包括参数c和d,其中参数c为设备D1开具的发票的号段的起始号,参数d为设备D1开具的发票的号段的末尾号,对该函数传入的参数“1”表示对c赋值1,参数“400”表示对d赋值400。

在步骤S214,节点P2执行交易3,以确定是否接收到设备D1发送的全部发票。

通信合约C2(Layer2)中包括以参数c和d为传入参数对主合约C1中的Check()函数的调用,从而,在执行交易3时,以1和400为传入参数执行主合约C1中的Check()函数。在执行Check()函数时,查询主合约C1的账户状态中的如图4所示的表格,确定其中的发票号1-400各自的发票状态中是否已存入开具的发票,如果是,则确定已接收到设备D1发送的全部发票,如果发票号1-400中的至少一个发票号的发票状态仍为“Device1”,则确定未接收到设备D1发送的全部发票。在确定未接收到设备D1发送的全部发票的情况中,节点P2可如上文所述通过发送交易而向设备D1发送未接收到发票的发票号,以重新从设备D1接收所述未接收到的发票。

在步骤S216,节点P2在执行交易3时,还解锁未开票的发票号的发票状态。

节点P2在执行上述主合约C1中的Check函数时,还可以基于参数1和400以及图4所示的表格确定发票号401-500为分配给设备D1但尚未处理的发票号,从而可将主合约C1的账户状态中的如图4所示的表格中的发票号401-500的发票状态中的“Device1”删除,即,解除对发票号401-500的锁定,从而使得发票链11可自身进行对发票401-500的开具。

在进行上述过程之后,节点P2可通过发送交易而向设备D1发送关闭信息,从而设备D1与发票链11的连接断开,即,发票链11结束对设备D1的使用。对于图1中示出的设备D2和设备D3,发票链11可通过同样的方式对其派票,并从其接收发票。

图7示出根据本说明书实施例的一种使用链下可信设备进行票据数据处理的装置700,所述装置部署于区块链节点,包括:

第一执行单元71,配置为,执行第一交易,所述第一交易中包括至少一个票据标识,以用于将所述至少一个票据标识分配给第一链下可信设备;

第二执行单元72,配置为,执行由所述第一链下可信设备发送的第二交易,所述第二交易中包括与所述至少一个票据标识分别对应的至少一个票据,以获取所述至少一个票据。

在一种实施方式中,所述第一执行单元71还配置为,执行第一交易以使得在区块链中存入与第一链下可信设备关联的至少一个票据标识。

在一种实施方式中,所述第一交易中调用第一合约,所述第一合约的账户状态中记录有各个票据标识对应的票据信息,其中,所述第一执行单元71还配置为,执行所述第一合约,以使得在所述第一合约的账户状态中记录对所述至少一个票据标识的分配。

在一种实施方式中,所述第一执行单元71还配置为,执行所述第一合约,以使得将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第一执行单元71还配置为,基于所述至少一个票据标识对应的数值范围,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第一执行单元71还配置为,基于所述至少一个票据标识对应的开票主体的标识,将所述至少一个票据标识分配给多个链下可信设备中的第一链下可信设备。

在一种实施方式中,所述第二交易中调用所述第一合约,所述第二执行单元72还配置为,执行所述第一合约,以使得在获取所述至少一个票据之后,将所述至少一个票据存入所述第一合约的账户状态中相应票据标识的票据信息中。

在一种实施方式中,所述装置700还包括,第三执行单元73,配置为,在执行第二交易之后,执行第三交易,所述第三交易中调用所述第一合约,以使得基于各个票据标识的票据信息,确定等待所述第一链下可信设备处理的第一票据标识,在所述第一票据标识的票据信息中删除分配信息。

在一种实施方式中,所述第二交易中调用第二合约,所述第二合约中调用所述第一合约,其中,所述第二执行单元72还配置为,执行所述第二合约,以使得对所述至少一个票据进行验证,将经验证的至少一个票据提供给所述第一合约。

在一种实施方式中,所述第一链下可信设备为TEE设备,所述第二交易中还包括所述TEE设备对所述至少一个票据的签名,其中,所述第二执行单元72还配置为,使用预设的所述TEE设备的公钥对所述签名进行验证。

图8示出根据本说明书实施例的一种使用链下可信设备进行票据数据处理的装置800,所述装置部署于第一链下可信设备,包括:

第一获取单元81,配置为,从区块链获取分配给第一链下可信设备的至少一个票据标识;

第二获取单元82,配置为,获取与所述至少一个票据标识分别对应的至少一个票据信息;

生成单元83,配置为,基于所述至少一个票据信息生成与所述至少一个票据标识分别对应的至少一个票据;

发送单元84,配置为,向所述区块链发送第二交易,所述第二交易中包括所述至少一个票据。

在一种实施方式中,所述第一链下可信设备为TEE设备,所述第二交易中还包括所述TEE设备对所述至少一个票据的签名。

本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。

本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述任一项方法。

通过根据本说明书实施例的主发票链加链下可信设备的两层区块链架构,可通过链下设备对主链动态扩容,从而满足业务峰值时段的业务需求;在主发票链中通过在合约的账户状态中记录票据信息,使得用户、主发票链和链下设备可基于该票据信息协调进行票据处理;另外,当通过链下设备进行票据处理时,通过在与链下设备的连接断开之前一次性将多个票据写入主发票链,可大大减少主发票链上的交易数,从而提升了总体的业务吞吐量。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号