CN111199481A - 基于异步定向非循环图的分布式交易网络 - Google Patents
基于异步定向非循环图的分布式交易网络 Download PDFInfo
- Publication number
- CN111199481A CN111199481A CN201910829909.0A CN201910829909A CN111199481A CN 111199481 A CN111199481 A CN 111199481A CN 201910829909 A CN201910829909 A CN 201910829909A CN 111199481 A CN111199481 A CN 111199481A
- Authority
- CN
- China
- Prior art keywords
- transaction
- verifier
- party
- nodes
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/42—Confirmation, e.g. check or permission by the legal debtor of payment
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/3247—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 involving digital signatures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种分布式交易网络,用于异步地处理和验证交易方(包括转让方和受让方)之间的交易。转让方有义务将资产控制权转让给受让方。每个交易方在其加入网络时被随机分配一个验证者,通过让验证者确保转让方的资产满***易义务并且不存在分叉状况来验证其交易方的交易。每个交易仅在每个验证者验证和签名交易之后才被执行。分布式交易网络具有有向非循环交易图,其包括拓扑排序的交易,这些交易形成每个交易方顺序地执行交易的单个交易路径,以防止竞争状况、双重花费或分叉状况的发生。交易网络还包括全局共识机制,用于检测和替换不合格验证者并撤销由不合格验证者不正确签名的无效交易。
Description
技术领域
本发明总体涉及用于执行在交易双方之间转移数字资产的交易(transaction)的***。本发明尤其涉及适用于异步地(asynchronous)执行安全交易的分布式交易网络。
背景技术
区块链(block chain)技术变得越来越普遍,这是由于其能够提供分布式、无信任(trustless)的交易***,并且能够以透明方式(transparent)执行(execute)交易并建立已执行交易的不可更改记录(unalterable permanent record)。然而,区块链技术因其底层设计导致其性能低下(poor performance)、高延迟(latency)和高交易成本(transaction cost),从而严重限制了所述技术的可扩展性(scalability)。
在传统的区块链网络中,交易被写入新区块,必须被网络每个完整节点(fullnode)通过顺序同步所有交易的区块链来验证。因此,这个网络的性能(由该网络在给定时间间隔内可以处理的交易数量来定义)受到区块大小和新区块出块时间间隔的严格限制,它们对所有的交易执行全局共识(global consensus)。并且,每个完整节点还必须保存一个不断扩展的分布式账本(distributed ledger)的完整副本,该分布式账本记录区块链网络处理的所有交易。此外,在区块链网络工作量证明(proof of work)机制中,节点参与资源密集型竞赛,通过解决加密难题(cryptographic puzzle),来挖矿新的区块用以添加到区块链中。随着更多的区块添加到区块链中,挖矿的难度不断增加。这种不断增长的存储和计算需求,加上生成新块所需的不断递增的处理能力,形成了普通用户参与的重大障碍,破坏了区块链的分布式(distributed)和去中心化(decentralized)特性,因为越来越少的节点能够满足处理和数据存储要求。因此,区块链不但限制了可扩展性,还降低了去中心化网络所提供的安全性(security),因为处理能力越来越集中在数量越来越少的足够强大的单个节点或集中的采矿池(mining pool)中。
在现有技术中,也有一些寻求解决代表传统区块链网络所缺乏的可扩展性和性能损失的替代网络。一种现有技术的交易网络依赖于免除区块链的共识(consensus)和验证(verification)的点对点网络,而是要求在处理每个交易前,每个进行交易的参与者验证组织为交易链数据结构里的两个先前交易,这样,理论上创造了一个诚实交易的链。然而,这种方法并不能完全防止双重花费(称双花,或double spend)攻击或竞争状况(racecondition),即资产在多个交易中同时被存取,也不能对每个交易进行强有力的验证,以防止不诚实的参与者在诚实参与者的交易活动暂停期间数量压倒诚实参与者。也存在其他网络,依赖于可信(trusted)方充当“代表”(delegate)或“公证人”(notary)来验证交易,从而创建一个完全放弃无信任的、去中心化网络的优势的集中式网络。
因此,需要一种真正的去中心化分布式交易网络,其能够保证执行安全***易的同时克服现有区块链技术的不可扩展性和性能上的不足,同时又避免了现有技术中的替代交易网络的安全性下降和中心化增强的缺点。
在本发明披露的内容中,存在引用或讨论的文献、法案或知识条款的内容,这些引用以及讨论并不是承认文献、法案或知识条款及其组合具有优先权,处于公开状态,为公知常识的一部分或者根据适用的法律规定另外构成现有技术,或者已知与解决本公开所涉及的任何问题的尝试相关。
在为了更好的披露本发明的技术方案讨论传统技术的某些方面的时候,并没有放弃任何技术方面的权利。预计权利要求可能会涵盖在此提到的一个或者多个传统技术的某些方面。
发明内容
本发明中公开的一个实施例的一个方面是提供一种能够安全地执行涉及交易各方之间数字资产转移的交易的分布式网络。通常,每笔交易都包含一个交易义务,其中一个交易方是转让方,其有义务将资产的控制权转让给其中另一个交易方作为受让方。因此,本发明提供了一种分布式交易网络,适用于从多个验证者节点中随机选择验证者并将验证者分配给涉及其所有交易的每个交易方(称为该验证者的客户)。每个验证者通过确定其交易方的数字资产(或状态)满***易义务来验证交易,并严格按顺序执行所有特定交易方的交易。向交易方随机选择和分配验证者可防止验证者与交易方之间的串通。本实施例还使用节点这个词交替性地指代分布式交易网络上的各方或交易方。
本发明一个实施例的另一方面提供一种能够安全地并且异步、并行地执行交易的分布式网络,不需要延迟执行每个交易以由整个分布式区块链网络中的挖矿节点对交易进行验证和选择,再把交易收入到全局共识机制的下一个区块之中。相应地,本发明提供了一种分布式交易网络,其中的每个交易在被所有相关交易方及其验证者同意和签名后立即异步地执行。这要求每个交易方对每个交易进行数字签名,并且,分配给每个交易方的每个验证者对该交易进行验证和签名。然后,签名的交易被广播到整个网络,因此只要他们选择这样做,任何节点都可以保留所有交易的副本。但是,交易不需要挖矿节点来选择并将其包括在待确认的区块中,从而避免了区块链中昂贵的全局共识,从而导致即刻确认,并避免针对每个交易确认进行挖矿操作。
本发明中的另一方面是提供一种能够防止竞争状况、分叉或双重花费发生的分布式网络。因此,本发明提供了一种分布式交易网络,其适于形成一个异步分布式非循环拓扑图,该图包括多个拓扑排序顶点,每个顶点表示一个交易。该图中,每个交易方的所有交易形成了一系列互连交易的单个交易路径,该路径将交易方的最近交易连接到该同一交易方的最早交易,确保同一交易方的每个交易按照顺序执行,并且转让方的资产每次只能使用于一个交易。
本发明中的另一方面是提供一种分布式网络,其适用于激励验证者参与,以增加该网络的处理能力和可靠性。因此,本发明提供了一种分布式交易网络,其中的每个验证者有权向每个验证的交易收取费用,并且,还要求验证者提供抵押品(stake),如果该验证者不正确地验证了无效交易,或在其交易方的交易顺序中导致了分叉,那么他的抵押品将被没收。
本发明中的另一方面提供一种分布式网络,该网络能够保护其免受来自作为验证者的恶意节点的攻击,或者验证者犯错。因此,分布式交易网络还包括多个节点,其适于生成和保留全局共识机制,该机制适于存储将每个验证者到每个交易方的分配,而不是存储交易数据本身。全局共识机制通常由多个节点维护,并仅仅允许节点们通过全局共识机制执行行动,以分配和重新分配验证者,撤销无效交易并没收已验证无效交易或分叉的不合格验证者的抵押品。这种全局共识机制可以使用具有多个挖矿节点的工作量证明区块链。每个已完成的交易被广播到网络上的所有节点,并且该交易可以由分布式交易网络检查,并且分布式交易网络适用于撤销不正确地验证的交易。但是,此类检查是自愿的,而且不会妨碍或延迟交易发生和确认。
本发明解决了区块链的至少一个前述缺点-特别是现有技术中发现的示例中固有的缺乏可扩展性。然而,可预期地,本发明可有效解决区块链中的其他问题和缺陷。因此,权利要求不应被解释为仅仅限于解决上文讨论的任何特定问题或缺陷。为了实现上述目的,本发明可以以附图中所示的形式实施。然而,需要注意的是,附图仅是说明性的,其变型也应该被认为是本发明的一部分。
附图简要说明
在附图中,本发明中相同元素由相同的附图标记表示。附图简要说明如下。
图1A为描述根据本发明公开的一个实施例的包括多个互连节点的异步分布式交易网络的附图,其中多个互连节点包括验证者节点、非验证者节点和其他所有节点。
图1B是描述根据本发明公开的一个实施例的分布式交易网络和全局共识机制区块链之间交互的框图。
图1C是描述根据本发明公开的一个实施例的交易方与其相应验证者之间的关系,以及示例交易在异步定向非循环交易图中位置的框图。
图1D是描述根据本发明公开的一个实施例的每个交易方将其数字资产的所有权统称为其状态,以及通过其验证者对每个交易方状态的控制、并进一步显示每个验证者如何拥有自己的验证者并且需要将其数字资产作为抵押品的框图。
图2A是描述根据本发明公开的一个实施例的待决交易和两个前面交易的框图。
图2B是描述根据本发明公开的一个实施例的具有每个交易方及其各自验证者签名的交易参数的示例交易的框图。
图2C是描述根据本发明公开的一个实施例的每个交易方状态的框图。
图3是描述根据本发明公开的一个实施例的一个分布式异步交易图的框图。
图4是描述根据本发明公开的一个实施例的分叉情况的框图,即其中具有同一个交易方的多个待决交易指向这个交易的前一个交易。
图5是描述根据本发明公开的一个实施例的分布式交易网络促成并验证交易的交易处理流程图。
图6是描述根据本发明公开的一个实施例的确认后的验证过程的流程图。
现在将参照框图更全面地描述本公开,框图示出了各种示例性实施例。然而,本公开可以以许多不同的形式体现,并且不应理解为仅限于本文所述的示例性实施例。相反,提供这些示例性实施例是为了使本发明是彻底的、完整的并且充分地将本发明的范围传达给本领域技术人员。
具体实施方式
在以下优选的实施例描述中,通常方框表示数据结构,包括交易40(如图1A所示)或区块链中的块38(如图1B所示)。椭圆表示这种数据结构的集合,例如构成异步有向非循环交易图的数字交易的集合14,或构成区块链的块的集合30。通常,矩形框表示构成计算资源的节点12,节点可表示现实世界中的实体,其可以拥有数字资产,在网络上进行交易或在网络上向其它节点执行某些功能,例如验证。
图1A示出了用于验证和完成交易方15之间的交易40的异步分布式交易网络10,交易方15包括经由网络(诸如因特网)互相连接的多个节点12。每个节点12是计算设备,并且可以是验证者节点19或非验证者节点17。任何节点12都可以充当允许其访问分布式交易网络10并作为交易方15参与的用户节点,而验证者节点19适于在分布式交易网络10上执行附加的分布式计算操作,以及组成所有交易的分布式数据存储。此外,交易方对用户不做限制,任何节点12都可以作为交易方15参与。每一个交易40均被包括在交易网络42中,交易网络42使用分布式数据存储来存储所有交易。分布式交易网络10还包括异步定向非循环交易图14,所述异步定向非循环交易图14是使用交易网络42生成的数据结构,其由验证者节点19共同维护。在加入分布式交易网络10时,从所有的验证者节点19中随机选择验证者分配给每个节点12。被分配验证者的节点12称为客户节点17。每个节点12都可以(但并不被要求)存储所述定向非循环交易图14的完整副本,并且也有资格由分布式交易网络10分配给其客户节点17。更具体地,用户节点的验证者节点19保存其客户节点17的完整交易历史,以及组成其客户节点的所有数字资产的当前“状态”。通过将验证者随机分配给其客户节点17以充当公正的第三方,所述分布式交易网络10可以防止客户节点17参与无效交易或开展其他不正当的行动,例如双重花费(分叉)。此外,分布式交易网络区块链30可以进一步跨多个节点12实现,并且所述区块链30将其中单个验证者的分配存储在该网络中的每个节点。所述分布式交易网络使用区块链达到在向每一个交易节点分配验证节点时的全局共识,其由多个挖矿节点13维护。验证者节点19也可以执行挖矿节点13的功能。
异步定向非循环交易图14中的每个交易由交易方15及其验证者19局部更新,并且与由其他交易方及其验证者更新的所有其他交易一起,构成完整的图14。然后,局部更新的交易由所述交易方节点17及其验证者19向整个网络广播,以便整个网络都知道交易历史。验证者节点19需要除了保留其客户节点17的所有交易的副本之外,还需要保留其客户节点17的数字资产的副本及其状态。因为所有确认后的交易都被广播到整个网络,如果他们如此选择,任何一个节点12均可以保留整个异步定向非循环交易图14的副本。
随机选择验证者有助于确保交易方与其验证者之间没有存在的旧有关系,从而防止验证者串通共谋或其他不正当行为以使交易方受益。分布式交易网络10采用随机化的全局共识协议来在验证者节点19中实现共识,以便为每个交易方随机选择验证者。在某一实施例中,通过区块链30来实现这种共识。在某一实施例中,随机分配过程由挖矿节点来执行,所述挖矿节点使用所述区块链将验证者分配给加入网络的每个节点。例如,现在转向图1B,同时继续参考图1A,当新节点15进入所述网络时,验证者节点19经由区块链机制30将验证者19随机分配给该节点。
在优选的实施例中,只有验证者节点19被要求存储交易网络42的一部分和构成其他节点的交易的异步定向非循环图14,允许交易方在不需要复制大量数据的情况下参与交易。此外,每个验证者节点19仅需要存储其客户节点15的所有交易的完整副本和当前状态,这只是交易图14的一部分,而不是整个图和所有交易网络42的完整副本。但是,参与验证者节点19的数量不足会导致潜在验证者数量太少,如果待决交易的数量超过验证者节点19的数量,则延迟交易处理,并增加验证者可能不合格或参与欺诈活动的可能性。因此,分布式交易网络的可靠性、可信度和处理能力取决于具有大量验证者节点19的参与。每个验证者可以为每个验证的交易支付费用,作为参与的激励。为了确保验证的正确性,每个验证者还需要提交抵押品(stake)。抵押品通常由一定数量的数字货币或其他资产表示,如果验证者错误地验证交易,该抵押品将被没收。但是,检测到另一个验证者不正确地验证了无效交易的任何验证者都可能有权收取不合格验证者被没收的抵押品。
继续参考图1B,区块链30包括多个顺序链接的区块38,每个块包含对节点的验证者的分配以及其他分布式计算行动39。新的区块38可以由挖矿节点13使用工作量证明方法或其他传统的区块创建方法来创建,这些方法对于本发明的技术领域中的普通技术人员来说是明了的。然而,与传统的区块链不同,分布式交易网络区块链30不存储实际的交易数据。分布式交易网络区块链用于将验证者分配给加入网络的新节点,以及在确定之前的验证者不合格时,将新的验证者分配给客户节点。例如通过以下方式进行确定:验证无效的交易、允许分叉,或在指定的时间量过去之后未能验证有效交易。在一个优选的实施例中,当节点12需要新的验证者(例如加入分布式交易网络10的新节点,或需要替换不合格的验证者的现有节点)时,每个挖矿节点13随机选择其中一个验证者节点19成为新验证者,并在每个挖矿节点正挖矿的区块内记录该选择。由第一个成功挖矿其区块的挖掘节点13产生的区块被并入分布式交易网络区块链10中作为新区块,并且分布式交易网络10根据存储在新区块38中的分配选择实现新验证者到其各自客户节点的分配。
现在转到图1C,同时继续参考图1A。每个交易40是一种促成改变对转让资产的控制权的机制,例如在交易方15之间发生的有形商品的数字货币或数字表示。每个交易方可以是转让方或受让方,转让方转让处于其状态中的转让资产的所有权或控制权,受让方从转让方接收转让资产的所有权或控制权。例如,示例交易40B具有两个关联的交易方15:“A交易方”16和“B交易方”18。“A验证者”20是“A交易方”16的验证者,而“B验证者”22是“B交易方”18的验证者。“验证者19”负责确认示例交易40B是有效还是无效。当验证者确定交易有效时,验证者就签名交易。每个交易都被认为是待决交易(pending transaction),直到其被与交易方相关联的所有验证者完全验证,并且所有交易方和相关联的验证者对该交易签名,此时该交易被指定为已确认的交易。待决交易由交易方及其各自的验证者在局部处理。已确认的交易被广播到整个网络并且被添加40到异步定向非循环交易图14,而无效交易不被签名,并且被丢弃。
现在转到图图1D,同时仍然参考图1A,每个验证者节点19还被分配另一个验证者节点作为它的验证者。例如,虽然“A验证者”20是A方16的验证者,但它也有一个分配给自己的验证者。例如,当“A验证者”作为交易方参与时,“A验证者”20可以被称为“X交易方”,而其验证者可以称为“X验证者”80。此外,如前所述,每个节点的全部数字资产的集合(包括加密货币)由其验证者控制。其全部数字资产构成节点的状态。在这个例子里,A交易方16的数字资产由A验证者20控制。相应地,A验证者20(“X交易方”)的数字资产则由“X验证者”80控制。验证者在执行其指定的功能时收取用于提供服务的交易费。但是,验证者还将自己的部分数字资产作为抵押品(stake)。如果验证者未能履行职责并签名无效交易,或通过在相同的前任交易之后为其交易方签名多个后继交易而导致分叉,则可以没收抵押品,并将抵押品分配给网络上的其他节点。这会激励验证者保持诚实,并根据本文制定的规则执行其功能。如果验证者没有这样做,分布式交易网络可以没收不合格的验证者的抵押品形式的数字资产,并且撤销无效交易。
现在转到图3,同时继续参考图1A-C。异步有向非循环交易图14包括经由多条边(edge)32连接的多个顶点(vertex)35。每个顶点35表示在至少两个交易方之间进行的一笔交易40,同时每条边32将每个交易与具有至少一个共同交易方的另一交易相连接。边32是单向的,使得交易在拓扑上被排序,其中每个边显示为从一个顶点至另一个顶点的箭头,该另一个顶点表示在时间上较早发生的前任交易。
现在参考图2A,并继续参考图3,示例交易40B通过两条边32与两个前任交易41链接,所述两个前任交易包括第一前任交易41A和第二前任交易41B,两者都发生在示例交易40B之前,如形成每条边32的箭头所示。示例交易40B和第一前任交易41A具有“A方”作为共同的交易方,同时示例交易40B又和第二前任交易41B具有“B方”作为共同的交易方;涉及任何一个特定交易方(例如“A交易方”)的所有交易形成单条交易路径(或称“序列”),其从该交易方的最近一个交易连到最早的交易。当一个交易由每个交易方及其各自的验证者签名时,新交易被添加到异步有向非循环图14,并且连接到与异步有向非循环图中的每个交易方相关联的最近一笔交易。单条交易路径中的交易形成拓扑排序的序列,其中除最早发生的交易外,每个交易都连接到单个前任交易,这样就确保了每个特定交易方的交易被按次序处理,以防止影响作为转让方的交易方的资产的竞争状况、分叉(fork)或潜在的双重花费(double spend)企图的发生。例如,在图3中,“A交易方”是示例异步有向非循环图14中的5个交易的交易方,由表示交易的拓扑排序的顶点表示,交易被编号为40B、41A、43、44和45,并通过交易路径边34A连接。这些交易共同构成“A交易方”的交易路径。示例交易40B是新开始的交易,而交易45是最早发生的交易。B交易方的交易40B、41B、46和47连接成由交易路径边缘34B连接的单一序列。此外,不同交易方的交易路径可以在异步有向非循环图14内的任一个顶点(该顶点表示交易方是共同参与者的交易)处相交。例如,“A交易方”的交易路径和“C交易方”的交易路径在编号为43和45的交易处相交。
此外,与传统的区块链交易不同,传统的区块链交易受到区块创建过程所要求的长时间延迟的影响,其中区块链交易必须被选择包含在区块中才能被认为已确认。而本发明的分布式交易网络中的每个交易方的交易可以与其他不相关的交易方的交易异步地执行。对于待决交易,仅涉及交易方及其各自的验证者。一旦该待决交易被其所有交易方及其验证者签名,交易的执行可能立即发生-无需像传统的区块链那样需要通过等待区块创建和全局共识来延迟已确认交易的执行。
参考图2B,并继续参考图2A,异步有向非循环图和交易路径的拓扑排序反映在交易数据本身中。每个交易的交易数据定义所述交易指向的前任交易,并且可以包括标识当前交易中涉及的每个交易方的前任交易的指针或哈希值。每个交易的详细交易数据可以存储在异步分布式非循环交易图14的其他节点的副本中,但是必须存储在每个客户节点(交易方)的验证者节点保存的交易历史中,或其异步分布式非循环图的副本中。
继续参考图2B以及图2A,每个交易40具有一个或多个交易参数50。交易参数50限定交易中所涉及的交易方,并包括指示交易启动时间的时间戳51。交易参数50还包括转让详情52,识别转让方和受让方,并且也可以一般地或具体地描述每个转让方作为交易义务的一部分需要转让给受让方的转让资产。交易参数50可以描述转让资产的类型和数量。例如,交易参数50可以指定转让资产可以是一定金额的数字货币(包括加密货币)、法定货币、特定数量的有形商品的数字表示、或其他将构成转让资产的数字资产量化的单位。在示例交易40B中,转让细节52指示“A方”16和“B方”18都是转让方以及受让方。因此,“A验证者”20必须验证A方能够履行从“A方”到“B方”的转让,而“B验证者”22必须验证B方能否履行从“B方”到“A方”的转让。
参考图1A-D、图2A-B的同时,转向图2C。每个交易定义转让资产以及要在交易中转让的所述资产的金额或余额。交易中的交易方的所有转让都通过状态转换来实现,该状态转换改变转让方和受让方的状态,导致交易方由于交易而拥有的转让资产的金额发生变化。状态转换的执行由交易方的验证者控制。每个验证者必须核实其交易方的数字资产的金额,以确保交易方在作为转让方时,有足够的数字资产来转让并满***易方的交易义务,以及进一步为每个验证者提供同意或拒绝将转让资产的控制权从转让方转移到受让方的状态转移的能力。例如,“A验证者”20和“B验证者”22分别控制“A方”16和“B方”18的状态。“A验证者”验证例如由A方的状态54A表示的“A方”的数字资产,包含足够金额的与“A方”有义务转让的转让资产相对应的数字货币55A,并且可以同意或拒绝将数字货币55A转让到“B方”的状态54B的状态转换。类似地,“B验证者”22验证“B方”的状态54B包含“B方”有义务转让的足够金额的数字资产55B,并且可以同意或拒绝该状态转换。此外,为了允许状态转换被撤销,每个交易方的验证者必须保存其交易方的交易历史,该交易历史详细说明了所执行的每个交易方的每个状态转换。为了撤销交易,转让方和受让方的状态和数字资产可以恢复到执行交易之前的初始状态。需要注意的是,每个交易方的状态不保存在任何集中式数据存储中,而是仅存在于局部,保存于交易方自身及其验证者的数字存储中。当然,如果其他节点通过广播获得了所有交易,它们也可以保存任何交易方17的状态的副本,并且如果另一节点成为任何交易方17的验证者,则该节点可以无缝地接管交易方17的状态的控制权。
分布式交易网络可以具有自身的独特加密货币,以及用作分布式账本的异步有向非循环图。例如,这种独特的加密货币可用于支付验证者用于处理和验证交易的费用。还可以通过挖矿节点接收独特加密货币计价的奖品来奖励挖矿节点以挖矿新块。除了唯一的加密货币之外,分布式交易网络还适用于根据需要访问第三方支付处理器或支付解决方案,以便根据需要实现数字或法定货币和其他资产的转让。对于本领域普通技术人员明显的是,分布式交易网络可以生成适当的状态和状态转换,以便于在交易方之间转让各种类型的资产。
返回图2B,同时继续参考图1A和图2C。一旦每个交易方和验证者使用对于交易方和验证者来说独特的数字签名对交易40签名,则交易40的状态从待决交易改变为已确认交易。在优选的实施例中,每个交易方和每个验证者都有一对公钥-私钥,其中私钥用于对交易进行签名,公钥被其他节点用于验证该签名的有效性。每个交易方签名交易(16S,18S)以认证该交易,并表明交易双方对交易义务的理解是一致的。每个验证者在验证交易方的状态并同意状态转换时签名交易20S,22S。在通过所有相关的验证者的签名指定该交易为已确认交易之前,不会执行任何将导致对数字资产的控制权改变的已同意的状态转换。一旦交易已确认,则将已确认的交易广播到交易网络10的所有节点12,并且交易网络允许执行状态转换。
转到图4并同时参考图1A和图2A-2B。交易网络10适于防止在异步有向非循环图14内的任何一个给定的交易方出现分叉(或双花)。异步有向非循环图14中的每个分支对应于交易中两个或更多个随后发生的交易的状况,其中交易方是指向单个前任交易的转让方。当交易方已经参与另一个待决交易,或者通过同时发起两个或多个交易时,交易方可以通过发起新交易来产生分叉。图4描绘了类似于图2A中所示的异步有向非循环图14的一部分,通过添加了指向第一笔交易41A的第二示例交易40F的方式产生分叉32F的添加。示例交易40B和第二示例交易40F都是连接到第一笔交易41A的待决交易,示例交易40B的时间戳51是12:00,而第二示例交易40F的时间戳51是12:01,这表明第二示例交易40F由“A方”发起时,而示例交易40B仍然待决。但是,因为除非A交易方的验证者签字,否则A交易方不能实现任何交易,第二笔交易将不会被确认。如果验证者被要求为客户端交易方验证多于一个交易,他仅会同意其中一个交易并进行签名,从而就防止了分叉状况(fork condition)。在当前示例中,交易方A的验证者A20确定第二示例交易40F的前一笔交易41A,该前一笔交易41A被随后发生的两个交易指向,其中“交易方A”是该示例交易40B和第二示例交易40F的转让方。因此,“交易方A的验证者”将不会签名第二示例交易40F。第二示例交易被丢弃,并且不会向网络广播为已确认的交易,也不会成为异步有向非循环图14的一部分。
现在转向图5,同时参考图1A和图2B,示例交易方法500显示了分布式交易网络10其从发起到完成交易示例40B的一系列步骤。返回参考图2A-C中描绘的示例交易40B,同时继续参考图1A和图3,当交易方“A方”16和“B方”18发起示例交易40B时,交易方法500开始于步骤502。在这里,交易方定义交易参数50。例如,交易参数50可以指定“A方”将十个单位的数字货币A转让到“B方”,而“B方”将转让五个单位的数字货币B到“A方”。然后在步骤504,交易各方签字示例交易40B。在这里,各交易方通过对交易进行数字签名来认证交易,表明每个交易方认同交易并且交易参数是正确的。然后,方法进行到步骤506,示例交易40B作为待决交易被发送到分布式交易网络10上的每个交易方的验证者节点19。
参考图1A和图2A,同时继续参考图5,只需要分配给每个交易方的验证者来验证交易,允许以异步方式处理每个交易。该方法进行到步骤508,每个验证者必须确保示例交易40B不在异步有向非循环图14中为其关联的交易方产生分叉。“A验证者”20和“B验证者”22必须确保示例交易40B的前任交易各自仅连接到其分配的交易方参与的单一个随后发生的交易。“A验证者”20检查异步有向非循环交易图14并验证只有一个随后发生的交易指向前一笔交易41A,而“B验证者”22对第二前任交易41B执行相同操作。此处需要注意的是,出于验证待决交易的目的,每个验证者仅在局部应对待决的交易。在该当前示例中,如果不存在分叉状况,则该方法进行至步骤510,并且每个验证者都验证其分配的交易方的状态。在这里,每个验证者通过确保交易方的现有状态包含足够的数字资产来提供转让资产(如果交易方充当转移方)来验证其交易方能够正确地进入交易。一旦每个验证者确定其交易方的交易有效,验证者在步骤512签名交易,一旦交易被所有相关的验证者签名,则该交易就被确认了。在这里,验证者和交易方可以更新他们的异步有向非循环图的局部副本,并且将交易40B添加到异步有向非循环图14,并且用边32将其连接到与示例交易40B具有共同交易方的最近的前任交易。然后,在步骤514,所有交易方及其验证者将确认的交易以及来自所有交易方及其验证者的签名广播到整个网络。在步骤516,保存异步有向非循环图14的网络上所有其他节点继续将确认的交易添加到它们的异步有向非循环图的副本中,由此,异步有向非循环图在整个网络中使用新的有效交易进行更新。相应地,给定其交易方的现有状态,如果任何验证者分别在步骤508或510确定交易产生分叉,或者该交易无效,则方法继续至步骤518,验证者不签名交易,然后在步骤520丢弃无效交易。
现在返回图1A和图2A-C,同时继续参考图5,现在提供关于步骤510和512的实施的附加细节。在一个优选的实施例中,每个验证者可以首先在步骤508验证交易没有为其交易方产生分叉,然后在步骤510确定状态是否有效并且数字资产是否是否可获取,并准备好通过状态转换转让给受让方。然而,请注意该顺序是不受限制的,在其他实施例中,验证者可以在检查分叉状况的发生之前首先确定其交易方状态的有效性。示例交易40B包含两个转让52,“A方”16和“B方”18都同时即是转让方也是受让方。“A方”的状态58A表明“A方”的数字资产54A包含一定金额的数字资产55A,该数字资产55A目前由“A方”控制,该数字资产55A的所有权将被转移到“B方”。作为“A方”16的指定验证者,“A验证者”20同意检查“A方”的数字资产55A,并验证该数字资产55A包含至少10个单位的数字货币“A”,与交易参数50中指定的金额和类型匹配,并且对“A方”的数字资产55A的所有权可转让给“B方”。类似地,“B验证者”22能够验证“B方”的数字资产55B包含5个单位的数字货币“B”,如交易参数50中所规定的。在验证其分配的交易方的状态之后,每个验证者在步骤512对交易签名,同意状态转换,将对转让资产的控制权从转让方转移给受让方。但是,直到交易确认之后才执行同意的状态转换。一旦所有交易方及其各自的验证者签名了交易,交易的状态就从待决切换到确认,并且在步骤514将已确认的交易广播到分布式交易网络10。然后执行已确认的交易的状态转换,并且所有验证者节点19可以在步骤516中更新异步有向非循环图14以表明交易完成。因此,已执行状态转换的交易被指定为已完成的交易。
返回到步骤513中,如果验证者没有响应并且在经过一定时间之后没有验证其交易方的状态,则与验证者关联的交易方可以报告验证者无响应,并且在步骤515中,分布式交易网络10可以使用全局共识机制在网络的验证者节点之中通过全局共识替换无响应验证者,并且为交易方随机地分配一个新验证者。然后,该方法返回到步骤508中,新分配的验证者继续检查分叉状况并验证交易。。
现在转向图6,示出了示例性的确认后监控和校正方法600,用于检测不合格的验证者,撤销无效的交易和重新分配验证者。继续参考图6,以及也参考图5中描绘的交易方法500以及图1A和图2A-C。分布式交易网络10上的任何节点12(其保存异步分布式非循环交易图14的更全面的副本)可以执行确认后监控并验证已经广播到网络的任何已确认的交易的有效性。每个这样的节点(也可以称为监控节点(monitoring node))可以监控任何已确认的交易,以确定与已确认的交易相关联的任何验证者是否不正确地签名了已确认的交易,例如:在其分配的交易方的交易无效(因为其状态不包含足够用来转让的数字资产)时签名交易,或者即使它产生分叉状况也签名了交易。为了确定交易的有效性,监控节点可以确保转让方具有足够的数字资产来履行其由交易参数定义的义务。此外,节点还必须通过查看异步有向非循环交易图以检查已确认交易的任何前任交易是否有多于一个的同一交易方的后继交易指向它,来确保已确认的交易未产生分叉状况。如果监控节点确定任何已确认的交易是无效的并且被不正确地签名,它可以向分布式交易网络广播一个异议,该异议识别不正确地签名交易的验证者以及交易无效的原因(例如存在分叉状况和/或无效交易)。类似地,确定其分配的验证者无响应的任何交易节点也可以广播无响应的验证者异议。
每当节点之一确定其中一个已确认的交易已被不正确地签名时,可以在步骤604启动确认后监控和校正过程600,然后,在步骤606,所述监控节点向分布式交易网络10广播无效的交易或分叉异议。此外,任何交易方可以在步骤602对其自己的无响应验证者提出无响应验证者异议,并然后在步骤606将无响应验证者异议广播到网络。在每种情况下,将异议广播到整个网络606,如果异议是正确的,则全局共识机制30可以在步骤608中采用全局共识协议来替换无响应或不合格的验证者,没收和重新分配该验证者的抵押品(stake),以及撤销验证者在违规情况下签名的无效交易。可以使用区块链30来实现该共识,然后挖矿节点13由此撤销无效交易或分叉交易,或者用在区块链30上的新创建区块38中记录随机选择的新验证者,来替换违规验证者。在优选实施例中,挖矿节点13在步骤606中接收广播到网络的异议,并立即开始挖分布式交易网络区块链30的新块38。返回参考图1B,同时继续参考图6,每个挖矿节点13作用于广播异议,并将适当的校正行动放到新块中。校正行动可以包括去除每个无响应或不合格的验证者以及分配新的验证者以替换已经被去除的验证者,撤销无效的交易或分叉交易,以及没收不合格验证者的抵押品。将第一个挖矿节点13挖矿新块所生成的区块并到区块链30中,并由分布式交易网络执行存储在新区块38中的校正行动。挖矿节点13连续挖矿新区块,允许分布式交易网络响应于广播到网络的异议而连续地执行适当的校正行动。
一旦无效或分叉交易40被撤销,则它会被从异步有向非循环图14中去掉。不合格验证者的抵押品被没收,以任何商定的协议被重新分配给网络上的其他节点。例如,首先广播导致去除不合格验证者的异议的节点可以通过接收不合格验证者的抵押品来获得奖励,从而为节点提供激励以执行确认后的监控。支付费用和奖励、和抵押品的重新分配可以作为分布式交易网络上的新交易来执行和处理,该新交易由监控节点和/或挖矿节点发起,而不是由交易方发起。抵押品的重新分配可能涉及不合格的验证者和作为交易方广播异议的节点,分别担任转让方和受让方。
本领域的普通技术人员应当可以理解,可以利用各种协议来允许整个分布式网络上的所有节点共同得出某个单一结论。在其他替代实施例中,本发明也允许在不使用区块链的情况下让所有验证者节点19达成全局共识,并且验证者节点可以利用适于分布式计算***的共识协议来分配验证者并发起校正行动。
总之,分布式交易网络通过仅允许交易方和他们的验证者之间创建和签名交易,来减少处理时间,让所述交易在局部和与其余网络异步地发生,因此避免传统区块链的全局同步机制。区块链全局共识过程不需要用于交易验证,也不需要将已确认的交易写入区块链,而是将交易存储在异步有向非循环图14中并广播到整个网络。这允许交易仅由少数几方局部地、异步和并行地实现,从而导致快速执行。同时,交易网络的信实不仅由所有交易方及其验证者的数字签名保留,而且还要求对每个交易方随机分配一个验证者,并确保验证者验证其交易方的每个交易,并防止分叉或双重花费。通过要求验证者提供其自己的数字资产作为抵押品来防止他们不当地验证交易,该抵押品在他们违规地验证无效交易时可能被没收。抵押品被没收后,会通过全局共识机制(可能使用区块链实现)重新分配给其他节点。
本领域的普通技术人员应该了解,本发明的各方面可体现为***、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者组合软件和硬件各方面的实施例的形式,其通常都可以被称为电路、模块或***。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有包含在其上的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质(包括但不限于非暂时性计算机可读存储介质)。计算机可读存储介质可以是例如但不限于电子、磁、光、电磁、红外或半导体***、装置或设备、或者前述的任何合适的组合。计算机可读存储介质的更具体范例(非详尽列表)将包括以下内容:具有一条或多条电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或任何上述的适当组合。在本文件的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储程序以供指令执行***、装置或设备使用或与其结合使用。
计算机可读信号介质可以包括传播的数据信号,其中包含计算机可读程序代码,例如,在基带中或作为载波的一部分。这种传播信号可以采用多种形式中的任何一种,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是任何计算机可读介质,其不是计算机可读存储介质,并且其可以通信、传播或传输程序以供指令执行***、装置或设备使用或与之结合使用。
计算机可读介质上包含的程序代码可以使用任何适当的介质传输,包括但不限于无线、有线、光纤电缆、RF等,或者前述的任何合适的组合。
用于执行本发明的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,包括诸如go或Javascript的异步或并发编程语言,诸如Haskell的函数编程语言,面向对象的编程语言,例如Java,Smalltalk,C++等,以及传统的过程编程语言,例如“C”编程语言或类似的编程语言。其他类型的语言包括XML,XBRL,HTML5,Python或Web程序集。程序代码可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包,部分在用户的计算机上、部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以(例如,通过使用Internet服务供应商的因特网)连接到外部计算机。
下面参考根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图来描述本发明的各方面。流程图图示和/或框图的每个框以及流程图图示和/或框图中的块的组合可以由计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得指令通过计算机的处理器或其他可编程数据处理装置执行,创建用于实现流程图和/或一个或多个框图块中指定的功能/行动的装置。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指挥计算机、其他可编程数据处理装置或其他设备以特定方式起作用,使得存储在计算机可读介质中的指令产生包括实现流程图和/或一个或多个框图块中指定的功能/行动的指令的制品。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程。使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或一个或多个框图块中指定的功能/行动的过程。
框图中的流程图和框图显示了根据本发明的各种实施例的***、方法和计算机程序产品的可能实施方式的架构、功能和操作。此处,流程图或框图中的每个块可以表示代码的模块、片段或部分,其包括用于实现一个或多个指定的逻辑功能的一个或多个可执行指令。还应注意,在其他替代实施方式中,块中提到的功能可以不按图中所示的顺序发生。例如,连续显示的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行,这取决于所涉及的功能。框图和/或流程图图示的每个块以及框图和/或流程图图示中的块的组合可以由执行特定功能或行动的专用的基于硬件的***或专用硬件与计算机指令的组合来实现。
以下权利要求中的所有装置或步骤以及功能元素的对应结构、材料、行动和其他等同物旨在包括用于结合具体要求保护的其他要求保护的元素来执行功能的任何结构、材料或行动。已经出于说明和描述的目的给出了对本发明的描述,但是并不旨在穷举或将本发明限制于所公开的形式。在不脱离本发明的范围和精神的情况下,对其许多修改和变化对于本领域普通技术人员将是明显的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他技术人员能够理解本发明的各种实施例,其具有适合于预期的特定用途的各种修改。
本文描绘的流程图仅是一个示例。在不脱离本发明的精神的情况下,可以对该图或其中描述的步骤(或操作)进行许多变化。例如,可以以不同的顺序执行步骤和/或可以添加、删除和/或修改步骤。所有这些变化都被认为是要求保护的发明内容的一部分。
总之,本文提出了一种基于异步有向非循环图的分布式交易网络。通过框图中的示例以及整个书面描述展示了本发明。应该理解,在遵守本发明构思的同时,可以有许多变化。这些变化也是本发明的一部分。
Claims (20)
1.一种异步促成、验证和执行交易的方法,包括以下步骤:
提供分布式交易网络,所述分布式交易网络具有经由网络可操作地连接的多个节点,每个所述节点具有由数字资产组成的状态,所述多个节点还包括多个验证者节点,所述多个验证者节点适用于验证所述分布式交易网络上的所有交易,以确保这些交易的准确性,并维护该网络并进一步执行分布式计算操作,在特定条件下使用全局共识机制来纠正验证者的不合格;
提供用于维护所有交易的有效性的交易验证***,所述交易验证***包括通过分布式数据存储器存储包含多个顶点的异步有向非循环交易图;其中每个顶点表示有多个交易方参与的一个交易,每个交易方对应于所述多个节点中的一个节点,所述交易方还包括至少一个转让方和一个受让方,或者一个交易可以有更多交易方,每个表示后继交易的顶点必须通过单向边指向至少一个其他顶点,其中,每个被后续交易指向的顶点表示一个发生在所述后续交易之前的前任交易,其中,所述每个前任交易的其中一个交易方与所述后续交易的一个唯一交易方相匹配;
通过使用全局共识机制,通过随机选择多个验证者节点中的一个以在新节点首次加入网络时成为该新节点的验证者,在每个新节点加入分布式交易网络时为每个新节点分配验证者,并且在该分配后,所述新节点的状态由其验证者控制;
每个节点参与多笔交易,每笔交易必须由交易方节点的验证者节点进行验证和确认;
由交易方发起新的待决交易,将交易参数发送至其各自的验证者,并签名该交易;
定义所述待决交易的交易参数,其包括每个转让方的交易义务,所述交易义务确定并量化转让方转让给受让方的待转让资产的数量;
定义一个交易在其转让方将转让资产从转让方转让至受让方时的的状态转换,以及由此引起的转让方和受让方双方的数字资产余额的变化,以及转让方和受让方双方的状态的变化;
只有在待决交易的每个转让方和受让方的验证者同意和签名交易时,才能确认并执行该交易;
每个交易方的验证者验证所述待决交易,每个验证者验证其交易方的状态中的转让资产的余额是否足以满足该方在待决交易中的义务;
验证每个交易方在其前任交易之后,只有一个后续交易,确保该交易方没有分叉或竞争状况,从而防止其资产的双重花费;
在验证方确定其交易方的状态不满***易义务或者该交易方有多于一个后续交易时,其中一个交易方的验证者将所述待决交易指定为无效交易,并丢弃该无效的待决交易;
只有当每个交易方的验证者都验证所述待决交易并且该交易方的验证者同意每个交易方的状态转换时,该待决交易才被指定是已确认的交易;
通过异步地确认每个转让方的同意的状态转换,从而导致将转让资产的控制权转让给受让方,来完成已确认的交易;
将已确认的交易广播到所述分布式交易网络;和
通过所述多个节点更新所述异步分布式交易交易图,将表示已确认的交易的新顶点添加到异步有向非循环图中,使得所述已确认的交易指向它的交易方的每个前任交易。
2.如权利要求1所述的方法,其中发起新的待决交易的步骤还包括通过由交易方列出交易参数和每个交易方签名交易并向每个交易方的验证者发送待决交易,来局部地提出待决交易。
3.如权利要求2所述的方法,发起待决交易的步骤之后是以下步骤:通过对交易进行数字签名,并将其发送给交易方的验证者,每个交易方认证待决交易,表明交易方同意该待决交易。
4.如权利要求3所述的方法,其中:
每个交易方的验证者验证待决交易的步骤还包括每个验证者验证该验证者的交易方的状态是否足以满***易义务,并且不存在分叉条件:即,除了待决交易之外,没有交易方的后继交易指向交易方的验证者的前任交易;和
将待决交易指定为无效的步骤还包括:当验证者确定其交易方的状态不满***易义务或确定存在分叉状况时,其中一个交易方的验证者将所述待决交易指定为无效。
5.如权利要求4所述的方法,其中:
验证待决交易的步骤还包括每个验证者在验证其交易方的状态足以满***易义务并且不存在分叉状况时对待决交易进行数字签名。
6.如权利要求5所述的方法,其中:
将待决交易指定为已确认交易的步骤,还包括只有当每个验证者验证了该待决交易有效以后并进行数字签名以后,才将所述待决交易指定为已确认的交易,并且同意交易方的验证者对每个交易方进行状态转换,其中交易中指定的资产转让导致每个交易方的数字资产根据交易而变化。
7.如权利要求6所述的方法,其中:
将已确认的交易广播到分布式交易网络的步骤还包括,将已确认的交易与每个交易方和每个交易方的验证者的数字签名一起广播到所述分布式交易网络。
8.如权利要求7所述的方法,其中:
所述修改异步有向非循环图的步骤还包括将新确认的交易添加到异步有向非循环图成为一个新顶点,其交易参数指向该交易的所有前任交易;而且其他节点接收到广播的确认交易和交易方和验证者的所有签名后,和自选地在自己保留的异步有向非循环图副本里添加交易。
9.如权利要求8所述的方法,其中验证和确认交易的步骤还伴随着交易中的每个验证者从其交易方收取交易费,并且同时将其数字资产的一部分作为抵押品进行抵押。
10.如权利要求9所述的方法,其中更新异步分布式非循环交易网络的步骤之后是以下步骤:
由被称为监控节点的多个节点中的至少一个节点对已确认的交易进行监控,其通过验证所述已确认交易的有效性来执行确认后的监控功能,其中验证所述已确认交易的有效性通过确保所述交易方有足够的数字资产以履行其在所述已确认交易中的转让义务,并且不存在任何分叉状况;
在执行所述确认后的监控功能的节点确定转让方的状态没有足够的数字资产来履行在交易中转让给受让方的义务,或者存在分叉状况,并且所述监控节点向分布式交易网络的所有节点广播无效交易异议,并辨识无效的交易以及为其客户交易方不正确地签名无效交易的每个验证者时,将已确认的交易指定为无效交易。
11.如权利要求10所述的方法,其中,将已确认的交易指定为无效交易的步骤之后是:
使用所述全局共识机制执行多个节点的无效交易的撤销,并且撤销无效交易的每个交易状态转换;和
将所述无效交易从异步分布式有向非循环图中丢弃。
12.如权利要求11所述的方法,其中执行所述无效交易的撤销的步骤之后是以下步骤:将不正确地签名所述无效交易的验证者指定为不合格验证者,多个节点使用所述全局共识机制将不合格验证者去除其作为其交易方的验证者。并使用所述的全局共识机制,随机选择所述多个验证者节点中的一个,成为所述交易方的节点的新验证者。
13.如权利要求12所述的方法,通过全局共识机制向每个节点分配新验证者的步骤还包括:将不正确地签名无效交易的验证者指定为不合格验证者的步骤,并且还包括没收所述不合格验证者的抵押品,并使用所述全局共识机制由验证者节点重新分配所述抵押品的步骤。
14.如权利要求13所述的方法,其中,将不正确地签名了无效交易的每个验证者指定为不合格验证者的步骤还包括:将抵押品作为奖励重新分配给广播无效交易异议的监控节点和对所述全局共识机制有贡献的节点,例如区块链中的挖矿节点。
15.如权利要求14所述的方法,将已确认的交易指定为无效交易的步骤之后是以下步骤:在其中一个交易方确定其验证者在指定时间段到期后没有响应之后,向所述分布式交易网络广播无响应验证者异议;
将验证者指定为无响应验证者的步骤之后是以下步骤:通过全局共识机制去除作为其交易方的验证者的无响应验证者,并通过使用全局共识机制随机选择多个验证者节点中的一个以成为所述交易方的节点的新验证者。
16.如权利要求15所述的方法,其中,由多个节点向每个节点分配验证者的步骤还包括:当每个节点刚刚加入分布式交易网络时,就通过所述全局共识机制向每个节点分配验证者。
17.如权利要求16所述的方法,其中:
所述全局共识***包括包含多个顺序块的区块链,所述多个节点还包括多个挖矿节点,所述多个挖矿节点适于维护区块链并挖矿产生新的区块,全局共识机制允许节点达成一致同意并执行权利要求11-16中采取的步骤的操作;和
在执行无效交易的撤销的步骤之前是由多个监控节点从广播异议接收无效交易异议或无响应验证者异议,由其中一个挖矿节点挖矿新块,其中所述新块包含多个适合于响应无效交易异议或无响应验证者异议的校正行动,由撤销无效交易、去除并替换无响应验证者或不恰当地签署了无效交易的验证者,以及没收和重新分发不正确签名无效交易的验证者的抵押品的分布式计算操作组成。
18.如权利要求17所述的方法,其中所述分布式交易网络还具有自己独特的加密货币,其中每个节点的数字资产可以包含其他类型的数字资产和一定金额的所述加密货币;和
所述步骤还包括以下步骤:
用预先指定金额的所述独特的加密货币对挖掘每个连续新块的挖矿节点进行奖励。
19.如权利要求18所述的方法,其中,将不正确地签名无效交易的每个验证者指定为不合格验证者的步骤还包括:使用全局共识机制来发起新的交易,所述新的交易中的转让方是不合格的验证者,受让方是广播所述无效交易的节点和其他有助于维护全局共识机制的节点,例如区块链中的挖矿节点,其中转让资产是所述不合格验证者的抵押品。
20.一种存储指令的计算机可读介质,所述指令在被执行时使得***进行根据权利要求1至19中任一项所述方法的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/120,732 US10713086B2 (en) | 2018-09-04 | 2018-09-04 | Asynchronous directed acyclic map based distributed transaction network |
US16/120,732 | 2018-09-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111199481A true CN111199481A (zh) | 2020-05-26 |
Family
ID=69639676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910829909.0A Pending CN111199481A (zh) | 2018-09-04 | 2019-09-03 | 基于异步定向非循环图的分布式交易网络 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10713086B2 (zh) |
CN (1) | CN111199481A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113537957A (zh) * | 2021-07-01 | 2021-10-22 | 北京极智数仓科技有限公司 | 数字资产交易方法、***、存储介质、数字货币*** |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556874B2 (en) * | 2018-06-11 | 2023-01-17 | International Business Machines Corporation | Block creation based on transaction cost and size |
US11451393B2 (en) * | 2019-01-29 | 2022-09-20 | Kenneth HURLEY | System and method for distributed general-purpose computing with cryptotoken payment system |
WO2019101232A2 (en) * | 2019-03-04 | 2019-05-31 | Alibaba Group Holding Limited | Methods and devices for providing transaction data to blockchain system for processing |
US20220188829A1 (en) * | 2019-03-06 | 2022-06-16 | British Telecommunications Public Limited Company | Transaction verification of distributed ledgers |
US11443326B2 (en) * | 2019-06-05 | 2022-09-13 | International Business Machines Corporation | Geo-location compliance |
US10797887B2 (en) * | 2019-06-26 | 2020-10-06 | Alibaba Group Holding Limited | Confidential blockchain transactions |
US20210073197A1 (en) * | 2019-09-06 | 2021-03-11 | Microsoft Technology Licensing, Llc | Byzantine consensus without centralized ordering |
US11394702B2 (en) * | 2019-09-23 | 2022-07-19 | T-Mobile Usa, Inc. | Authentication system when authentication is not functioning |
DE102020213017A1 (de) * | 2020-10-15 | 2022-04-21 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Bereitstellen eines Zustandskanals |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502135B1 (en) | 1998-10-30 | 2002-12-31 | Science Applications International Corporation | Agile network protocol for secure communications with assured system availability |
US20100111298A1 (en) | 2008-10-27 | 2010-05-06 | Advanced Micro Devices, Inc. | Block cipher decryption apparatus and method |
US10164774B2 (en) | 2014-05-22 | 2018-12-25 | Puccini World Limited | Securing a directed acyclic graph |
US9608829B2 (en) | 2014-07-25 | 2017-03-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
US10652319B2 (en) | 2015-12-16 | 2020-05-12 | Dell Products L.P. | Method and system for forming compute clusters using block chains |
US20170264428A1 (en) | 2016-03-08 | 2017-09-14 | Manifold Technology, Inc. | Data storage system with blockchain technology |
US10803537B2 (en) * | 2016-04-18 | 2020-10-13 | R3 Ltd. | System and method for managing transactions in dynamic digital documents |
CN107306183B (zh) | 2016-04-22 | 2021-12-21 | 索尼公司 | 客户端、服务端、方法和身份验证*** |
-
2018
- 2018-09-04 US US16/120,732 patent/US10713086B2/en active Active
-
2019
- 2019-09-03 CN CN201910829909.0A patent/CN111199481A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113537957A (zh) * | 2021-07-01 | 2021-10-22 | 北京极智数仓科技有限公司 | 数字资产交易方法、***、存储介质、数字货币*** |
Also Published As
Publication number | Publication date |
---|---|
US20200073698A1 (en) | 2020-03-05 |
US10713086B2 (en) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111199481A (zh) | 基于异步定向非循环图的分布式交易网络 | |
KR102652551B1 (ko) | 분산 조정을 사용한 스마트 계약 실행 | |
Zamyatin et al. | Sok: Communication across distributed ledgers | |
CN108492103B (zh) | 一种联盟区块链共识方法 | |
EP3610436B1 (en) | Rapid distributed consensus on blockchain | |
JP7472333B2 (ja) | バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム | |
US20220391890A1 (en) | Private networks and content requests in a resource transfer system | |
US20190172026A1 (en) | Cross blockchain secure transactions | |
US11899809B2 (en) | Proof-of-approval distributed ledger | |
Decker et al. | Bitcoin meets strong consistency | |
CN105573828B (zh) | 一种操作处理方法及装置 | |
Thomas et al. | A protocol for interledger payments | |
CN109003185B (zh) | 一种智能合约的建立方法、装置、计算设备及存储介质 | |
US20160342988A1 (en) | Temporary consensus networks in a resource transfer system | |
US20220351177A1 (en) | Hold condition in a resource transfer system | |
KR102537774B1 (ko) | 기밀 지식의 특화된 증명을 제공하는 시스템들 및 방법들 | |
US20210233068A1 (en) | Settlement system, settlement method, user device, and settlement program | |
US20160342985A1 (en) | One way functions in a resource transfer system | |
US11392944B2 (en) | Transfer costs in a resource transfer system | |
Innerbichler et al. | Federated byzantine agreement to ensure trustworthiness of digital manufacturing platforms | |
WO2017060817A1 (en) | Temporary consensus networks in a resource transfer system | |
Liu et al. | An overview of blockchain efficient interaction technologies | |
KR102084916B1 (ko) | 신속한 검색을 위한 시퀀스 해쉬를 이용한 블록체인 생성 시스템 및 그 방법 | |
JP2023106055A (ja) | エビデンス管理方法、エビデンス管理システム及びノード | |
Antal et al. | Distributed Ledger Technology Review and Decentralized Applications Development Guidelines. Future Internet 2021, 13, 62 |
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 |