CN114971827A - 一种基于区块链的对账方法、装置、电子设备及存储介质 - Google Patents
一种基于区块链的对账方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114971827A CN114971827A CN202210514072.2A CN202210514072A CN114971827A CN 114971827 A CN114971827 A CN 114971827A CN 202210514072 A CN202210514072 A CN 202210514072A CN 114971827 A CN114971827 A CN 114971827A
- Authority
- CN
- China
- Prior art keywords
- reconciliation
- information
- account checking
- user
- target service
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/125—Finance or payroll
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Abstract
本说明书实施例提供一种基于区块链的对账方法、装置、电子设备及存储介质。所述方法包括:获取第一用户提交的存证请求,存证请求包括由第一用户提供的与目标业务对应的第一对账信息;响应于存证请求,调用区块链上部署的第一智能合约所包含的查询逻辑,确定区块链中是否存证了第一对账信息;如果是,则在区块链中查询与第一对账信息关联存证的由其它用户提供的与目标业务对应的第二对账信息;响应于查询到第二对账信息,调用第一智能合约所包含的对账逻辑,针对第一对账信息与第二对账信息进行对账校验;如果对账校验通过,则对第一对账信息与第二对账信息进行信息合并,以生成与目标业务对应的对账成功记录。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的对账方法、装置、电子设备及存储介质。
背景技术
在企业的经营过程中,需要定期地与存在业务往来的客户进行对账,以验证各方所记录的业务数据的正确性,便于及时发现问题、纠正错误,保证业务数据的真实、完整和准确。
在实际应用中,通常可以采用本地文档的形式,记录业务过程中产生的业务数据,并可以采用人工方式针对业务合作的双方所记录的业务数据进行对账;当出现双方所记录的业务数据不一致的情况时,需要进行差异检查,并且可能需要其中一方做出妥协,按照另一方所记录的业务数据来更新自身所记录的业务数据。
由此可见,一方面,在业务数据的数据量较大的情况下,如:客户量较大、业务合作中的往来交易较多等,采用人工对账的方式,存在对账效率低、耗费时间长、对账结果出错率高的问题;另一方面,当出现业务合作的多个参与方所记录的业务数据不一致的情况时,各个参与方难以信任其他参与方所记录的业务数据,难以确定哪一个才是真实准确的业务数据。
发明内容
本申请提供一种基于区块链的对账方法,所述区块链上部署了用于进行对账管理的第一智能合约;所述区块链中关联存证了由存在业务合作的多方用户分别提供的对账信息;所述方法包括:
获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与所述多方用户中的其它用户之间的目标业务对应的第一对账信息;
响应于所述存证请求,调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;
响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
本申请还提供一种基于区块链的对账装置,所述区块链上部署了用于进行对账管理的第一智能合约;所述区块链中关联存证了由存在业务合作的多方用户分别提供的对账信息;所述装置包括:
获取单元,用于获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与所述多方用户中的其它用户之间的目标业务对应的第一对账信息;
查询单元,用于响应于所述存证请求,调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;
对账单元,用于响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述任一方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述任一方法。
上述实施例中,一方面,通过将由存在业务合作的多方用户分别提供的对账信息在区块链中进行关联存证,基于区块链的去中心化、不可篡改、可追溯等特性,可以保证后续用于进行对账校验的第一对账信息和第二对账信息的可信性,从而解决了各个业务参与方之间的互信问题。
另一方面,响应于获取到第一用户提交的存证请求,也即,获得由第一用户提供的与目标业务对应的第一对账信息,调用链上部署的用于进行对账管理的第一智能合约,在区块链中已存证了所述第一对账信息,且在区块链中查询到了与所述第一对账信息关联存证的第二对账信息的情况下,可以自动地针对由第一用户提供的第一对账信息与由其他用户提供的第二对账信息进行对账校验,从而提高了对账效率。
另一方面,如果针对所述第一对账信息与所述第二对账信息对账校验通过,可以对在区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录;因此,基于生成的所述对账成功记录,所述多方用户无法对已对账成功的业务数据进行私自篡改,有利于监管机构针对所述多方用户在所述目标业务的业务合作过程中产生的业务数据进行更加准确的监督,也可以为审计机构针对与所述目标业务相关的业务数据进行审计提供了真实有效的证据。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一实施例中与区块链相关的网络环境的示意图;
图2是本说明书一实施例中基于区块链的对账方法的流程图;
图3是本说明书一实施例中基于区块链的对账装置所在电子设备的结构示意图;
图4是本说明书一实施例中基于区块链的对账装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的区块链的相关技术,进行简要说明。
区块链一般被划分为三种类型:公有链(Public Blockchain)、私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链与联盟链的结合、联盟链与公有链的结合等。
在上述三种类型的区块链中,去中心化程度最高的是公有链。加入公有链的参与方(也可以称为区块链中的节点)可以读取链上的数据记录、参与交易、竞争新区块的记账权等。而且,各节点可自由加入或退出网络,并进行相关操作。
私有链则相反,网络的写入权限由某个组织或机构控制,数据读取权限受组织规定。也即,私有链可以视为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则介于公有链以及私有链之间,可以实现“部分去中心化”。联盟链中的各节点通常有与之对应的实体机构或组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链的运行。
在区块链网络中,区块链节点是逻辑上的通信实体;不同类型的多个区块链节点可以运行在同一个物理服务器上,也可以运行在不同的物理服务器上。
请参考图1,图1是本说明书一实施例中与区块链相关的网络环境的示意图。在如图1所示的网络环境中,可以包括用户侧计算设备101、服务器端102,以及至少一个区块链系统;例如,区块链系统103、区块链系统104和区块链系统105。
在示出的一种实施方式中,用户侧计算设备101,可以包括各种不同类型的用户侧计算设备;例如,用户侧计算设备可以包括诸如PC计算设备、移动计算设备、物联网设备,以及其它形式的具有一定的计算能力的智能设备,等等。
需要说明的是,用户侧计算设备101并不表示其中的所有用户侧计算设备在同一个通信网络中,而仅仅是对这些用户侧计算设备的统称。
在示出的一种实施方式中,用户侧计算设备101中的部分计算设备,可以通过各种通信网络耦接到服务器端102;例如,设备3耦接到了服务器端102。
用户侧计算设备101中的部分计算设备,也可以不与服务器端102进行耦接,而是作为区块链节点直接耦接到区块链系统;例如,设备4可以作为区块链节点直接耦接到区块链系统103。
在示出的一种实施方式中,用户侧计算设备101,还可以包括一个或多个用户侧服务器;例如,设备5和设备6。用户侧计算设备101中的部分计算设备,可以耦接到该用户侧服务器;例如,设备1耦接到了设备5,设备2耦接到了设备6。而该用户侧服务器可以进一步作为区块链节点直接耦接到区块链系统,也可以进一步通过各种通信网络耦接到服务器端102;例如,设备5可以进一步作为区块链节点直接耦接到区块链系统,设备6进一步耦接到了服务器端102。
在示出的一种实施方式中,上述用户侧服务器可以由搭建了用户账户体系的服务实体来实现;上述服务实体可以包括面向用户提供各种线上和/或线下服务的服务载体的运营实体。相应地,上述运营实体可以包括上述服务载体对应的运营方;例如,上述运营实体可以包括对上述服务载体进行运营和管理的个人、机构、组织等。
在示出的一种实施方式中,服务器端102也可以通过各种通信网络耦接到一个或多个区块链系统;例如,服务器端102分别耦接到了区块链系统103,区块链系统104和区块链系统105,等等。
在示出的一种实施方式中,上述通信网络可以包括有线和/或无线通信网络;例如,可以是基于运营商提供的有线接入网络或无线接入网络(比如移动蜂窝网络)实现的局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、因特网或其组合。
在示出的一种实施方式中,每个区块链系统都可以维护一个或多个区块链(例如:公有区块链、私有区块链、联盟区块链等),并包括用于承载上述一个或多个区块链的多个区块链节点;例如,如图1中示出的区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等可以共同承载一个或多个区块链。各区块链系统包含的区块链之间,以及各区块链系统之间,还可以进行跨链的数据访问。
在示出的一种实施方式中,区块链节点可以是物理设备,也可以是在服务器或服务器集群中实现的虚拟设备;例如,区块链节点可以是服务器集群中的一台物理主机,也可以是基于虚拟化技术对服务器或服务器集群搭载的硬件资源进行虚拟化后,创建的虚拟机。每个区块链节点之间,可以通过各种类型的通信方法(例如:TCP/IP等)耦接在一起形成网络,来承载一个或多个区块链。
在示出的一种实施方式中,服务器端102可以包括用于提供区块链服务(BaaS,Blockchain as a Service)的BaaS平台(也称为BaaS云)。
BaaS平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的软件的方式,面向与BaaS平台耦接的用户侧计算设备,提供区块链服务。
例如,与BaaS平台可以提供诸如MQ(Message Queue,消息队列)服务之类的软件;与BaaS平台耦接的用户侧计算设备,可以订阅BaaS平台耦接到的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而BaaS平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于MQ服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的用户侧计算设备,能够得到与上述合约事件相关的通知。
对于区块链外产生的数据而言,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链网络中的所有节点对该交易进行共识。在达成共识后,可以由区块链网络中作为记账节点的节点,将这笔交易在区块链中进行持久化存证。
在可编程的区块链中,可以通过面向用户提供智能合约(smart contract)的功能,来支持用户在区块链网络中创建并调用一些复杂的逻辑。智能合约是在区块链上可以被交易触发执行的程序。智能合约可以通过代码的形式定义。
在创建智能合约后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址。智能合约的行为由合约账户中的合约代码(code)控制,而合约账户中的账户存储(storage)则保存了智能合约的状态。
用于调用智能合约的交易可以包含发起调用智能合约的账户的地址、被调用的智能合约的地址,以及调用智能合约的方法和参数。在调用智能合约后,智能合约的状态可能改变;可以通过与区块链节点进行通信,来查看智能合约的状态。
智能合约可以以规定的方式被区块链网络中的各节点独立执行,所有执行记录和相关数据都可以被保存在区块链上,因此当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
智能合约的事件机制,是智能合约与链外实体进行交互的一种方式。对于区块链上部署的智能合约来说,通常无法直接与链外实体进行交互;例如,智能合约在调用完成后,通常无法将智能合约的调用结果,点对点地发送给智能合约的调用发起方。
智能合约在调用的过程中产生的调用结果(包括中间结果和最终的调用结果),通常都会以事件(event)的形式,记录到调用该智能合约的那笔交易的交易日志(transaction logs),在区块链节点的存储空间中进行存储。而需要与智能合约进行交互的链外实体,则可以通过监听区块链节点的存储空间中存储的上述交易日志的方式,来获取智能合约的调用结果。
在企业的经营过程中,需要定期地与存在业务往来的客户进行对账,以验证各方所记录的业务数据的正确性,便于及时发现问题、纠正错误,保证业务数据的真实、完整和准确。
例如,两个企业之间存在销售业务,双方需要针对交易合同内容、开票状态、回款状态、应收应付余额等业务数据进行对账,来确保双方的合同进展及财务信息同步,符合企业管理和审计的相关要求。
在实际应用中,通常可以采用本地文档的形式,记录业务过程中产生的业务数据,并可以采用人工方式针对业务合作的双方所记录的业务数据进行对账;当出现双方所记录的业务数据不一致的情况时,需要进行差异检查,并且可能需要其中一方做出妥协,按照另一方所记录的业务数据来更新自身所记录的业务数据。
由此可见,在以上示出的实施例中,一方面,在业务数据的数据量较大的情况下,如:客户量较大、业务合作中的往来交易较多等,采用人工对账的方式,存在对账效率低、耗费时间长、对账结果出错率高的问题;另一方面,当出现业务合作的多个参与方所记录的业务数据不一致的情况时,各个参与方难以信任其他参与方所记录的业务数据,难以确定哪一个才是真实准确的业务数据。
有鉴于此,本说明书旨在提出一种基于区块链技术,针对由存在业务合作的多方用户分别提供的对账信息,在存证过程中实现自动对账的技术方案。
在实现时,可以获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与存在业务往来的多方用户中的其它用户之间的目标业务对应的第一对账信息;响应于获取到所述存证请求,可以调用所述区块链上部署的用于进行对账管理的第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则可以在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则可以对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
由此可见,在本说明书中的技术方案中,一方面,通过将由存在业务合作的多方用户分别提供的对账信息在区块链中进行关联存证,基于区块链的去中心化、不可篡改、可追溯等特性,可以保证后续用于进行对账校验的第一对账信息和第二对账信息的可信性,从而解决了各个业务参与方之间的互信问题。
另一方面,响应于获取到第一用户提交的存证请求,也即,获得由第一用户提供的与目标业务对应的第一对账信息,调用链上部署的用于进行对账管理的第一智能合约,在区块链中已存证了所述第一对账信息,且在区块链中查询到了与所述第一对账信息关联存证的第二对账信息的情况下,可以自动地针对由第一用户提供的第一对账信息与由其他用户提供的第二对账信息进行对账校验,从而提高了对账效率。
另一方面,如果针对所述第一对账信息与所述第二对账信息对账校验通过,可以对在区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录;因此,基于生成的所述对账成功记录,所述多方用户无法对已对账成功的业务数据进行私自篡改,有利于监管机构针对所述多方用户在所述目标业务的业务合作过程中产生的业务数据进行更加准确的监督,也可以为审计机构针对与所述目标业务相关的业务数据进行审计提供了真实有效的证据。
下面通过具体实施例,并结合具体的应用场景对本说明书中的技术方案进行描述。
请参见图2,图2是本说明书一实施例中基于区块链的对账方法的流程图。上述基于区块链的对账方法可以应用于如图1所示的应用环境中,以实现本说明书的技术方案。
在本说明书中,所述基于区块链的对账方法可以应用于区块链中的节点设备,也可以应用于区块链服务平台。
例如,所述基于区块链的对账方法可以应用于区块链中的节点设备(如图1所示的任一区块链系统),用户对应的客户端侧计算设备可以直接连接到所述节点设备。
又例如,所述基于区块链的对账方法也可以应用于区块链服务平台(如图1所示的服务端102),用户对应的客户端侧计算设备可以连接到区块链服务平台,并通过区块链服务平台实现与区块链系统的交互。
上述基于区块链的对账方法可以执行以下步骤:
步骤202:获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与存在业务合作的多方用户中的其它用户之间的目标业务对应的第一对账信息;
步骤204:响应于所述存证请求,调用区块链上部署的用于进行对账管理的第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;
步骤206:响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
在本说明书中,可以获取第一用户提交的存证请求;其中,所述存证请求中可以包括由所述第一用户提供的与目标业务对应的第一对账信息。
其中,所述“第一用户”与所述“其他用户”,仅仅是为了区分不同的对账参与者;在本说明书中,所述多方用户可以包括存在业务合作的两个或两个以上的用户,也即,所述第一用户可以与一个或多个其他用户进行对账。类似地,所述“第一对账信息”与所述“第二对账信息”也仅仅是为了区分由不同的对账参与者提供的对账信息。
下面以所述第一用户与第二用户(也即一个其他用户)之间针对所述目标业务进行对账为例进行描述,在此基础上,本领域技术人员无需付出创造性的劳动,就可以得到所述第一用户与多个用户之间针对目标业务进行对账的技术方案。
其中,所述目标业务可以包括需要进行对账的业务。需要说明的是,所述存在业务合作的多方用户之间,可以针对一个或多个业务进行合作,本说明书中不做限制。例如,第一用户与第二用户之间可以针对销售业务、培训业务等多个业务进行业务合作,其中,可以将第一用户与第二用户之间的销售业务作为需要进行对账的目标业务。
其中,所述存证请求,具体可以为智能合约调用交易的形式,也可以为请求消息的形式。
例如,如果所述第一用户对应的客户端侧计算设备直接连接到区块链中的节点设备,则所述节点设备可以接收到所述第一用户对应的客户端侧计算设备发起的针对目标业务的存证交易,所述存证交易可以用于调用所述区块链中部署的用于进行对账管理的第一智能合约。
又例如,如果所述第一用户对应的客户端侧计算设备通过所述区块链服务平台而接入所述区块链,则所述区块链服务平台可以接收到所述第一用户对应的客户端侧计算设备发送的针对目标业务的存证请求消息,所述存证请求消息中可以包括由所述第一用户提供的与目标业务对应的第一对账信息;以使所述区块链服务平台响应于接收到所述存证请求消息,将所述第一对账信息作为调用参数,调用所述区块链中部署的用于进行对账管理的第一智能合约。
在示出的一种实施方式中,所述区块链上还部署了用于生成对账信息的第二智能合约;所述获取第一用户提交的存证请求之前,所述方法还可以包括:获取所述第一用户提交的用于生成与所述目标业务对应的第一对账信息的生成请求;其中,所述生成请求中包括由所述第一用户提供的与所述目标业务相关的业务数据;响应于所述生成请求,调用所述第二智能合约所包含的生成逻辑,基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一对账内容的hash值,进一步生成与所述目标业务对应的所述第一对账信息。
例如,响应于获取到第一用户提交的生成请求,可以获得由所述第一用户提供的与所述目标业务相关的业务数据,并可以调用区块链上部署的用于生成对账信息的第二智能合约所包含的生成逻辑,基于所述业务数据,生成与所述目标业务对应的所述第一对账内容;进一步地,可以对生成的第一对账内容进行哈希计算,以得到所述第一对账内容的hash值;进一步地,可以基于所述第一对账内容的hash值,生成与所述目标业务对应的所述第一对账信息。
需要说明的是,在以上示出的实施方式中,通过基于对账内容的hash值生成与所述目标业务对应的所述对账信息,并将所述对账信息在区块链中进行存证,以及针对由多方用户分别提供的对账信息进行对账校验,而不是直接将明文信息(如:业务数据的原文、生成的对账内容等)直接上传至区块链中,并针对明文信息进行对账校验,可以在防止用户的业务数据被泄露的前提下,基于区块链技术进行公开对账,以提高对账效率;并且,相较于业务数据的原文或生成的对账内容,基于对账内容的hash值生成对账信息,具备数量小、节约存储空间、易于查询、易于比较的优点。
另外,需要说明的是,在以上示出的实施方式中,基于对账内容的hash值生成与所述目标业务对应的所述对账信息,从而防止用户的业务数据被泄露,仅仅是一种示例性的实现方式;在实际应用中,本领域技术人员根据需求,也可以采用其他方式对由用户提供的业务数据进行安全保护处理,例如,针对生成的与所述目标业务对应的第一对账内容,可以进行数据编码、数据混淆处理、数据加密等安全保护处理中的一种或多种,并基于安全保护处理后的第一对账内容,生成与所述目标业务对应的所述第一对账信息。
其中,所述生成请求,具体可以为智能合约调用交易的形式,也可以为请求消息的形式。
例如,如果所述第一用户对应的客户端侧计算设备直接连接到区块链中的节点设备,则所述节点设备可以接收到所述第一用户对应的客户端侧计算设备发起的针对目标业务的生成交易,所述生成交易可以用于调用所述区块链中部署的用于生成对账信息的第二智能合约。
又例如,如果所述第一用户对应的客户端侧计算设备通过所述区块链服务平台而接入所述区块链,则所述区块链服务平台可以接收到所述第一用户对应的客户端侧计算设备发送的针对目标业务的生成请求消息,所述生成请求消息中可以包括由所述第一用户提供的与目标业务相关的业务数据;以使所述区块链服务平台响应于接收到所述生成消息,将所述业务数据作为调用参数,调用所述区块链中部署的用于生成对账信息的第二智能合约。
在一个可能的实施例中,所述第二智能合约所包含生成逻辑,可以供所述第一用户本地调用;在这种情况下,响应于获取到所述第一用户提交的所述生成请求,可以发起针对所述第二智能合约所包含的生成逻辑的本地调用,基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一对账内容的hash值,进一步生成与所述目标业务对应的所述第一对账信息。
例如,所述第一用户对应的客户端可以将由所述第一用户提供的与所述目标业务相关的业务数据作为调用参数,向接入的区块链节点设备发起local call(一种交易形式),以使所述节点设备响应于所述第一用户对应的客户端发起的local call,在本地调用所述第二智能合约所包含的生成逻辑,以生成与所述目标业务对应的第一对账信息。
需要说明的是,在以上示出的实施例中,本地调用所述第二智能合约所包含的生成逻辑,可以理解为,只有所述第一用户对应的客户端接入的节点设备在本地执行所述生成逻辑即可,无需所述区块链中的所有节点设备针对所述local call进行共识,也无需所有节点设备分别执行所述生成逻辑。由此可见,在这种情况下,由于无需将所述生成逻辑的调用参数(由第一用户提供的业务数据)存储至每个节点设备对应的分布式账本中,因此可以保证所述第一用户的业务数据的隐私性;并且,本地调用所述第二智能合约所包含的生成逻辑之后,所述生成逻辑的执行结果不会导致链上数据发生变化,也即无需将所述执行结果(如:所述第一对账内容、所述第一对账内容的hash值)上链,从而能够保证所述第一用户的业务数据的隐私性。
在一个可能的实施例中,在获得由所述第一用户提供的与所述目标业务相关的业务数据之后,可以基于与所述目标业务对应的对账模板,生成与所述目标业务对应的所述第一对账内容。在实现时,所述区块链中可以维护用于与所述目标业务对应的对账模板,所述对账模板可以用于描述与所述目标业务相关的业务数据中需要进行对账的关键业务字段。例如,所述目标业务可以为销售业务,所述第二智能合约可以维护与销售业务对应的对账模板,所述对账模板是由与销售业务相关的业务数据中需要进行对账的关键业务字段的字段标识而构成的,如对账标识、合同文本、合同金额、回款状态、是否开票、税票信息等字段标识。
在这种情况下,所述基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容的过程,具体可以包括:基于与所述目标业务对应的对账模板,从由所述第一用户提供的与所述目标业务相关的业务数据中提取出所述关键业务字段,并按照所述对账模板定义的信息格式,生成与所述目标业务对应的对账内容。
需要说明的是,由于所述多方用户分别提供的与所述目标业务相关的业务数据,可能是不同的格式,因此响应于获取到由所述第一用户提供的与所述目标业务相关的业务数据,基于与所述目标业务对应的对账模板生成所述第一对账内容,可以实现标准化处理,便于后续针对对账内容或对账信息进行对账校验。
在一个可能的实施例中,存在业务合作的所述多方用户在所述区块链上分别注册了数字身份,所述多方用户可以向区块链系统提供与自身对应的数字身份标识,还可以提供与其他用户对应的数字身份标识。
例如,所述区块链中可以设置有权威的身份认证节点,所述身份认证节点可以用于为所述多方用户分别注册数字身份;所述多方用户中的任一用户对应的客户端在完成数字身份注册之后,可以获得与该用户对应的数字身份标识,还可以与存在业务往来的其他用户在链下交换数字身份标识。其中,所述数字身份标识可以用于唯一标识对应的用户;所述数字身份标识具体可以包括但不限于:用户ID、身份证号、生物特征信息(如人脸信息、指纹信息)等。
在这种情况下,所述第一用户提交的所述生成请求中还可以包括:与所述第一用户对应的第一数字身份标识和与所述其他用户对应的第二数字身份标识;所述基于所述第一对账内容的hash值,进一步生成与所述目标业务对应的所述第一对账信息的过程,具体可以包括:基于所述第一数字身份标识和所述第二数字身份标识,为所述第一用户和所述其他用户生成合作标识;其中,所述合作标识用于指示所述第一用户和所述其他用户针对所述目标业务的对账者身份;基于所述第一对账内容的hash值和所述合作标识,进一步生成与所述目标业务对应的所述第一对账信息。
例如,响应于获取到第一用户提交的生成请求,可以获得由所述第一用户提供的与所述目标业务相关的业务数据、所述第一用户的第一数字身份标识“A”、以及与所述第二用户对应的第二数字身份标识“B”,并可以调用所述第二智能合约所包含的生成逻辑,基于所述业务数据,生成与所述目标业务对应的所述第一对账内容,并可以对生成的第一对账内容进行哈希计算,以得到所述第一对账内容的hash值“hash1”;以及,可以基于所述第一数字身份标识“A”和所述第二数字身份标识“B”,为所述第一用户和所述第二用户生成合作标识“(AB)*”,该合作标识可以用于指示针对所述目标业务的对账者是所述第一用户和所述第二用户;进一步地,可以基于所述第一对账内容的hash值“hash1”、以及所述合作标识“(AB)*”,生成与所述目标业务对应的所述第一对账信息“(AB)*-hash1”。
需要说明的是,在以上示出的实施例中,所述多方用户可以定期地向所述身份认证节点申请更新数字身份标识,从而避免用户的数字身份信息被其他用户或审计机构等泄漏,保护业务信息的安全性;在用户的数字身份标识更新之后,所述第一智能合约仍然可以为所述用户的数字身份提供有效的认证。
在另一个可能的实施例中,所述多方用户之间存在针对所述目标业务的业务合作之后,可以约定与所述目标业务对应的对账标识,其中,所述对账标识可以用于唯一标识所述目标业务。在这种情况下,所述第一用户提交的所述生成请求中还包括:所述第一用户与所述其他用户约定的对账标识;所述基于所述第一对账内容的hash值和所述合作标识,进一步生成与所述目标业务对应的所述第一对账信息的过程,具体可以包括:基于所述第一对账内容的hash值、所述合作标识、和所述对账标识,进一步生成与所述目标业务对应的所述第一对账信息。
例如,所述第一用户与所述第二用户可以在链下约定与所述目标业务对应的对账标识“00001”;响应于获取到第一用户提交的生成请求,可以获得由所述第一用户提供的与所述目标业务相关的业务数据、所述第一用户的第一数字身份标识“A”、以及与所述第二用户对应的第二数字身份标识“B”,并可以调用所述第二智能合约所包含的生成逻辑,基于所述业务数据,生成与所述目标业务对应的所述第一对账内容,并可以对生成的第一对账内容进行哈希计算,以得到所述第一对账内容的hash值“hash1”;以及,可以基于所述第一数字身份标识“A”和所述第二数字身份标识“B”,为所述第一用户和所述第二用户生成合作标识“(AB)*”,该合作标识可以用于指示针对所述目标业务的对账者是所述第一用户和所述第二用户;进一步地,可以基于所述第一对账内容的hash值“hash1”、所述合作标识“(AB)*”、以及与所述目标业务对应的对账标识“00001”,生成与所述目标业务对应的所述第一对账信息“(AB)*-00001-hash1”。
在另一个可能的实施中,在生成的所述第一对账信息中,还可以包括所述第一用户的第一数字身份标识,用于指示所述第一对账信息是由所述第一用户提供的对账信息。
例如,可以基于所述第一对账内容的hash值“hash1”、所述合作标识“(AB)*”、与所述目标业务对应的对账标识“00001”、以及所述第一用户的第一数字身份标识“A”,生成与所述目标业务对应的所述第一对账信息“(AB)*-00001-hash1-A”。
在另一个可能的实施例中,在生成的所述第一对账信息中,还可以包括:与所述第一对账信息的生成时刻对应的时间戳,或者与由所述第一用户提供的业务数据的生成时刻对应的时间戳。
例如,可以基于所述第一对账内容的hash值“hash1”、所述合作标识“(AB)*”、与所述目标业务对应的对账标识“00001”、以及所述第一用户的第一数字身份标识“A”,生成与所述目标业务对应的所述第一对账信息“(AB)*-00001-hash1—时间戳1-A”,其中,与“时间戳1”对应的时刻,可以为所述第一对账信息的生成时刻。
在本说明书中,响应于获取到所述第一用户提交的存证请求,可以调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。
其中,所述区块链上部署了用于进行对账管理的第一智能合约;所述第一智能合约所包含的查询逻辑,也即所述第一智能合约所包含的合约代码对应的查询逻辑。
其中,所述区块链上关联存证了由存在业务合作的多方用户分别提供的对账信息;关于确定所述区块链中是否存证了所述第一对账信息的具体实现方式,请参见相关技术,在此不做赘述。所述关联存证,可以理解为,根据由所述第一用户提供的与其他用户之间的目标业务对应的第一对账信息,可以查询到由所述其他用户提供的与所述目标业务对应的第二对账信息。
例如,第一用户与第二用户之间需要针对目标业务进行对账,响应于获取到所述第一用户提交的存证请求,可以获得由所述第一用户提供的与所述目标业务对应的第一对账信息,并将所述第一对账信息作为调用参数,调用区块链上部署的用于进行对账管理的第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;进一步地,如果所述区块链中存证了所述第一对账信息,则可以在所述区块链中查询与所述第一对账信息关联存证的由第二用户提供的与所述目标业务对应的第二对账信息,以确定所述第二用户是否已经向区块链系统提供了用于针对目标业务进行对账的第二对账信息。
在示出的一种实施方式中,所述第一智能合约,可以包括与所述多方用户对应的私有智能合约。其中,所述私有智能合约,可以理解为本地合约,或者可以理解为只有所述多方用户具备访问权限的链上的智能合约。
在示出的一种实施方式中,在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息之前,所述方法还可以包括:如果所述区块链中未存证所述第一对账信息,则将所述第一对账信息在所述区块链中进行存证。
例如,响应于获取到所述第一用户提交的存证请求,可以获得由所述第一用户提供的与所述目标业务对应的第一对账信息,并将所述第一对账信息作为调用参数,调用区块链上部署的第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中未存证所述第一对账信息,则可以将所述第一对账信息在所述区块链中进行存证;进一步地,还可以在所述区块链中查询与所述第一对账信息关联存证的第二对账信息。
在示出的另一种实施方式中,所述目标业务可以包括多个对账阶段;与所述目标业务中的多个对账阶段分别对应的对账信息,可以按照与所述对账信息的时间戳对应的时刻顺序,被组织为多级存储结构,关联存证在所述第一智能合约对应的存储空间中。
其中,所述目标业务中包括的多个对账阶段,本领域技术人员根据需求可以灵活设置,本说明书对此不作特殊限定;例如,销售业务可以包括合同签署、合同履约、发票开具等业务阶段。
其中,在一种情况下,所述对账信息的时间戳,可以为在由所述第一用户提供的第一对账信息中包括的,与所述第一对账信息的生成时刻对应的时间戳,或者与由所述第一用户提供的业务数据的生成时刻对应的时间戳。在另一种情况下,所述对账信息的时间戳,也可以为在所述第一用户提交的存证请求中包括的,与所述第一对账信息的生成时刻对应的时间戳,或者与所述存证请求的发起时刻对应的时间戳。
其中,将与所述目标业务对应的对账信息存证在所述第一智能合约对应的存储空间中,也即,将与所述目标业务对应的对账信息以状态变量的形式,写入与所述第一智能合约对应的storage树中。
例如,请参见表1,所述多级存储结构具体可以包括列表。
表1
如表1所示,其中,所述第一用户与所述第二用户之间存在针对目标业务的业务合作,“(AB)*-00001-hash1-时间戳1-A”、“(AB)*-00001-hash4-时间戳4-A”是由所述第一用户提供的针对所述目标业务的对账信息,“(AB)*-00001-hash2-时间戳2-B”、“(AB)*-00001-hash3-时间戳3-B”是由所述第二用户提供的针对所述目标业务的对账信息;可以按照与所述对账信息的时间戳对应的时刻顺序,将由所述第一用户与所述第二用户分别提供的与所述目标业务中的多个对账阶段分别对应的对账信息,关联存证在所述第一智能合约对应的存储空间中。
在以上示出的实施方式中,所述在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息的过程,具体可以包括:在所述第一智能合约对应的存储空间中遍历所述多级存储结构,查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。
例如,在获取到由所述第一用户提供的与所述目标业务对应的第一对账信息“(AB)*-00001-hash4-时间戳4-A”之后,可以在所述第一智能合约对应的存储空间中遍历如表1所示的多级存储结构,查询到与所述第一对账信息具有相同的合作标识“(AB)*”和相同的对账标识“00001”的第二对账信息“(AB)*-00001-hash2-时间戳2-B”、“(AB)*-00001-hash3-时间戳3-B”。
在示出的另一种实施方式中,所述对账信息还可以包括用于指示对账阶段的阶段标识;所述查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息的过程,具体可以包括:查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息;在查询到的与所述第一对账信息具有相同的合作标识和对账标识的对账信息中,进一步查询与所述第一对账信息具有相同的阶段标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。其中,所述阶段标识,可以用于唯一标识所述目标业务中的各个对账阶段。
例如,在获取到由所述第一用户提供的第一对账信息“(AB)*-00001-hash4-S2-时间戳4-A”之后,可以遍历如表1所示的多级存储结构,查询与所述第一对账信息具有相同的合作标识“(AB)*”和相同的对账标识“00001”、且由所述第二用户提供的与所述目标业务对应的对账信息,也即,查找到第二对账信息“(AB)*-00001-hash2-S1-时间戳2-B”、“(AB)*-00001-hash3-S2-时间戳3-B”;进一步地,可以在其中查找到与所述第一对账信息具有相同的阶段标识“S2”的第二对账信息“(AB)*-00001-hash3-S2-时间戳3-B”。
在示出的另一种实施方式中,在由所述多方用户分别提供的对账信息被组织为所述多级存储结构,关联存证在所述第一智能合约对应的存储空间中的情况下,所述如果所述区块链中未存证所述第一对账信息,则将所述第一对账信息在所述区块链中进行存证的过程,具体可以包括:如果所述区块链中未存证所述第一对账信息,则将所述第一对账信息写入所述多级存储结构,以将所述第一对账信息与所述区块链中已存证的由所述其他用户提供的与所述目标业务对应的第二对账信息进行关联存证。
例如,响应于获取到所述第一用户提交的存证请求,可以获得由所述第一用户提供的与所述目标业务对应的第一对账信息“(AB)*-00001-hash5-时间戳5-A”;可以调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果未存证,则可以将所述第一对账信息写入如表1所示的多级存储结构。
在示出的另一种实施方式中,所述其他用户可以获得与自身相关的对账提示,进而可以向区块链系统提供与所述目标业务对应的第二对账信息,从而及时配合存在业务合作的所述第一用户进行对账。在实现时,所述方法还可以包括:响应于将所述第一对账信息写入所述多级存储结构,生成与所述第一对账信息对应的写入成功事件,并将生成的写入成功事件存储至所述区块链,以使与所述其他用户对应的客户端响应于从所述区块链上获取到所述写入成功事件,向所述其他用户输出用于指示所述其他用户提供与所述目标业务对应的第二对账信息的提示信息。
其中,所述写入成功事件,也即响应于调用所述第一智能合约,将由所述第一用户提供的第一对账信息写入所述多级存储结构而生成的智能合约事件。
例如,响应于将由第一用户提供的第一对账信息写入如表1所示的多级存储结构,可以生成与所述第一对账信息对应的写入成功事件,并将生成的写入成功事件存储至区块链;第二用户对应的客户端可以对存储至所述区块链的智能合约事件进行监听,响应于监听到与所述第一对账信息对应的写入成功事件,可以向所述第二用户输出用于指示第二用户提供与所述目标业务对应的第二对账信息的提示信息。
又例如,响应于将由第一用户提供的第一对账信息写入如表1所示的多级存储结构,可以生成与所述第一对账信息对应的写入成功事件,并将生成的写入成功事件存储至区块链;以使第二用户对应的客户端响应于接收到所述区块链中的节点设备或所述区块链服务平台上搭载的事件通知程序推送的与所述第一对账信息对应的写入成功事件,可以向所述第二用户输出用于指示第二用户提供与所述目标业务对应的第二对账信息的提示信息。
其中,所述事件通知程序具体可以包括SDK(Software Development Kit,软件开发工具包);所述SDK可以用于提供智能合约事件的订阅服务,也即,所述SDK可以监听在所述区块链上部署的智能合约被调用后生成的新的智能合约事件,并可以将监听到的智能合约事件推送给相应的用户客户端。也即,在以上示出的实施例中,所述第二用户对应的客户端可以基于发布/订阅模式,向所述区块链的节点设备或区块链服务平台订阅所述区块链的分布式账本中产生的新的智能合约事件,进而可以接收到所述节点设备或区块链服务平台向所述第二用户对应的客户端推送的与所述第一对账信息对应的写入成功事件。
需要说明的是,在以上示出的实施方式中,相较于所述其他用户对应的客户端主动监听存储至所述区块链的智能合约事件的实现方式,通过由所述区块链服务平台或所述区块链中的节点设备上搭载的事件通知程序进行事件监听,所述其他用户对应的客户端只需接收所述事件通知程序推送的智能合约事件,可以节约所述其他用户对应的客户端的事件监听成本。
在本说明书中,响应于在所述区块链中查询到与所述第一对账信息关联存证的所述第二对账信息,可以调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验。
例如,响应于获取到第一用户提交的存证请求,可以调用第一智能合约所包含的存证逻辑,在确定区块链上存证了由第一用户提供的与目标业务对应的第一对账信息的情况下,可以在区块链上查询与所述第一对账信息关联存证的由第二用户提供的与所述目标业务对应的第二对账信息;响应于在所述区块链中查询到了与所述第一对账信息关联存证的所述第二对账信息,可以进一步地调用所述第一智能合约所包含的对账逻辑,确定所述第一对账信息中包括的对账内容与所述第二对账信息中包括的对账内容是否匹配;如果匹配,则可以针对所述第一对账信息与所述第二对账信息对账校验通过。
在示出的一种实施方式中,所述第一对账信息是基于与所述目标业务对应的第一对账内容的hash值而生成的,所述第一对账内容是基于由所述第一用于提供的与所述目标业务相关的业务数据而生成的;在这种情况下,所述针对所述第一对账信息和与所述第二对账信息进行对账校验的过程,具体可以包括:确定所述第一对账信息中包括的所述第一对账内容的hash值,与所述第二对账信息中包括的第二对账内容的hash值是否一致;如果一致,则针对所述第一对账信息与所述第二对账信息对账校验通过。
例如,在获取到由第一用户提供的与所述目标业务对应的第一对账信息“(AB)*-00001-hash4-时间戳4-A”之后,可以调用所述第一智能合约所包含的查询逻辑,在如表1所示的多级存储结构中,查询到与所述第一对账信息关联存证的第二对账信息“(AB)*-00001-hash2-时间戳2-B”、“(AB)*-00001-hash3-时间戳3-B”;响应于查询到所述第二对账信息,可以进一步地调用所述第一智能合约所包含的对账逻辑,确定所述第一对账信息中包括的所述第一对账内容的hash值,与所述第二对账信息中包括的第二对账内容的hash值是否一致;如果hash4≠hash2,则针对所述第一对账信息“(AB)*-00001-hash4-时间戳4-A”与所述第二对账信息“(AB)*-00001-hash2-时间戳2-B”的对账校验未通过;如果hash4=hash3,则针对所述第一对账信息“(AB)*-00001-hash4-时间戳4-A”与所述第二对账信息“(AB)*-00001-hash3-时间戳3-B”的对账校验通过。
在本说明书中,如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
例如,如果针对所述第一对账信息“(AB)*-00001-hash4-时间戳4-A”与所述第二对账信息“(AB)*-00001-hash3-时间戳3-B”的对账校验通过,则可以对所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录“(AB)*-00001-hash4-时间戳4-A-时间戳3-B”或“(AB)*-00001-hash3-时间戳3-B-时间戳4-A”。需要说明的是,关于合并生成的所述对账成功记录,以上示出的仅仅是一种示例性的描述,本说明书对此不作特殊限制,本领域技术人员根据需求,可以在生成的所述对账成功记录中增加或减少其他数据;例如,针对上述第一对账信息与所述第二对账信息进行信息合并,生成的与所述目标业务对应的对账成功记录还可以为“(AB)*-00001-hash4-时间戳4-A”,或“(AB)*-00001-hash4”等等。
在示出的另一种实施方式中,所述方法还可以包括:如果针对所述第一对账信息与所述第二对账信息对账校验通过,则针对关联存证在所述智能合约对应的存储空间中的与所述目标业务对应的对账信息,删除由所述第一用户在与所述第一对账信息的时间戳对应的第一时刻之前提供的对账信息,以及,删除由所述其他用户在与所述第二对账信息的时间戳对应的第二时刻之前提供的对账信息。
例如,如果针对所述第一对账信息“(AB)*-00001-hash4-时间戳4-A”与所述第二对账信息“(AB)*-00001-hash3-时间戳3-B”的对账校验通过,则针对如表1所述的多级存储结构中的对账信息,可以删除由第一用户在“时间戳4”对应的第一时刻之前提供的第一对账信息“(AB)*-00001-hash1-时间戳1-A”,以及,可以删除由第二用户在“时间戳3”对应的第二时刻之前提供的第二对账信息“(AB)*-00001-hash2-时间戳2-B”。
需要说明的是,在以上示出的实施方式中,在针对由所述第一用户提供的第一对账信息与由所述第二用户提供的第二对账信息对账校验通过的情况下,可以删除由所述第一用户和所述第二用户在本次对账成功的对账信息之前提供的对账信息,从而可以避免重复核对已经对账完成的内容,提高对账效率,节约存储空间。
在示出的一种实施方式中,所述方法还可以包括:响应于生成与所述目标业务对应的对账成功记录,生成与所述目标业务对应的对账成功事件,并将生成的对账成功事件存储至所述区块链,以使与所述其他用户对应的客户端响应于从所述区块链上获取到所述对账成功事件,向所述其他用户输出用于指示对账成功的提示信息。
其中,所述对账成功事件,也即响应于调用所述第一智能合约,针对所述第一对账信息与所述第二对账信息对账校验通过,对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,得到与所述目标业务对应的对账成功记录,而生成的智能合约事件。
例如,响应于针对第一对账信息“(AB)*-00001-hash4-时间戳4-A”与第二对账信息“(AB)*-00001-hash3-时间戳3-B”的对账校验通过,则可以对所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录“(AB)*-00001-hash4-时间戳4-A-时间戳3-B”;进一步地,可以生成与所述目标业务对应的对账成功事件,并将生成的对账成功事件存储至区块链;第二用户对应的客户端可以直接对存储至所述区块链的智能合约事件进行监听,响应于监听到与所述目标业务对应的对账成功事件,可以向所述第二用户输出用于指示第二用户提供对账成功的提示信息。
其中,所述对账成功事件中可以包括所述对账成功记录,以使所述第二用户的客户端响应于监听到所述对账成功事件,可以获得所述对账成功记录“(AB)*-00001-hash4-时间戳4-A-时间戳3-B”,从而确定针对第一用户与第二用户之间的目标业务已对账成功,并且通过对账校验的业务数据为:与由第一用户提供的第一对账信息“hash4”对应的业务数据,以及与由第二用户提供的第二对账信息“hash4”(对账成功时,hash4=hash3)对应的业务数据。
又例如,响应于生成与所述目标业务对应的对账成功记录“(AB)*-00001-hash4-时间戳4-A-时间戳3-B”,可以生成与所述目标业务对应的对账成功事件,并将生成的对账成功事件存储至区块链;以使第二用户对应的客户端响应于接收到所述区块链中的节点设备或所述区块链服务平台上搭载的事件通知程序推送的与所述目标业务对应的对账成功事件,可以向所述第二用户输出用于指示对账成功的提示信息。
需要说明的是,在以上示出的实施方式中,所述多方用户可以分别按照自身的财务要求(如:不同的周期或业务阶段),提交针对目标业务的存证请求,来向区块链系统提供后续用于进行对账校验的对账信息;并且,在向所述区块链系统提供过的对账信息通过对账校验时,该用户基于所述对账成功事件可以确定自身哪一业务阶段的业务数据已对账完成。由此可见,用户无需等待针对自身提供过的每一条对账信息的对账结果,从而为各个用户的对账管理提供了更高的自由度。
在示出的一种实施方式中,在针对由所述多方用户分别提供的对账信息进行存证与对账之后,还可以针对由所述多方用户中的任一用户提供的待验证数据进行真实性验证。在实现时,所述方法还可以包括:获取由所述第一用户提供的与所述目标业务相关的待验证数据;在所述区块链中查找与所述目标业务对应的对账成功记录,并确定查找到的对账成功记录与由所述第一用户提供的待验证数据是否匹配;如果是,则确定针对所述待验证数据的真实性验证通过。
也即,在获得由所述第一用户提供的与所述目标业务相关的待验证数据之后,可以确定所述区块链中是否存储了与所述目标业务对应的对账成功记录;如果存储了,则可以进一步确定所述区块链上存储的对账成功记录与由所述第一用户提供的待验证数据是否匹配;如果匹配,则可以确定由所述第一用户提供的待验证数据是未经过篡改的真实数据,并且针对与所述待验证数据相应的对账信息已经对账成功;如果未存储或者不匹配,则可以确定由所述第一用户提供的待验证数据可能是经过篡改的非法数据,或者可能与所述待验证数据相应的对账信息还没有对账校验通过。
其中,由所述第一用户提供的与所述目标业务相关的待验证数据,具体可以包括待验证的与所述目标业务相关的业务数据、待验证的与所述目标业务对应的对账内容、待验证的对账内容的hash值、或待验证的与所述目标业务对应的对账信息;相应地,所述确定所述区块链上存储的对账成功记录与由所述第一用户提供的待验证数据是否匹配,可以理解为,可以先针对所述用户提供的待验证数据进行处理,再验证处理得到的对账内容的hash值与链上存储的对账成功记录中包括的hash值是否一致。
例如,若由第一用户提供的待验证数据为待验证的业务数据,则可以先基于生成与所述待验证的业务数据对应的待验证对账内容,再计算出所述待验证对账内容的hash值;以及,可以在所述区块链中查找与所述目标业务对应的对账成功记录,并验证查找到的所述对账成功记录中包括的对账内容的hash值与计算出的所述待验证对账内容的hash值是否一致;若一致,则可以确定针对所述待验证数据的真实性验证通过。
又例如,若由所述第一用户提供的待验证数据为待验证的对账内容的hash值,则可以在所述区块链中查找与所述目标业务对应的对账成功记录,并验证查找到的所述对账成功记录中包括的对账内容的hash值与由第一用户提供的所述待验证对账内容的hash值是否一致;若一致,则可以确定针对所述待验证数据的真实性验证通过。
通过以上实施例可知,一方面,通过将由存在业务合作的多方用户分别提供的对账信息在区块链中进行关联存证,基于区块链的去中心化、不可篡改、可追溯等特性,可以保证后续用于进行对账校验的第一对账信息和第二对账信息的可信性,从而解决了各个业务参与方之间的互信问题。
另一方面,响应于获取到第一用户提交的存证请求,也即,获得由第一用户提供的与目标业务对应的第一对账信息,调用链上部署的用于进行对账管理的第一智能合约,在区块链中已存证了所述第一对账信息,且在区块链中查询到了与所述第一对账信息关联存证的第二对账信息的情况下,可以自动地针对由第一用户提供的第一对账信息与由其他用户提供的第二对账信息进行对账校验,从而提高了对账效率。
另一方面,如果针对所述第一对账信息与所述第二对账信息对账校验通过,可以对在区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录;因此,基于生成的所述对账成功记录,所述多方用户无法对已对账成功的业务数据进行私自篡改,有利于监管机构针对所述多方用户在所述目标业务的业务合作过程中产生的业务数据进行更加准确的监督,也可以为审计机构针对与所述目标业务相关的业务数据进行审计提供了真实有效的证据。
与上述基于区块链的对账方法的实施例对应的,本说明书还提供了一种基于区块链的对账装置的实施例。
请参见图3,图3是本说明书一实施例中基于区块链的对账装置所在电子设备的结构示意图。在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图4,图4是本说明书一实施例中基于区块链的对账装置的框图。该基于区块链的对账装置可以应用于如图3所示的电子设备中,以实现本说明书的技术方案。其中,所述区块链上部署了用于进行对账管理的第一智能合约;所述区块链中关联存证了由存在业务合作的多方用户分别提供的对账信息;所述装置包括:
获取单元402,用于获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与所述多方用户中的其它用户之间的目标业务对应的第一对账信息;
查询单元404,用于响应于所述存证请求,调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;
对账单元406,用于响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
在本实施例中,所述区块链上还部署了用于生成对账信息的第二智能合约;所述第二智能合约包含供所述第一用户本地调用的生成逻辑;所述获取单元402,还用于:
获取所述第一用户提交的用于生成与所述目标业务对应的第一对账信息的生成请求;其中,所述生成请求中包括由所述第一用户提供的与所述目标业务相关的业务数据;
所述装置还包括:
生成单元,用于响应于所述生成请求,发起针对所述第二智能合约所包含的生成逻辑的本地调用,基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一对账内容的hash值,进一步生成与所述目标业务对应的所述第一对账信息。
在本实施例中,所述多方用户在所述区块链上分别注册了数字身份;所述生成请求中还包括与所述第一用户对应的第一数字身份标识和与所述其他用户对应的第二数字身份标识;所述生成单元,具体用于:
基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一数字身份标识和所述第二数字身份标识,为所述第一用户和所述其他用户生成合作标识;其中,所述合作标识用于指示所述第一用户和所述其他用户针对所述目标业务的对账者身份;
基于所述第一对账内容的hash值和所述合作标识,进一步生成与所述目标业务对应的所述第一对账信息。
在本实施例中,所述生成请求中还包括所述第一用户与所述其他用户约定的对账标识;其中,所述对账标识用于唯一标识所述目标业务;所述生成单元,具体用于:
基于所述第一对账内容的hash值、所述合作标识、和所述对账标识,进一步生成与所述目标业务对应的所述第一对账信息。
在本实施例中,所述目标业务包括多个对账阶段;与所述目标业务中的多个对账阶段分别对应的对账信息,按照与所述对账信息的时间戳对应的时刻顺序,被组织为多级存储结构,关联存证在所述第一智能合约对应的存储空间中。
在本实施例中,所述多级存储结构包括列表。
在本实施例中,所述查询单元404,具体用于:
在所述第一智能合约对应的存储空间中遍历所述多级存储结构,查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。
在本实施例中,所述对账信息还包括用于指示对账阶段的阶段标识;所述查询单元404,具体用于:
查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息;
在查询到的与所述第一对账信息具有相同的合作标识和对账标识的对账信息中,进一步查询与所述第一对账信息具有相同的阶段标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。
在本实施例中,所述装置还包括:
存证单元,用于如果所述区块链中未存证所述第一对账信息,则将所述第一对账信息写入所述多级存储结构,以将所述第一对账信息与所述区块链中已存证的由所述其他用户提供的与所述目标业务对应的第二对账信息进行关联存证。
在本实施例中,所述存证单元,还用于:
响应于将所述第一对账信息写入所述多级存储结构,生成与所述第一对账信息对应的写入成功事件,并将生成的写入成功事件存储至所述区块链,以使与所述其他用户对应的客户端响应于从所述区块链上获取到所述写入成功事件,向所述其他用户输出用于指示所述其他用户提供与所述目标业务对应的第二对账信息的提示信息。
在本实施例中,所述对账单元406,具体用于:
确定所述第一对账信息中包括的所述第一对账内容的hash值,与所述第二对账信息中包括的第二对账内容的hash值是否一致;
如果一致,则针对所述第一对账信息与所述第二对账信息对账校验通过。
在本实施例中,所述对账单元406,还用于:
如果针对所述第一对账信息与所述第二对账信息对账校验通过,则针对关联存证在所述智能合约对应的存储空间中的与所述目标业务对应的对账信息,删除由所述第一用户在与所述第一对账信息的时间戳对应的第一时刻之前提供的对账信息,以及,删除由所述其他用户在与所述第二对账信息的时间戳对应的第二时刻之前提供的对账信息。
在本实施例中,所述对账单元406,还用于:
响应于生成与所述目标业务对应的对账成功记录,生成与所述目标业务对应的对账成功事件,并将生成的对账成功事件存储至所述区块链,以使与所述其他用户对应的客户端响应于从所述区块链上获取到所述对账成功事件,向所述其他用户输出用于指示对账成功的提示信息。
在本实施例中,所述装置还包括验证单元,用于:
获取由所述第一用户提供的与所述目标业务相关的待验证数据;
在所述区块链中查找与所述目标业务对应的对账成功记录,并确定查找到的对账成功记录与由所述第一用户提供的待验证数据是否匹配;
如果是,则确定针对所述待验证数据的真实性验证通过。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (17)
1.一种基于区块链的对账方法,所述区块链上部署了用于进行对账管理的第一智能合约;所述区块链中关联存证了由存在业务合作的多方用户分别提供的对账信息;所述方法包括:
获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与所述多方用户中的其它用户之间的目标业务对应的第一对账信息;
响应于所述存证请求,调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;
响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
2.根据权利要求1所述的方法,所述区块链上还部署了用于生成对账信息的第二智能合约;所述第二智能合约包含供所述第一用户本地调用的生成逻辑;
所述获取第一用户提交的存证请求之前,所述方法还包括:
获取所述第一用户提交的用于生成与所述目标业务对应的第一对账信息的生成请求;其中,所述生成请求中包括由所述第一用户提供的与所述目标业务相关的业务数据;
响应于所述生成请求,发起针对所述第二智能合约所包含的生成逻辑的本地调用,基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一对账内容的hash值,进一步生成与所述目标业务对应的所述第一对账信息。
3.根据权利要求2所述的方法,所述多方用户在所述区块链上分别注册了数字身份;所述生成请求中还包括与所述第一用户对应的第一数字身份标识和与所述其他用户对应的第二数字身份标识;
所述基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一对账内容的hash值,进一步生成与所述目标业务对应的所述第一对账信息,包括:
基于由所述第一用户提供的与所述目标业务相关的业务数据,生成与所述目标业务对应的所述第一对账内容,并基于所述第一数字身份标识和所述第二数字身份标识,为所述第一用户和所述其他用户生成合作标识;其中,所述合作标识用于指示所述第一用户和所述其他用户针对所述目标业务的对账者身份;
基于所述第一对账内容的hash值和所述合作标识,进一步生成与所述目标业务对应的所述第一对账信息。
4.根据权利要求3所述的方法,所述生成请求中还包括所述第一用户与所述其他用户约定的对账标识;其中,所述对账标识用于唯一标识所述目标业务;
所述基于所述第一对账内容的hash值和所述合作标识,进一步生成与所述目标业务对应的所述第一对账信息,包括:
基于所述第一对账内容的hash值、所述合作标识、和所述对账标识,进一步生成与所述目标业务对应的所述第一对账信息。
5.根据权利要求1所述的方法,所述目标业务包括多个对账阶段;与所述目标业务中的多个对账阶段分别对应的对账信息,按照与所述对账信息的时间戳对应的时刻顺序,被组织为多级存储结构,关联存证在所述第一智能合约对应的存储空间中。
6.根据权利要求5所述的方法,所述多级存储结构包括列表。
7.根据权利要求5所述的方法,所述在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息,包括:
在所述第一智能合约对应的存储空间中遍历所述多级存储结构,查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。
8.根据权利要求7所述的方法,所述对账信息还包括用于指示对账阶段的阶段标识;
所述查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息,包括:
查询与所述第一对账信息具有相同的合作标识和对账标识的对账信息;
在查询到的与所述第一对账信息具有相同的合作标识和对账标识的对账信息中,进一步查询与所述第一对账信息具有相同的阶段标识的对账信息,作为与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息。
9.根据权利要求8所述的方法,所述方法还包括:
如果所述区块链中未存证所述第一对账信息,则将所述第一对账信息写入所述多级存储结构,以将所述第一对账信息与所述区块链中已存证的由所述其他用户提供的与所述目标业务对应的第二对账信息进行关联存证。
10.根据权利要求9所述的方法,所述方法还包括:
响应于将所述第一对账信息写入所述多级存储结构,生成与所述第一对账信息对应的写入成功事件,并将生成的写入成功事件存储至所述区块链,以使与所述其他用户对应的客户端响应于从所述区块链上获取到所述写入成功事件,向所述其他用户输出用于指示所述其他用户提供与所述目标业务对应的第二对账信息的提示信息。
11.根据权利要求8所述的方法,所述针对所述第一对账信息和与所述第二对账信息进行对账校验,包括:
确定所述第一对账信息中包括的所述第一对账内容的hash值,与所述第二对账信息中包括的第二对账内容的hash值是否一致;
如果一致,则针对所述第一对账信息与所述第二对账信息对账校验通过。
12.根据权利要求11所述的方法,所述方法还包括:
如果针对所述第一对账信息与所述第二对账信息对账校验通过,则针对关联存证在所述智能合约对应的存储空间中的与所述目标业务对应的对账信息,删除由所述第一用户在与所述第一对账信息的时间戳对应的第一时刻之前提供的对账信息,以及,删除由所述其他用户在与所述第二对账信息的时间戳对应的第二时刻之前提供的对账信息。
13.根据权利要求1所述的方法,所述方法还包括:
响应于生成与所述目标业务对应的对账成功记录,生成与所述目标业务对应的对账成功事件,并将生成的对账成功事件存储至所述区块链,以使与所述其他用户对应的客户端响应于从所述区块链上获取到所述对账成功事件,向所述其他用户输出用于指示对账成功的提示信息。
14.根据权利要求1所述的方法,所述方法还包括:
获取由所述第一用户提供的与所述目标业务相关的待验证数据;
在所述区块链中查找与所述目标业务对应的对账成功记录,并确定查找到的对账成功记录与由所述第一用户提供的待验证数据是否匹配;
如果是,则确定针对所述待验证数据的真实性验证通过。
15.一种基于区块链的对账装置,所述区块链上部署了用于进行对账管理的第一智能合约;所述区块链中关联存证了由存在业务合作的多方用户分别提供的对账信息;所述装置包括:
获取单元,用于获取第一用户提交的存证请求;其中,所述存证请求包括由所述第一用户提供的与所述多方用户中的其它用户之间的目标业务对应的第一对账信息;
查询单元,用于响应于所述存证请求,调用所述第一智能合约所包含的查询逻辑,确定所述区块链中是否存证了所述第一对账信息;如果所述区块链中存证了所述第一对账信息,则在所述区块链中查询与所述第一对账信息关联存证的由所述其它用户提供的与所述目标业务对应的第二对账信息;
对账单元,用于响应于查询到与所述第一对账信息关联存证的所述第二对账信息,进一步调用所述第一智能合约所包含的对账逻辑,针对所述第一对账信息与所述第二对账信息进行对账校验;如果针对所述第一对账信息与所述第二对账信息对账校验通过,则对在所述区块链中关联存证的所述第一对账信息与所述第二对账信息进行信息合并,以生成与所述目标业务对应的对账成功记录。
16.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至14任一项所述的方法。
17.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210514072.2A CN114971827A (zh) | 2022-05-11 | 2022-05-11 | 一种基于区块链的对账方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210514072.2A CN114971827A (zh) | 2022-05-11 | 2022-05-11 | 一种基于区块链的对账方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114971827A true CN114971827A (zh) | 2022-08-30 |
Family
ID=82980683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210514072.2A Pending CN114971827A (zh) | 2022-05-11 | 2022-05-11 | 一种基于区块链的对账方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114971827A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774885A (zh) * | 2023-01-29 | 2023-03-10 | 成方金融科技有限公司 | 基于同态加密的对账方法、装置、电子设备和存储介质 |
CN115880088A (zh) * | 2023-02-14 | 2023-03-31 | 布比(北京)网络技术有限公司 | 账务处理方法、接入服务器、节点服务器及账务处理系统 |
CN117333184A (zh) * | 2023-09-20 | 2024-01-02 | 金网络(北京)数字科技有限公司 | 一种基于区块链的供应链对账方法、系统及存储介质 |
CN117333184B (zh) * | 2023-09-20 | 2024-05-14 | 金网络(北京)数字科技有限公司 | 一种基于区块链的供应链对账方法、系统及存储介质 |
-
2022
- 2022-05-11 CN CN202210514072.2A patent/CN114971827A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774885A (zh) * | 2023-01-29 | 2023-03-10 | 成方金融科技有限公司 | 基于同态加密的对账方法、装置、电子设备和存储介质 |
CN115880088A (zh) * | 2023-02-14 | 2023-03-31 | 布比(北京)网络技术有限公司 | 账务处理方法、接入服务器、节点服务器及账务处理系统 |
CN117333184A (zh) * | 2023-09-20 | 2024-01-02 | 金网络(北京)数字科技有限公司 | 一种基于区块链的供应链对账方法、系统及存储介质 |
CN117333184B (zh) * | 2023-09-20 | 2024-05-14 | 金网络(北京)数字科技有限公司 | 一种基于区块链的供应链对账方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020261982B2 (en) | Extracting data from a blockchain network | |
US11088854B2 (en) | Securing blockchain access through a gateway on behalf of a communication device | |
JP2023532959A (ja) | 許可制ブロックチェーンのためのプライバシー保護アーキテクチャ | |
CN112287034B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
US20220191026A1 (en) | Self-sovereign data access via bot-chain | |
CN112287033B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN114971827A (zh) | 一种基于区块链的对账方法、装置、电子设备及存储介质 | |
US20220094560A1 (en) | Integrating Device Identity Into A Permissioning Framework Of A Blockchain | |
US11361324B2 (en) | Blockchain-issued verifiable credentials for portable trusted asset claims | |
US11943360B2 (en) | Generative cryptogram for blockchain data management | |
CN115130075A (zh) | 一种数字签章方法、装置、电子设备及存储介质 | |
US11818206B2 (en) | Visibility of digital assets at channel level | |
CN112036876A (zh) | 基于元数据的背书 | |
US20220311595A1 (en) | Reducing transaction aborts in execute-order-validate blockchain models | |
US11782823B2 (en) | Automatically capturing weather data during engineering tests | |
CN115129275A (zh) | 一种数字文件打印方法、装置、电子设备及存储介质 | |
CN114781004B (zh) | 基于区块链的数据存证方法、装置、电子设备及存储介质 | |
US20220255990A1 (en) | Topological ordering of blockchain associated proposals | |
CN113987566B (zh) | 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 | |
CN113987568B (zh) | 基于Hyperledger Fabric的基础跨链方法、装置、设备和介质 | |
CN112837043B (zh) | 基于区块链的数据处理方法、装置及电子设备 | |
US11683173B2 (en) | Consensus algorithm for distributed ledger technology | |
CN113987071A (zh) | 基于Hyperledger Fabric的外部桥接跨链方法、装置、设备和介质 | |
CN115204870A (zh) | 区块链应用的管理方法、装置、计算机设备和存储介质 | |
CN115129276A (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 |