CN111861481A - 一种区块链对账方法和系统 - Google Patents
一种区块链对账方法和系统 Download PDFInfo
- Publication number
- CN111861481A CN111861481A CN202011001644.4A CN202011001644A CN111861481A CN 111861481 A CN111861481 A CN 111861481A CN 202011001644 A CN202011001644 A CN 202011001644A CN 111861481 A CN111861481 A CN 111861481A
- Authority
- CN
- China
- Prior art keywords
- account
- data
- reconciliation
- account data
- blockchain
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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
Abstract
本说明书实施例公开了一种区块链对账方法和系统。所述方法由区块链的节点执行,其包括:接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
Description
技术领域
本说明书涉及信息技术领域,特别涉及一种区块链对账方法和系统。
背景技术
人工对账存在效率低、对账不及时的问题。目前,希望提供一种高效及时的对账方案。
发明内容
本说明书实施例之一提供一种区块链对账方法,其中,所述方法由区块链的节点执行,其包括:接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
本说明书实施例之一提供一种区块链对账系统,其中,所述系统由区块链的节点上实现,其包括:接收模块,用于接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;对账模块,用于:根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
本说明书实施例之一提供一种区块链对账方法,其中,所述方法由区块链的节点执行,其包括:接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;判断所述对账交易是否满足对账约束条件,若满足则执行:根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
本说明书实施例之一提供一种区块链对账系统,其中,所述方法由区块链的节点执行,其包括接收模块和对账模块;所述接收模块用于接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;所述对账模块用于判断所述对账交易是否满足对账约束条件,若满足则执行:根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
本说明书实施例之一提供一种区块链对账装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的区块链对账方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图;
图2是根据本说明书一些实施例所示的对账流程的交互示意图;
图3是根据本说明书一些实施例所示的区块链对账系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。如图1所示,区块链系统100可以包括区块链网络110、用户端120以及网络130。
区块链网络110可以包括多个区块链节点,如节点110-1、节点110-2、节点110-3、...、110-n节点。
在区块链系统100中,期望的代码可以通过交易触发执行。任一区块链节点(以下简称节点)可以生成触发特定代码执行的交易,并在区块链网络110中广播该交易,即发起交易,以使各节点接收到交易后执行(调用)该代码(也可视为该交易的执行)。例如,为了解决对账问题,可以在区块链系统100中写入包含对账流程的代码,进而任一对账方的节点可通过广播对账交易,使得各节点接收到对账交易后调用包含对账流程的代码,相比人工对账更加高效、及时。在一些实施例中,各节点可以并行处理多个交易,以进一步提高处理效率。可以理解,对账交易中可包含对账所需信息,如发起该对账交易的对账方的标识、发起该对账交易的对账方的账目数据、要核对的账目数据的标识等等。
为了证明交易的来源和完整性,交易可包括利用交易发起方的私钥对交易内容(作为签名消息)生成的数字签名。如此,接收到交易的节点可以通过验证数字签名来确认交易的来源和交易是否经过篡改。
共识机制是区块链系统正常运行的必要组件,用于保证各节点保存的区块链数据维持一致。多个节点可以通过运行共识协议,对接收(对应代码的输入)、产生(对应代码的输出或中间结果)的数据和/或执行的操作达成一致,参与共识的节点可称为共识节点。例如,接收到对账交易的多个共识节点可以通过运行共识协议,对产生的对账结果达成一致。又如,对于新区块涉及的多个交易,各共识节点可以通过运行共识协议对所述多个交易的执行顺序达成一致。
区块链数据(也可称为链上数据)可包括通过共识的区块数据和状态数据(也可称为全局状态或世界状态),区块链数据的写入也被叫作上链。其中,区块数据包括持续生成且按时序链接的区块,各共识节点可通过运行共识协议将新区块上链。共识通过意味着每个共识节点可将相同的新区块写入区块数据。仅作为示例,在一些实施例中,共识通过的条件包括超过预设比例(如2/3)的共识节点同意将新区块上链。状态数据可包括关联于各账户的状态变量,例如,个人、组织控制的外部账户的余额,又如,合约账户的合约状态。
在一些实施例中,交易触发执行的代码可通过智能合约技术被部署到区块链系统100中。开发者可以编写代码,将代码转化成机器可执行的形式(如字节码),节点可以生成智能合约部署(创建)交易并在区块链网络110中发起广播,以使各共识节点将机器可执行的代码(即智能合约)上链,即部署智能合约。可以理解,智能合约部署交易可包含要部署的智能合约。
智能合约上链后,任一(共识)节点可在本地的区块链数据中调用该智能合约,智能合约的调用可被智能合约调用交易触发,即共识节点接收到区块链网络110中广播的智能合约调用交易后在本地的区块链数据中调用相应的智能合约。在一些实施例中,每个智能合约可对应一个账户(可称为合约账户),类似于个人、组织控制的外部账户,合约账户可具有其标识(即账户地址)。对于任一智能合约,共识节点可通过合约账户的地址访问该智能合约的账户存储,其中,账户存储包括合约代码(机器可执行形式)和合约状态。账户存储中的合约状态包括智能合约影响的状态变量。例如,对于一份包含转账流程的智能合约,其账户存储中的合约状态可以包括各账户的资产余额。
可以理解,对账也可通过智能合约技术实现。首先,可以在区块链系统100中部署包含对账流程的智能合约(以下简称对账合约)。对账合约的基本功能可包括比较对账双方的账目数据以获得对账结果。
在一些实施例中,对账合约可以包括对账约定信息,由于区块链公开透明的特性,对账双方可以从区块链数据中获取对账合约中的对账约定信息,并自觉遵守约定。
例如,对账约定信息可以指示账目数据各属性的格式、顺序。其中,账目数据的属性可包括时间、金额、商品标识(ID)等等。以日期2020年8月6日为例,该日期可被记录为“2020-8-6”、“2020-08-06”、“2020/8/6”、“2020/08/06”、“8-6-2020”、“08-06-2020”、“8/6/2020”、“08/06/2020”等中的任一个,对账双方需要将账目数据中的日期转换成同一格式。另外,对账方之间也可以通过人为沟通的方式约定账目数据各属性的格式、顺序。
在一些实施例中,对账合约中可以包括对账约束信息。
例如,对账合约中的对账约束信息可以包括对账的有效时间。在一些实施例中,可以通过对账合约的代码逻辑限制只有在预设时间段内调用对账合约才会执行对账,否则可终止对账。基于此,可以部署用于在不同时间段执行对账的多份对账合约。具体地,可将一天划分为上午和下午,相应地部署用于在上午执行对账的对账合约和用于在下午执行对账的对账合约,即可以通过分时间批次执行对账来避免节点在同一时间运行过多对账进程导致处理性能下降。在又一些实施例中,可以通过对账合约的代码逻辑限制对账合约只在账目数据的生成时间在预设时间段内时,才会执行对账。基于此,可以部署用于核对不同时间段(类似地,上午和下午)产生的账目数据的多份对账合约,以在一定程度上自动实现对账任务均衡,提高区块链的整体对账效率。
又如,对账约束信息可以包括合法对账方的账户地址集合(列表),即通过对账合约的代码逻辑限制只有用属于预设账户地址集合的账户发起对账交易的,在调用对账合约时才会执行对账,否则可终止对账。
在一些实施例中,对账合约中可以包括其他信息,如合约部署(创建)方的标识(账户地址)、合约名称、合约描述信息等等。
关于对账流程的更多细节,还可以参考图2及其相关描述。
用户端120可以是使用区块链服务的业务端,其可以通过网络130与区块链网络110中的某一节点具有通信连接。在一些实施例中,用户端120可以发起交易,并通过网络130传输给区块链节点,接收到交易的节点可以在区块链网络中广播该交易,以便区块链中的其他节点一同完成该交易的执行。在一些实施例中,所述区块链节点还可以将交易执行结果返回给用户端。
在一些实施例中,用户端120也可以直接集成在某一区块链节点上。换句话说,用户端120可以作为节点加入区块链网络110中。在一些实施例中,对账方的用户端120可以作为不参与共识的普通节点加入区块链网络110,也可以作为共识节点加入区块链网络110。无论以哪种方式加入区块链网络110,对账方的用户端120可生成对账交易并在区块链网络110中广播,以使各(共识)节点接收到对账交易后执行对账。
在一些实施例中,用户端120/区块链网络110中的节点可以包括各类计算设备,如膝上型计算机、台式计算机、服务器等等。其中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
网络130连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络130可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。可以理解,网络130与区块链网络110不必具有明显的分界,在更一般的应用场景中,区块链节点与普通网络节点可以共同接入同一物理网络中,其中的区块链节点在逻辑上构成区块链网络。
图2是根据本说明书一些实施例所示的区块链对账流程的交互示意图。该对账流程涉及第一对账方、链上和链下。第一对账方可以是对账双方中的任一方,第二对账方为对账双方中的另一方。
如图2所示,第一对账方可以生成对账交易并在区块链网络中广播,该对账交易可包括账目标识和第一对账方的第一账目数据。任一共识节点接收到来自第一对账方的对账交易后,可根据对账交易中的账目标识在本地的区块链数据中(即链上)查询第二对账方的第二账目数据。若在链上未查询到第二对账方的第二账目数据,则从区块链外部(链下/跨链)获取第二对账方的第二账目数据。进而,共识节点可比较第一账目数据和第二账目数据,以获得对账结果。
如此,无论在对账双方中任一方发起对账交易之前对账双方中另一方是否已将账目数据上链,对账流程都不会因缺少对账双方中另一方的账目数据而无法继续进行。
应当理解,跨链可以指从其他区块链系统获取数据,也可以指区块链外部的中心化系统获取数据。仅作为示例,跨链技术可以包括公证人机制(Notary schemes)、侧链/中继(Sidechains/Relays)、哈希锁定(Hash-locking)、分布式私钥控制(Distributedprivate key control)等等。
共识节点可以将账目数据的跨链路由预先写入本地的区块链数据,以备跨链获取账目数据。账目数据的跨链路由至少包括该账目数据所在链外系统相关的标识。例如,对于中心化系统,所述链外系统相关的标识可以包括所述链外系统的URL(Uniform ResourceLocator,统一资源定位器)。对于区块链系统,所述链外系统相关的标识可以包括所述区块链系统的标识,在一些实施例中,所述链外系统相关的标识还可以包括账户标识(如合约账户的标识),其中,该账户的账户存储包含账目数据,例如,账目标识为键、账目数据为值的键值对。
跨链路由可以以键值对的形式写入对账合约的账户存储。其中,跨链路由的键可以包括对账方的账户标识,值可以包括该对账方对应的其他对账方(组成对账双方,其他对账方可以是链外系统)相关的标识。在一些实施例中,一个对账方可以对应多个对账方,这些对账方持有相同账目标识对应的账目数据,因此一个对账方与其中任一其他对账方进行对账即可。另外,跨链路由的键还可以包括对账双方账目数据所属的业务类型,跨链路由的值还可以包括所述至少两个其他对账方的账目数据的获取优先级、输入参数描述信息、输出参数描述信息等。这里的输入/输出参数是指用于跨链获取账目数据的资源定位请求相关的输入/输出参数,输入参数可以包括账目标识,输出参数描述信息可以包括对链外系统返回(跨链获取)的账目数据的格式(如字段)的说明。
接收到对账交易的共识节点可以在区块链数据中查询第二账目数据的跨链路由,以生成用于获取第二账目数据的资源定位请求,所述资源定位请求至少包括所述第二账目数据所在链外系统相关的标识和所述第二账目数据的账目标识。由于账目数据的跨链路由可以反映该账目数据所在链外系统,共识节点可以根据第二账目数据的跨链路由识别第二账目数据所在链外系统,进而按照第二账目数据所在链外系统的规范(标准)生成第二账目数据的资源定位请求。当然,账目数据的跨链路由也可以反映该账目数据所在链外系统的类型,共识节点可以根据第二账目数据的跨链路由判断第二账目数据所在链外系统的类型,进而根据第二账目数据所在链外系统的类型跨链获取第二账目数据。
若第二账目数据所在的链外系统为中心化系统,则执行对账的共识节点可以将所述资源定位请求写入区块链数据,以使第二账目数据所在的链外系统能够所在获得从区块链数据中监测到的所述资源定位请求。具体地,共识节点可以将包含所述资源定位请求的交易写入区块并向链外系统提供区块标识。链外系统根据该区块标识获取区块后从区块中读取所述资源定位请求,响应于所述资源定位请求获取第二账目数据并将其返回给执行对账的共识节点。值得说明的是,区块链系统无法直接对中心化系统进行请求,但中心化系统可以作为区块链系统中的用户端查询区块链数据,因此将所述资源定位请求写入区块链数据可使外部的中心化系统获取到并响应所述资源定位请求。其中,所述资源定位请求可以以跨链交易的方式写入区块,中心化系统可以识别区块中的跨链交易,进而对跨链交易中的资源定位请求做出响应。
在一些实施例中,执行对账的共识节点可以调用跨链服务。其中,提供跨链服务的系统(跨链服务系统,以下简称跨链服务)可以既是区块链系统100的用户端,又是第二账目数据所在中心化系统的用户端。跨链服务可以作为区块链系统100的用户端持续在新产生的区块链数据中监测资源定位请求,例如,持续获取新区块并识别新区块中的跨链交易以获取资源定位请求。进而,跨链服务可以作为第二账目数据所在中心化系统的用户端,将从区块链数据中监测到的资源定位请求转发给该中心化系统。接收到该中心化系统响应于资源定位请求发来的第二账目数据后,跨链服务可以将第二账目数据返回给执行对账的共识节点。
若第二账目数据所在的链外系统为区块链系统,即第二方的账目数据存储于其他区块链系统,则执行对账的共识节点可以将所述资源定位请求发送给第二账目数据所在的链外系统。具体地,接收到对账交易的共识节点可以作为其他区块链系统的用户端,向其他区块链网络中的共识节点发送包含所述资源定位请求的数据查询交易。其他区块链系统中的共识节点可基于所述资源定位请求在本地的区块链数据中查询第二账目数据并将其返回给接收到对账交易的共识节点。根据前述内容,所述资源定位请求可以包括第二账目数据所写入的账户存储对应的账户标识以及第二账目数据的账目标识,则其他区块链系统中的共识节点可基于所述资源定位请求中的账户标识以及账目标识确定关联的第二账目数据。
在一些实施例中,跨链服务还可以是其他区块链系统的用户端。即,跨链服务还可以在执行对账的区块链系统和提供第二账目数据的区块链系统之间转发资源定位请求以及第二账目数据。参考前述内容,无需判断第二账目数据所在链外系统的类型,执行对账的共识节点可以直接将所述资源定位请求写入区块链数据。无论第二账目数据位于区块链系统还是中心化系统,跨链服务都可以从区块链数据中监测资源定位请求,基于监测到的资源定位请求从链外系统获取第二账目数据,并将第二账目数据返回给执行对账的共识节点。
值得说明的是,第二账目数据可以通过交易的方式返回至执行对账的共识节点,该交易还可携带第一账目数据和第二账目数据公有的账目标识。在此之前,第一账目数据可以已经由执行对账的共识节点将其与对账交易中的账目标识关联并写入区块链数据。如此,执行对账的共识节点接收到链外系统返回的第二账目数据及账目标识后,可以在区块链数据中查询关联于该账目数据的第一账目数据,进而可以比较第一账目数据和第二账目数据。
为了证明数据来源和完整性,即证明数据真实性(确实来自相应链外系统且未被篡改),链外系统可以将第二账目数据及其数字签名一并返回给执行对账的共识节点。共识节点接收到第二账目数据及其数字签名后,可验证数字签名,若通过验证,则对接收到的第二账目数据解析以将来自链外的第二账目数据转换成满足本链规范(标准)的格式,并比较第一账目数据和转换格式后的第二账目数据。在一些实施例中,共识节点可以根据跨链路由中的出参说明解析来自链外的第二账目数据。
在一些实施例中,来自第一对账方的对账交易还可以包括第二账目数据的地址,如此共识节点可以根据对账交易中第二账目数据的地址获取第二对账方的账目数据。
共识节点可以通过调用数据获取接口跨链获取数据。例如,接收到对账交易的共识节点可以确定第二账目数据的地址,进而基于第二账目数据的地址和对账交易中的账目标识,通过调用预言机接口从区块链外部的中心化数据库获取第二账目数据。预言机(Oracle Machine)是一种抽象电脑,用来研究决定型问题。可以被视为一个多了个黑盒子(预言者)的图灵机,这个黑盒子的功能是可以在单一运算之内解答特定问题。预言者可以解答的问题,根据给定可以是任何复杂度类之内的问题。预言机接口则可理解预言机提供的API,调用预言机接口可以通过预言机从区块链外部的中心化数据库获取第二账目数据,具体地,预言机和数据库之间可以通过HTTP通讯协议进行数据交换。
在一些场景下,共识节点可以将来自任一对账方的对账交易中的账目标识和账目数据关联并写入区块链数据。如此,无论对账双方中哪一方的账目数据先被写入区块链数据,接收到对账双方中另一方的对账交易的共识节点都可以在区块链数据中查询到在先写入的账目数据,并获得指示对账双方提交的账目数据是否一致的对账结果。在一些实施例中,共识节点可以将来自任一对账方的对账交易中的账目标识和账目数据关联并写入节点本地的状态数据中。
在一些场景下,对账双方中可以包括希望拿到对账结果的对账主动方和只需提交己方账目数据的对账被动方。接收到来自对账被动方的对账交易的共识节点可将对账交易中的账目标识和对账被动方的账目数据关联并写入区块链数据,以备接收到来自对账主动方的对账交易的共识节点可根据对账交易中的账目标识在区块链数据中查询对账被动方的账目数据。即,接收到来自对账主动方的对账交易的共识节点可以只缓存对账交易中对账主动方的账目数据,而不将对账主动方的账目数据写入区块链数据。
在一些实施例中,共识节点可以将获得的核对结果返回给对账方的用户端。在一些实施例中,接收到对账交易的共识节点可以将对账交易中的账目标识和获得的对账结果关联并写入区块链数据。在一些实施例中,共识节点可以将对账交易中的账目标识和获得的对账结果关联并写入节点本地的状态数据中。如此,任一对账方的用户端可以根据账目标识获取上链的对账结果。可以理解,若对账方的用户端以作为不参与共识的普通节点加入区块链网络,则可生成包含账目标识的查询交易并在区块链网络中广播,以使共识节点接收到交易后根据交易中的账目标识在本地的区块链数据中读取关联的对账结果并返回给对账方的用户端。若对账方的用户端以作为不参与共识的普通节点加入区块链网络,则可自行根据账目标识在本地的区块链数据中读取关联的对账结果。
在一些实施例中,共识节点可以基于判断对账交易是否满足对账条件。若满足,则接收到来自对账双方中任一方的对账交易的共识节点可执行对账,即获取对账双方中另一方的账目数据并比较对账双方的账目数据。否则,共识节点可终止对账。
在一些实施例中,对账交易还可以包括账目数据的时间戳。接收到对账交易的共识节点可以基于账目数据的时间戳确定账目产生时间,进而判断账目产生时间是否在预设时间段(例如,上午/下午)内,若是,则确定对账交易满足对账约束条件。
在一些实施例中,对账交易还可以包括该对账交易的时间戳。接收到对账交易的共识节点可以基于对账交易的时间戳确定对账时间,进而判断对账时间是否在预设时间段(例如,上午/下午)内,若是,则确定对账交易满足对账约束条件。
在一些实施例中,对账交易还可以包括对账方的账户地址。接收到对账交易的共识节点可以判断对账方的账户地址是否属于预设账户地址集合,若是,则确定对账交易满足对账约束条件。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图3是根据本说明书一些实施例所示的区块链对账系统的模块图。系统300可以在区块链节点(共识节点)上实现。如图3所示,系统300可以包括接收模块310和对账模块320。
接收模块310可以用于接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据。
对账模块320可以用于:根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
在一些实施例中,对账模块320可以用于判断所述对账交易是否满足对账约束条件,若满足则执行对账,即获取第二对账方的账目数据并比较对账双方的账目数据。否则,对账模块320可以终止对账。
应当理解,图3所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,对账模块320可以是一个模块,也可以由多个模块,如用于获取第二对账方的账目数据的查询模块、用于比较对账双方的账目数据的比较模块和用于确定对账结果的确定模块,来实现这一个模块的功能。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)无论在对账双方中任一方发起对账交易之前对账双方中另一方是否已将账目数据上链,对账流程都不会因缺少对账双方中另一方的账目数据而无法继续进行;(2)相比人工对账更加高效、及时;(3)部署对应于不同对账约束条件的多份智能合约,通过分批次执行对账来避免节点在同一时间运行过多对账进程导致处理性能下降,或者以在一定程度上自动实现对账任务均衡,提高区块链的整体对账效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (20)
1.一种区块链对账方法,其中,所述方法由区块链节点执行,其包括:
接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;
根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;
若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;
比较所述第一账目数据和所述第二账目数据,以获得对账结果。
2.如权利要求1所述的方法,其中,还包括:
将所述对账交易中的账目标识和第一账目数据关联并写入区块链数据。
3.如权利要求1或2所述的方法,其中,所述从所述区块链外部获取所述第二账目数据,包括:
在区块链数据中查询所述第二账目数据的跨链路由,所述跨链路由至少包括所述第二账目数据所在链外系统相关的标识;
根据所述跨链路由确定所述第二账目数据所在的链外系统,并按照所述链外系统的规范生成用于获取所述第二账目数据的资源定位请求,所述资源定位请求至少包括所述链外系统相关的标识和所述账目标识;以及,
若所述链外系统为中心化系统,则将所述资源定位请求写入区块链数据,以使所述链外系统能够获得从区块链数据中监测到的所述资源定位请求,并接收所述链外系统返回的第二账目数据;
若所述链外系统为区块链系统,则将所述资源定位请求发送至所述链外系统,并接收所述链外系统返回的第二账目数据。
4.如权利要求1或2所述的方法,其中,所述从所述区块链外部获取所述第二账目数据,包括:
在区块链数据中查询所述第二账目数据的跨链路由,所述跨链路由至少包括所述第二账目数据所在链外系统相关的标识;
根据所述跨链路由确定所述第二账目数据所在的链外系统,并按照所述链外系统的规范生成用于获取所述第二账目数据的资源定位请求,所述资源定位请求至少包括所述链外系统相关的标识和所述账目标识;
将所述资源定位请求写入区块链数据,以使跨链服务系统能够获得从区块链数据中监测所述资源定位请求以及基于所述资源定位请求从所述链外系统获取第二账目数据,并接收所述链外跨链服务系统返回的第二账目数据。
5.如权利要求1所述的方法,其中,还包括:
将所述对账结果返回至所述第一对账方的用户端。
6.如权利要求1所述的方法,其中,还包括:
将所述账目标识和所述对账结果关联并写入区块链数据。
7.一种区块链对账系统,其中,所述系统由区块链的节点上实现,其包括:
接收模块,用于接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;
对账模块,用于:根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;比较所述第一账目数据和所述第二账目数据,以获得对账结果。
8.一种区块链对账装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求1~6中任一项所述的方法。
9.一种区块链对账方法,其中,所述方法由区块链的节点执行,其包括:
接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;
判断所述对账交易是否满足对账约束条件,若满足则执行:
根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;
若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;
比较所述第一账目数据和所述第二账目数据,以获得对账结果。
10.如权利要求9所述的方法,其中,所述对账交易还包括所述第一账目数据的时间戳;所述判断所述对账交易是否满足对账约束条件,包括:
基于所述时间戳确定账目产生时间;
判断所述账目产生时间是否在预设时间段内,若是,则确定所述对账交易满足对账约束条件。
11.如权利要求9所述的方法,其中,所述对账交易还包括所述对账交易的时间戳;所述判断所述对账交易是否满足对账约束条件,包括:
基于所述对账交易的时间戳确定对账时间;
判断所述对账时间是否在预设时间段内,若是,则确定所述对账交易满足对账约束条件。
12.如权利要求9所述的方法,其中,所述对账条件描述信息包括第一对账方的账户地址;所述基于所述对账条件描述信息判断所述对账交易是否满足对账约束条件,包括:
判断所述第一对账方的账户地址是否属于预设账户地址集合,若是,则确定所述对账交易满足对账约束条件。
13.如权利要求9所述的方法,其中,还包括:
若所述对账交易不满足对账约束条件,则终止对账。
14.如权利要求9所述的方法,其中,还包括:
将所述对账交易中的账目标识和第一账目数据关联并写入区块链数据。
15.如权利要求9或14所述的方法,所述从所述区块链外部获取所述第二账目数据,包括:
在区块链数据中查询所述第二账目数据的跨链路由,所述跨链路由至少包括所述第二账目数据所在链外系统相关的标识;
根据所述跨链路由确定所述第二账目数据所在的链外系统,并按照所述链外系统的规范生成用于获取所述第二账目数据的资源定位请求,所述资源定位请求至少包括所述链外系统相关的标识和所述账目标识;以及,
若所述链外系统为中心化系统,则将所述资源定位请求写入区块链数据,以使所述链外系统能够获得从区块链数据中监测到的所述资源定位请求,并接收所述链外系统返回的第二账目数据;
若所述链外系统为区块链系统,则将所述资源定位请求发送至所述链外系统,并接收所述链外系统返回的第二账目数据。
16.如权利要求9或14所述的方法,其中,所述从所述区块链外部获取所述第二账目数据,包括:
在区块链数据中查询所述第二账目数据的跨链路由,所述跨链路由至少包括所述第二账目数据所在链外系统相关的标识;
根据所述跨链路由确定所述第二账目数据所在的链外系统,并按照所述链外系统的规范生成用于获取所述第二账目数据的资源定位请求,所述资源定位请求至少包括所述链外系统相关的标识和所述账目标识;
将所述资源定位请求写入区块链数据,以使跨链服务系统能够获得从区块链数据中监测所述资源定位请求以及基于所述资源定位请求从所述链外系统获取第二账目数据,并接收所述链外跨链服务系统返回的第二账目数据。
17.如权利要求9所述的方法,其中,还包括:
将所述对账结果返回至所述第一对账方的用户端。
18.如权利要求9所述的方法,其中,还包括:
将所述账目标识和所述对账结果关联并写入区块链数据。
19.一种区块链对账系统,其中,所述方法由区块链的节点执行,其包括接收模块和对账模块;
所述接收模块用于接收来自第一对账方的对账交易,所述对账交易包括账目标识和所述第一对账方的第一账目数据;
所述对账模块用于判断所述对账交易是否满足对账约束条件,若满足则执行:
根据所述账目标识在区块链数据中查询第二对账方的第二账目数据,所述第二账目数据关联于所述账目标识;
若在区块链数据中未查询到所述第二账目数据,则从所述区块链外部获取所述第二账目数据;
比较所述第一账目数据和所述第二账目数据,以获得对账结果。
20.一种区块链对账装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求9~18中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011001644.4A CN111861481A (zh) | 2020-09-22 | 2020-09-22 | 一种区块链对账方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011001644.4A CN111861481A (zh) | 2020-09-22 | 2020-09-22 | 一种区块链对账方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111861481A true CN111861481A (zh) | 2020-10-30 |
Family
ID=72967696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011001644.4A Pending CN111861481A (zh) | 2020-09-22 | 2020-09-22 | 一种区块链对账方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111861481A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511621A (zh) * | 2020-11-26 | 2021-03-16 | 青岛海尔科技有限公司 | 数据发送方法及装置、存储介质、电子装置 |
CN112632039A (zh) * | 2020-12-31 | 2021-04-09 | 北京存金所贵金属有限公司 | 基于区块链的账本迁移方法、装置及设备 |
CN113220717A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据核验方法及装置、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110070359A (zh) * | 2019-03-19 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 基于区块链的数据核对系统、方法、计算设备及存储介质 |
CN111125785A (zh) * | 2019-12-23 | 2020-05-08 | 深圳前海星际同辉科技有限公司 | 基于区块链的对账方法、对账装置及可读存储介质 |
CN111192147A (zh) * | 2020-04-10 | 2020-05-22 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资金核对方法、装置、电子设备及介质 |
-
2020
- 2020-09-22 CN CN202011001644.4A patent/CN111861481A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110070359A (zh) * | 2019-03-19 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 基于区块链的数据核对系统、方法、计算设备及存储介质 |
CN111125785A (zh) * | 2019-12-23 | 2020-05-08 | 深圳前海星际同辉科技有限公司 | 基于区块链的对账方法、对账装置及可读存储介质 |
CN111192147A (zh) * | 2020-04-10 | 2020-05-22 | 支付宝(杭州)信息技术有限公司 | 基于区块链的资金核对方法、装置、电子设备及介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511621A (zh) * | 2020-11-26 | 2021-03-16 | 青岛海尔科技有限公司 | 数据发送方法及装置、存储介质、电子装置 |
CN112632039A (zh) * | 2020-12-31 | 2021-04-09 | 北京存金所贵金属有限公司 | 基于区块链的账本迁移方法、装置及设备 |
CN112632039B (zh) * | 2020-12-31 | 2024-04-12 | 北京存金所贵金属有限公司 | 基于区块链的账本迁移方法、装置及设备 |
CN113220717A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据核验方法及装置、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111861482B (zh) | 一种区块链对账方法和系统 | |
CN109191124B (zh) | 区块链网络、部署方法及存储介质 | |
CN109218079B (zh) | 一种区块链网络、部署方法及存储介质 | |
CN109325855B (zh) | 区块链网络、部署方法及存储介质 | |
CN109325854B (zh) | 区块链网络、部署方法及存储介质 | |
CN109189962B (zh) | 一种基于区块链的证照服务实现系统 | |
CN111163129B (zh) | 一种基于跨链网络的资源处理方法及装置 | |
CN111461723B (zh) | 基于区块链的数据处理系统及方法、装置 | |
CN111861481A (zh) | 一种区块链对账方法和系统 | |
CN110599095B (zh) | 基于区块链网络的危废处理方法及区块链网络的节点 | |
CN110838065A (zh) | 一种交易数据处理方法及装置 | |
CN112417049B (zh) | 一种基于区块链一体机的跨链交互方法与系统 | |
CN110581893B (zh) | 数据传输方法、装置、路由设备、服务器及存储介质 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN113505520A (zh) | 用于支持异构联邦学习的方法、装置和系统 | |
CN111950019A (zh) | 一种基于区块链的物联网访问控制系统及方法 | |
CN112162768A (zh) | 一种区块链升级方法和系统 | |
CN110955724A (zh) | 基于区块链的数据处理方法、装置、节点设备及存储介质 | |
CN113111125A (zh) | 一种基于区块链的业务存证方法 | |
CN111738853A (zh) | 一种基于区块链分布式系统的交易优化方法及装置 | |
CN115098528B (zh) | 业务处理方法、装置、电子设备及计算机可读存储介质 | |
CN116645061A (zh) | 基于区块链系统的报关数据处理方法和共识节点 | |
WO2023005500A1 (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN115018499A (zh) | 一种基于区块链的数字凭证发行方法、装置和系统 | |
CN112910835B (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 |