CN115485687A - 确定基于区块链的死锁解决的方法和*** - Google Patents
确定基于区块链的死锁解决的方法和*** Download PDFInfo
- Publication number
- CN115485687A CN115485687A CN202180030787.4A CN202180030787A CN115485687A CN 115485687 A CN115485687 A CN 115485687A CN 202180030787 A CN202180030787 A CN 202180030787A CN 115485687 A CN115485687 A CN 115485687A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- transactions
- transaction
- subset
- blockchain transactions
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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/02—Banking, e.g. interest calculation or account maintenance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/102—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
用于基于区块链的死锁解决的方法、***和装置,包括在计算机存储介质上编码的计算机程序。该方法包括,对于多个区块链中的每个,通过与实体相关联的计算***,从所述区块链获取一个或多个第一区块链交易和一个或多个第二区块链交易,所述一个或多个第一区块链交易分别对应于与所述实体相关联的一个或多个收入价值转移,所述一个或多个第二区块链交易分别对应于与所述实体相关联的一个或多个支出价值转移;通过与所述实体相关联的所述计算***进行交易选择过程的一次或多次迭代;以及响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
Description
技术领域
本公开总体上与基于区块链的死锁解决的***和方法有关。
背景技术
历史上,银行间的支付是通过净额结算***进行结算的(例如,通过以净额结算可净额支付),但随着交易量和交易额的不断增加,中央银行开始警惕延迟的净额结算***涉及的风险。目前,中央银行青睐于实时全额结算(real-time gross settlement,RTGS)***。在RTGS中,支付指令(例如,支付交易)被单独并立即按全额结算。然而,即时终局的好处往往给银行带来高昂的流动性成本。RTGS***的流动性需求巨大;事实上,典型的银行间支付***的每日转账量可能相当于一个国家年度GDP的很大一部分。通常情况下,由于流动性不足,同一网络内的参与银行无法单独结算其支付,使***陷入停滞状态,被称为死锁(gridlock)。为了解决死锁,中央银行通常将RTGS与流动性节约机制(liquidity savingmechanism,LSM)相结合,其中网络内死锁解决是最有效的方案之一。
然而,因为金融机构正在构建不同的基于区块链的基础设施来提供服务,解决跨网络(或网络间)的死锁带来了挑战。不同的区块链网络可能采用不同的区块链技术(例如,不同的加密方案)构建,出于隐私保护的考虑,一个区块链网络的交易信息(例如,支付、余额)可能对另一个区块链网络不可见。在这些场景中,如何解决基于区块链的支付***的跨网络死锁,已成为一个吸引人的挑战。
发明内容
本申请的各种实施例可以包括用于基于区块链的死锁解决的***、方法和非暂时性计算机可读介质。
根据一个方面,用于基于区块链的死锁解决的方法可以包括,对于多个区块链中的每个区块链:通过与实体相关联的计算***,从所述区块链获取一个或多个第一区块链交易和一个或多个第二区块链交易,所述一个或多个第一区块链交易分别对应于与所述实体相关联的一个或多个收入价值转移,所述一个或多个第二区块链交易分别对应于与所述实体相关联的一个或多个支出价值转移;通过与所述实体相关联的所述计算***进行交易选择过程的一次或多次迭代,其中,所述交易选择过程的所述一次或多次迭代中的每一次包括:确定所述一个或多个第一区块链交易的子集;基于所确定的所述一个或多个第一区块链交易的子集和所述实体在所述区块链上的区块链账户的余额,选择所述一个或多个第二区块链交易的子集;基于所述一个或多个第一区块链交易的子集、所述一个或多个第二区块链交易的子集、以及所述区块链上所述区块链账户的所述余额,确定与所述区块链相关联的增量值,其中,所述增量值对应于所述区块链上所述区块链账户与所述实体在所述多个区块链中一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及向所述区块链添加第三区块链交易,所述第三区块链交易包括与所选择的所述一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本;以及响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
在一些实施例中,所述方法还可以包括在进行所述交易选择过程的所述一次或多次迭代之前:通过所述计算***获取每个所述区块链中指示所述交易选择过程开始的区块链交易。
在一些实施例中,所述向所述区块链添加第三区块链交易包括:将所述第三区块链交易发送给与所述区块链相关联的一个或多个区块链节点以添加到所述区块链中。其中,所述第三区块链交易调用所述区块链上的区块链合约,所述区块链合约可执行以将所述第三区块链交易中的所述一个或多个标识符与多个其他区块链交易中的多个其他标识符聚合。
在一些实施例中,所述确定所述一个或多个第一区块链交易的子集包括:对于所述交易选择过程的所述一次或多次迭代中的第一迭代:确定所述一个或多个第一区块链交易的所述子集包括所述一个或多个第一区块链交易中的每一个;以及对于所述交易选择过程的所述一次或多次迭代中除所述第一迭代之外的一次或多次迭代中的每一次:通过所述计算***,从所述区块链获取由所述区块链合约生成的一个或多个区块链交易,所述一个或多个区块链交易包括多个标识符;以及基于所述多个标识符确定所述一个或多个第一区块链交易的所述子集。
在一些实施例中,所述选择所述一个或多个第二区块链交易的子集包括:通过聚合与第一区块链交易的全局集合相关联的多个值确定第一总额,其中,所述第一区块链交易的全局集合包括所述多个区块链中每一个的所述一个或多个第一区块链交易;通过聚合余额的全局集合来确定第二总额,其中,所述余额的全局集合包括所述实体在所述多个区块链中每一个上的所述区块链账户的余额;以及从第二区块链交易的全局集合选择一个或多个第二区块链交易,以使得与所选择的一个或多个第二区块链交易相关联的一个或多个值的总和不大于所述第一总额和所述第二总额之和,其中,所述第二区块链交易的全局集合包括针对所述多个区块链中的每一个所获取的一个或多个第二区块链交易。
在一些实施例中,所述第二区块链交易的全局集合与优先级排名分别相关联;以及所述从所述第二区块链交易的全局集合选择所述一个或多个第二区块链交易包括基于所述优先级排名选择所述一个或多个第二区块链交易。
在一些实施例中,所述第二区块链交易的全局集合的所述优先级排名是按时间顺序确定的。
在一些实施例中,所述确定与所述区块链相关联的增量值包括:获取与所述一个或多个第一区块链交易的所述子集相关联的第一总额和与所述一个或多个第二区块链交易的所述子集相关联的第二总额;从所述第二总额中减去所述第一总额与所述区块链账户的余额之和来确定所述增量值。
在一些实施例中,所述增量值的所述加密版本是基于同态承诺方案或同态加密方案生成的。
在一些实施例中,所述一个或多个第一区块链交易和所述一或多个第二区块链交易中的每个区块链交易包括:与所述区块链交易相对应的索引,对应价值转移的金额的同态加密版本,以及与所述对应价值转移的接收方相关联的标识符,其中,所述价值转移金额的所述同态加密版本是基于同态承诺方案或同态加密方案的。
在一些实施例中,所述第三区块链交易还包括证明第一和不小于第二和的零知识范围证明,所述第一和包括所述区块链上所述区块链账户的余额和与所述一个或多个第一区块链交易的所述子集相关联的第一总额,所述第二和包括与所述一个或多个第二区块链交易的所述子集相关联的第二总额和所述增量值。
在一些实施例中,所述方法还可以包括,对于所述多个区块链中的每个区块链:从所述区块链获取证明与所述实体相关联的增量值的全局集合之和等于零的证明,其中,所述增量值的全局集合包括与所述多个区块链中的每个相关联的所述增量值。
根据另一方面,一种非暂时性计算机可读存储介质,配置有可由一个或多个处理器执行的指令,以使所述一个或多个处理器执行前述任一实施例的方法。
根据又一方面,一种用于基于区块链的死锁解决的装置,包括用于执行前述任一实施例的方法的多个模块。
根据另一方面,一种用于基于区块链的死锁解决的***可包括多个传感器以及包括第一计算设备和第二计算设备的计算机***,所述计算机***包括处理器和非暂时性计算机可读存储介质,所述计算机可读存储介质存储有可由所述处理器执行的指令,所述指令被所述处理器执行时促使所述***执行的操作包括:对于多个区块链中的每个区块链:通过与实体相关联的计算***,从所述区块链获取一个或多个第一区块链交易和一个或多个第二区块链交易,所述一个或多个第一区块链交易分别对应于与所述实体相关联的一个或多个收入价值转移,所述一个或多个第二区块链交易分别对应于与所述实体相关联的一个或多个支出价值转移;通过与所述实体相关联的所述计算***进行交易选择过程的一次或多次迭代,其中,所述交易选择过程的所述一次或多次迭代中的每一次包括:确定所述一个或多个第一区块链交易的子集;基于所确定的所述一个或多个第一区块链交易的子集和所述实体在所述区块链上的区块链账户的余额,选择所述一个或多个第二区块链交易的子集;基于所述一个或多个第一区块链交易的子集、所述一个或多个第二区块链交易的子集、以及所述区块链上所述区块链账户的所述余额,确定与所述区块链相关联的增量值,其中,所述增量值对应于所述区块链上所述区块链账户与所述实体在所述多个区块链中一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及向所述区块链添加第三区块链交易,所述第三区块链交易包括与所选择的所述一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本;以及响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
根据又一方面,用于基于区块链的死锁解决的非暂时性计算机可读存储介质可配置有可由一个或多个处理器执行的指令,所述指令被执行以使所述一个或多个处理器执行的操作包括:对于多个区块链中的每个区块链:通过与实体相关联的计算***,从所述区块链获取一个或多个第一区块链交易和一个或多个第二区块链交易,所述一个或多个第一区块链交易分别对应于与所述实体相关联的一个或多个收入价值转移,所述一个或多个第二区块链交易分别对应于与所述实体相关联的一个或多个支出价值转移;通过与所述实体相关联的所述计算***进行交易选择过程的一次或多次迭代,其中,所述交易选择过程的所述一次或多次迭代中的每一次包括:确定所述一个或多个第一区块链交易的子集;基于所确定的所述一个或多个第一区块链交易的子集和所述实体在所述区块链上的区块链账户的余额,选择所述一个或多个第二区块链交易的子集;基于所述一个或多个第一区块链交易的子集、所述一个或多个第二区块链交易的子集、以及所述区块链上所述区块链账户的所述余额,确定与所述区块链相关联的增量值,其中,所述增量值对应于所述区块链上所述区块链账户与所述实体在所述多个区块链中一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及向所述区块链添加第三区块链交易,所述第三区块链交易包括与所选择的所述一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本;以及响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
根据又一其他实施例,一种用于执行基于区块链的死锁解决的装置可以包括获取模块、交易选择模块和终止模块。在一些实施例中,所述获取模块可以,对于多个区块链中的每个区块链,获取分别对应于与实体相关联的一个或多个收入价值转移的一个或多个第一区块链交易以及分别对应于与所述实体相关联的一个或多个支出价值转移的一个或多个第二区块链交易。在一些实施例中,所述交易选择模块可以进行交易选择过程的一次或多次迭代,其中,所述交易选择过程的所述一次或多次迭代中的每一次包括:确定所述一个或多个第一区块链交易的子集;基于所确定的所述一个或多个第一区块链交易的所述子集和所述实体在所述区块链上的所述区块链账户的余额,选择所述一个或多个第二区块链交易的子集;基于所述一个或多个第一区块链交易的所述子集、所述一个或多个第二区块链交易的所述子集、以及所述区块链上的所述区块链账户的余额,确定与所述区块链相关联的增量值,其中,所述增量值对应于所述区块链上的所述区块链账户与所述实体在所述多个区块链中的一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及向所述区块链添加第三区块链交易,所述第三区块链交易包括与所选择的所述一个或多个第二区块链交易的子集相对应的一个或多个标识符和所述增量值的加密版本。在一些实施例中,所述终止模块可以响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
本文中公开的实施例具有一个或多个技术效果。在一些实施例中,基于区块链的方法收集多个实体的收入交易和支出交易的信息,识别可结算的交易的子集,并通过所有实体都参与的去中心化的多步骤机制结算所识别的交易。该机制通过区块链合约的自动运行实现。这为交易和可能发生的任何死锁提供了有效、公平、可靠和透明的解决方案。在其他实施例中,该方法跨多个区块链网络排列多个实体的资产和负债的记录,方便了每个实体的资产跨区块链网络的动态移动,以满足实体的交易需求。这允许在具有不同特征(如共识协议、访问规则和参与节点)的不同区块链网络之间的可信的信息交换。区块链网络之间这种可信的信息交换改善了每个实体的流动性的有效利用和死锁解决的机会。在一些实施例中,区块链网络内的交易信息仅对相关方可见,并且诸如支付金额的机密信息受承诺保护,并由零知识范围证明来证明。这保护了参与的实体的机密信息。在一些实施例中,基于跨多个参与者和多个网络的全局范围内的先进先出协议来提出待结算的交易,并且所有参与者都参与了死锁解决过程的每一步。这确保了最终解决对所有参与者的公平性。
在参考附图考虑以下描述和所附权利要求书之后,本文所公开的***、方法和非暂时性计算机可读介质的这些特征和其他特征,以及结构的相关元件的操作方法和功能、部件的组合和制造的经济性将变得更清楚,所有这些形成本文的一部分,其中,在各个附图中,相同的附图标记表示对应的部件。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在作为本发明的限制的定义。
附图说明
图1示出了根据一些实施例的与区块链相关的网络环境。
图2示出了根据一些实施例的用于实现区块链交易的框架。
图3示出了根据一些实施例的用于实现基于区块链的死锁解决的示例网络环境。
图4示出了根据一些实施例的用于实现基于区块链的死锁解决的计算***的示例图。
图5示出了根据一些实施例的用于实现基于区块链的死锁解决的示例区块链合约。
图6示出了根据一些实施例的用于实现基于区块链的死锁解决的计时服务的示例图。
图7示出了根据一些实施例的用于实现基于区块链的死锁解决的示例工作流程。
图8示出了根据一些实施例的基于区块链的死锁解决的示例应用。
图9示出了根据一些实施例的用于实现基于区块链的死锁解决的示例方法。
图10示出了根据一些实施例的用于实现基于区块链的死锁解决的计算***的示例框图。
图11示出了可以在其中实现本文所描述的任意实施例的计算机***的示例框图。
具体实施方式
本文描述的实施例提供了与基于区块链的死锁解决框架相关的方法、***和装置。当交换资产的实体由于流动性不足而无法单独结算其支出交易或负债时,可能会出现死锁。该平台集成了各种组件,如区块链网络、链外通信通道、云应用程序、客户端应用程序、应用程序编程接口和其他合适的组件,以实现与解决跨网络死锁相关的各种功能。诸如资产所有者或服务提供者(如银行)、监管机构、信息服务提供者、解决协调者的各方,均可参与该死锁解决框架。各方可通过与一个或多个区块链网络交互,记录待结算的交易,参与死锁解决过程。一方可以通过控制与区块链网络相关联的节点,经由该节点参与与区块链网络相关的共识协议,以及使用该节点执行与死锁解决相关的操作,来与区块链网络交互。可选地,一方可以通过与一个或多个其他实体相关联的一个或多个区块链节点与区块链网络交互。一方还可以使用由提供各种区块链相关服务的平台提供的一个或多个接口与区块链网络交互。
为了说明本申请公开的各种实施例的应用场景,此处为在单一支付网络中的死锁解决的简单示例。例如,同一网络(例如,区块链网络)中的银行1、银行2和银行3参与的三方资产转账场景:银行1需要向银行2转账12万美元,银行2需要向银行3转账15万美元,而银行3需要向银行1转账8万美元。假设银行1、银行2和银行3的当前余额均为5万美元,由于当前余额不足,它们都无法直接结算其支出交易。但是,银行可以以净额结算支付。资产转账交易可以由网络内的中央计算***聚合以确定是否有可用的死锁解决。例如,银行1在向银行2结算其12万美元的支出交易时,可以考虑来自银行3的收入交易8万美元;银行2在向银行3结算其15万美元的支出交易时,可以考虑来自银行1的收入交易12万美元;银行3在向银行1结算其8万美元的支出交易时,可以考虑来自银行2的收入交易15万美元。这样一来,银行1只需向银行3转账4万美元,银行2只需向银行3转账3万美元。在应用了该死锁解决后,银行1的新余额为1万美元,银行2的新余额为2万美元,而银行3的新余额为12万美元。
当交易分布在多个区块链网络上时,基于直接净额的死锁解决可能是不切实际的。例如,一个网络中的交易可能对另一网络不可见和/或一个网络中的交易以与其他网络中的交易不同的方式进行加密,并且可能没有能够跨网络聚合所有资产转账交易的中央计算***。根据本申请提供的一些实施例,解决协调者(例如,与计时服务提供者相关联的计算***)可以管理基于区块链的死锁解决的工作流程,例如启动解决过程、暂停工作流程的迭代/终止工作流程的迭代、以及终止整个解决。该解决可以包括在多个区块链网络中每一个上的交易选择过程的一次或多次迭代。在每次迭代期间,每个参与者(例如,与银行或资产交换机构相关联的计算***)可以通过考虑各种因素,例如其支出交易的优先级、其他参与者的提议、其在多个区块链网络上的区块链账户的当前余额、其他合适的因素或它们的任意组合,来提出当前迭代期间要结算的支出交易列表。解决协调者可以监控跨多个区块链网络的每个参与者提交的提议。当提议在全局范围内收敛(converged)(例如,意味着所有参与者都已同意该提议)时,解决协调者可确定已找到死锁解决方案(例如,可在跨多个区块链网络的参与者之间结算支出交易列表)。随后,提供跨网络互操作性的信息服务提供者(如全局公证服务或预言机)可以在死锁解决方案上签名,并通知资产交换机构结算相应的交易。
图1示出了根据一些实施例的与区块链相关的网络环境。如图1所示,在环境100中,客户端111可以耦合到服务器端118,并且服务器端118和节点B可以通过各种通信网络耦合到区块链***112。类似地,服务器端118可以可选地耦合到类似于区块链***112的额外的区块链***,例如区块链***113、区块链***114等。每个区块链***可以维护一个或多个区块链。
在一些实施例中,客户端111可以包括一个或多个服务器(例如,节点C)和一个或多个其他计算设备(例如,节点A1、节点A2、节点A3)。节点A1、节点A2和节点A3可以耦合到节点C。在一些实施例中,节点C可以由实体(例如,网站、手机应用、组织、公司、企业)实现,该实体拥有各种本地账户(例如,从节点A1、节点A2、节点A3访问的本地账户)。例如,手机应用可有数百万的端用户从各自的用户账户访问应用的服务器。应用的服务器可以相应地存储数百万个用户账户。客户端111的组件及其布置可以有许多其他配置。
在一些实施例中,节点B可以包括轻节点(lightweight node)。轻节点可能无法下载完整的区块链,但是可以只下载区块头以验证区块链交易的真实性。轻节点可以由全量节点(例如,区块链***112中的区块链节点)提供服务并且有效地依赖全量节点(fullnode)来访问区块链的更多功能。通过安装适当的软件,可以在诸如膝上型电脑、手机等电子设备中实现轻节点。
在一些实施例中,可以有更多类似于客户端111的客户端耦合到服务器端118。服务器端118可以提供区块链即服务(Blockchain-as-a-Service,BaaS),并且被称为BaaS云。在一个实施例中,BaaS是一种云服务模型,其中客户端或开发人员将Web或移动应用的幕后方面外包。BaaS可以为区块链上发生的活动提供预先编写的软件,例如用户身份验证、数据库管理和远程更新。BaaS云可以在服务器、服务器群集或其他设备中实现。在一个实施例中,BaaS云提供基于区块链技术的企业级平台服务。该服务可帮助客户构建安全稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。基于丰富的安全策略和云的多租户隔离,BaaS云可以使用芯片加密技术提供高级安全保护。基于高度可靠的数据存储,这项服务可以提供能快速扩展而不会中断的端到端且较高可用性的服务。BaaS云可以为标准区块链应用程序和数据提供本地支持。
在一些实施例中,区块链***112可以包括维护一个或多个区块链(例如,公有区块链、私有区块链、联盟区块链等)的多个区块链节点(例如,区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等)。其他区块链***(例如,区块链***113、区块链***114)可以包括维护其他区块链的区块链节点的类似布置。每个区块链节点都可以在一个或多个区块链***中找到。每个区块链***的区块链节点可以维护一个或多个区块链。区块链节点可以包括全量节点。全量节点可以下载每个区块和区块链交易,并对照区块链的共识规则进行检查。区块链节点可以形成网络(例如点对点(peer to peer)网络),在所述网络中一个区块链节点与另一个区块链节点通信。所示的区块链节点的次序和数量仅仅是为了说明的示例。区块链节点可以在服务器、计算机等中实现。例如,每个区块链节点都可以在服务器或服务器集群中实现。服务器集群可以使用负载平衡。每个区块链节点可以对应于经由诸如TCP/IP的各种类型的通信方法耦合在一起的一个或多个物理硬件设备或者虚拟设备。根据分类,区块链节点还可以被称为全量节点、Geth节点、共识节点等。
在环境100中,每个节点和设备可以安装有适当的软件(例如,应用程序编程接口)和/或硬件(例如,有线、无线连接)以访问环境100的其他设备。通常,节点和设备可以能够通过一个或多个有线或无线网络(例如,因特网)彼此通信,通过所述网络可以通信数据。节点和设备中的每一个可以包括一个或多个处理器以及耦接到一个或多个处理器的一个或多个存储器。存储器可以是非暂时性的且计算机可读的,并且配置有可一个或多个处理器执行以促进所述一个或多个处理器执行本文描述的操作的指令。所述指令可以存储在存储器中或通过通信网络下载而不必存储在存储器中。尽管在该图中节点和设备被示为单独的组件,但是应当理解,这些***和设备可以实现为单个设备或耦合在一起的多个设备。例如,节点B可以可选地集成到区块链节点2中。
节点A1、节点A2、节点A3、节点B和节点C等设备可以安装适当的区块链软件来创建区块链账户,并发起、转发或访问区块链交易。术语“区块链交易”可以指在区块链***中执行并记录在区块链中的任务单元。例如,节点A1可以通过与节点C、服务器端118和区块链节点1的通信来访问区块链,并且节点B可以通过与区块链节点2的通信来访问区块链。在一些实施例中,节点A1可以向节点C提交区块链账户创建请求,节点C可以将该请求和其他类似请求转发给服务器端118。服务器端118可以相应地创建区块链账户。
在一些实施例中,在接收到未确认的区块链交易的区块链交易请求后,接收方区块链节点可以对区块链交易执行初步验证。例如,区块链节点1可以在从节点C接收到区块链交易后执行初步验证。一旦被验证,区块链交易可以被存储在接收方区块链节点(例如,区块链节点1)的数据库中,该节点还可以将该区块链交易转发到一个或多个其他区块链节点(例如,区块链节点3、区块链节点4)。由于每个区块链节点可以包括或耦合到存储器,所以数据库可以分别存储在区块链节点的存储器中。数据库可以存储由一个或多个客户端设备提交的区块链交易池。在接收到区块链交易之后,一个或多个其他区块链节点可以重复由接收方区块链节点完成的处理。
每个区块链节点可以根据其偏好从池中选择一些区块链交易,并将其形成为向区块链提出的新区块。区块链节点可以通过投入算力来解决复杂的数学问题,从而对提出的新区块进行“挖矿”。如果区块链交易涉及区块链合约,则区块链节点可以在对应的虚拟机(virtual machine,VM)中本地执行区块链合约。区块链合约可以包括在满足一个或多个预设触发条件时由区块链***自动执行的指令、代码或程序。为了处理区块链合约,区块链网络的每个区块链节点都可以运行一个对应的虚拟机,并在区块链合约中执行相同的指令。虚拟机是基于计算机体系架构并提供物理计算机的功能的计算机***的软件仿真。区块链环境中的虚拟机可以被理解为被设计用作区块链合约的运行时环境的***。
根据共识规则成功挖出所提出的区块链交易的新区块的特定区块链节点可以将新区块打包至其区块链的本地副本中,并将结果多播到其他区块链节点。特定区块链节点可以是首先成功完成验证、已获取验证特权、或者已经基于另一个共识规则被选择等的区块链节点。然后,其他区块链节点可以遵循与特定节点的执行相同的执行顺序在本地执行新区块中的区块链交易,彼此验证执行结果(例如,通过执行哈希计算),并将区块链的副本与特定区块链节点的副本同步。通过更新它们的本地区块链副本,其他区块链节点可以类似地将区块链交易中的这种信息写入到对应的本地存储器中。因此,区块链合约可以部署在区块链上。如果验证在某一点失败,则所述区块链交易被拒绝。
部署的区块链合约可以具有地址,根据该地址可以访问部署的合约。区块链节点可以通过向区块链合约输入某些参数来调用已部署的区块链合约。在一个实施例中,节点C或节点B可以请求调用部署的区块链合约以执行各种操作。例如,可以检索存储在部署的区块链合约中的数据。对于另一示例,可以将数据添加到部署的区块链合约中。对于又一示例,可以执行在部署的区块链合约中指定的金融交易。虽然如上所述,但是其他类型的区块链***和相关联的共识规则可应用于所公开的区块链***。
图2示出了根据一些实施例的用于实现区块链交易的框架。在一些实施例中,客户端111可以向服务器端118发送信息(例如,带有用于创建区块链账户的相关信息的请求),以供服务器端118创建区块链账户。为此,服务器端118可以生成加密密钥、将该请求与其他账户创建请求一起编译、和/或执行其他操作。然后,服务器端118可以将包括编译后的账户创建请求的区块链交易(例如,区块链交易A)发送给一个或多个区块链节点执行。
在一些实施例中,节点B可以构建签名的区块链交易并将其发送到一个或多个区块链节点以供执行。在一个实施例中,节点B可以构建区块链交易B。区块链交易B可以包括用于部署或调用已部署的区块链合约的区块链合约B。例如,区块链交易B可以包括创建区块链账户或调用已部署的区块链合约A的区块链合约。可以在用户端应用221处用源代码对区块链合约B进行编程。例如,用户或机器可以对区块链合约B进行编程。节点B可以使用相应的编译器来编译源代码,该编译器将源代码转换为字节码。区块链交易B可以包括诸如随机数(即“nonce”,例如,区块链交易序列号)、自(即“from”,例如,节点B的区块链地址或另一区块链地址)、至(即“to”,例如,如果部署区块链合约时为空)、交易费(即“transactionfee”)、值(即“value”,例如,交易金额)、签名(即“signature”,例如,节点B的签名)、数据(即“data”,例如,至区块链合约的消息)等的信息。节点B可通过远程过程调用(remoteprocedure call,RPC)接口223将区块链交易B发送到一个或多个区块链节点以供执行。RPC是第一程序(例如,用户端应用)可以用来从位于网络上的另一计算机(例如,区块链节点)中的第二程序请求服务而不必理解网络细节的协议。当第一程序促使进程在不同地址空间中执行时,则其好像被编码为正常(本地)进程调用,而无需程序员明确地编码远程交互的细节。
在一些实施例中,在接收到区块链交易(例如,区块链交易A或B)时,接收方区块链可以验证区块链交易是否有效。例如,可以验证签名和其他格式。如果验证成功,接收方区块链节点就可将接收到的区块链交易(例如,区块链交易A或B)广播到区块链网络,该区块链网络包括各种其他区块链节点。一些区块链节点可以参与区块链交易的挖矿过程。区块链交易可以由特定区块链节点挑选以进行共识验证从而打包到新区块中。如果区块链交易涉及区块链合约,特定区块链节点可以创建与区块链账户地址相关联的区块链合约的合约账户。如果区块链交易涉及调用部署的区块链合约,则特定区块链节点可以触发其本地虚拟机执行接收到的区块链交易,因此从其区块链的本地副本调用部署的区块链合约并更新区块链中的账户状态。如果特定区块链节点成功挖出新区块,则特定区块链节点可以将新区块广播到其他区块链节点。其他区块链节点可以验证该新区块为由该特定区块链节点挖出的。如果达成共识,则将区块链交易B分别打包到由区块链节点维护的区块链本地副本中。区块链节点可以类似地触发其本地虚拟机以执行区块链交易B,从而调用部署在区块链本地副本上的区块链合约A并进行相应的更新。
在接收到新区块时,其他区块链节点可以执行验证。如果达成了新区块有效的共识,则将新区块分别打包到由区块链节点维护的区块链本地副本中。区块链节点可以类似地触发它们的本地虚拟机(例如,本地虚拟机1、本地虚拟机i、本地虚拟机2)以执行新区块中的区块链合约,从而调用区块链的本地副本(例如,本地区块链副本1、本地区块链副本i、本地区块链副本2)并进行相应的更新。每个区块链节点的硬件机器可以访问一个或多个虚拟机,所述虚拟机可以是相应的区块链节点的一部分或耦合到相应的区块链节点。每次都可以触发相应的本地虚拟机来执行区块链交易。同样,将执行新区块中的所有其他区块链交易。轻节点也可以与更新的区块链同步。
图3示出了根据一些实施例的用于实现基于区块链的死锁解决的示例网络环境。图3中的每个字母A、B、C、D、E表示参与资产或其他交易的参与者(例如,银行等资产转账机构)。在该示例网络环境中,A参与了三个区块链网络310、320和330;B参与了两个区块链网络310和320;C参与了两个区块链网络310和330;D和E分别参与了区块链网络320和330。区块链网络310、320、330中的每一个都可以被实现为图1和图2中区块链***112-114中的一个或多个或其组件。在一些实施例中,参与者可以通过向区块链网络提供区块链节点(例如,以计算设备或虚拟机的形式)来参与区块链网络。参与者可以通过多个单独的计算设备或由一个或多个物理计算设备提供的多个虚拟机参与多个区块链网络。在其他实施例中,参与者可以通过与一个或多个其他实体相关联的一个或多个区块链节点,或通过由提供各种基于区块链的服务的平台提供的一个或多个接口,参与区块链网络。该平台可以被实现为图1和2中的服务器端118或其组件。与参与者相关联的计算***可以分别被实现为图1和图2中的客户端111或其组件。在参与者参与的每个区块链网络中,可以创建区块链账户并将其与参与者相关联。区块链账户可包括账户余额,该账户余额指示参与者在相应区块链网络中拥有的当前余额。在一些实施例中,区块链网络可支持基于区块链的资产(例如,代币(token)、加密货币)的创建和交易。公共区块链网络的一个或多个参与者,可以通过将一个或多个区块链交易添加到与区块链网络相关联的区块链,来在彼此间执行一个或多个资产交易。通过区块链交易,基于区块链的资产可以在参与者的区块链账户之间转账。在其他实施例中,区块链网络可用于记录链外资产所有权和交易。一个或多个参与者可以独立于区块链网络参与资产交易,并在与区块链网络相关联的区块链上记录资产交易的细节。或者,一个或多个参与者可以通过向区块链添加一个或多个代表资产交易的区块链交易来承诺资产交易。该一个或多个参与者可随后通过一个或多个区块链外的渠道清算承诺的资产交易。此外,参与者可以访问其参与的所有区块链网络上的所有区块链账户。也就是说,参与者可以将特定数量的余额从一个区块链网络中的一个区块链账户转账到另一个区块链网络中的另一个区块链账户(例如,再分配其跨网络资产)。这可以通过内部记录更新或通过区块链外的渠道交易来实现。参与者可以向每个区块链添加一个或多个区块链交易,以更新各自的账户余额。
在一些实施例中,基于区块链的死锁解决可能需要解决协调者来协调多个区块链网络之间的操作。该协调者可以被实现为计时服务360,该计时服务360通知参与者(例如,资产转账机构)死锁解决过程的开始;通知每个区块链网络该解决过程的特定阶段(例如,死锁解决过程中的多个迭代之一)已完成;监控每个区块链网络以检测收敛、执行其他合适的任务或它们的任意组合。在一些实施例中,计时服务360可以包括与每个区块链网络(例如310、320和330)相关联的区块链节点,以便与每个区块链网络中的其他区块链节点交互,包括与参与者相关联的节点。例如,计时服务360可以向区块链网络310、320和330提交区块链交易,以启动死锁解决过程(例如,一旦观察到该区块链交易,每个参与者都可以开始提出要结算的支出交易),或者通知参与者解决过程将在特定时间开始。作为另一个示例,计时服务360可以通过与计时服务360相关联的区块链节点监控区块链网络310、320和330,以检测指示已找到死锁解决方案的区块链交易。图6中详细地描述了计时服务360的实施例。
图4示出了根据一些实施例的用于实现基于区块链的死锁解决的计算***的示例图。图4中的计算***400可以指和参与死锁解决过程的参与者(例如,资产转账机构)相关联的计算设备、虚拟机或其他合适的终端设备。计算***400可以被实现为图1至图3中的一个或多个组件。例如客户端111、服务器端118、用户端应用221等。计算***400可以使参与者参与到区块链网络440中。区块链网络440可以被实现为图1和图2中的一个或多个区块链***112-114或其组件,或图3中的一个或多个区块链***310-330。在一些实施例中,参与者可以与多个这样的计算***400相关联,以分别参与到多个区块链网络中。
在一些实施例中,计算***400可以包括多个提供各种功能的模块。图4所示的模块是示例性的。依据实施方式,计算***400可以具有更多、更少、可供选择的模块。一些模块可以被合并或拆分。在图4所示的实施例中,计算***400包括交易收集模块421、交易选择模块422、增量确定模块423和区块链交互模块425。
在一些实施例中,计算***400的交易收集模块421可以从区块链网络440中的区块链收集与参与者相关联的所有支出交易(例如,支出支付)和所有收入交易(例如,收入支付)。这些交易可以是从与区块链网络440相关的区块链中检索的区块链交易。支出交易可以包括或表示从与参与者(例如,转让方)相关联的区块链账户到与另一参与者(例如,受让方)相关联的区块链账户的价值转移。支出交易中的转让方和受让方可由其各自的唯一标识符表示,如区块链账户地址。支出交易还可以包括要转出的金额。出于隐私保护的目的,可以在发送至区块链网络440之前,将该金额表示为密文或承诺。在一些实施例中,可以对金额进行同态加密(例如,通过应用同态加密或同态承诺方案)。
在一些实施例中,计算***400的交易选择模块422可以选择由交易收集模块421收集的支出交易的子集进行结算。可以基于各种因素,例如当前区块链网络440中的参与者的当前余额、参与者假定其可能接收的收入交易的总额(例如,基于由区块链网络440中其他参与者提出的支出交易)、和/或参与者可从其在其他区块链网络中的其他区块链账户中转入(例如,资产再分配)的金额,来确定选择的支出交易。
在一些实施例中,如果上述因素指示当前选择的支出交易可能无法结算(例如,资产不足),则交易选择模块422可以从该子集中移除一个或多个优先级最低的支出交易。在一些实施例中,每个支出交易可与按时间顺序确定的特定优先级排序相关联(例如,带有较早时间戳的支出交易具有较高的优先级)。在一些实施例中,支出交易的优先级排序可以由其他因素确定,例如:接收方的优先级(例如,如果支出支付是付给首选客户/接收者的,则其可能具有更高的优先级)、支出交易的截止日期(例如,不同接收方可以设置不同的支付截止日期)、其他合适的因素,或它们的任意组合。
在一些实施例中,计算***400的增量确定模块423可以确定与区块链网络440中参与者的区块链账户相对应的增量值。其中,增量值可以是指示区块链网络440中参与者的区块链账户的待转入或待转出金额的变量。例如,可以基于参与者在区块链网络440中的区块链账户中的当前余额、参与者待接收的区块链网络440中的所有收入交易、以及由交易选择模块422选择的支出交易(例如,提出结算的支出交易)来确定增量值。如果支出交易的总额大于当前余额和收入交易的总额之和,参与者可能需要从它的其他区块链账户中转入一些资产,这可以用正的增量值表示。如果支出交易的总额小于当前余额和收入交易的总额之和,参与者可能能够转出特定金额,以帮助它的其他区块链账户结算支出交易,该特定金额可以用负的增量值表示。
如果参与者拥有多个计算***400,则每个计算***400可以(例如,通过其增量确定模块423)确定增量值,使得多个增量值的总和为0。也就是说,在该资产的内部再分配(例如,在参与者的多个区块链账户之间的资产再分配)期间,可能不会创建或减少流动性(liquidity)。在一些实施例中,为了保证多个增量值之和为0,参与者的多个计算***400可以共同地通信并确定它们的增量值,或者计算***400中的一个可以聚合来自其他***的信息并确定计算***400的多个增量值。
在一些实施例中,计算***400的区块链交互模块425可以向区块链网络440提交区块链交易(包括区块链合约),监控与区块链网络440相关联的区块链。例如,当所有增量值(例如分别对应于参与者的多个计算***400)之和为0时,区块链交互模块425可以向区块链网络440提交区块链交易,该区块链交易包括由交易选择模块422选择的支出交易和由增量确定模块423确定的增量值(例如以加密格式)。区块链交易可以表示来自计算***400的提议,该提议包括的参与者的支出交易可以被结算。在一些实施例中,区块链交易还可以包括范围证明,证明在结算提出的支出交易并执行余额再分配(例如,以增量值表示的待转入或转出金额的形式)后,参与者当前区块链账户的结算后余额为非负。
图5示出了根据一些实施例的用于实现基于区块链的死锁解决的示例区块链合约。区块链合约520可以在与包括多个区块链节点的区块链网络440相关联的区块链中创建。区块链节点可以包括诸如420A、420B、420C的与多个参与者相关联的计算***。如图4的实施例所示,每个计算***可以提交区块链交易,该区块链交易包括所选择的支出交易,该支出交易被提出以待每个参与者对其进行结算。这些区块链交易(例如提议)可以由区块链合约520(例如智能合约)聚合。例如,区块链交易可以指定区块链合约520的地址,并在提交相应的提议时触发区块链合约520的特定方法。
在一些实施例中,区块链合约520可以包括多个模块,例如聚合模块522、验证模块523和报告模块524。每个模块可以包括表示程序、算法、软件方法、其他合适的功能组件或它们的任意组合的计算机可读代码。根据实施方式,区块链合约520可以包括更少、更多或可选择的模块。
聚合模块522可以配置为接收和聚合从诸如420A、420B和420C的计算***提交的提议。在一些实施例中,聚合模块522可以被实现为区块链合约520中的方法,该方法从提交的区块链交易中提取提出的支出交易。
验证模块523可以配置为,在结算参与者的提出的支出交易且执行根据增量值的余额再分配后,验证参与者的结算后余额为非负。在一些实施例中,区块链交易中的交易金额和提议中的增量值可以被同态加密(例如,以密文或承诺的形式),并且可以根据使用的同态加密或承诺方案调整结算后余额的计算。在一些实施例中,提交的区块链交易可能已经包括由相应的参与者提供的范围证明。在这种情况下,验证模块523可能需要验证所提供的证明。在一些实施例中,如果提议的验证失败,区块链合约可以通知相应的区块链节点/计算***(例如,通过提交另一个区块链交易)重新提交另一个提议,或者将该区块链节点(例如,对应的参与者)从参与当前的死锁解决过程排除。
报告模块524可以配置为向区块链网络440提交区块链交易,该区块链交易包括区块链网络440中多个参与者提出结算的经过验证的支出交易。该区块链交易可由诸如420A、420B、420C的计算***监控,作为下一次迭代可以开始的指示。由于一个参与者的支出交易可以是另一参与者的收入交易,对于特定的参与者,这些经过验证的支出交易可以揭示其可能从区块链网络440中其他参与者接收的所有收入交易。因此,由报告模块524提交的区块链交易,可以是每个参与者识别其可能接收的所有收入交易并在下一次迭代期间调整其提议的基础。
图6示出了根据一些实施例的用于实现基于区块链的死锁解决的计时服务的示例图。在一些实施例中,计时服务360可配置为在多个区块链网络之间协调死锁解决过程。例如,计时服务360可以通知多个区块链网络中的每个区块链网络死锁解决过程的开始,通知每个区块链网络该过程的某个迭代(例如,解决过程中的多个迭代之一)已经完成,监控每个区块链网络以检测收敛(例如,区块链网络上的本地收敛,以及跨所有区块链网络的全局收敛),执行其他合适的任务,或它们的任意组合。在一些实施例中,计时服务360可以包括区块链网络的多个区块链节点。计时服务360可以通过向每个区块链网络提交一个或多个区块链交易来执行前述操作。
图6所示的示例性计时服务360包括多个模块,包括触发模块362、超时模块364和监控模块366。根据实施方式,计时服务360可以具有更多、更少、可供选择的模块。一些模块可以被合并或拆分。
触发模块362可配置为,通过通知区块链网络中的参与者提出提议(例如,通知每个参与者提交区块链交易,该区块链交易包括参与者提出结算的支出交易列表),周期性地(例如,每小时、每6小时、每天、每10分钟等)向区块链网络提交区块链交易以启动迭代(例如,死锁解决过程可包括多个迭代)。这里,“通知”可以理解为计时服务360向区块链网络提交区块链交易,以使得监控与区块链网络相关联的区块链的参与者,获取区块链交易。
超时模块364可以配置为周期性地向区块链网络提交超时区块链交易,以终止当前迭代。在当前迭代期间,允许参与者提交他们的提议。在一些实施例中,如果一个或多个参与者未能在超时之前提交提议,则他们可能被排除在参与当前死锁解决过程之外。在其他实施例中,可以允许这些参与者参与同一死锁解决过程的下一次迭代。
监控模块366可配置为监控死锁解决过程,并确定是否已找到有效解决方案,或在预定时间窗口内是否未找到有效解决方案。例如,当发生全局收敛时,可能会找到有效的死锁解决方案。当区块链网络中的每个区块链网络达到本地收敛时,就可能发生全局收敛。当对应区块链网络中的所有提议在两次或多次迭代中保持相同时,发生本地收敛。为了观察收敛,在一些实施例中,监控模块366可以由图5所示的区块链合约520(通过报告模块524)监控在当前迭代期间和从上次迭代中提交的区块链交易,并比较其中包括的支出交易。一旦观察到全局收敛,计时服务360可以向每个区块链网络提交区块链交易,以宣布死锁解决过程的终止。在一些实施例中,每个区块链合约可首先确定是否达到本地收敛,如果达到,则提交相应的区块链交易以通知监控模块366(例如,在监控模块366观察到相应的区块链交易时)。当监控模块366同时观察到所有多个区块链网络上的本地收敛时,可以达到全局收敛。
图7示出了根据一些实施例的用于实现基于区块链的死锁解决的示例工作流程。图7中的示例工作流程涉及计时服务710、多个区块链网络(例如,720A、720B)、与多个参与者相关联的多个计算***(如730A、730B)(例如,计算***可以指使参与者能够与对应的区块链网络交互的区块链节点),以及信息服务提供者770(例如,用于将外部信息、事实验证或其他合适的信息导入区块链网络的预言机或公证服务)。
如图7所示,在步骤712A和712B,计时服务710可以首先通过向多个区块链(例如720A和720B)提交区块链交易,来通知多个区块链网络的参与者,开始死锁解决过程。参与者可以观察(例如,通过对应的计算***730A和730B)这种区块链交易,并开始提出可结算的支出交易的过程。
在一些实施例中,该过程可以从每个参与者首先执行初始化步骤开始,每个参与者首先执行初始化步骤以,通过与参与者相关联的计算***,从区块链获取分别对应于与参与者相关联的一个或多个收入价值转移的一个或多个第一区块链交易,以及分别对应于与参与者相关联的一个或多个支出价值转移的一个或多个第二区块链交易。
返回参考图7,初始化步骤可以包括步骤722AA和722AB。例如,在步骤722AA,计算***730A可以查找由对应的区块链网络托管的区块链720A,并在区块链720A上检索对应参与者的所有收入交易(例如,将对应参与者的区块链账户地址列为支付接收方的交易)和所有支出交易(例如,将该参与者的区块链账户地址列为支付转让方的交易)。类似地,在步骤722AB,计算***730B也可以查找区块链720A以收集其对应的收入交易和支出交易。类似地,每个诸如730A和730B的参与者可以在托管其区块链账户的全部区块链网络(如区块链720B)上执行“查找”操作,以获取参与者在每个区块链网络上的全部收入交易和支出交易。
为了简化说明书中的后续描述,参与者i在迭代t期间收集(例如,通过参与者i的计算***)的收入交易表示为参与者i在迭代t期间收集的支出交易表示为可以理解的是,迭代0(例如,t=0)表示初始化步骤(例如,包括图7中的722AA和722AB)。在一些实施例中,参与者i的可以表示为区块链交易列表,每个区块链交易列表包括对应于区块链交易的索引、对应价值转移的金额的同态加密版本、以及与对应价值转移的接收方相关联的标识符。其中,交易(例如支付)金额的同态加密版本可以用同态承诺方案或同态加密方案生成。例如,交易列表可以被表示为:
其中Indi,k(1≤k≤mi)为唯一标识区块链网络内交易的唯一交易索引,Amti,k(1≤k≤mi)为交易金额,Reci,k(1≤k≤mi)为该交易的受让方(例如,接收人),mi为中交易(即,支出交易)的总数。在一些实施例中,可以通过支持密文计算的同态加密或同态承诺方案保护中的每个Amti,k。例如,每个Amti,k都可以由佩德森(Pedersen)承诺保护。
在执行初始化步骤之后,每个参与者可以在每次迭代期间执行包括以下步骤的迭代方法。
步骤1:由与对应区块链网络相关联的每个计算***(例如,与区块链720A相关联的730A和730B)向对应的区块链网络提出在当前迭代t期间要结算的支出交易列表。该提议可以作为区块链交易提交。例如,在步骤732A和732B,计算***730A和730B可各自向区块链720A提交区块链交易。
换句话说,步骤1涉及一个选择步骤,以确定向该区块链提出的支出交易列表,该列表可以是所有参与者的支出交易的子集。在一些实施例中,该选择步骤可包括以下子步骤。每个子步骤可由每个参与者在托管该参与者的区块链账户的每个区块链网络上执行。
在一些实施例中,可以通过获取与一个或多个第一区块链交易的子集相关联的第一总额(例如,中收入交易的总额)和与一个或多个第二区块链交易的子集相关联的第二总额(例如,中支出交易的总额)来计算Δi(l);通过从第二总额中减去第一总额与区块链账户余额之和来确定增量值Δi(l)。
例如,如果参与者i为了结算中提出的支出交易,需要从其他区块链网络上它的其他区块链账户转入,Δi(l)可具有正值,表示待转入的金额;如果参与者i在结算中所有提出的支出交易后可以转出特定金额(如盈余),Δi(l)可具有负值,表示提供转出的金额。该示例性配置可以根据实施方式而相反或改变。
子步骤3:对于迭代t期间的参与者i,计算其持有账户的所有网络的增量值之和,如果∑lΔi(l)>0(例如,来自参与者i参与的所有区块链网络的参与者i的所有Δi(l)的总和为正),则从中移除最低优先级的交易(例如,来自参与者i参与的所有区块链网络的参与者i的所有支出交易的联合);如果∑lΔi(l)<=0,则跳转至子步骤5。在一些实施例中,具有最低优先级的交易可以指具有最新提交时间的交易。在该子步骤中,“从中移除最低优先级的交易”可以理解为在当前的死锁解决过程中不会再考虑该具有最低优先级的交易(即使其可能会在未来的过程中被考虑)。这个被移除的交易可能与参与者参与的区块链网络之一相关联,因此“从中移除最低优先级的交易”可以更新(例如,通过从其中移除交易)列表中的一个。
子步骤5:对于迭代t期间的参与者i,调整每个区块链网络l的Δi(l),使得∑lΔi(l)=0。可能需要注意的是,只有当∑lΔi(l)<=0时,才能到子步骤5,这意味着一些参与者i的区块链账户可能会向其他区块链账户提供过多的金额(例如,比其他区块链账户需要结算其提出的支出交易的金额多)。在这种情况下,某些参与者i的区块链账户可能会减少其提出的转出金额,以使∑lΔi(l)=0。
子步骤6:对于迭代t期间区块链网络l上的参与者i,向区块链添加第三区块链交易,该第三区块链交易包括与一个或多个第二区块链交易的提出的子集相对应的一个或多个标识符和增量值的加密版本。第三区块链交易可以指来自参与者i的提议,该提议包括每个包括的区块链网络的支出交易列表,其中,是一个或多个第二区块链交易的提出的子集(例如,在跳过低优先级交易后),COM(Δi(l))为受佩德森承诺(例如,为简单起见,省略了佩德森承诺所需的随机数)保护的Δi(l),并且πl是参与者i在该网络上的区块链账户的结算后余额不为负的零知识范围证明。结算后余额可以基于第一和与第二和之间的差来确定,第一和包括区块链上区块链账户的余额和与一个或多个第一区块链交易的子集相关联的第一总额,第二和包括与一个或多个第二区块链交易的子集相关联的第二总额和增量值。例如,结算后余额可以通过以下公式确定:参与者i在该网络上的区块链账户的当前余额减去中的总支出额,再加上RecIni(l)和Δi(l)中的总收入额。在一些实施例中,πl可以是可选的。在一些实施例中,该提议还可以包括第二范围证明,证明与实体相关联的增量值的全局集合的总和等于零(例如,∑lΔi(l)=0的证明)。
如上述子步骤所述,步骤1的目的是为了提出跨所有区块链网络的参与者i的支出交易列表,以在当前迭代期间进行结算。为了结算提出的支出交易列表,参与者i可能需要在不创建或不损失任何资产(例如,由∑lΔi(l)=0保证)的情况下,在区块链网络上再分配其区块链账户余额。区块链网络l上的提议可基于一个假定,即所有RecIni(l)中的收入交易对参与者i来说都是可用的(例如,参与者i假定它将接收所有RecIni(l)中的收入交易)。可以理解的是,在所有参与者提交他们的提议后,RecIni(l)可能会发生变化。例如,参与者i可意识到,如果相应的转让方(例如,其他的参与者)没有提出结算相应的支出交易(例如,以参与者i为接收方的交易),其某些收入交易是不可用的。
在一些实施例中,步骤1中的参与者i不是通过一次移除(例如,跳过)一个最低优先级的支出交易来周期性地为每个区块链网络确定Δi(l),而是可以通过考虑其全局当前余额和收入交易的全局集合(例如,UlRecIni(l)))直接确定参与者i可以结算的支出交易的全局集合。该确定可以跳过最小数量的具有较低优先级的支出交易,使得全局当前余额与收入交易的全局集合的总和不少于剩余的支出交易的总和。剩余的支出交易可以指支出交易的全局集合。在确定支出交易的全局集合后,参与者f可以向每个区块链网络提交区块链交易(例如,提出提议),该区块链交易包括与每个区块链网络相关联的支出交易的全局集合的子集。该支出交易的全局集合的选择可以由参与者i的计算***中的一个,通过与参与者i的其他计算***交换信息(例如,当前余额,收入交易和支出交易),来执行。
在本实施例中,步骤1可以表述为:通过聚合与参与者或实体可用的第一区块链交易的全局集合相关联的多个值来确定第一总额(可用的第一区块链交易可以基于由第一区块链交易(该可用的第一区块链交易可以基于第一区块链交易的转让方发送的一个或多个区块链交易(例如,如上文子步骤6所述的第三区块链交易)来确定,该第一区块链交易显示了转让方的提出的支出交易)。其中,所述第一区块链交易的全局集合包括多个区块链中每一个的一个或多个第一区块链交易;通过聚合余额的全局集合来确定第二总额,其中余额的全局集合包括实体在多个区块链中每一个上的区块链账户的余额,所述多个区块链从第二区块链交易的全局集合中选择一个或多个第二区块链交易,以使得与所选择的一个或多个第二区块链交易相关联的一个或多个值的总和不大于第一总额和第二总额之和,其中,第二区块链交易的全局集合包括针对多个区块链中的每一个所获取的一个或多个第二区块链交易。
步骤2:在每个区块链网络上,通过区块链合约聚合区块链网络中所有参与者提交的提议。在一些实施例中,区块链合约可以向区块链网络提交区块链交易,该区块链网络包括参与者在724A提出结算的聚合的支出交易的列表。聚合的支出交易的列表可以表示为聚合的支出交易的交易索引列表。
在一些实施例中,可将当前迭代期间接收的聚合的支出交易的列表与上一次迭代期间接收的聚合的支出交易的列表进行比较,以检测收敛(例如,当两个列表相同时发生收敛)。当区块链网络全部收敛时,达成死锁解决过程的解决方案/结果。在一些实施例中,该比较可以由计时服务710来执行。
步骤3:由计算***从每个区块链网络获取由区块链合约生成的一个或多个区块链交易,该一个或多个区块链交易包括多个标识符;基于该多个标识符确定一个或多个第一区块链交易(例如,收入交易)的子集,重复步骤1-3直到观察到全局收敛。一个或多个区块链交易可指,在聚合由区块链中的参与者在最新迭代期间提出的支出交易后,由区块链合约提交的区块链交易。例如,这些聚合的支出交易可允许每个参与者确定来自上一次迭代t的(对于在迭代t期间区块链网络l上的参与者i)中的收入交易是否可用,并通过跳过不可用的收入交易(例如,转让方未提出进行结算的交易)来为下一次迭代t+1调整随着的调整,参与者i可以相应地调整其提议。
如图7所示,计算***730A和计算***730B可以在726AA和726AB分别地观察和检索由区块链合约提交的区块链交易。其中,区块链交易包括区块链720A的所有参与者在上一次迭代期间提出的支出交易。
步骤4:一旦观察到全局收敛,则终止死锁解决过程。在一些实施例中,每个区块链(例如,720A、720B)上的区块链合约可以确定是否存在本地收敛(例如,从对应的区块链中的参与者接收到的提议是否在前两次或更多次连续迭代中保持相同)。值得注意的是,在一次迭代中达到本地收敛的区块链可能在下一次迭代时发散。因此,当每个区块链在同一迭代期间均达到其本地收敛时,可以观察到全局收敛。
在一些实施例中,每个本地收敛可导致区块链事件被记录。该事件是可由区块链合约触发的调度信号,可由连接到区块链网络(例如,连接到以太坊(Ethereum)JSON-RPCAPI的去中心化应用程序)的一方监听或监控。计时服务710可以监控每个区块链以观察在同一迭代期间指示本地收敛的区块链事件(例如,在图7中的步骤714A和714B)。在一些实施例中,如果观察到全局收敛,计时服务710可以通过其区块链节点向每个区块链(例如,720A和720B)提交区块链交易,以宣布已达成死锁解决的结果。在一些实施例中,提交给区块链的区块链交易可以包括从区块链参与者处接收的本地收敛的提议。每个提议可包括参与者的待结算支出交易列表,以及指示要转入或转出参与者在区块链上的区块链账户的金额的增量值。在一些实施例中,每个提议中的增量值可以表示为同态承诺值,或者基于参与者共享的公钥(例如,监管机构的公钥)的同态加密值。
步骤5:由每个区块链网络上的每个参与者结算提议的支出交易。该步骤可以以各种方式触发。在一些实施例中,每个参与者可以为了监控由计时服务710提交的全局收敛区块链交易而监控(例如,通过其计算***)区块链。一旦观察到这样的区块链交易,参与者可以继续结算其在最后一次迭代中提出的支出交易。因为每个提议都包括指示参与者区块链账户之间资产再分配的增量值,所以参与者可以先执行再分配,然后结算提议的支出交易。这些操作(例如,资产再分配和结算支出交易)可包括多个步骤,例如,更新账户余额和实际的资产转账。这些步骤可以以同步方式(例如,转账资产的同时更新账户余额)或以异步方式(例如,及时更新账户余额以反映资产转账和已清算的交易,但实际的资产转账可在稍后的时间发生)进行。例如,区块链网络可支持基于区块链的资产(如代币、加密货币)的创建和交易。公共区块链网络的一个或多个参与者,可以通过将一个或多个区块链交易添加到与区块链网络相关联的区块链,来在彼此间执行一个或多个资产交易。通过区块链交易,基于区块链的资产可在参与者的区块链账户之间转账,并相应地更新区块链账户的余额。在另一个示例中,区块链网络可用于记录链外资产的所有权和交易。一个或多个参与者可以独立于区块链网络参与资产交易,并在与区块链网络关联的区块链上记录资产交易的细节。或者,一个或多个参与者可以通过向区块链添加一个或多个代表资产交易的区块链交易来承诺资产交易。一个或多个参与者可随后通过一个或多个区块链外渠道清算承诺的资产交易。
在一些实施例中,可以采用诸如公证服务提供者或预言机770等信息服务提供者来观察全局收敛、验证每个参与者均没有创建或破坏任何资产或流动性、在死锁结果上签名、以及向区块链提交带有其签名的区块链交易(例如,在步骤772A和772B),以使每个参与者能够执行资产再分配和支出交易结算。例如,由于每个区块链网络上的每个参与者提交的最终提议(例如,图8中“(b)跨网络死锁解决”部分所示的提议)不仅包括交易标识符,还包括要转入或转出参与者在区块链网络上的区块链账户的金额(即,参与者i在区块链j上的区块链账户的Δi(l)),信息服务提供者(例如,预言机770)可以验证对于每个参与者i,其聚合的转账金额应等于0,即∑lΔi(l)=0,其中l∈{all the blockchain networks}。在一些实施例中,Δi(l)可由佩德森承诺(或其他合适的同态加密/承诺方案)保护为COM(Δ(l))。在这种情况下,可通过Пl COM(Δi(l))=1验证∑lΔi(l)=0,其中П表示乘积运算。一旦提议通过验证,信息服务提供者可以使用其私钥对该提议进行签名,并将签名以区块链交易的形式提交回对应的区块链网络。随后,每个区块链网络上的智能合约可以根据信息服务提供者的公钥验证收到的签名。一旦验证成功,智能合约可以结算聚合集合中的所有支付消息,并根据对应的增量值和聚合结果更新每个参与者的账户余额。
图8示出了根据一些实施例的基于区块链的死锁解决的示例应用。图8中的“(a)净额结算前”部分示出了初始设置,该初始设置包括两个区块链网络X和Y、以及四个参与者A、B、C和D(例如,银行)。如图所示,A、B和C参与网络X,A、B和D参与网络Y。A在网络X中的区块链账户有一项支出交易义务,表示为:
(Ind(2),Amt(Com(12,*)),Rec(C))
其中,Ind(2)为网络X中该支出交易的唯一标识符,Amt(Com(12,*))为受佩德森承诺保护的交易金额(在本例中为12),Rec(C)指定交易的接收方(在本例中为C)。需要注意的是,交易金额可以通过其他合适的同态加密方案或同态承诺方案保护,这在本说明书中不进行限定。为简单起见,佩德森承诺表示所需的随机数被表示为*。
类似地,C在网络X中的区块链账户有一项支出交易义务(Ind(1),Amt(Com(5,*)),Rec(B)),代表在网络X中C向B支付的金额为5。B在网络Y中的区块链账户有一项支出交易(Ind(1),Amt(Com(20,*)),Rec(D)),代表在网络Y中B向D支付的金额为20。D在网络Y中的区块链账户有一项支出交易(Ind(2),Amt(Com(25,*)),Rec(A)),代表在网络Y中D向A支付的金额为25。
此外,A在网络X中的区块链账户的当前余额为5,如图8所示,该余额也由Com(5,*)形式的佩德森承诺保护。类似地,B和C在网络X中的当前余额为Com(5,*),A、B和D在网络Y中的当前余额为Com(5,*)。
如图1-7所示,当参与者接收到信号时(例如,通过观察由图6中计时服务360提交的区块链交易,或通过遵循预先协商的时间表),可以开始死锁解决过程。死锁解决过程可以包括多个迭代。在每次迭代期间,每个参与者都会提出一个其要结算的支出交易列表。
参考图8中“(b)跨网络死锁解决”部分,在第一次迭代(例如,第1轮提议)期间,A首先收集其所有的收入交易、所有的支出交易和所有的当前余额。在这种情况下,A在网络Y中有一项来自D的收入交易:(Ind(2),Amt(Com(25,*)),Rec(A)),以及在网络X上有一项支出交易:(Ind(2),Amt(Com(12,*)),Rec(C))。A有两个对应于其两个区块链账户的当前余额:各为5。然后A假定其所有收入交易都将收到(例如,由转让方支付),并确定其可能结算的支出交易。在这种情况下,从D向A的总收入交易可提供25,A的总当前余额为10(来自网络X的5和来自网络Y的5),因此,A的可用总资产为35。由于A只有一项12的对C的支出交易,因此它有足够的资产结算(Ind(2),Amt(Com(12,*)),Rec(C))。然而,A在网络X中的当前余额仅为5,并且在网络X中没有收入交易给A。因此,为了结算支出交易,A可将增量值(例如,ΔA(X))确定为从A的其他区块链账户转账的金额。在这种情况下,A可能需要从其在网络Y中的区块链账户再分配7(例如,12-5=7)到其在网络X中的区块链账户。因此,A(例如,通过A的与网络X关联的计算***)可以向网络X提交包括以下提议的区块链交易:
{Payout=[Ind(2)],Delta=COM(7,*),πA}
其中,Payout代表A在网络X中结算的支出交易列表,Delta指定要转入或转出A在网络X中的区块链账户的金额(例如,正数7表示A需要转入7),πA代表证明A在结算Payout中的支出交易后的结算余额不为负的范围证明。在一些实施例中,πA可以是可选的。在这种情况下,Payout具有支出交易索引Ind(2)(代表在网络X中从A到C的支出交易)。
类似地,A还可以向网络Y提交区块链交易,包括以下提议:
{Payout=[],Delta=COM(-7,*),πA}
其中,Payout为空,因为A没有要在网络Y中结算的支出交易,Delta具有负7,表示A提出从其在网络Y的区块链账户中转出7,πA是可选的范围证明。
按照类似的过程,如图8所示,参与者B、C、D也可以在第一次迭代中提出他们的提议。对于C和D,由于它们只参与一个网络,因此它们的Delta为0(表示它们不会转入或转出任何金额)。
这些提议(例如,区块链交易)可以提交给每个网络中的区块链合约。该区块链合约可以聚合相应网络中所有参与者提出的所有支出交易。例如,在第一次迭代后,网络X中的区块链合约可以聚合提出的支出交易的列表,包括{Ind(2),Ind(1)},其中,Ind(2)由A提出,Ind(1)由C提出。类似地,网络Y中的区块链合约可以聚合包括{Ind(1),Ind(2)}的列表,其中,Ind(1)由B提出,Ind(2)由D提出。
后续迭代中的每个参与者都可以使用该支出交易的聚合列表来确定其假定收入交易是否实际可用。例如,在迭代1中,A假定在网络Y中其来自D的收入交易(Ind(2),Amt(Com(25,*)),Rec(A))可用。在迭代1之后,聚合列表显示网络Y中的交易Ind(1)是由D提出的,这意味着在后续的迭代期间该收入交易仍然可用。因此,A可再次在网络X和网络Y中提出与上次迭代相同的提议(因为收入交易、当前余额和支出交易没有改变)。
按照类似的过程,网络X和Y中B的收入交易在迭代2中也不会改变。因此,B可提出与其在迭代1中相同的提议。类似地,C和D也可以在迭代2中提出与其在迭代1中相同的提议。
在一些实施例中,网络上的每个区块链合约可以确定接收到的提议是否收敛(例如,在该迭代期间接收到的提议是否与在上一次迭代期间接收的提议相同)。如果观察到收敛,则每个区块链合约可以记录区块链事件,以宣布与网络相对应的本地收敛。计时服务或其他合适的跨网络协调者可以观察这样的本地收敛事件,并确定是否已经达成全局收敛。在这种情况下,两个网络都观察到了收敛,因此全局收敛已经达成,并且已经找到了死锁解决的结果。例如,在公证服务确认跨网络X和Y的每个参与者的增量之和为零后,来自公证的签名可能会触发净额结算过程,以结算所有参与者的提议,并在每个网络中同时更新其结算后余额。如图8中“(c)净额结算后”部分所示,A可以从其在网络Y中的区块链账户向其在网络X中的区块链账户转账7金额;B可以从其在网络X中的区块链账户向其在网络Y中的区块链账户转账15金额。可能需要净额结算来实际结算(例如,支付)提出的支出交易。
图9示出了根据一些实施例的用于实现基于区块链的死锁解决的示例方法。方法900可以由用于优化资源分配的设备、装置或***执行。方法900可以由图1至图8所示的环境或***的一个或多个模块/组件执行。例如,图4中的计算***400。以下呈现的方法900的操作旨在是说明性的。取决于实施例,方法900可以包括以各种顺序或并行执行的附加的、更少的或可供选择的步骤。
块910包括:对于多个区块链中的每个区块链:通过与实体相关联的计算***,从区块链获取分别对应于与实体关联的一个或多个收入价值转移的一个或多个第一区块链交易,以及分别对应于与实体关联的一个或多个支出价值转移的一个或多个第二区块链交易。
块920包括:由与实体相关联的计算***进行交易选择过程的一次或多次迭代。在一些实施例中,交易选择过程的一次或多次迭代中的每一次包括:确定一个或多个第一区块链交易的子集;基于所确定的一个或多个第一区块链交易的子集和实体在区块链上的区块链账户的余额,选择一个或多个第二区块链交易的子集;基于一个或多个第一区块链交易的子集、一个或多个第二区块链交易的子集、以及区块链上的区块链账户的余额,确定与区块链相关联的增量值,其中,增量值对应于该区块链上的区块链账户与该实体在多个区块链中的一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及向区块链添加第三区块链交易,该第三区块链交易包括与所选择的一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本。
在一些实施例中,向区块链添加第三区块链交易包括:将第三区块链交易发送给与区块链相关的一个或多个区块链节点,以添加到区块链中。其中,第三区块链交易调用区块链上的区块链合约,该区块链合约可执行,以将第三区块链交易中的一个或多个标识符与多个其他区块链交易中的多个其他标识符聚合。
在一些实施例中,确定一个或多个第一区块链交易的子集包括:对于交易选择过程的一次或多次迭代中的第一迭代:确定该一个或多个第一区块链交易的子集为包括该一个或多个第一区块链交易中的每一个;对于交易选择过程的一次或多次迭代中除第一迭代之外的一次或多次迭代中的每一次,通过计算***从区块链获取由区块链合约生成的一个或多个区块链交易,该一个或多个区块链交易包括多个标识符;以及基于该多个标识符确定一个或多个第一区块链交易的子集。
在一些实施例中,选择一个或多个第二区块链交易的子集包括:通过聚合与第一区块链交易的全局集合相关联的多个值来确定第一总额,其中,第一区块链交易的全局集合包括多个区块链中每一个的一个或多个第一区块链交易;通过聚合余额的全局集合来确定第二总额,其中,余额的全局集合包括实体在多个区块链中每一个上的区块链账户的余额;以及从第二区块链交易的全局集合中选择一个或多个第二区块链交易,以使得与所选择的一个或多个第二区块链交易相关联的一个或多个值的总和不大于第一总额和第二总额之和,其中,第二区块链交易的全局集合包括针对多个区块链中的每一个所获取的一个或多个第二区块链交易。
在一些实施例中,第二区块链交易的全局集合与优先级排名分别相关;从第二区块链交易的全局集合中选择一个或多个第二区块链交易包括基于所述优先级排名选择一个或多个第二区块链交易。
在一些实施例中,第二区块链交易的全局集合的优先级排名是按时间顺序确定的。
在一些实施例中,确定与区块链相关的增量值包括:获取与一个或多个第一区块链交易的子集相关联的第一总额和与一个或多个第二区块链交易的子集相关联的第二总额;通过从第二总额中减去第一总额与区块链账户余额之和来确定增量值。
在一些实施例中,基于同态承诺方案或同态加密方案生成增量值的加密版本。
在一些实施例中,一个或多个第一区块链交易和一个或多个第二区块链交易中的每个区块链交易包括:与区块链交易相对应的索引、对应价值转移的金额的同态加密版本、以及与对应价值转移的接收方相关联的标识符,其中,价值转移金额的同态加密版本是基于同态承诺方案或同态加密方案的。
在一些实施例中,第三区块链交易还包括证明第一和不小于第二和的零知识范围证明,第一和包括区块链上区块链账户的余额以及与一个或多个第一区块链交易的子集相关联的第一总额,第二和包括与一个或多个第二区块链交易的子集相关联的第二总额以及增量值。
块930包括:响应于从区块链获取第四区块链交易,终止交易选择过程的一次或多次迭代,该第四区块链交易指示多个区块链中每个区块链上的交易选择的收敛。
在一些实施例中,方法900还可以包括在进行交易选择过程的一次或多次迭代之前:通过计算***获取每个区块链中指示交易选择过程开始的区块链交易。
在一些实施例中,方法900还可以包括,对于多个区块链中的每个区块链:从区块链获取第五区块链交易,该第五交易包括证明与实体相关的增量值的全局集合之和等于零的证明,其中,增量值的全局集合包括与多个区块链中的每个相关联的增量值。
图10示出了根据一些实施例的用于实现基于区块链的死锁解决的计算***的示例框图。下面呈现的计算机***1000的组件旨在是说明性的。根据实施方式,计算机***1000可以包括更多、更少、或可供选择的组件。
计算机***1000可以是计算***400的一个或多个组件的实现的示例。图1至9示出的流程和方法可以由计算机***1000实现。计算机***1000可以包括一个或多个处理器以及一个或多个非瞬态计算机可读存储介质(例如,一个或多个存储器),所述非瞬态计算机可读存储介质耦合到一个或多个处理器并配置有可由一个或多个处理器执行以促使***或设备(例如,处理器)执行上述方法,例如方法900的指令。计算机***1000可以包括与指令(例如,软件指令)相对应的各种单元/模块。
在一些实施例中,计算机***1000可以被称为用于执行基于区块链的死锁解决的装置。该装置可以包括获取模块1010、交易选择模块1020和终止模块1030。在一些实施例中,获取模块1010可以,对于多个区块链中的每个区块链,获取分别对应于与实体相关联的一个或多个收入价值转移的一个或多个第一区块链交易以及分别对应于与实体相关联的一个或多个支出价值转移的一个或多个第二区块链交易。
在一些实施例中,交易选择模块1020可以进行交易选择过程的一次或多次迭代,其中,交易选择过程的一次或多次迭代中的每一次包括:确定所述一个或多个第一区块链交易的子集;基于所确定的一个或多个第一区块链交易的子集和实体在区块链上的区块链账户的余额,选择一个或多个第二区块链交易的子集;基于一个或多个第一区块链交易的子集、一个或多个第二区块链交易的子集、以及区块链上的区块链账户的余额,确定与区块链相关联的增量值,其中,增量值对应于区块链上的区块链账户与该实体在多个区块链中的一个或多个不同区块链上的一个或多个不同的区块链账户之间的价值转移;以及向区块链添加第三区块链交易,该第三区块链交易包括与所选择的一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本。
在一些实施例中,终止模块1030可以响应于从区块链获取第四区块链交易,终止交易选择过程的一次或多次迭代,该第四区块链交易指示多个区块链中每个区块链上的交易选择的收敛。
这里描述的技术可由一个或多个专用计算设备实现。专用计算设备可以是台式计算机***、服务器计算机***、便携式计算机***、手持设备、联网设备或任何其他设备或包括硬连线和/或程序逻辑以实现该技术的设备的组合。专用计算设备可以实现为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或其组合。计算设备通常可由操作***软件控制和协调。传统的操作***控制和调度用于执行的计算机进程,执行存储器管理,提供文件***、联网、I/O服务,并且提供用户界面功能,例如图形用户界面(“GUI”)等等。本文描述的各种***、装置、存储介质、模块和单元可以在专用计算设备中实现,或者在一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,本文描述的指令可以在专用计算设备上的虚拟机中实现。所述指令被执行时可以促使专用计算设备执行本文描述的各种方法。虚拟机可以包括软件、硬件或其组合。
图11示出了可以在其中实现本文所描述的任意实施例的计算机***的示例框图。该计算设备可用于实现图1至10所示的***和方法的一个或多个组件。计算设备1100可以包括总线1102或用于信息通信的其他通信机制,以及与总线1102耦接以处理信息的一个或多个硬件处理器1104。硬件处理器1104可以是例如一个或多个通用微处理器。
计算设备1100还可以包括耦接到总线1102、用于存储可由处理器1104执行的信息和指令的主存储器1107,例如随机-存取存储器(RAM)、高速缓存和/或其他动态存储设备。主存储器1107也可用于在要由处理器1104执行的指令的执行期间存储临时变量或其他中间信息。当这些指令被存储在处理器1104可访问的存储介质中时,这些指令可将计算设备1100呈现为为执行指令中所指定的操作而定制的专用机器。主存储器1107可以包括非易失性介质和/或易失性介质。非易失性介质可以包括例如光盘或磁片。易失性介质可包括动态存储器。介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM,NVRAM、任何其他存储器芯片或盒式磁带、或它们的联网版本。
计算设备1100可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文描述的技术,其中所述固件和/或程序逻辑与计算设备相结合可使得计算设备1100成为专用机器或将计算设备1100编程为专用机器。根据一个实施例,本文中的技术由计算设备1100响应于处理器1104执行包含在主存储器1107中的一个或多个指令的一个或多个序列而执行。这些指令可以从诸如存储设备1109的另一存储介质被读入主存储器1107。包含在主存储器1107中的指令的序列的执行可促使处理器1104执行本文描述的过程步骤。例如,本文公开的过程/方法可以通过存储在主存储器1107中的计算机程序指令来实现。当这些指令被一个或多个处理器1104执行时,它们可以执行如相应附图中所示和上文所述的步骤。在可选实施例中,可以使用硬连线电路代替软件指令或与软件指令组合。
计算设备1100还包括耦接到总线1102的通信接口1110。通信接口1110可以提供耦接到一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个网络。作为另一示例,通信接口1110可以是局域网(LAN)卡,用于提供到兼容LAN(或与WAN通信的WAN组件)的数据通信连接。也可以实现无线链路。
某些操作的性能可以分布在处理器之间,不仅是驻留在单个机器内,而是跨多个机器部署。在一些示例实施例中,处理器或处理器实现引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。
在前述部分中描述的每个过程、方法和算法可以在由一个或多个计算机***或包括计算机硬件的计算机处理器执行的代码模块中实现,并且完全或部分地由所述代码模块自动实现。过程和算法可以部分地或全部地在专用电路中实现。
当本文公开的功能以软件功能单元的形式实现并作为独立产品出售或使用时,它们可以被存储在处理器可执行的非易失性计算机可读存储介质中。本文公开的特定技术方案的全部或部分,或有助于当前技术的方面可以以软件产品的形式体现。软件产品可以存储在存储介质中,该存储介质包括用于使计算设备(可以是个人计算机、服务器、网络设备等)执行本申请实施例的方法的所有或一些步骤的多个指令。存储介质可包括闪存驱动器、便携式硬盘驱动器、ROM、RAM、磁盘、光盘、可操作以存储程序代码的其他介质或它们的任意组合。
特定实施例还提供了一种***,该***包括处理器和存储可由处理器执行的指令的非暂时性计算机可读存储介质。特定实施例还提供了一种非暂时性计算机可读存储介质,该存储介质配置有可由一个或多个处理器执行的指令,以使该一个或多个处理器执行与上述实施例的任何方法中的步骤相对应的操作。
本文公开的实施例可以通过与客户端交互的云平台、服务器或服务器组(以下统称为“服务***”)来实现。客户端可以是终端设备,或者由用户在平台上注册的客户端,其中终端设备可以是移动终端、个人计算机(PC)以及可以安装有平台应用程序的任何设备。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都将落入本公开的范围内。另外,在一些实施例中可以省略某些方法或过程框图。本文所述的方法和过程也不限于任何特定序列,且与其相关的框图或状态可以以其他适当序列执行。例如,所描述的框图或状态可以以不同于具体公开的顺序执行,或者多个框图或状态可以被组合在单个框图或状态中。示例框图或状态可以串行、并行或以某种其他方式执行。可以向所公开的示例性实施例添加框或状态或从所公开示例实施例中移除框或状态。本文所述的示例性***和组件可与所述的不同地构造。例如,与所公开的示例示例实施例相比,可以添加、去除或重新布置元件。
本文描述的示例性方法的各种操作可以至少部分地由算法执行。所述算法可以被包含在存储器(例如,上述非暂时性计算机可读存储介质)中存储的程序代码或指令中。这种算法可以包括机器学习算法。在一些实施例中,机器学习算法可以不明确地对计算机进行编程以执行功能,但是可以从训练数据中学习以建立执行所述功能的预测模型。
本文描述的示例性方法的各种操作可以至少部分地由(例如,通过软件)被临时配置或永久地配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这样的处理器可以构成处理器实现的引擎,运行该引擎以执行这里描述的一个或多个操作或功能。
类似地,本文描述的方法可以至少部分地由处理器实现,其中一个特定处理器或多个处理器是硬件的示例。例如,所述方法的至少一些操作可以由一个或多个处理器或处理器实现引擎执行。此外,一个或多个处理器还可操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(例如,包括处理器的机器)执行,这些操作可以经由网络(例如,Internet)并且经由一个或多个适当的接口(例如,应用程序接口(API))访问。
某些操作的性能可以分布在处理器之间,不仅是驻留在单个机器内,而是跨多个机器部署。在一些示例实施例中,处理器或处理器实现引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。
在本文中,多个实例可以实现作为单个实例描述的组件、操作或结构。尽管一个或多个方法的各个操作被示出并描述为独立的操作,这些独立的操作中的一个或多个可以同时执行,并且不要求这些操作以所示的顺序执行。在示例配置中作为独立组件呈现的结构和功能可以被实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为独立的组件。这些和其他变化、修改、添加和改进都落入本文的主题的范围内。
尽管已经参考具体的示例实施例描述了主题的概述,但是在不脱离本公开的实施例的更广范围的情况下,可以对这些实施例进行各种修改和改变。如果实际上公开了不只一个公开内容或概念,主题的这些实施例在本文中可单独或共同地由术语“发明”指代,这仅仅是为了方便,而不是旨在主动将本申请的范围限制到任何单个公开内容或概念。
本文所示的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中派生出其他实施例,使得可以在不脱离本申请的范围的情况下进行结构和逻辑上的替换和修改。因此,具体实施方式不应被理解为限制性的,并且各实施例的范围仅由所附权利要求以及这些权利要求所享有的等效物的全部范围定义。
本文描述和/或附图中描述的流程图中的任何流程描述、元素或框应理解为潜在地表示包括用于实现流程中特定逻辑功能或步骤的一个或多个可执行指令的模块、段或代码的部分。替代实施方式被包括在本文所描述的实施例的范围内,其中,如本领域技术人员所理解的,取决于所涉及的功能,可以将本文所描述的实施例所示或所讨论的元素或功能删除、无序执行,包括基本上同时或以相反的顺序执行。
除非另有明确说明或上下文另有说明,否则本文件中使用的“或”是包含性的而非排他性的。因此,除非另有明确说明或上下文另有说明,在本文中,“A、B或C”是指“A、B、A和B、A和C、B和C,或,A和B和C”。此外,除非另有明确说明或上下文另有说明,“和”既可用于联合的也可用于各自的。因此,在本文中,除非另有明确说明或上下文另有说明,“A和B”是指联合的“A和B,或各自的A和各自的B”。此外,可以为本文描述为单个实例的资源、操作或结构提供多个单独实例。此外,各种资源、操作、引擎和数据存储之间的边界在某种程度上是任意的,并且在具体的说明性配置的上下文中说明了特定操作。设想了功能的其他分配,可能落入本申请的各种实施例的范围。通常,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为独立的资源。这些以及其他的变化、修改、添加和改进应落入由所附权利要求书表示的本申请的范围。因此,说明书和附图应被视为是说明性的,而不是限制性的。
术语“包含”或“包括”用于表示存在随后声明的特征,但不排除添加其他特征。除非另有明确说明或在所使用的上下文中以其他方式理解,否则诸如“可以”、“能够”、“可能”或“可”等条件语言通常旨在传达某些实施例包括,而其他实施例不包括某些特征、元件和/或步骤。因此,这种条件性语言一般并不意味着特征、元素和/或步骤是一个或多个实施方案以任何方式所必须的,或者一个或多个实施方案必然包括用于在有或没有用户输入或提示的情况下决定这些特征、元素和/或步骤是否包括或在任何特定实施方案中执行的逻辑。
Claims (20)
1.一种计算机实现的用于基于区块链的死锁解决的方法,包括,对于多个区块链中的每个区块链:
通过与实体相关联的计算***,从所述区块链获取一个或多个第一区块链交易和一个或多个第二区块链交易,所述一个或多个第一区块链交易分别对应于与所述实体相关联的一个或多个收入价值转移,所述一个或多个第二区块链交易分别对应于与所述实体相关联的一个或多个支出价值转移;
通过与所述实体相关联的所述计算***进行交易选择过程的一次或多次迭代,其中,所述交易选择过程的所述一次或多次迭代中的每一次包括:
确定所述一个或多个第一区块链交易的子集;
基于所确定的所述一个或多个第一区块链交易的子集和所述实体在所述区块链上的区块链账户的余额,选择所述一个或多个第二区块链交易的子集;
基于所述一个或多个第一区块链交易的子集、所述一个或多个第二区块链交易的子集、以及所述区块链上所述区块链账户的所述余额,确定与所述区块链相关联的增量值,其中,所述增量值对应于所述区块链上所述区块链账户与所述实体在所述多个区块链中一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及
向所述区块链添加第三区块链交易,所述第三区块链交易包括与所选择的所述一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本;以及
响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
2.根据权利要求1所述的方法,还包括:在进行所述交易选择过程的所述一次或多次迭代之前:
通过所述计算***获取每个所述区块链中指示所述交易选择过程开始的区块链交易。
3.根据权利要求1-2中任一项所述的方法,其中,所述向所述区块链添加第三区块链交易包括:
将所述第三区块链交易发送给与所述区块链相关联的一个或多个区块链节点以添加到所述区块链中,其中,所述第三区块链交易调用所述区块链上的区块链合约,并且执行所述区块链合约以将所述第三区块链交易中的所述一个或多个标识符与多个其他区块链交易中的多个其他标识符聚合。
4.根据权利要求3所述的方法,其中,所述确定所述一个或多个第一区块链交易的子集包括:
对于所述交易选择过程的所述一次或多次迭代中的第一迭代:
确定所述一个或多个第一区块链交易的所述子集包括所述一个或多个第一区块链交易中的每一个;以及
对于所述交易选择过程的所述一次或多次迭代中除所述第一迭代之外的一次或多次迭代中的每一次:
通过所述计算***,从所述区块链获取由所述区块链合约生成的一个或多个区块链交易,所述一个或多个区块链交易包括多个标识符;以及
基于所述多个标识符确定所述一个或多个第一区块链交易的所述子集。
5.根据权利要求4所述的方法,其中,所述选择所述一个或多个第二区块链交易的子集包括:
通过聚合与第一区块链交易的全局集合相关联的多个值确定第一总额,其中,所述第一区块链交易的全局集合包括所述多个区块链中每一个的所述一个或多个第一区块链交易;
通过聚合余额的全局集合来确定第二总额,其中,所述余额的全局集合包括所述实体在所述多个区块链中每一个上的所述区块链账户的余额;以及
从第二区块链交易的全局集合选择一个或多个第二区块链交易,以使得与所选择的一个或多个第二区块链交易相关联的一个或多个值的总和不大于所述第一总额和所述第二总额之和,其中,所述第二区块链交易的全局集合包括针对所述多个区块链中的每一个所获取的一个或多个第二区块链交易。
6.根据权利要求5所述的方法,其中:
所述第二区块链交易的全局集合与优先级排名分别相关联;以及
所述从所述第二区块链交易的全局集合选择所述一个或多个第二区块链交易包括基于所述优先级排名选择所述一个或多个第二区块链交易。
7.根据权利要求6所述的方法,其中,所述第二区块链交易的全局集合的所述优先级排名是按时间顺序确定的。
8.根据权利要求1-4中任一项所述的方法,其中,所述确定与所述区块链相关联的增量值包括:
获取与所述一个或多个第一区块链交易的所述子集相关联的第一总额和与所述一个或多个第二区块链交易的所述子集相关联的第二总额;
从所述第二总额中减去所述第一总额与所述区块链账户的余额之和来确定所述增量值。
9.根据权利要求1-8中任一项所述的方法,其中,所述增量值的所述加密版本是基于同态承诺方案或同态加密方案生成的。
10.根据权利要求1-9中任一项所述的方法,其中所述一个或多个第一区块链交易和所述一或多个第二区块链交易中的每个区块链交易包括:
与所述区块链交易相对应的索引,
对应价值转移的金额的同态加密版本,以及
与所述对应价值转移的接收方相关联的标识符,
其中,所述价值转移金额的所述同态加密版本是基于同态承诺方案或同态加密方案的。
11.根据权利要求1所述的方法,其中,所述第三区块链交易还包括证明第一和不小于第二和的零知识范围证明,所述第一和包括所述区块链上所述区块链账户的余额和与所述一个或多个第一区块链交易的所述子集相关联的第一总额,所述第二和包括与所述一个或多个第二区块链交易的所述子集相关联的第二总额和所述增量值。
12.根据权利要求1-4中任一项所述的方法,还包括,对于所述多个区块链中的每个区块链:
从所述区块链获取证明与所述实体相关联的增量值的全局集合之和等于零的证明,其中,所述增量值的全局集合包括与所述多个区块链中的每个相关联的所述增量值。
13.一种非暂时性计算机可读存储介质,配置有能够由一个或多个处理器执行的指令,以使所述一个或多个处理器执行如权利要求1-12中任一项所述的方法。
14.一种用于基于区块链的死锁解决的装置,包括用于执行根据权利要求1-12中任一项所述的方法的多个模块。
15.一种用于基于区块链的死锁解决的***,包括一个或多个处理器以及耦接至所述一个或多个处理器且配置有指令的一个或多个非暂时性计算机可读存储器,所述指令能够被所述一个或多个处理器执行以促使所述***执行操作,包括:对于多个区块链中的每个区块链:
通过与实体相关联的计算***,从所述区块链获取一个或多个第一区块链交易和一个或多个第二区块链交易,所述一个或多个第一区块链交易分别对应于与所述实体相关联的一个或多个收入价值转移,所述一个或多个第二区块链交易分别对应于与所述实体相关联的一个或多个支出价值转移;
通过与所述实体相关联的所述计算***进行交易选择过程的一次或多次迭代,其中,所述交易选择过程的所述一次或多次迭代中的每一次包括:
确定所述一个或多个第一区块链交易的子集;
基于所确定的所述一个或多个第一区块链交易的子集和所述实体在所述区块链上的区块链账户的余额,选择所述一个或多个第二区块链交易的子集;
基于所述一个或多个第一区块链交易的子集、所述一个或多个第二区块链交易的子集、以及所述区块链上所述区块链账户的所述余额,确定与所述区块链相关联的增量值,其中,所述增量值对应于所述区块链上所述区块链账户与所述实体在所述多个区块链中一个或多个不同区块链上的一个或多个不同区块链账户之间的价值转移;以及
向所述区块链添加第三区块链交易,所述第三区块链交易包括与所选择的所述一个或多个第二区块链交易的子集相对应的一个或多个标识符和增量值的加密版本;以及
响应于从所述区块链获取第四区块链交易,终止所述交易选择过程的所述一次或多次迭代,所述第四区块链交易指示所述多个区块链中每个区块链上的交易选择的收敛。
16.根据权利要求15所述的***,其中,所述操作还包括,在进行所述交易选择过程的所述一次或多次迭代之前:
通过所述计算***获取每个所述区块链中指示所述交易选择过程开始的区块链交易。
17.根据权利要求15-16中任一项所述的***,其中,所述向所述区块链添加第三区块链交易包括:
将所述第三区块链交易发送给与所述区块链相关联的一个或多个区块链节点以添加到所述区块链中,其中,所述第三区块链交易调用所述区块链上的区块链合约,并且执行所述区块链合约以将所述第三区块链交易中的所述一个或多个标识符与多个其他区块链交易中的多个其他标识符聚合。
18.根据权利要求17所述的***,其中,所述确定所述一个或多个第一区块链交易的子集包括:
对于所述交易选择过程的所述一次或多次迭代中的第一迭代:
确定所述一个或多个第一区块链交易的所述子集包括所述一个或多个第一区块链交易中的每一个;以及
对于所述交易选择过程的所述一次或多次迭代中除所述第一迭代之外的一次或多次迭代中的每一次:
通过所述计算***,从所述区块链获取由所述区块链合约生成的一个或多个区块链交易,所述一个或多个区块链交易包括多个标识符;以及
基于所述多个标识符确定所述一个或多个第一区块链交易的所述子集。
19.根据权利要求18所述的***,其中,所述选择所述一个或多个第二区块链交易的子集包括:
通过聚合与第一区块链交易的全局集合相关联的多个值确定第一总额,其中,所述第一区块链交易的全局集合包括所述多个区块链中每一个的所述一个或多个第一区块链交易;
通过聚合余额的全局集合来确定第二总额,其中,所述余额的全局集合包括所述实体在所述多个区块链中每一个上的所述区块链账户的余额;以及
从第二区块链交易的全局集合选择一个或多个第二区块链交易,以使得与所选择的一个或多个第二区块链交易相关联的一个或多个值的总和不大于所述第一总额和所述第二总额之和,其中,所述第二区块链交易的全局集合包括针对所述多个区块链中的每一个所获取的一个或多个第二区块链交易。
20.根据权利要求15-18中任一项所述的***,其中,所述确定与所述区块链相关联的增量值包括:
获取与所述一个或多个第一区块链交易的所述子集相关联的第一总额和与所述一个或多个第二区块链交易的所述子集相关联的第二总额;
从所述第二总额中减去所述第一总额与所述区块链账户的余额之和来确定所述增量值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10202004063T | 2020-05-04 | ||
SG10202004063TA SG10202004063TA (en) | 2020-05-04 | 2020-05-04 | Method and system for determining blockchain-based gridlock resolution |
PCT/CN2021/077289 WO2021223492A1 (en) | 2020-05-04 | 2021-02-22 | Method and system for determining blockchain-based gridlock resolution |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115485687A true CN115485687A (zh) | 2022-12-16 |
Family
ID=74218981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180030787.4A Pending CN115485687A (zh) | 2020-05-04 | 2021-02-22 | 确定基于区块链的死锁解决的方法和*** |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN115485687A (zh) |
SG (1) | SG10202004063TA (zh) |
WO (1) | WO2021223492A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012721A (zh) * | 2024-04-09 | 2024-05-10 | 深圳市纷享互联科技有限责任公司 | 基于SaaS的异构***数据同步死循环检测方法、***及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10896255B2 (en) * | 2016-11-14 | 2021-01-19 | The Quantum Group, Inc. | Dynamic episodic networks |
US20180232803A1 (en) * | 2017-02-14 | 2018-08-16 | MonetaGo Inc. | Contract management system and method |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
US11620645B2 (en) * | 2018-06-18 | 2023-04-04 | Jpmorgan Chase Bank, N.A. | Systems and methods for distributed-ledger based intercompany netting |
-
2020
- 2020-05-04 SG SG10202004063TA patent/SG10202004063TA/en unknown
-
2021
- 2021-02-22 CN CN202180030787.4A patent/CN115485687A/zh active Pending
- 2021-02-22 WO PCT/CN2021/077289 patent/WO2021223492A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012721A (zh) * | 2024-04-09 | 2024-05-10 | 深圳市纷享互联科技有限责任公司 | 基于SaaS的异构***数据同步死循环检测方法、***及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021223492A1 (en) | 2021-11-11 |
SG10202004063TA (en) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10986177B2 (en) | Systems and methods of self-forking blockchain protocol | |
US11055136B2 (en) | Prioritization in a permissioned blockchain | |
CN110383279B (zh) | 用于检测重放攻击的***和方法 | |
JP7518220B2 (ja) | ブロックチェーン・ネットワークのノードに関する方法 | |
JP7461417B2 (ja) | セキュアなオフチェーンのブロックチェーントランザクション | |
US11030681B2 (en) | Intermediate blockchain system for managing transactions | |
US20220084020A1 (en) | System and method for scaling blockchain networks with secure off-chain payment hubs | |
CN111164935B (zh) | 在基于区块链的私有交易中提供隐私和安全保护的***和方法 | |
US20190172026A1 (en) | Cross blockchain secure transactions | |
US20190354518A1 (en) | Chain mesh network for decentralized transaction systems | |
CN111095326B (zh) | 用于在区块链网络中执行多个交易的方法、***和装置 | |
CN111213340B (zh) | 选择用于密码功能的证明委托并使其安全 | |
CN110431577B (zh) | 用于检测重放攻击的***和方法 | |
JP2022174127A (ja) | 分散型元帳におけるdagベースのトランザクション処理方法およびシステム | |
US20190333030A1 (en) | Blockchain-based digital token utilization | |
US20200328898A1 (en) | Performing parallel execution of transactions in a distributed ledger system | |
US20210049306A1 (en) | System and method for consensus management | |
JP6730369B2 (ja) | 利用管理方法、利用管理システム、および、ノード | |
CN112020705A (zh) | 区块链随机计时器事务同步 | |
US20220156725A1 (en) | Cross-chain settlement mechanism | |
WO2022058183A1 (en) | Integrating device identity into a permissioning framework of a blockchain | |
US20200128023A1 (en) | System and method for registering subscribable states in blockchain | |
WO2021223493A1 (en) | Method and system for blockchain-based loan management | |
TW202139127A (zh) | 用於與區塊鏈相關聯之服務平台之運算服務 | |
CN112074861A (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 |