CN111144894A - Utxo处理方法及装置 - Google Patents
Utxo处理方法及装置 Download PDFInfo
- Publication number
- CN111144894A CN111144894A CN201911348549.9A CN201911348549A CN111144894A CN 111144894 A CN111144894 A CN 111144894A CN 201911348549 A CN201911348549 A CN 201911348549A CN 111144894 A CN111144894 A CN 111144894A
- Authority
- CN
- China
- Prior art keywords
- transaction
- utxo
- merged
- feedback
- address
- 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.)
- Granted
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/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例提供了一种用于处理区块链系统中的UTXO的方法,所述方法包括:第一交易地址确定作为合并交易对象地址的第二交易地址;第一交易地址基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易;所述第二交易地址响应于所述UTXO合并交易,发起UTXO合并回馈交易,所述UTXO合并回馈交易以所述第一交易地址为回馈交易对象地址;以及记账节点在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理,并在所述区块链系统中广播交易执行结果。
Description
技术领域
本说明书实施例涉及区块链技术领域,具体地,涉及用于处理区块链系统中的UTXO的方法及装置。
背景技术
UTXO是指未花费的交易输出(Unspent Transaction Output)。在基于UTXO的区块链系统(例如比特币系统)中,每笔交易包括输入和输出,交易的输入为该笔交易的资金来源,交易的输出表示该笔交易的资金去向。当用户以另一用户为交易对象发起交易时,该笔交易的交易输出将进入该另一用户的地址中,成为该另一用户的UTXO。用户可以用其地址中的UTXO来发起交易,用户可以从自己地址中的UTXO中选择一个或多个来组合出交易所需的金额。
在基于UTXO的区块链系统中,数据库中存储的是各个UTXO数据。当UTXO数量较多时,不仅会消耗大量的数据存储空间,还会增加交易过程中的验证运算量,因而会增加区块链节点的负担。
发明内容
鉴于上述,本说明书实施例提供了一种用于处理区块链系统中的UTXO的方法及装置。
根据本说明书的一个方面,提供了一种用于处理区块链系统中的UTXO的方法,所述方法包括:第一交易地址确定作为合并交易对象地址的第二交易地址;第一交易地址基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易;所述第二交易地址响应于所述UTXO合并交易,发起UTXO合并回馈交易,所述UTXO合并回馈交易以所述第一交易地址为回馈交易对象地址;以及记账节点在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理,并在所述区块链系统中广播交易执行结果。
可选的,在一个示例中,所述第一交易地址的各个UTXO可以具有UTXO有效期,所述待合并UTXO可以是基于所述各个UTXO的UTXO有效期确定的。
可选的,在一个示例中,所述UTXO有效期可以不小于预定阈值。
可选的,在一个示例中,所述方法还可以包括:所述第一交易地址基于预定删除条件,删除所述待合并UTXO。
可选的,在一个示例中,所述第一交易地址基于预定删除条件,删除所述待合并UTXO可以包括:所述第一交易地址删除所述待合并UTXO中的UTXO有效期期满的UTXO;或所述第一交易地址在接收到与所述UTXO合并交易匹配的UTXO合并回馈交易之后,删除所述待合并UTXO。
可选的,在一个示例中,所述UTXO合并交易的输出包括支付给所述交易对象的交易报酬。
可选的,在一个示例中,第一交易地址确定作为合并交易对象地址的第二交易地址可以包括以下中的任意一者:从所述区块链系统中随机选取一个交易地址以作为所述第二交易地址;选取在预定时间段内与所述第一交易地址交易次数最多的交易地址以作为所述第二交易地址;选取在第二预定时间段内成功生成的区块数量最多的区块链节点处的交易地址以作为所述第二交易地址;选取与所述第一交易地址所在的第一区块链节点连接的全量节点处的交易地址以作为所述第二交易地址。
可选的,在一个示例中,所述UTXO合并交易和所述UTXO合并回馈交易可以包括交易金额信息,记账节点在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行记账处理可以包括:基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配;以及在所述UTXO合并回馈交易与所述UTXO合并交易匹配时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理。
可选的,在一个示例中,所述UTXO合并交易可以包括合并交易奖励信息,以及基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配可以包括:所述UTXO合并回馈交易的交易金额信息为所述UTXO合并交易的交易金额信息与所述合并交易奖励信息之差时,确定所述UTXO合并回馈交易与所述UTXO合并交易匹配。
可选的,在一个示例中,所述UTXO合并交易和所述UTXO合并回馈交易还可以包括交易地址信息,基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配可以包括:基于所述UTXO合并交易和所述UTXO合并回馈交易的交易地址信息和交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
可选的,在一个示例中,所述记账节点处可以具有多个UTXO合并交易,所述多个UTXO合并交易中的每个UTXO合并交易和所述UTXO合并回馈交易还包括交易地址信息,所述方法还可以包括:基于所述交易地址信息,从所述多个UTXO合并交易中找出所述UTXO合并回馈交易对应的UTXO合并交易,以及基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配可以包括:基于所找出的UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
可选的,在一个示例中,所述UTXO合并交易可以包括第一检索标识,所述UTXO合并回馈交易可以包括第二检索标识,所述第一检索标识可以是基于UTXO合并交易的交易内容生成的,所述第二检索标识可以是基于所接收的UTXO合并交易的交易内容生成的,基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配可以包括:基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息以及第一和第二检索标识信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
可选的,在一个示例中,所述UTXO合并交易可以具有合并交易有效期,所述方法还可以包括:在所述UTXO合并交易的合并交易有效期期满且未接收到与所述UTXO合并交易匹配的UTXO合并回馈交易时,删除所述UTXO合并交易。
可选的,在一个示例中,所述UTXO合并回馈交易可以具有合并回馈交易有效期,所述合并回馈交易有效期可以不小于与所述UTXO合并回馈交易匹配的UTXO合并交易的合并交易有效期。
根据本说明书实施例的另一方面,还提供一种用于处理区块链系统中的UTXO的装置,所述装置包括:合并交易对象地址确定单元,位于第一交易地址处,确定作为合并交易对象地址的第二交易地址;合并交易发起单元,位于所述第一交易地址处,基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易;合并回馈交易发起单元,位于所述第二交易地址处,响应于所述UTXO合并交易,发起UTXO合并回馈交易,所述UTXO合并回馈交易以所述第一交易地址为回馈交易对象地址;以及记账处理执行单元,位于记账节点处,在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理,并在所述区块链系统中广播交易执行结果。
可选的,在一个示例中,所述第一交易地址的各个UTXO可以具有UTXO有效期,所述待合并UTXO可以是基于所述各个UTXO的UTXO有效期确定的。
可选的,在一个示例中,所述装置还可以包括:UTXO删除单元,位于所述第一交易地址处,基于预定删除条件,删除所述待合并UTXO。
可选的,在一个示例中,所述UTXO删除单元可以在所述第一交易地址处:删除所述待合并UTXO中的UTXO有效期期满的UTXO;或在接收到与所述UTXO合并交易匹配的UTXO合并回馈交易之后,删除所述待合并UTXO。
可选的,在一个示例中,所述记账处理执行单元可以包括:交易匹配验证模块,基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配;以及记账处理执行模块,在所述UTXO合并回馈交易与所述UTXO合并交易匹配时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理。
可选的,在一个示例中,所述UTXO合并交易可以包括合并交易奖励信息,以及所述交易匹配验证单元在所述UTXO合并回馈交易的交易金额信息为所述UTXO合并交易的交易金额信息与所述合并交易奖励信息之差时,确定所述UTXO合并回馈交易与所述UTXO合并交易匹配。
可选的,在一个示例中,所述UTXO合并交易和所述UTXO合并回馈交易还可以包括交易地址信息,所述交易匹配验证单元可以基于所述UTXO合并交易和所述UTXO合并回馈交易的交易地址信息和交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
可选的,在一个示例中,所述记账节点处可以具有多个UTXO合并交易,所述多个UTXO合并交易中的每个UTXO合并交易和所述UTXO合并回馈交易还可以包括交易地址信息,所述记账处理执行单元还可以包括:合并交易查找模块,基于所述交易地址信息,从所述多个UTXO合并交易中找出所述UTXO合并回馈交易对应的UTXO合并交易,其中,所述交易匹配验证模块基于所找出的UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
可选的,在一个示例中,所述UTXO合并交易可以包括第一检索标识,所述UTXO合并回馈交易可以包括第二检索标识,所述第一检索标识是基于UTXO合并交易的交易内容生成的,所述第二检索标识可以是基于所接收的UTXO合并交易的交易内容生成的,其中,所述交易匹配验证模块可以基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息以及第一和第二检索标识信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
可选的,在一个示例中,所述UTXO合并交易可以具有合并交易有效期,所述记账处理执行单元还可以包括:合并交易删除模块,在所述UTXO合并交易的合并交易有效期期满且未接收到与所述UTXO合并交易匹配的UTXO合并回馈交易时,删除所述UTXO合并交易。
根据本说明书实施例的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上第一方面所述的方法。
根据本说明书实施例的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本说明书实施例的方法、装置和系统,通过由第一交易地址基于其待合并UTXO发起UTXO合并交易,作为交易对象的第二交易地址响应于该UTXO合并交易而生成对应的UTXO合并回馈交易,记账节点在接收到UTXO交易和UTXO合并回馈交易匹配时,对其执行记账处理,从而能够对第一交易地址处的UTXO进行合并,从而能够减少UTXO的数量。
附图说明
通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本说明书实施例的实施例,但并不构成对本说明书实施例的实施例的限制。在附图中:
图1示出了可用于执行根据本说明书实施例的UTXO处理方法的环境的示例的示意图;
图2示出了执行根据本说明书实施例的UTXO处理方法的系统架构的示例的示意图;
图3示出了根据本说明书实施例的UTXO处理方法所适用的区块链系统的一个示例的示意图;
图4是根据本说明书的一个实施例的UTXO处理方法的流程图;
图5是用于说明根据本说明书实例的UTXO处理方法中的UTXO合并交易生成过程的示意图;
图6是根据本说明书的一个实施例的UTXO处理方法中的UTXO删除过程一个示例的流程图;
图7是根据本说明书的一个实施例的UTXO处理方法中的记账处理执行过程一个示例的流程图;
图8是根据本说明书实施例的UTXO处理方法中的交易匹配验证过程的示例的流程图;
图9是根据本说明书实施例的UTXO处理方法中的交易匹配验证过程的另一示例的流程图;
图10是根据本说明书的一个实施例的UTXO处理装置的结构框图;
图11是根据本说明书的另一实施例的UTXO处理装置中的记账处理执行单元的结构框图;
图12是根据本说明书的一个实施例的用于实现UTXO处理方法的计算设备的结构框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
在本文中,术语“连接”是指两个组件之间直接机械连接、连通或电连接,或者通过中间组件来间接机械连接、连通或电连接。术语“电连接”是指两个组件之间可以进行电通信以进行数据/信息交换。同样,所述电连接可以指两个组件之间直接电连接,或者通过中间组件来间接电连接。所述电连接可以采用有线方式或无线方式来实现。
现在结合附图来描述本说明书实施例的UTXO处理方法及装置。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。此外,术语“区块链”不特别指代任何特定的区块链。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本说明书实施例中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
区块链是防篡改的共享数字分类账,其在公有或私有对等网络中记录交易。分类账被分发到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久记录在区块中。
共识机制确保分布式区块链网络中的所有网络节点按照相同的顺序执行交易,并且随后写入相同的分类账。
图1示出了可用于执行根据本说明书实施例的实施例的信息提供方法信息或获取方法的环境100的示例的示意图。在一些示例中,环境100使得实体能够参与区块链网络102。如图1所示,环境100包括网络104、和计算设备/系统106、108。在一些示例中,网络104可以包括局域网(LAN),广域网(WAN),因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络104。在一些示例中,计算设备/系统106、108通过网络104相互通信,以及通过网络104实现与区块链网络102之间的通信,以及区块链网络102中的节点(或,节点设备)通过网络104来进行通信。通常,网络104表示一个或多个通信网络。在一些情况下,计算设备/系统106、108可以是云计算系统(未示出)的节点,或者每个计算设备/系统106、108可以是单独的云计算系统,其包括通过网络104互连的多个计算机并且用作分布式处理系统。
在所说明的示例中,计算设备/系统106、108中的每个可以包括能够参与作为区块链网络102中的节点的任何合适的计算系统。计算设备/系统的示例包括但不限于,服务器,台式计算机,笔记本电脑,平板电脑设备和智能手机等。在一些示例中,计算设备/系统106、108上可以安装有用于与区块链网络102交互的一个或多个计算机实现的服务。例如,计算设备/系统106可以上可以安装有第一实体(例如,用户A)的服务,比如,第一实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算设备/系统108可以上可以安装有第二实体(例如,用户B)的服务,比如,第二实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中,区块链网络102被表示为节点的对等网络,并且计算设备/系统106、108分别作为参与区块链网络102的第一实体和第二实体的节点。
图2示出了执行根据本说明书实施例的实施例的信息提供方法信息或获取方法的系统架构200的示例的示意图。系统架构200的示例包括分别与参与方A,参与方B和参与方C对应的参与方系统202、204、206。每个参与方(例如,用户,企业)参与被提供来作为对等网络的区块链网络212。区块链网络212包括多个节点214,其中,节点214中的至少一些节点在区块链216中记录信息,并且所记录的信息不可更改。尽管在区块链网络212内示意性地示出了单个区块链216,但是可以提供区块链216的多个副本,并且在区块链网络212中维护多个副本,如稍后详细描述的。
在所示出的示例中,每个参与方系统202、204、206分别由参与方A,参与方B和参与方C提供,或者被提供来作为参与方A,参与方B和参与方C,并且充当区块链网络212内的对应节点214。如这里所使用的,节点通常是指连接到区块链网络212的单个系统(例如,计算机,服务器),并且使得相应的参与方能够参与区块链网络。在图2示出的示例中,参与方对应于每个节点214。然而,一个参与方可以操作区块链网络212内的多个节点214,和/或多个参与方可以共享单个节点214。在一些示例中,参与方系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)来与区块链网络212通信,或者通过区块链网络212进行通信。
节点214在区块链网络212的参与度可以不同。例如,一些节点214可以参与共识过程(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与共识过程。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214仅存储区块链216的部分副本。在图2的示例中,参与方系统202、204、206各自存储区块链216的完整副本216'、216”、216”'。
区块链(例如,图2中的区块链216)由一连串的区块组成,每个区块存储数据。数据的示例可以包括表示两个或更多参与方之间的交易的交易数据。在本说明书实施例中,交易被使用来作为非限制性示例,可以预期的是,任何适当的数据都可以存储在区块链中(例如,文档,图像,视频,音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产,产品,服务和货币等)。交易数据被不可更改地存储在区块链中。
在存储在区块中之前,对交易数据进行哈希处理。哈希处理是将(作为字符串数据提供的)交易数据转换为固定长度的哈希值(也被作为字符串数据提供)的过程。通过对交易数据进行哈希处理后,即使交易数据出现轻微更改,也会导致得到完全不同的哈希值。哈希值通常是通过使用哈希函数来对交易数据进行哈希处理而生成的。哈希函数的示例包括但不限于安全散列算法(SHA)-256,其输出256比特的哈希值。
多个交易的交易数据可以在被哈希化之后存储在区块中。例如,对两个交易数据进行哈希处理得到两个哈希值,然后,对所得到的两个哈希值再次进行哈希处理以得到另一哈希值。重复该过程,直到对于要存储在区块中的所有交易,得到单个哈希值。该哈希值被称为Merkle根哈希,并且被存储在区块的头部。任何交易的更改都会导致其哈希值发生变化,最终导致Merkle根哈希值发生变化。
通过共识协议来将区块添加到区块链中。区块链网络中的多个节点参与共识协议,并且经过竞争之后将区块添加到区块链中。这样的节点被称为矿工节点(或记账节点)。以上介绍的POW用作非限制性示例。
矿工节点执行共识过程来将交易(所对应的区块)添加到区块链。虽然多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞争以将其区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,直到达到在区块中可以包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与方的交易消息。矿工节点创建区块,并将交易添加到区块中。在将交易添加到区块之前,矿工节点检查待添加的交易中是否存在区块链的区块中具有的交易。如果该交易已被添加到另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并且成对地组合哈希值以生成进一步的哈希值,直到针对区块中的所有交易得到单个哈希值(Merkle根哈希)。然后,将Merkle根哈希添加到区块头中。矿工还确定区块链中的最新区块(即,添加到区块链的最后一个区块)的哈希值。矿工节点还可以在区块头中添加随机数值(noune值)和时间戳。在挖掘过程中,矿工节点尝试找到满足所需参数的哈希值。矿工节点不断更改nonce值,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,一个矿工节点找到满足所需参数的哈希值,并将该哈希值通告给区块链网络中的所有其他矿工节点。其他矿工节点验证哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到它们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上达成一致。上述过程是POW共识协议。
在图2所提供的示例中,参与方A想要向参与方B发送一定数量的资金。参与方A生成交易消息,并将交易消息发送到区块链网络,该交易消息被增加到交易池中。区块链网络中的每个矿工节点创建区块,并从交易池中获取交易,并将交易添加到区块。按照这种方式,参与方A所发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,实施密码技术来维护交易的隐私性。例如,如果两个节点想要保持交易私密性,使得区块链网络中的其他节点不能获悉交易细节,则节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥进行加密(根据明文生成密文)和解密(根据密文生成明文)的加密过程。在对称加密中,多个节点可以使用相同的密钥,因此每个节点都可以对交易数据进行加密/解密。
非对称加密中使用密钥对来进行加密和解密,且每个密钥对包括的私钥和公钥不同。对于一个节点来说,其具有的非对称加密的密钥对中的私钥需要保密存储;公钥可以公开出去,让其它节点获得。如果用公钥对数据进行加密,只有用对应的私钥才能解密。例如,再次参考图1。参与方A可以使用参与方B的公钥来加密数据,并将加密后的数据发送至参与方B。参与方B可以使用其私钥来解密从参与方A发来的加密数据(密文)并解密得到原始数据(明文)。使用节点的公钥加密的消息,只能使用成对秘钥中对应的私钥解密。
非对称加密还可以用于提供数字签名,这使得交易中的参与方能够确认交易中的其他参与方以及交易的有效性。例如,参与方A可以对消息进行数字签名,而另一个参与方B可以根据参与方A的数字签名确认消息是由该参与方A发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图1。参与方A将向参与方B发送消息。参与方A生成消息的哈希值,然后使用其私钥对哈希值进行加密来生成数字签名。参与方A将该数字签名附加到消息,并将具有数字签名的消息发送给参与方B。参与方B使用参与方A的公钥解密数字签名,从而解密出对应的哈希值。参与方B对所接收的消息进行哈希处理以得到另一哈希值,然后比较两个哈希值。如果哈希值相同,则参与方B可以确认该消息确实来自参与方A,并且未被篡改。
在本说明书实施例中,区块链节点可以是图1或图2中的任意参与方。
图3示出了根据本说明书实施例的UTXO处理方法所适用的区块链系统的一个示例的示意图。
如图3所示,区块链网络300中包括轻量节点和全量节点,全量节点包括区块链节点301、302等,轻量节点连接至一个或多个全量节点。例如,作为轻量节点的区块链节点301a、301b、301c与全量节点301连接,区块链节点302a、302b、302c与全量节点302连接。区块链网络300中的各个全量节点互相连接,各个全量节点可以作为记账节点来基于区块链技术共同维护区块链系统中的所有交易的账本。记账节点可以执行交易验证、交易共识、区块生成等记账操作。全量节点通常会在本地维护区块链的所有数据,包括区块链中各个区块的区块体和区块头。轻量节点可以仅在本地存储区块链中各个区块的块头,以用于简单的验证操作(例如SPV验证)。轻量节点可以始终连接至相同的全量节点,还可以基于连接规则更换其所连接的全量节点,以降低信任风险。
块链系统中的交易由各个交易地址发起,各个区块链节点处可以维护有一个交易地址,还可以维护多个交易地址(即账户)。当某交易地址发起交易时,可以由该交易地址所在的区块链节点执行相应的交易发起操作。
各个区块链节点处的交易地址所发起的交易可以广播至区块链网络中,以进行共识处理(例如可基于PoW机制进行共识处理)。全量节点所发起的交易可以广播给各个其它全量节点,各个全量节点在接收到交易后可以广播给其所连接的轻量节点。轻量节点所发起的交易可以发送给该轻量节点所连接的全量节点,以由该全量节点广播至其它全量节点或轻量节点。
在以下所描述的实施例中,第一交易地址和第二交易地址可以是图3所示的区块链网络中的任意轻量节点或任意全量节点处的交易地址,第一交易地址和第二交易地址可以是同一区块链节点处的交易地址,还可以是不同区块链节点处的交易地址。记账节点可以是图3所示的任意全量节点。
图4是根据本说明书的一个实施例的UTXO处理方法的流程图。
如图4所示,在块402,第一交易地址确定作为合并交易对象地址的第二交易地址。在确定出第二交易地址之后,在404,第一交易地址基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易。
UTXO是区块链系统中的各笔交易的输出,体现在各个交易的交易记录中。交易记录包括该交易的交易输入(即资金来源)、交易输出金额和交易输出地址,交易输出地址是指该交易的交易对象地址。从交易记录中可以得知在执行该笔交易之后向交易输出地址转入了交易输出金额所对应的资金。区块链系统中的各个节点处可以存储有系统中所有交易的交易记录,当区块链节点处的某个交易地址发起交易时,可以从该交易地址所拥有的UTXO(即交易输出地址对应于该交易地址的UTXO)中选取金额足够的UTXO作为相应交易的输入。每笔交易的交易输入可以包括多个UTXO,每笔交易还可以包括多个交易输出。
第一交易地址可以通过发起UTXO合并交易来对自己所拥有的UTXO进行合并。第一交易地址可以从区块链系统中选取任意第二交易地址(例如图3中所示的区块链节点302或302a处的交易地址)作为交易对象,然后以该二交易地址为交易对象并基于交易输出地址对应于第一交易地址的待合并UTXO来生成UTXO合并交易。所生成的UTXO合并交易至少包括交易金额信息,例如交易输入金额和交易输出金额。在另一示例中,UTXO合并交易的交易输出还可以包括支付给第二交易地址的交易报酬。即,UTXO合并交易可以包括两项交易输出,其中一项是转入第二交易地址中的金额,另一项交易输出对应于交易报酬。此时,UTXO合并交易的交易金额信息还包括交易报酬金额。
第一交易地址可以基于任意规则来确定用于生成UTXO合并交易的待合并UTXO。在一个示例中,第一交易地址(例如301a处的交易地址)可以基于预定合并周期来确定其所拥有的UTXO(即交易输出地址为第一交易地址的UTXO)中是否存在生成时间超过预定时间的UTXO,如果存在,则可以将生成时间超过预定时间的UTXO作为待合并UTXO,以对这些UTXO进行合并处理。当在某合并周期内仅有一个UTXO的生成时间超过预定时间时,也可以将该一个UTXO视为待合并UTXO以发起UTXO合并交易。在另一示例中,UTXO可以具有UTXO有效期,从而可以基UTXO有效期来确定待合并UTXO。例如,可以将剩余UTXO有效期低于预定时间的UTXO确定为待合并UTXO。在确定出待合并UTXO和作为交易对象的第二交易地址之后,可以将待合并UTXO作为合并交易的输入,以生成UTXO合并交易。
UTXO有效期可以设置为不低于预定阈值,以避免因UTXO有效期过短而频繁发起UTXO合并交易,从而能够避免因UTXO合并交易而加重系统开销。例如可以设置为UTXO有效期不低于1天或不低于两天。由于在基于UTXO模式的区块链系统中,UTXO通常以交易记录的形式存储,因而可以通过使各个交易地址在发起交易时为相应交易设置交易有效期来设置UTXO有效期。
第一交易地址可以基于任意规则来选取第二交易地址,以配合其完成UTXO合并处理。例如,区块链节点301a处的交易地址可以从区块链系统中随机选取一个区块链节点处的交易地址以作为交易对象。还可以选取在预定时间段内成功生成的区块数量最多的区块链节点处的交易地址以作为第二交易地址。为了提高交易对象响应UTXO合并交易的概率,避免交易对象不愿意配合的情况出现,可以选取在预定时间段内与第一区块链节交易次数最多的区块链节点以作为交易对象,还可以选取与第一交易地址所在的第一区块链节点连接的全量节点处的交易地址以作为第二交易地址。
以下参考图5来说明生成UTXO合并交易的示例。图5是用于说明根据本说明书实例的UTXO处理方法中的UTXO合并交易生成过程的示意图。
在图5中示出了交易#002、#003、#004(假设#002、#003、#004的交易输入均来自于交易#001(未示出))和#005,A表示第一交易地址,B表示第二交易地址。其中,交易#002、#003、#004的交易输出地址为第一交易地址A。相应地,这三笔交易所产生的产易输出在未被花费时,是第一交易地址所拥有的UTXO。在满足合并条件时,第一交易地址可以基于交易#002、#003、#004所产生的UTXO#002(1)、#003(1)、#004(1)来生成UTXO合并交易#005。如图5所示,UTXO合并交易#005的交易输入(即资金来源)来自于UTXO#002(1)、#003(1)、#004(1),UTXO合并交易的交易输出金额为X1+X2+X3(即UTXO#002(1)、#003(1)、#004(1)的总和),交易输出地址为第二交易地址B。
第一交易地址在生成UTXO合并交易之后,将所生成的UTXO合并交易发送给记账节点和第二交易地址,以发起UTXO合并交易。例如,第一交易地址可以将UTXO合并交易广播到区块链网络中,以发送给记账节点和第二交易地址。当第一交易地址位于轻量节点处时,可以经由该轻量节点所连接的全量节点将UTXO合并交易广播到区块链网络中。
第二交易地址在接收到UTXO合并交易时,可以在块406,响应于以第二交易地址为交易对象的UTXO合并交易,发起UTXO合并回馈交易。UTXO合并回馈交易以发起该UTXO合并交易的第一交易地址为交易对象,其交易金额信息基于对应的UTXO合并交易的交易金额信息确定。图5中示出了UTXO合并回馈交易(即交易#006)的示例。如图5所示,UTXO合并回馈交易#006的交易输入为UTXO合并交易的交易输出#005(1),交易输出地址为第一交易地址A,交易输出金额为UTXO合并交易#005的交易输出金额。由此,被合并的UTXO#002(1)、#003(1)、#004(1)被合并为新的UTXO#006(1),并重新回到第一交易地址A中。
当UTXO合并交易包括支付给第二交易地址的交易报酬时,第二交易地址在发起UTXO合并回馈交易时,可以从被合并的至少一个UTXO的金额总和中扣除交易报酬所对应的金额,并将剩余金额作为UTXO合并回馈交易的交易输入。
第二交易地址所在的区块链式子点接收到UTXO合并交易时,还可以首先决定是否配合第一交易地址的UTXO合并交易。如果决定配合该UTXO合并交易,则可以发起对应的UTXO合并回馈交易,以将UTXO合并交易输出给第二交易地址的金额回馈给第一交易地址。如果第二交易地址决定不配合,则可以不进行任何响应。第二交易地址例如可以基于本地的负载率、待处理交易数等来确定是否响应UTXO合并交易,还可以基于第一交易地址所在的区块链节点是否是信任节点来确定是否响应UTXO合并交易。在一个示例中,可以通过第一交易地址所在的区块链节点对历史数据所做出的响应来确定期是否是信任节点。
在生成UTXO合并回馈交易之后,第二交易地址将UTXO合并回馈交易发送给第一交易地址和记账节点。例如,第二交易地址可以将UTXO合并回馈交易广播到区块链网络中,以发送给记账节点和第一交易地址所在的区块链节点。当第二交易地址位于轻量节点处时,可以经由该轻量节点所连接的全量节点将UTXO合并回馈交易广播到区块链网络中。
记账节点在接收到UTXO合并交易和UTXO合并回馈交易时,在块408,对UTXO合并交易和UTXO合并回馈交易执行区块链记账处理,并在区块链系统中广播交易执行结果。记账节点在接收到UTXO合并交易时,可以暂时不对UTXO合并交易进行处理,而等到接收到UTXO合并回馈交易时再进行处理。所接收到的UTXO合并交易可以被存储在交易池中。在一个示例中,为了避免UTXO合并交易长期占用系统资源,UTXO合并交易可以具有合并交易有效期。记账节点可以在UTXO合并交易的合并交易有效期期满且未接收到与UTXO合并交易匹配的UTXO合并回馈交易时,删除UTXO合并交易。在这种情况下,记账节点可以向第一交易地址发送UTXO合并交易已被删除的通知消息。
在一个示例中,UTXO合并回馈交易也可以具有回馈交易有效期,该UTXO合并回馈交易被成功执行记账处理后所生成的新的UTXO可以以该回馈交易有效期作为有效期,由此可以避免UTXO合并回馈交易所生成的新的UTXO不具有UTXO有效期。由于回馈交易有效期期满时,对应UTXO合并回馈交易将被删除,因而可以设置为回馈交易有效期不低于对应UTXO合并交易的合并交易有效期,从而避免在第二交易地址已经响应UTXO合并交易的情况下,因UTXO合并回馈交易被删除而导致UTXO合并交易不能被成功处理。
UTXO合并交易和UTXO合并回馈交易可以分别具有合并交易标识和合并回馈交易标识,记账节点可以基于合并交易标识和合并回馈交易标识来确定所接收到的是否是UTXO合并交易或UTXO合并回馈交易,或者是普通区块链交易。
在基于UTXO的某些区块链系统中,在交易完成之后,该交易的输入所对应的UTXO将会被删除,从而使得待合并UTXO合并为UTXO合并回馈交易所生成的新的UTXO。在另一示例中,第一交易地址还可以在发起UTXO合并交易之后,基于预定删除条件,删除用于生成UTXO合并交易的待合并UTXO。例如,当各个UTXO具有UTXO有效期时,第一交易地址可以在各个UTXO有效期期满时删除待合并UTXO。
图6是根据本说明书的一个实施例的UTXO处理方法中的UTXO删除过程一个示例的流程图。
如图6所示,在块602,从第二交易地址接收UTXO合并回馈交易。然后在块604,判断是否接收到了与所发起的UTXO合并交易匹配的UTXO合并回馈交易。
在接收到与UTXO合并交易匹配的UTXO合并回馈交易之后,在块606,删除用于生成UTXO合并交易的待合并UTXO。例如,当UTXO合并回馈交易的交易输出地址对应于第一交易地址,并且交易输出金额与第一交易地址所发起UTXO合并交易匹配时,可以确定该UTXO合并回馈交易与UTXO合并交易匹配。此时,可以删除用于生成该UTXO合并交易的待合并UTXO。
通过该实施例,能够在被合并的UTXO所对应的交易金额回到第一交易地址中之后删除相应的待合并UTXO,避免第一交易地址产生资金损失。
以下参考图7至图9来说明说明记账节点对UTXO合并交易和UTXO合并回馈交易执行的记账处理。
图7是根据本说明书的一个实施例的UTXO处理方法中的记账处理执行过程的一个示例的流程图。
如图7所示,记账节点在接收到UTXO合并交易和UTXO合并回馈交易时,在块702至块704,基于UTXO合并交易和UTXO合并回馈交易的交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。
可以在第二交易地址发起的UTXO合并回馈交易的输出金额与第一交易地址发起的UTXO合并交易的交易金额匹配时,确定该UTXO合并回馈交易和UTXO合并交易是相互匹配的。
如果UTXO合并交易不包括交易报酬信息,UTXO合并回馈交易的交易金额与UTXO合并交易的交易金额一致时,可以确定二者相互匹配。当UTXO合并交易包括交易报酬信息时,可以在UTXO合并回馈交易的交易金额信息为UTXO合并交易的交易金额信息与交易报酬信息之差时,确定UTXO合并回馈交易与UTXO合并交易匹配。从UTXO合并交易的交易金额中扣除的金额为第一交易地址支付给第二交易地址的交易报酬。
UTXO合并交易和UTXO合并回馈交易还可以包括交易地址信息。此时,可以基于UTXO合并交易和UTXO合并回馈交易的交易地址信息和交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。可以在确定UTXO合并交易的交易发起方地址与UTXO合并回馈交易的交易对象地址一致,且UTXO合并回馈交易的交易发起方地址与UTXO合并交易的交易对象地址一致,且UTXO合并回馈交易的交易金额信息与UTXO合并交易的交易金额信息(或交易金额信息与合并交易奖励信息之差)一致时,确定二者相互匹配。
当UTXO合并交易和UTXO合并回馈交易被验证为匹配时,表明UTXO合并回馈交易是第二交易地址响应于UTXO合并交易所发起的。此时,在块706,对UTXO合并交易和UTXO合并回馈交易执行记账处理。记账处理可以包括区块链系统中对各笔交易执行的交易验证、共识处理、区块打包上链等处理。在交易通过共识并被打包成区块加入到区块链中之后,记账节点将交易执行结果广播到区块链系统中,区块链系统中的各个区块链节点基于交易执行结果来更新相应交易地址的交易记录。由此,第一交易地址的待合并UTXO所对应的金额(或扣除合并交易报酬之后的金额)通过UTXO合并回馈交易的交易输出重新回到第一交易地址中。
以下参照图8和图9对交易匹配验证过程的具体示例进行说明。
在一个示例中,记账节点处的UTXO合并交易可以有多个,此时可以参考图8所示的过程来进行交易匹配。图8是根据本说明书实施例的UTXO处理方法中的交易匹配验证过程的示例的流程图。
如图8所示,在块802,基于交易地址信息,从多个UTXO合并交易中找出UTXO合并回馈交易对应的UTXO合并交易。可以将交易发起方地址与UTXO合并回馈交易的交易对象地址一致并且交易对象地址与UTXO合并交易的交易发起方地址一致的UTXO合并交易确定为与UTXO合并回馈交易对应的UTXO合并交易。
在找出对应的UTXO合并交易之后,在块804,基于所找出的UTXO合并交易和UTXO合并回馈交易的交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。如果所找出的UTXO合并交易为多个,可以将其中交易金额信息(或在扣除合并交易奖励之后)与UTXO合并回馈交易的交易金额信息一致的UTXO合并交易确定为对应的UTXO合并交易。
在另一示例中,UTXO合并交易可以包括第一检索标识。第一交易地址可以在生成UTXO合并交易时,基于UTXO合并交易的交易内容生成第一检索标识。第一检索标识还可以由记账节点在接收到UTXO合并交易时,基于UTXO合并交易的交易内容生成第一检索标识。UTXO合并回馈交易可以具有第二检索标识,第二交易地址可以在响应于UTXO合并交易生成UTXO合并回馈交易时,基于UTXO合并交易的交易内容生成第二检索标识。第一和第二检索标识也可基于UTXO合并交易的所有交易内容生成,还可基于UTXO合并交易的部分交易内容(例如交易地址信息和交易金额信息、交易奖励信息)来生成。作为示例,可以对UTXO合并交易的交易内容进行哈希运算,然后将所得到的哈希值作为第一或第二检索标识。
当具有检索标识时,可以基于UTXO合并交易和UTXO合并回馈交易的交易金额信息以及第一和第二检索标识信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。例如,可以在第一和第二检索标识信息一致且交易金额信息一致时,确定UTXO合并回馈交易与UTXO合并交易匹配。
当记账节点处存在多个UTXO合并交易并且UTXO合并交易和UTXO合并回馈交易分别具有第一、第二检索标识时,可以采用如图8所示的过程来进行交易匹配。图9是根据本说明书实施例的UTXO处理方法中的交易匹配验证过程的另一示例的流程图。
如图9所示,在块902,从多个UTXO合并交易中找出所包括的第一检索标识与第二检索标识相同的UTXO合并交易。
在找出相应的UTXO合并交易之后,在块904,基于所找出的UTXO合并交易和UTXO合并回馈交易的交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。
利用图9所示的示例,能够在基于检索标识快速找到相应的UTXO合并交易之后,基于交易金额信息来验证所找出的UTXO合并交易和UTXO合并回馈交易是否匹配,从而能够减少验证过程的运算量,提高验证效率。
图10是根据本说明书的另一实施例的用于记账节点的UTXO处理装置的结构框图。UTXO处理装置1000位于第一交易地址处。如图9所示,UTXO处理装置1000包括合并交易对象地址确定单元1010、合并交易发起单元1020、合并回馈交易发起单元1030和记账处理执行单元1030。
合并交易对象地址确定单元1010位于第一交易地址处,确定作为合并交易对象地址的第二交易地址。合并交易发起单元1020位于第一交易地址处,基于第一交易地址的待合并UTXO和所确定的第二交易地址发起UTXO合并交易。在一个示例中,第一交易地址的各个UTXO可以具有UTXO有效期,合并交易发起单元1020可以基于各个UTXO的UTXO有效期确定待合并UTXO。
合并回馈交易发起单元1030位于第二交易地址处,响应于UTXO合并交易,发起UTXO合并回馈交易,UTXO合并回馈交易以第一交易地址为回馈交易对象地址。记账处理执行单元1040位于记账节点处,在接收到UTXO合并交易和UTXO合并回馈交易时,记账处理执行单元1040对UTXO合并交易和UTXO合并回馈交易执行区块链记账处理,并在区块链系统中广播交易执行结果。
虽然图10中未示出,UTXO处理装置1000还可以包括位于第一交易地址处的UTXO删除单元。UTXO删除单元在基于预定删除条件,删除用于生成UTXO合并交易的待合并UTXO。作为示例,UTXO删除单元可以删除所述待合并UTXO中的UTXO有效期期满的UTXO,还可以在接收到与UTXO合并交易匹配的UTXO合并回馈交易之后,删除待合并UTXO。
图11是图10所示的UTXO处理装置中的记账处理执行单元的一个示例的结构框图。如图11所示,记账处理执行单元1040包括交易匹配验证模块1041、记账处理执行模块1042、合并交易查找模块1043和合并交易删除模块1044。
交易匹配验证模块1041基于UTXO合并交易和UTXO合并回馈交易的交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。在UTXO合并回馈交易与UTXO合并交易匹配时,记账处理执行模块1042对UTXO合并交易和UTXO合并回馈交易执行区块链记账处理。
在一个示例中,UTXO合并交易可以包括合并交易奖励信息。在该示例中,交易匹配验证模块1041可以在UTXO合并回馈交易的交易金额信息为UTXO合并交易的交易金额信息与合并交易奖励信息之差时,确定UTXO合并回馈交易与UTXO合并交易匹配。
在另一示例中,UTXO合并交易和UTXO合并回馈交易还可以包括交易地址信息。在该示例中,交易匹配验证模块1041可以基于UTXO合并交易和UTXO合并回馈交易的交易地址信息和交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。
在一个示例中,记账节点处可以具有多个UTXO合并交易。合并交易查找模块1043可以基于交易地址信息,从多个UTXO合并交易中找出UTXO合并回馈交易对应的UTXO合并交易。此时,交易匹配验证模块1041可以基于所找出的UTXO合并交易和UTXO合并回馈交易的交易金额信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。
在另一示例中,UTXO合并交易可以包括第一检索标识,UTXO合并回馈交易可以包括第二检索标识,第一检索标识可以是基于UTXO合并交易的交易内容生成的,第二检索标识可以是基于所接收的UTXO合并交易的交易内容生成的。在该示例中,交易匹配验证模块1041可以基于UTXO合并交易和UTXO合并回馈交易的交易金额信息以及第一和第二检索标识信息,验证UTXO合并回馈交易是否与UTXO合并交易匹配。
合并交易删除模块1044在UTXO合并交易的合并交易有效期期满且未接收到与UTXO合并交易匹配的UTXO合并回馈交易时,删除UTXO合并交易。
图11仅仅是记账处理执行单元的一个示例,图11所示出的各个模块并不都是必要组成元素,在一个示例中,可以不包括合并交易查找模块,还可以不包括合并交易删除模块。
以上参照图1到图11,对根据本说明书实施例的UTXO处理方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本说明书实施例的装置的实施例。
本说明书实施例的UTXO处理装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本说明书实施例的UTXO处理装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本说明书实施例中,UTXO处理装置例如可以利用计算设备实现。
图12是根据本说明书的一个实施例的用于实现UTXO处理方法的计算设备的结构框图。如图12所示,计算设备1200包括处理器1210、存储器1220、内存1230、通信接口1240和内部总线1250,并且处理器1210、存储器(例如,非易失性存储器)1220、内存1230、通信接口1240经由总线1250连接在一起。根据一个实施例,计算设备1200可以包括至少一个处理器1210,该至少一个处理器1210执行在计算机可读存储介质(即,存储器1220)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器1220中存储计算机可执行指令,其当执行时使得至少一个处理器1210:第一交易地址确定作为合并交易对象地址的第二交易地址;第一交易地址基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易;所述第二交易地址响应于所述UTXO合并交易,发起UTXO合并回馈交易,所述UTXO合并回馈交易以所述第一交易地址为回馈交易对象地址;以及记账节点在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理,并在所述区块链系统中广播交易执行结果。
应该理解,在存储器1220中存储的计算机可执行指令当执行时使得至少一个处理器1210进行本说明书实施例的各个实施例中以上结合图1-11描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书实施例的各个实施例中以上结合图1-11描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书实施例的实施例的可选实施方式,但是,本说明书实施例的实施例并不限于上述实施方式中的具体细节,在本说明书实施例的实施例的技术构思范围内,可以对本说明书实施例的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书实施例的实施例的保护范围。
本说明书实施例内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书实施例内容。对于本领域普通技术人员来说,对本说明书实施例内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书实施例内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本说明书实施例内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (26)
1.一种用于处理区块链系统中的UTXO的方法,所述方法包括:
第一交易地址确定作为合并交易对象地址的第二交易地址;
第一交易地址基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易;
所述第二交易地址响应于所述UTXO合并交易,发起UTXO合并回馈交易,所述UTXO合并回馈交易以所述第一交易地址为回馈交易对象地址;以及
记账节点在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理,并在所述区块链系统中广播交易执行结果。
2.如权利要求1所述的方法,其中,所述第一交易地址的各个UTXO具有UTXO有效期,所述待合并UTXO是基于所述各个UTXO的UTXO有效期确定的。
3.如权利要求2所述的方法,其中,所述UTXO有效期不小于预定阈值。
4.如权利要求2所述的方法,还包括:
所述第一交易地址基于预定删除条件,删除所述待合并UTXO。
5.如权利要求4所述的方法,其中,所述第一交易地址基于预定删除条件,删除所述待合并UTXO包括:
所述第一交易地址删除所述待合并UTXO中的UTXO有效期期满的UTXO;或
所述第一交易地址在接收到与所述UTXO合并交易匹配的UTXO合并回馈交易之后,删除所述待合并UTXO。
6.如权利要求1所述的方法,其中,所述UTXO合并交易的输出包括支付给所述交易对象的交易报酬。
7.如权利要求1所述的方法,其中,第一交易地址确定作为合并交易对象地址的第二交易地址包括以下中的任意一者:
从所述区块链系统中随机选取一个交易地址以作为所述第二交易地址;
选取在预定时间段内与所述第一交易地址交易次数最多的交易地址以作为所述第二交易地址;
选取在第二预定时间段内成功生成的区块数量最多的区块链节点处的交易地址以作为所述第二交易地址;
选取与所述第一交易地址所在的第一区块链节点连接的全量节点处的交易地址以作为所述第二交易地址。
8.如权利要求1所述的方法,其中,所述UTXO合并交易和所述UTXO合并回馈交易包括交易金额信息,记账节点在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行记账处理包括:
基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配;以及
在所述UTXO合并回馈交易与所述UTXO合并交易匹配时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理。
9.如权利要求8所述的方法,其中,所述UTXO合并交易包括合并交易奖励信息,以及基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配包括:
在所述UTXO合并回馈交易的交易金额信息为所述UTXO合并交易的交易金额信息与所述合并交易奖励信息之差时,确定所述UTXO合并回馈交易与所述UTXO合并交易匹配。
10.如权利要求8所述的方法,其中,所述UTXO合并交易和所述UTXO合并回馈交易还包括交易地址信息,基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配包括:
基于所述UTXO合并交易和所述UTXO合并回馈交易的交易地址信息和交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
11.如权利要求8所述的方法,其中,所述记账节点处具有多个UTXO合并交易,所述多个UTXO合并交易中的每个UTXO合并交易和所述UTXO合并回馈交易还包括交易地址信息,所述方法还包括:
基于所述交易地址信息,从所述多个UTXO合并交易中找出所述UTXO合并回馈交易对应的UTXO合并交易,以及
基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配包括:
基于所找出的UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
12.如权利要求8述的方法,其中,所述UTXO合并交易包括第一检索标识,所述UTXO合并回馈交易包括第二检索标识,所述第一检索标识是基于UTXO合并交易的交易内容生成的,所述第二检索标识是基于所接收的UTXO合并交易的交易内容生成的,
基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配包括:
基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息以及第一和第二检索标识信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
13.如权利要求8所述的方法,其中,所述UTXO合并交易具有合并交易有效期,所述方法还包括:
在所述UTXO合并交易的合并交易有效期期满且未接收到与所述UTXO合并交易匹配的UTXO合并回馈交易时,删除所述UTXO合并交易。
14.如权利要求13所述的方法,其中,所述UTXO合并回馈交易具有合并回馈交易有效期,所述合并回馈交易有效期不小于与所述UTXO合并回馈交易匹配的UTXO合并交易的合并交易有效期。
15.一种用于处理区块链系统中的UTXO的装置,所述装置包括:
合并交易对象地址确定单元,位于第一交易地址处,确定作为合并交易对象地址的第二交易地址;
合并交易发起单元,位于所述第一交易地址处,基于其待合并UTXO和所确定的第二交易地址发起UTXO合并交易;
合并回馈交易发起单元,位于所述第二交易地址处,响应于所述UTXO合并交易,发起UTXO合并回馈交易,所述UTXO合并回馈交易以所述第一交易地址为回馈交易对象地址;以及
记账处理执行单元,位于记账节点处,在接收到所述UTXO合并交易和所述UTXO合并回馈交易时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理,并在所述区块链系统中广播交易执行结果。
16.如权利要求15所述的装置,其中,所述第一交易地址的各个UTXO具有UTXO有效期,所述待合并UTXO是基于所述各个UTXO的UTXO有效期确定的。
17.如权利要求15所述的装置,还包括:
UTXO删除单元,位于所述第一交易地址处,基于预定删除条件,删除所述待合并UTXO。
18.如权利要求17所述的装置,其中,所述UTXO删除单元:
删除所述待合并UTXO中的UTXO有效期期满的UTXO;或
在接收到与所述UTXO合并交易匹配的UTXO合并回馈交易之后,删除所述待合并UTXO。
19.如权利要求15所述的装置,其中,所述记账处理执行单元包括:
交易匹配验证模块,基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配;以及
记账处理执行模块,在所述UTXO合并回馈交易与所述UTXO合并交易匹配时,对所述UTXO合并交易和所述UTXO合并回馈交易执行区块链记账处理。
20.如权利要求19所述的装置,其中,所述UTXO合并交易包括合并交易奖励信息,以及所述交易匹配验证单元在所述UTXO合并回馈交易的交易金额信息为所述UTXO合并交易的交易金额信息与所述合并交易奖励信息之差时,确定所述UTXO合并回馈交易与所述UTXO合并交易匹配。
21.如权利要求19所述的装置,其中,所述UTXO合并交易和所述UTXO合并回馈交易还包括交易地址信息,所述交易匹配验证单元基于所述UTXO合并交易和所述UTXO合并回馈交易的交易地址信息和交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
22.如权利要求19所述的装置,其中,所述记账节点处具有多个UTXO合并交易,所述多个UTXO合并交易中的每个UTXO合并交易和所述UTXO合并回馈交易还包括交易地址信息,所述记账处理执行单元还包括:
合并交易查找模块,基于所述交易地址信息,从所述多个UTXO合并交易中找出所述UTXO合并回馈交易对应的UTXO合并交易,
其中,所述交易匹配验证模块基于所找出的UTXO合并交易和所述UTXO合并回馈交易的交易金额信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
23.如权利要求19所述的装置,其中,所述UTXO合并交易包括第一检索标识,所述UTXO合并回馈交易包括第二检索标识,所述第一检索标识是基于UTXO合并交易的交易内容生成的,所述第二检索标识是基于所接收的UTXO合并交易的交易内容生成的,
其中,所述交易匹配验证模块基于所述UTXO合并交易和所述UTXO合并回馈交易的交易金额信息以及第一和第二检索标识信息,验证所述UTXO合并回馈交易是否与所述UTXO合并交易匹配。
24.如权利要求19所述的装置,其中,所述UTXO合并交易具有合并交易有效期,所述记账处理执行单元还包括:
合并交易删除模块,在所述UTXO合并交易的合并交易有效期期满且未接收到与所述UTXO合并交易匹配的UTXO合并回馈交易时,删除所述UTXO合并交易。
25.一种计算设备,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到14中任一所述的方法。
26.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到14中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911348549.9A CN111144894B (zh) | 2019-12-24 | 2019-12-24 | Utxo处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911348549.9A CN111144894B (zh) | 2019-12-24 | 2019-12-24 | Utxo处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111144894A true CN111144894A (zh) | 2020-05-12 |
CN111144894B CN111144894B (zh) | 2022-05-13 |
Family
ID=70520110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911348549.9A Active CN111144894B (zh) | 2019-12-24 | 2019-12-24 | Utxo处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111144894B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070489A (zh) * | 2020-07-21 | 2020-12-11 | 深圳华数云计算技术有限公司 | 一种多终端共同交易数字货币的方法、系统和存储介质 |
EP4254247A1 (en) * | 2022-03-28 | 2023-10-04 | Guardtime SA | Atomic multi-unit transfer of single-instance data units in sharded blockchain |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
CN109360101A (zh) * | 2018-12-18 | 2019-02-19 | 百度在线网络技术(北京)有限公司 | 一种区块链交易处理方法、装置、设备和介质 |
-
2019
- 2019-12-24 CN CN201911348549.9A patent/CN111144894B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
CN109360101A (zh) * | 2018-12-18 | 2019-02-19 | 百度在线网络技术(北京)有限公司 | 一种区块链交易处理方法、装置、设备和介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070489A (zh) * | 2020-07-21 | 2020-12-11 | 深圳华数云计算技术有限公司 | 一种多终端共同交易数字货币的方法、系统和存储介质 |
EP4254247A1 (en) * | 2022-03-28 | 2023-10-04 | Guardtime SA | Atomic multi-unit transfer of single-instance data units in sharded blockchain |
Also Published As
Publication number | Publication date |
---|---|
CN111144894B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111062716B (zh) | 生成区块链签名数据的方法及装置、区块链交易发起系统 | |
CN111047324B (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
CN110458560B (zh) | 用于进行交易验证的方法及装置 | |
CN111183446B (zh) | 管理基于区块链的中心化账本系统 | |
CN111080292B (zh) | 用于获取区块链交易签名数据的方法及装置 | |
CN111837359B (zh) | 管理基于区块链的中心化账本系统 | |
CN111066019B (zh) | 处理存储在区块链网络中的数据元素 | |
US11240041B2 (en) | Blockchain-based transaction verification | |
EP3320502A1 (en) | Secure digital data operations | |
CN111212139A (zh) | 对信任节点信息进行更新的方法及装置 | |
CN111241593A (zh) | 用于区块链节点的数据同步方法及装置 | |
CN110888933B (zh) | 信息提供方法、装置及系统和信息获取方法及装置 | |
US11386426B2 (en) | Invoice invalidation method and apparatus based on blockchain, and electronic device | |
US10756896B2 (en) | Trustless account recovery | |
CN111108526B (zh) | 管理基于区块链的中心化账本系统 | |
CN111144894B (zh) | Utxo处理方法及装置 | |
CN111211876B (zh) | 发送针对数据请求的应答消息的方法及装置、区块链系统 | |
CN110852887B (zh) | 获取去中心化应用集群中的交易处理状态的方法及装置 | |
CN110827034B (zh) | 用于发起区块链交易的方法及装置 | |
CN110839067B (zh) | 信息提供方法及装置 | |
CN111143381B (zh) | 用于更新多层块链式结构中的信任点的方法及装置 | |
Patel et al. | Blockchain–future of decentralized systems | |
CN111159286B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |