CN111754343A - 隐私保护的死锁解除 - Google Patents
隐私保护的死锁解除 Download PDFInfo
- Publication number
- CN111754343A CN111754343A CN202010189395.XA CN202010189395A CN111754343A CN 111754343 A CN111754343 A CN 111754343A CN 202010189395 A CN202010189395 A CN 202010189395A CN 111754343 A CN111754343 A CN 111754343A
- Authority
- CN
- China
- Prior art keywords
- payment
- blockchain
- deadlock
- subset
- payments
- 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
- 230000004931 aggregating effect Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 50
- 230000004044 response Effects 0.000 claims description 22
- 230000002776 aggregation Effects 0.000 claims description 5
- 238000004220 aggregation Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 230000006854 communication Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
- G06Q20/027—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] involving a payment switch or gateway
-
- 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
- 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
-
- 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
- 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/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Abstract
隐私保护的死锁解除。示例操作可包括以下中的一个或多个:从死锁支付网络的参与者接收死锁解除消息,每个死锁解除消息包括要执行的局部支付子集和零知识证明,该零知识证明指示局部支付子集为相应的参与者创建正数账后余额,而不透露正数账后余额;确定死锁解除消息中包括的零知识证明是否有效;聚合来自死锁解除消息的要执行的局部支付子集以创建支付的全局可净算集;以及经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布全局可净算集。
Description
技术领域
本申请总体上涉及区块链处理,并且更具体地涉及死锁解除(gridlockresolution)协议,其中可以使用区块链公平地确定支付的全局子集,支付的全局子集可被处理以解除死锁,同时保护敏感银行信息的隐私。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理单元(CPU)、服务器CPU或大型计算机。通常可从多个不同点访问存储在集中式数据库上的信息。例如,基于客户端/服务器配置,多个用户或客户端工作站可以在集中式数据库上同时工作。集中式数据库由于其单个位置而易于管理、维护和控制,特别是出于安全的目的。在集中式数据库内,由于所有数据的单个存储位置也意味着给定数据集仅具有一个主要记录,因此使数据冗余最小化。
然而,集中式数据库存在显著缺陷。例如,集中式数据库具有单个故障点。特别地,如果没有容错性考虑并且发生硬件故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据都丢失并且所有用户的工作都中断。此外,集中式数据库高度依赖于网络连接。结果,连接越慢,每个数据库访问所需要的时间量就增加。另一个缺陷是当集中式数据库由于单个位置而遇到高流量时就出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供了对数据的有限访问。结果,多个设备无法在不造成显著问题或覆盖已存储数据的风险的情况下同时访问同一数据。此外,由于数据库存储系统几乎没有数据冗余,因此,除了通过从备份存储中手动操作来恢复以外,很难恢复意外丢失的数据。
同时,死锁是当因为若干支付各自等待其他支付的结算所以所有参与者都没有足够的流动性来结算他们的支付指令时在银行间支付网络中发生的情况。在中央银行(中央机构)可以进行控制的支付系统中,系统必须始终依靠中央银行进行死锁解除,这导致上述单点故障问题,并且可能造成中央银行基础设施上的负担过重。此外,在跨境支付系统或其他更通用的支付系统中,没有单个中央银行被托付来进行死锁解除。因此,需要克服这些缺陷和局限性的死锁解除方案。
发明内容
一个示例实施例提供了一种包括处理器和存储器的系统,其中处理器被配置为执行以下中的一个或多个:网络接口,所述网络接口被配置为从死锁支付网络的参与者接收死锁解除消息,其中每个死锁解除消息包括要执行的局部支付子集和零知识证明,所述零知识证明指示局部支付子集为相应的参与者创建正数账后余额(post-balance),而不透露所述正数账后余额;以及处理器,所述处理器被配置为确定所述死锁解除消息中包括的零知识证明是否有效,聚合来自所述死锁解除消息的要执行的局部支付子集以创建支付的全局可净算集(global nettable set),并且经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布所述全局可净算集。
另一示例实施例提供了一种方法,所述方法包括以下中的一个或多个:从死锁支付网络的参与者接收死锁解除消息,每个死锁解除消息包括要执行的局部支付子集和零知识证明,所述零知识证明指示局部支付子集为相应的参与者创建正数账后余额,而不透露所述正数账后余额;确定所述死锁解除消息中包括的零知识证明是否有效,聚合来自所述死锁解除消息的要执行的局部支付子集以创建支付的全局可净算集,并且经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布所述全局可净算集。
另一示例实施例提供了一种包括指令的非暂态计算机可读介质,所述指令在由处理器读取时使处理器执行以下中的一个或多个:从死锁支付网络的参与者接收死锁解除消息,每个死锁解除消息包括要执行的局部支付子集和零知识证明,所述零知识证明指示局部支付子集为相应的参与者创建正数账后余额,而不透露所述正数账后余额;确定所述死锁解除消息中包括的零知识证明是否有效,聚合来自所述死锁解除消息的要执行的局部支付子集以创建支付的全局可净算集,并且经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布所述全局可净算集。
附图说明
图1是示出根据示例实施例的用于死锁解除的区块链网络的图。
图2A是示出根据示例实施例的示例区块链架构配置的图。
图2B是示出根据示例实施例的区块链交易流的图。
图3A是示出根据示例实施例的许可网络的图。
图3B是示出根据示例实施例的另一许可网络的图。
图4A是示出根据示例实施例的用于死锁解除的通信处理的图。
图4B是示出根据示例实施例的从支付网络的参与者提供的死锁解除消息的图。
图5是示出根据示例实施例的用于解除支付网络中的死锁的方法的流程图。
图6A是示出根据示例实施例的被配置为执行本文中描述的一个或多个操作的示例系统的图。
图6B是示出根据示例实施例的被配置为执行本文中描述的一个或多个操作的另一示例系统的图。
图6C是示出根据示例实施例的被配置为采用智能合约的又一示例系统的图。
图6D是示出根据示例实施例的被配置为采用区块链的再一示例系统的图。
图7A是示出根据示例实施例的用于将新区块添加到分布式账本的处理的图。
图7B是示出根据示例实施例的新数据区块的内容的图。
图7C是示出根据示例实施例的用于数字内容的区块链的图。
图7D是示出根据示例实施例的可以表示区块链中的区块的结构的区块的图。
图8是示出支持一个或多个示例实施例的示例系统的图。
具体实施方式
将会容易理解,如本文中的附图中一般性地描述和示出的那样,实例组件可以以多种不同的配置来布置和设计。因此,如附图中表示的方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选择的实施例。
在整个说明书中描述的实例特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,在整个说明书中,短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部是指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。
另外,尽管可能在实施例的描述中已使用术语“消息”,但是本申请可以应用于多种类型的网络和数据。此外,尽管可以在示例性实施例中描绘某些类型的连接、消息和信令,但是本申请不限于某个类型的连接、消息和信令。
示例实施例提供了方法、系统、组件、非暂态计算机可读介质、设备和/或网络,它们经由区块链提供死锁解除,这保护所涉及的实体的隐私。
在一个实施例中,本申请采用作为分布式存储系统的去中心化数据库(例如,区块链),其包括彼此通信的多个节点。去中心化数据库包括仅追加的不可变数据结构,该仅追加的不可变数据结构类似于能够在相互不信任的各方之间维护记录的分布式账本。不信任的各方在本文中被称为对等方(peer)或对等节点。每个对等方维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有单个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储交易,将存储交易分组为区块,并且在这些区块上构建哈希链。为了保持一致性,在需要时,该处理通过对存储交易进行排序来形成账本。在各种实施例中,可以使用许可的和/或无需许可的区块链。在公共或无需许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本机加密货币,并且使用基于各种协议(例如工作量证明(PoW))的共识。另一方面,许可区块链数据库在一组共享共同目标但彼此并不完全信任的实体之间提供安全的交互,例如交换资金、商品、信息等的业务。
本申请可以采用如下区块链,该区块链操作针对去中心化存储方案量身定制并且被称为“智能合约”或“链码”的任意可编程逻辑。在一些情况下,可存在用于管理功能和参数的专用链码,其被称为系统链码。本申请可以进一步采用作为受信任分布式应用的智能合约,所述受信任分布式应用利用区块链数据库的防篡改属性和节点之间的基础协议(其被称为背书或背书策略)。与该应用相关联的区块链交易可以在提交到区块链之前被“背书”,而未被背书的交易被忽略。背书策略允许链码以由背书所需要的一组对等节点的形式指定交易的背书者(endorser)。当客户端将交易发送到背书策略中指定的对等方时,执行交易以验证交易。在验证之后,交易进入排序阶段,在该排序阶段中,使用共识协议来生成被分组为区块的背书交易的经排序的序列。
本申请可以采用作为区块链系统的通信实体的节点。在不同类型的多个节点可以在同一物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,例如客户端或提交客户端节点,其向背书者(例如,对等方)提交交易调用,并且将交易提案(proposal)广播到排序服务(例如,排序节点)。另一类型节点是对等节点,其可以接收客户端提交的交易,提交交易并且维护区块链交易的账本的状态和副本。尽管不是要求的,但是对等方也可以充当背书者的角色。排序服务节点或排序者是这样的节点,该节点运行用于所有节点的通信服务并且实现递送保证,例如在提交交易和修改区块链的世界状态时向系统中的每个对等节点的广播,这是通常包括控制和设定信息的初始区块链交易的另一个名称。
本申请可以采用账本,该账本是区块链的所有状态转换的有序防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(例如对等节点)可以维护账本的副本。交易可以导致一组资产键值对,这一组资产键值对被提交到账本作为一个或多个操作数,例如创建、更新、删除等。账本包括用来将不可变的有序记录存储在区块中的区块链(也被称为链)。账本还包括维护区块链的当前状态的状态数据库。
本申请可以采用作为交易日志的链,该链被构造为哈希链接的区块,并且每个区块包含N个交易的序列,其中N等于或大于1。区块头包括区块的交易的哈希,以及前一区块的头的哈希。以这种方式,账本上的所有交易可以被序列化并且被加密地链接在一起。因此,不可能在不破坏哈希链接的情况下篡改账本数据。最近添加的区块链区块的哈希表示链上的在其发生之前的每个交易,从而可以确保所有对等节点处于一致且受信任的状态。该链可以存储在对等节点文件系统(即,本地、附连存储、云等)上,从而有效地支持区块链工作负载的仅追加性质。
不可变账本的当前状态表示链交易日志中包括的所有键的最新值。由于当前状态表示通道已知的最新键值,因此它有时被称为世界状态。链码调用针对账本的当前状态数据执行交易。为了使这些链码交互高效,可以将键的最新值存储在状态数据库中。状态数据库可以仅仅是链的交易日志的索引视图,因此它可以随时从链中重新生成。状态数据库可以在对等节点启动时以及在交易被接受之前自动恢复(或根据需要生成)。
示例实施例针对基于区块链的系统,当死锁发生在银行间支付网络或类似的支付系统(例如,跨境支付系统等)内时,基于区块链的系统可以解除死锁。系统实现用于死锁解除的分布式协议。在银行间支付系统或具有若干参与者的类似系统中,死锁是因为若干支付各自等待其他支付的结算所以所有参与者都没有足够的流动性来结算他们的支付指令的情况。死锁解除是寻找可以在净额的基础上同时结算而不会对任何参与者造成不足的支付指令子集的处理。
区块链可以由支付网络中的对等方(例如,银行等)管理。因此,每个银行都可以具有其自己的区块链访问权限,在该区块链中,由智能合约执行全局净算和死锁解除。当发生死锁时,每个参与银行可以基于它们自己的局部支付集提出死锁解除,使得他们的提案不会为该银行产生负数账后余额。死锁解除可以被传递到区块链,并经由智能合约被处理。为了证明正数账后余额而不透露账户余额的金额,每个参与者还可以提供零知识证明(ZKP),该零知识证明(ZKP)证明由于支付子集而导致支付余额大于零(真)。
智能合约可以验证每个参与者的ZKP,聚合局部支付子集,并且发布组合(合并)的可净算集,本文中也被称为全局可净算集。如果参与者不同意全局可净算集(即,它为参与者创建了负数账后余额),则该参与者通知智能合约,并从经修改的死锁解除开始重复该处理。作为响应,每个参与者可以移除/修改其局部支付子集中的支付,以解决其他参与者的负数账后余额。然后,智能合约可以聚合经修改的局部支付子集并发布该聚合。该处理可以重复进行,直到所有参与者都批准了全局可净算集(这被称为全局最佳可净算集)。
本文中描述和描绘的实例解决方案的一些益处包括不可变性和可追责性,因为该解决方案从根本上依赖于以下事实:承诺(commitment)(账户余额(利用同态皮德森(Pedersen)承诺来隐藏)、支付消息和死锁解除提案被发布在区块链上并且是不可变的。此外,智能合约用来记录/追踪对数据所做的更改并验证数据的完整性。例如,智能合约可以检查账户余额是否被正确地更新以及死锁解除提案是否正确。
由示例实施例解决的另一挑战是如下方法,该方法经由皮德森(Pedersen)承诺来隐藏内容(账户余额、支付消息量),以及设计死锁解除协议以与隐藏的内容一起工作,并使用零知识证明来使得可利用隐藏的内容验证提案。此外,利用区块链的去中心化(decentralized)/分布式特性,系统消除了由单个信任实体管理支付系统并且进行死锁解除的需要。此外,共识通过允许所有各方对可通过净算而结算的全局最佳支付集和结算的正确性进行背书来确保公平。此外,示例实施例不能在传统数据库上实现,因为它需要区块链的共识机制来保证结算的公平性。
图1示出根据示例实施例的用于死锁解除的区块链网络100。在该示例中,多个支付系统121-125经由网络(例如,专用网络、因特网等)彼此连接,并且实现可以在区块链对等方121-125之间复制的区块链110。在该示例中,支付系统121-125还用作区块链对等方。支付系统121-125可以是彼此发送/接收支付的银行或其他金融机构。
当支付系统121-125之间发生死锁时,每个支付系统可以基于其支付队列来提出其自己相应的死锁解除。每个死锁解除可包括要执行的局部支付子集,以及这样的支付不会创建局部负数余额的证明。例如,支付系统121-125中的每个可以从存储在参与者的队列中的更大集合生成支付子集,该支付子集可以被处理而不会为支付系统创建负数余额。包括在子集中的支付的优先级可以基于支付队列中的顺序,该支付队列中的顺序基于相应的支付系统接收支付的顺序。另外,支付系统121-125可以各自提供其自己形式的如下证明:其局部支付子集不会为相应的支付系统创建负数账后余额。
为了隐藏或隐瞒支付系统121-125的敏感账户余额信息,每个支付系统可以生成零知识范围证明,其证明数字(账后余额)在特定范围[0,N]内而不透露实际数字。在示例实施例中,支付系统121-125的账户余额可以隐藏在皮德森(Pederson)承诺中,即不是在明文中。假设支付系统121生成其局部支付子集(最可能的支付),该局部支付子集不会为支付系统121创建负数余额。为了使网络(其他支付系统122-125)验证支付系统121的死锁提案有效,即,账后余额将在[0,最大](不是负数)范围内,而不透露相应的支付系统121实际拥有多少,支付系统121可以提供零知识范围证明。在示例实施例中,零知识范围证明将证明以皮德森(Pederson)承诺的形式在区块链110上发布的支付系统121的账后余额不是负数。这帮助其他参与者(支付系统122-125)验证所提出的局部支付子集,同时将支付系统121的账户余额保密。支付系统121-125中的每个可以创建相同的ZKP。
死锁解除可以被传递到区块链110,并经由区块链110的智能合约被处理。智能合约可以验证支付系统121-125的ZKP,并从局部子集创建支付的全局可净算集。然后,智能合约可以通过将全局可净算集存储在区块链110的区块中来发布全局可净算集。作为响应,支付系统121-125中的每个支付系统可以审查所发布的全局可净算集并确定该全局可净算集是否是可接受的(即,全局可净算集不会为相应的支付系统创建负数账后余额)。如果所有支付系统121-125都赞同全局可净算集,则可以执行背书,并且区块链110的智能合约可以触发全局可净算集的结算。如果支付系统121-125中的任一个不赞同全局可净算集(全局可净算集导致负数账后余额),则支付系统可以拒绝(或拒绝同意)全局可净算集,并且可以通过修改局部支付子集来重复进行死锁解除处理。该处理可以反复进行,直到获得最佳全局可净算集。
图2A示出根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式示出)。这些节点参与许多活动,诸如区块链交易添加和验证处理(共识)。区块链节点204-210中的一个或多个可以基于背书策略对交易进行背书,并且可以提供用于架构200中的所有区块链节点的排序服务。区块链节点可以发起区块链认证并且想要写入存储在区块链层216中的区块链不可变账本,该区块链不可变账本的副本也可以存储在基础的物理基础设施214上。区块链配置可以包括一个或多个应用224,所述一个或多个应用224链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等),所述程序/应用代码220可以根据由参与者想要的定制配置来创建,以及可以维持它们自己的状态、控制它们自己的资产并且接收外部信息。这可以被部署为交易并且经由追加到分布式账本而安装在所有区块链节点204-210上。
区块链基台或平台212可以包括各层区块链数据、服务(例如,加密信任服务、虚拟执行环境等)、以及基础的物理计算机基础设施,该物理计算机基础设施可以用来接收和存储新交易,并且提供对正想要访问数据条目的审计者的访问。区块链层216可以暴露如下接口,该接口提供对处理程序代码并且接合物理基础设施214所需要的虚拟执行环境的访问。加密信任服务218可以用来验证诸如资产交换交易之类的交易并且保持信息私有。
图2A的区块链架构配置可以经由由区块链平台212暴露的一个或多个接口以及由区块链平台212提供的服务来处理和执行程序/应用代码220。代码220可控制区块链资产。例如,代码220可以存储和传输数据,并且可以按照具有经受其执行的条件或其他代码元素的智能合约和相关联的链码的形式由节点204-210来执行。作为非限制性示例,可以创建智能合约以执行经受改变、更新等的提醒、更新和/或其他通知。智能合约本身可以用来识别与账本的使用以及访问要求和授权相关联的规则。例如,智能合约可以从区块链层216提取ZKP数据和局部支付子集,并将数据(例如,虚拟机)存储在区块链层216中。结果228可以包括ZKP的验证以及局部支付子集到全局可净算集的聚合。物理基础设施214可以用于检索本文中描述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,然后被写入区块链中的区块。智能合约可以包括利用区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,该智能合约代码可以响应于与智能合约相关联的条件得到满足而执行。智能合约的执行可以触发对数字区块链账本的状态的受信任的修改。由智能合约执行引起的对区块链账本的修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中自动复制。
智能合约可以按照键值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并且在应用操作中使用它们。智能合约代码可以将各种逻辑运算的输出写入到区块链中。该代码可以用来在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的,和/或可以被加密并且被保持为私有的。由智能合约使用/生成的临时数据通过所供应的执行环境保存在存储器中,然后一旦区块链所需要的数据被识别,就删除该临时数据。
链码可以包括智能合约的代码解释,并具有附加特征。如本文中所述,链码可以是部署在计算网络上的程序代码,在计算网络中,由链码验证器在共识处理期间一起执行和验证链码。链码接收哈希,并且从区块链中检索与通过使用先前存储的特征提取器而创建的数据模板相关联的哈希。如果哈希标识符的哈希和从存储的标识符模板数据创建的哈希相匹配,则链码将授权密钥发送到所请求的服务。链码可以写入与加密详细信息相关联的区块链数据。
图2B示出根据示例实施例的在区块链的节点之间的区块链交易流程250的示例。参考图2B,交易流程可以包括由应用客户端节点260将交易提案291发送到背书对等节点281。背书对等方281可以验证客户端签名并且执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集)、以及在链码中写入的键/值的集合(写入集)。如果被批准,则将提案响应292与背书签名一起发送回到客户端260。客户端260将背书组装成交易有效载荷293,并且将交易有效载荷293广播到排序服务节点284。排序服务节点284然后将经排序的交易作为区块递送到通道上的所有对等方281-283。在递交到区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略,以确保指定的对等方的正确分配已经对结果进行了签名并且针对交易有效负载293验证了签名。
再次参考图2B,客户端节点260通过构造请求并且将请求发送到作为背书者的对等节点281来发起交易291。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,该应用采用可用的API来生成交易提案。该提案是调用链码功能的请求,使得数据可以被读取和/或被写入账本(即,写入用于资产的新键值对)。SDK可以充当“垫片(shim)”,以将交易提案打包为适当架构格式(例如,通过远程过程调用(RPC)的协议缓冲区),并且采用客户端的加密凭证来产生用于交易提案的唯一签名。
作为响应,背书对等节点281可以验证(a)交易提案被良好地形成,(b)交易在过去尚未被提交过(重放攻击保护),(c)签名有效,以及(d)提交者(在此示例中为客户端260)被适当授权在该通道上执行所提议的操作。背书对等节点281可以将交易提案输入作为所调用的链码功能的参数。然后针对当前状态数据库执行链码,以产生交易结果,该交易结果包括响应值、读取集和写入集。然而,此时尚未对账本进行任何更新。在292中,将值的集合与背书对等节点281的签名一起作为提案响应292传送回到客户端260的SDK,其解析要供应用来消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等方的签名,并且比较提案响应以确定提案响应是否相同。如果链码仅查询账本,则应用将检查查询响应,并且通常将不会把交易提交到排序节点服务284。如果客户端应用打算将交易提交到排序节点服务284以更新账本,则应用在提交之前确定是否已满足所指定的背书策略(即,交易所需要的所有对等节点都对交易进行背书了吗?)。在此,客户端可以仅包括交易的多方之一。在这种情况下,每个客户端可以具有其自己的背书节点,并且每个背书节点将需要对交易进行背书。该架构使得即使应用选择不检查响应或者转发未背书的交易,背书策略仍将由对等方实施并且在递交验证阶段得到维护。
在成功检查之后,在步骤293中,客户端260将背书组装成交易,并且在交易消息内向排序节点284广播交易提案和响应。交易可以包含读取/写入集、背书对等方的签名和通道ID。排序节点284不需要为了执行其操作而检查交易的全部内容,而是排序节点284可以简单地从网络中的所有通道接收交易,按通道按时间顺序对它们进行排序,并且创建每个通道的交易区块。
将交易区块从排序节点284递送到通道上的所有对等节点281-283。对区块内的交易294进行验证,以确保满足任何背书策略,并且确保自从通过交易执行而生成读取集以来,读取集变量的账本状态没有变化。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块追加到通道的链,并且对于每个有效交易,将写入集递交到当前状态数据库。事件被发出,以向客户端应用通知交易(调用)已被不可变地追加到链,以及通知交易是有效的还是无效的。
图3A示出许可区块链网络300的示例,其特征在于分布式去中心化的点对点架构。在该示例中,区块链用户302可以向许可区块链304发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计者之类的监管者306的访问。区块链网络运营商308管理成员许可,例如将监管者306注册为“审计者”,并且将区块链用户302注册为“客户端”。审计者可以被限制为仅查询账本,而客户端可以被授权为部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了将来自传统数据源312的凭证包括在链码中,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书颁发机构316检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书,以便在许可区块链304上进行交易。同时,尝试采用链码的用户可能被要求在传统数据源312上验证其凭证。为了确认用户的授权,链码可以通过传统处理平台318使用与该数据的带外连接。
图3B示出许可区块链网络320的另一示例,其特征在于分布式去中心化的点对点架构。在该示例中,区块链用户322可以将交易提交到许可区块链324。在该示例中,交易可以是部署、调用或查询,并且可以通过采用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计者之类的监管者326的访问。区块链网络运营商328管理成员许可,例如将监管者326注册为“审计者”,并且将区块链用户322注册为“客户端”。审计者可以被限制为仅查询账本,而客户端可以被授权为部署、调用和查询某些类型的链码。
区块链开发者330可以编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了将来自传统数据源332的凭证包括在链码中,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书颁发机构336检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可区块链324上进行交易。同时,尝试利用链码的用户可能被要求在传统数据源332上验证其凭证。为了确认用户的授权,链码可以通过传统处理平台338使用与该数据的带外连接。
图4A示出根据示例实施例的用于死锁解除的通信处理400,并且图4B示出根据示例实施例的从支付网络的参与者提供的死锁解除消息443/444。在图4A的示例中,为简单起见,两个支付系统410和420参与银行间支付网络并实现区块链430。应当理解,支付网络和死锁解除协议可以由两个以上的支付系统执行,但是为了方便的目的这里仅示出了两个。在初始阶段期间,在441和442中,支付系统410和420分别将账户详细信息存储在区块链430上。例如,账户详细信息可以包括各个支付系统的当前余额(在皮德森(Pedersen)承诺中,不是在明文中)、货币类型、所有者ID等。每个支付系统410和420可以周期性地或按需地利用当前账户详细信息来更新区块链430。
当发生死锁时,可以循环地执行包括443-449的迭代处理,直到支付系统410和420都赞同/同意全局最佳可净算集。当该示例中的支付系统410和420都可以处理全局最佳可净算集中的支付并且仍然具有正数账后余额时,实现了该全局最佳可净算集。为了开始循环,在443和444中,支付系统410和420可以分别向区块链430提交死锁解除消息。在图4B的示例中示出死锁解除消息443/444的示例。此处,死锁解除消息443/444包括局部支付集460。在此示例中,局部支付集可以包括各个支付系统处的局部支付,而无需考虑网络中的其他支付。例如,支付系统410可以从支付队列411中提取待决的支付消息,并且确定为支付系统410创建正数账后余额的子集。同样,支付系统420可以从支付队列421中提取待决的支付消息,并且确定为支付系统420创建正数账后余额的局部子集。对于局部支付集460中包括的每个支付消息,相应的支付系统可以提供各种属性461、462、463等,所述各种属性包括发送者ID、接收者ID和支付金额(利用同态皮德森(Pedersen)承诺来隐藏)。
同态皮德森(Pedersen)承诺方案是如下加密原语,它允许一方承诺选定的值,同时将选定的值向其他方隐藏,并具有以后透露承诺的值的能力。同态意味着我们可以对承诺进行加法和乘法,就好像我们对明文值执行这些数学运算,然后创建结果的承诺。在示例实施例中,支付系统可以使用皮德森(Pedersen)承诺来隐藏账户余额和支付金额。由于皮德森(Pederson)承诺是加性同态的,因此使得能够轻松地使用承诺利用支付消息来更新账户余额,而无需知道承诺的值(明文值)。
另外,死锁解除消息443/444可以包括由相应支付系统提供的零知识范围证明470。零知识范围证明470是如下证明,其证明数字在某个范围[0,N]内而不透露该数字。在示例实施例中,参与者的余额隐藏在皮德森(Pederson)承诺中,即不是在明文中。因此,为了由网络(对等方)验证参与者的死锁提案是有效的,即,该参与者的账后余额将在[0,最大](不是负数)范围内而不透露他实际拥有多少,他将需要提供这种类型的零知识范围证明。因此,零知识范围证明470将证明以皮德森(Pederson)承诺形式在区块链上发布的参与者的账后余额不是负数。这帮助其他参与者验证他的提案,同时保持他的账户余额保密。零知识范围证明470还提供如下证明:相应支付系统的队列中的下一最高优先级支付将创建负数余额。因此,这确保每个支付系统都提交其可被处理而不创建负数账后余额的最大数量的支付消息。
在445中,区块链430的智能合约可以分别验证支付系统410和420中的每个的ZKP,其分别被包括在死锁解除消息443和444中。一旦被验证,智能合约就可以在446中生成全局可净算集,该全局可净算集包括在死锁解除消息443和444中提供的组合支付集(即,来自支付系统410和420的局部支付子集的合并)。此外,在446中,智能合约可以发布全局可净算集以供支付系统410和420审查。如果支付系统410和420都赞同全局可净算集(即,存在正数账后余额),则支付系统410和420在447和448中提供同意。然而,如果对于支付系统410和420中的至少一个存在负数余额,则在447和448中的消息将不是完全共识,因为至少一个参与者将不同意。因此,可以从步骤443和444开始重复该循环,在步骤443和444中,向新死锁解除提供对局部支付子集的修改,以解决任何负数账后余额。
死锁解除是通过两个关键技术--每个参与者的公开可验证的提案和聚合所有提案的智能合约--来实现的。通过这两者的递归交互,示例实施例实现了全局最佳可净算集。特别地,在每次迭代中,每个参与者都将向区块链提交其自己的可净算集解决方案,而无需考虑其他参与者的可行性。这些提案被公开地验证,以确保每个参与者在其提案中包括最大数量(或最大金额)支付。然后,智能合约将聚合所有这些提案并发布当前的可净算集。每个参与者都将对照当前的可净算集进行检查,并且如果该集对于其不可行,则提交新提案。否则,他们将同意当前的可净算集。这个处理一直进行,直到所有参与者都同意相同的可净算集并且因此实现最终的全局最佳可净算集。
死锁解除协议寻找最佳可净算集,其被定义为可净算,它是可以在净额的基础上同时结算而不会对每个参与者造成不足的全部的子集。可以在迭代开始时将可净算初始化为等于所有支付消息的集合。在每次迭代中,每个参与者将会通过将其进来的所有支付消息添加到其当前余额中来计算其账后余额,其中排除不在上次迭代的可净算中的任何消息。然后,每个参与者将计算提案集,该提案集是他自己的外发支付消息队列的最大子集(根据优先级挑选),并具有账后余额为非负数的约束。每个参与者还将提供零知识范围证明,以证明利用该提案集“账后余额”为非负数。每个参与者还将提供另一零知识范围证明,以证明如果向提案集添加再多一条(下一最高优先级)消息,则账后余额为负数。每个参与者将提案提交到区块链。智能合约将通过检查零知识证明来验证提案并将提案添加到账本。在每次迭代结束时,智能合约将通过组合来自每个参与者的所有提案集(计算其合并)来计算新的可净算集。重复该处理,直到收敛,即,可净算集不再更改。
图5示出根据示例实施例的用于解除支付网络中的死锁的方法500。参考图5,在510中,该方法可以包括从死锁支付网络的参与者接收死锁解除消息。例如,每个死锁解除消息可以包括要由相应参与者执行的局部支付子集和零知识证明,该零知识证明指示局部支付子集为相应参与者创建正数账后余额,而不透露该正数账后余额。局部支付子集可以由每个参与者生成,而无需考虑支付网络中的其他参与者。
在520中,该方法可以包括确定死锁解除消息中包括的零知识证明是否有效。例如,零知识证明可以是在局部支付子集的结算之后“账后余额”大于零的证明。智能合约可以使用验证程序来验证这是否正确。在530中,该方法可以包括聚合来自死锁解除消息的要执行的局部支付子集,以创建支付的全局可净算集。例如,智能合约可以创建所有局部子集的合并以创建要执行的全局支付子集。在540中,该方法可以包括经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布全局可净算集。例如,智能合约可以经由区块链存储全局可净算集。
在一些实施例中,响应于接收到参与者接受全局可净算集的共识,该方法可以还包括触发支付的全局可净算集的结算。在一些实施例中,该方法可以还包括:经由数据区块的哈希链接链当中的数据区块来存储全局可净算集中包括的支付的标识。根据各种实施例,可以使用皮德森(Pedersen)承诺来隐藏要结算的局部支付子集中包括的支付金额。
在一些实施例中,零知识证明还指示未包括在局部支付子集中的最高优先级支付为相应参与者创建负数账后余额,而不透露该负数账后余额。在一些实施例中,该方法可以还包括响应于缺少来自参与者对全局可净算集的全局同意而执行接收、确定、聚合和发布的下一次迭代。这些步骤可以循环地连续执行,直到实现全局可净算集(所有参与者的共识)。在该示例中,下一次迭代的执行可以包括从支付网络的参与者接收新的死锁解除消息,该新的死锁解除消息包括基于所发布的全局可净算集的经修改的局部支付子集。另外,下一次迭代的执行可以包括聚合经修改的局部支付子集,并且经由数据区块的哈希链接链当中的另一个数据区块来发布该聚合。
图6A示出根据示例实施例的包括被配置为执行各种操作的物理基础设施610的示例系统600。参考图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合约630(可以驻留在区块链620上),其可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的一个或多个实施例,并且可以表示写入或从一个或多个智能合约630和/或区块链620读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是同一模块。
图6B示出根据示例实施例的被配置为执行各种操作的另一示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合约630(可以驻留在区块链620上),其可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或所描绘的一个或多个实施例,并且可以表示写入或从一个或多个智能合约630和/或区块链620读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是同一模块。
图6C示出根据示例实施例的被配置为在缔约方和中介服务器之间采用智能合约配置的示例系统,该中介服务器被配置为在区块链上实施智能合约条款。参考图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话、或者处理或过程,该智能合约630明确地识别一个或多个用户设备652和/或656。服务器654可以管理智能合约执行的执行、操作和结果。智能合约630的内容可以要求由作为智能合约交易的各方的实体652和656中的一个或多个进行的数字签名。可以将智能合约执行的结果作为区块链交易写入区块链620。智能合约630驻留在区块链620上,该区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即服务器654)而在区块链上执行交易(调用、查询等)的公共接口。这里,服务器654是区块链网络对等组件,其保持世界状态的副本和分布式账本,从而允许客户端652和656查询关于世界状态的数据以及将交易提交到区块链网络中,其中取决于智能合约630和背书策略,背书对等方将运行智能合约630。
可以以硬件、由处理器执行的计算机程序、固件或以上的组合来实现以上实施例。计算机程序可以体现在诸如存储介质之类的计算机可读介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存设备、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移除盘、压缩盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以耦接到处理器,使得处理器可以从存储介质读取信息,并且可以向存储介质写入信息。替选地,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。替选地,处理器和存储介质可以驻留为分立组件。
图7A示出根据示例实施例的将新区块添加到分布式账本720的处理700,而图7B示出根据示例实施例的用于区块链的新数据区块结构730的内容。参考图7A,客户端(未示出)可以将交易提交到区块链节点711、712和/或713。客户端可以执行从任何来源接收的指令以在区块链720上制定活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)提出用于区块链的交易的应用。多个区块链对等方(例如,区块链节点711、712和713)可以维护区块链网络的状态和分布式账本720的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括背书对等方和递交对等方,该背书对等方对由客户端提出的交易进行模拟和背书,该递交对等方验证背书、验证交易并且将交易递交到分布式账本720。在该示例中,区块链节点711、712和713可以充当背书者节点、递交者节点或两者的角色。
分布式账本720包括在区块中存储不可变有序记录的区块链、以及维护区块链722的当前状态的状态数据库724(当前世界状态)。每个通道可以存在一个分布式账本720,以及每个对等方对于它们是其成员的每个通道维护其自己的分布式账本720的副本。区块链722是交易日志,其被构造为哈希链接的区块,其中每个区块包含N个交易的序列。区块可以包括诸如图7B中所示的各个组成部分。区块的链接(由图7A中的箭头所示)可以通过在当前区块的区块头内添加先前区块头的哈希来生成。以这种方式,区块链722上的所有交易被序列化并且被加密地链接在一起,从而防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链722中的最新区块表示在其之前发生的每个交易。区块链722可以存储在对等文件系统(本地或附连存储)上,该对等文件系统支持仅追加的区块链工作负载。
区块链722和分布式账本720的当前状态可以存储在状态数据库724中。这里,当前状态数据表示区块链722的链交易日志中曾经包括的所有键的最新值。链码调用针对状态数据库724中的当前状态执行交易。为了使这些链码交互非常高效,所有键的最新值都存储在状态数据库724中。状态数据库724可以包括区块链722的交易日志的索引视图,因此它可以随时从链中重新生成。状态数据库724可以在交易被接受之前、在对等方启动时自动恢复(或者如果需要的话则生成)。
背书节点从客户端接收交易,并且基于模拟结果对该交易进行背书。背书节点保持对交易提案进行模拟的智能合约。当背书节点对交易进行背书时,背书节点创建交易背书,该交易背书是从背书节点到客户端应用的签名响应,从而指示模拟交易的背书。对交易进行背书的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等方必须对交易进行背书”。不同的通道可以具有不同的背书策略。客户端应用将背书的交易转发到排序服务710。
排序服务710接受背书的交易,将它们排序到区块中,并且将这些区块递送到递交对等方。例如,当已经达到交易的阈值、计时器超时或其他条件时,排序服务710可以启动新区块。在图7A的示例中,区块链节点712是递交对等方,其已经接收到新数据区块730以存储在区块链720上。区块链中的第一区块可以被称为创世区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序者集群组成。排序服务710不处理交易、智能合约或维护共享账本。而是,排序服务710可以接受背书的交易,并且指定将这些交易递交到分布式账本720的顺序。区块链网络的架构可以被设计为使得“排序”的特定实现方式(例如,Solo(单独)、Kafka(卡夫卡)、BFT等)成为可插拔组件。
以一致的顺序将交易写入分布式账本720。交易的顺序被建立为确保对状态数据库724的更新在其被递交到网络时是有效的。与通过求解加密难题或挖掘(mining)来进行排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式账本720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据区块730时,新数据区块730可以被广播到递交对等方(例如,区块链节点711、712和713)。作为响应,每个递交对等方通过检查以确保读取集和写入集仍然与状态数据库724中的当前世界状态相匹配,验证新数据区块730内的交易。具体地,递交对等方可以确定当背书者对交易进行模拟时存在的读取数据是否与状态数据库724中的当前世界状态相同。当递交对等方验证交易时,将交易写入分布式账本720上的区块链722,并且利用来自读取写入集的写入数据来更新状态数据库724。如果交易失败,即,如果递交对等方发现读取写入集与状态数据库724中的当前世界状态不匹配,则被排序到区块中的交易仍将包括在该区块中,但是它将被标记为无效,并且状态数据库724将不被更新。
参考图7B,存储在分布式账本720的区块链722上的新数据区块730(也被称为数据区块)可以包括多个数据段,诸如区块头740、区块数据750和区块元数据760。应当理解,图7B中所示的各个描绘的区块及其内容(例如新数据区块730及其内容)仅是示例,而不是意味着限制示例实施例的范围。新数据区块730可以在区块数据750内存储N个交易(例如1、10、100、500、1000、2000、3000等)的交易信息。新数据区块730还可以在区块头740内包括与前一区块的链接(例如,在图7A中的区块链722上)。特别地,区块头740可包括前一区块头的哈希。区块头740还可以包括唯一区块号、新数据区块730的区块数据750的哈希等。新数据区块730的区块号可以是唯一的,并且可以以各种顺序分配,例如从零开始的递增/顺次的顺序。
区块数据750可以存储被记录在新数据区块730内的每个交易的交易信息。例如,交易数据可以包括以下各项中的一个或多个:交易的类型、版本、时间戳、分布式账本720的通道ID、交易ID、时代(epoch)、有效载荷可见性、链码路径(部署交易)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)身份(例如公钥和证书)、客户端的签名、背书者的身份、背书者签名、提案哈希、链码事件、响应状态、名称空间、读取集(由交易读取的键和版本的列表等)、写入集(键和值的列表等)、起始键、结束键、键列表、默克尔(Merkel)树查询摘要等。可以对于N个交易中的每个交易存储交易数据。
区块元数据760可以存储多个元数据字段(例如,作为字节阵列等)。元数据字段可以包括关于区块创建的签名、对最后配置区块的引用、识别区块内的有效交易和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移持续时间等。签名、最后配置区块和排序者元数据可以由排序服务710来添加。同时,区块的递交者(例如区块链节点712)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据750中的交易数量的字节阵列和识别交易是否有效/无效的验证码。
图7C示出根据本文中描述的实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变仅追加方面充当保护数字内容的完整性、有效性和真实性的保障,从而使其适用于应用证据能力规则的法律程序,或者考虑证据或对数字信息的展示和使用感兴趣的其他场合。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式来形成。在一个实施例中,数字内容可以包括在区块链本身中并且可以从区块链本身访问。例如,区块链的每个区块可以将引用信息(例如,头、值等)的哈希值与相关联的数字内容一起存储。然后可以将哈希值和相关联的数字内容一起加密。因此,可以通过解密区块链中的每个区块来访问每个区块的数字内容,并且每个区块的哈希值可以用作引用前一区块的基础。这可以被说明如下:
区块1 区块2 ....... 区块N
哈希值1 哈希值2 哈希值N
数字内容1 数字内容2 数字内容N
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密哈希,而没有任何数字内容。数字内容可以与原始文件的哈希值相关联地存储在其他存储区域或存储器地址中。其他存储区域可以是用来存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至可以是单独的关系数据库。可以通过如下方式来引用或访问每个区块的数字内容:获得或查询感兴趣的区块的哈希值,然后在存储区域中查找与实际数字内容相对应地存储的该值。例如,该操作可以由数据库看门人(gatekeeper)来执行。
这可以被说明如下:
在图7C的示例实施例中,区块链770包括以有序序列加密地链接的多个区块7781,7782,…778N,其中N≥1。用来链接区块7781,7782,…778N的加密可以是多个键控或非键哈希函数中的任一个。在一个实施例中,区块7781,7782,…778N经受如下哈希函数,该哈希函数从基于区块中的信息的输入产生n比特字母数字输出(其中n是256或其他数字)。这样的哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、默克尔-达姆加德(Merkle-Damgard)算法、HAIFA算法、默克尔(Merkle)树算法、基于随机数的算法和非抗碰撞PRF算法。在另一实施例中,可以通过与哈希函数不同的函数来加密地链接区块7781,7782,…778N。为了说明的目的,参考诸如SHA-2之类的哈希函数进行以下描述。
区块链中的每个区块7781,7782,…778N包括头、文件版本和值。由于区块链中的哈希运算,每个区块的头和值都不同。在一个实施例中,值可以被包括在头中。如下面更详细描述的,文件版本可以是原始文件或原始文件的不同版本。
区块链中的第一区块7781称为创世区块,并且包括头7721、原始文件7741和初始值7761。用于创世区块以及实际上在所有后续区块中的哈希方案可以有所不同。例如,可以将第一区块7781中的所有信息一次哈希在一起;或者可以分别对第一区块7781中的每个信息或部分信息进行哈希,然后可以对分别哈希的部分进行哈希。
头7721可以包括一个或多个初始参数,例如,所述一个或多个初始参数可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。头7721可以自动(例如,由区块链网络管理软件)生成,或者可以由区块链参与者手动生成。与区块链中的其他区块7782至778N中的头不同,创世区块中的头7721并不引用前一区块,仅仅是因为没有前一区块。
创世区块中的原始文件7741可以是例如由设备捕获的在将其包括在区块链中之前经过处理或未经处理的数据。通过系统的接口从设备、媒体源或节点接收原始文件7741。原始文件7741与元数据相关联,元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件7741相关联地包括在第一区块7781中。
创世区块中的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可包括原始文件7741的哈希值、原始文件7741的元数据以及与该文件相关联的其他信息。在一个实现方式中,初始值7761可以基于以下唯一属性:
1)原始文件的经SHA-2计算的哈希值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前地控制原始文件和相关联的元数据的软件的区块链网络成员ID
区块链中的其他区块7782至778N也具有头、文件和值。然而,与第一区块7721不同,其他区块中的头7722至772N中的每个包括紧接在前的区块的哈希值。紧接在前的区块的哈希值可以仅仅是前一区块的头的哈希,或者可以是整个前一区块的哈希值。通过在每个剩余区块中包括前一区块的哈希值,可以逐个区块地从第N区块返回到创世区块(以及相关联的原始文件)执行追踪,如由箭头780所示的那样,以建立可审计且不可变的监管链。
其他区块中的头7722至772N中的每个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或总体上与对应文件和/或区块链相关联的其他参数或信息。
例如,取决于所执行的处理的类型,其他区块中的文件7742至774N可以等于原始文件,或者可以是创世区块中的原始文件的修改版本。所执行的处理的类型可能因区块而异。处理可以包括例如对先前区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容,从文件中取走信息,或向文件添加或追加信息。
附加地或替选地,处理可以包括仅复制来自先前区块的文件,改变文件的存储位置,分析来自一个或多个先前区块的文件,将文件从一个存储或存储器位置移动到另一个存储或存储器位置,或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如追加、包括或以其他方式关联与文件相关联的各种分析、统计或其他信息。
其他区块中的每个其他区块7762至776N中的值是唯一值,并且由于所执行的处理而全都不同。例如,任何一个区块中的值对应于前一区块中的值的更新版本。该更新反映在为其分配了该值的区块的哈希中。因此,区块的值提供了对在区块中执行了什么处理的指示,并且还允许通过区块链追踪回到原始文件。该追踪确认了在整个区块链中的文件的监管链。
例如,考虑以下情况:为了保护前一区块中的文件中显示的人的身份,对文件的部分进行了编辑、屏蔽或像素化。在这种情况下,包括已编辑文件的区块将包括与已编辑文件相关联的元数据,例如,如何执行编辑,谁执行编辑,进行编辑的时间戳等。可以对元数据进行哈希以形成值。由于区块的元数据与经过哈希以形成前一区块中的值的信息不同,因此这些值彼此不同并且可以在解密时恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新前一区块的值(例如,计算出新的哈希值)以形成当前区块的值。在该示例实施例中,可以通过对以下所述的信息中的全部或部分进行哈希来计算新的哈希值。
a)如果以任何方式处理了文件(例如,如果文件被编辑、复制、更改、访问或采取了某种其他动作),则新的经SHA-2计算的哈希值
b)文件的新存储位置
c)与文件相关联地识别的新元数据
d)文件的访问或控制从一个区块链参与者转移到另一个区块链参与者
图7D示出根据一个实施例的可以表示区块链790中的区块的结构的区块的实施例。区块Blocki包括头772i、文件774i和值776i。
头772i包括前一区块Blocki-1的哈希值和附加引用信息,附加引用信息例如可以是本文中讨论的任何类型的信息(例如,包括引用、特性、参数等的头信息)。当然,除创世区块外,所有区块均引用前一区块的哈希。前一区块的哈希值可以仅仅是前一区块中的头的哈希,或者是前一区块中的全部信息或部分信息(包括文件和元数据)的哈希。
文件774i依次包括多个数据,例如数据1、数据2、…、数据N。数据用元数据“元数据1”、“元数据2”、…、“元数据N”来标记,这些元数据描述与数据相关联的内容和/或特性。例如,每个数据的元数据可以包括:指示数据的时间戳的信息,处理数据,指示数据中描述的人或其他内容的关键字,和/或可以有助于建立整体文件的有效性和内容的其他特征,尤其是其使用数字证据,例如,如结合以下讨论的实施例所描述的那样。除了元数据外,每个数据还可以使用对前一数据的引用REF1,REF2,…,REFN来标记,以防止篡改、文件中的空白以及通过文件的顺序引用。
一旦将元数据分配给数据(例如,通过智能合约),就不能在不改变哈希的情况下更改元数据,这可以容易地被识别以进行无效。因此,元数据创建信息的数据日志,信息的数据日志可被区块链中的参与者访问以供使用。
值776i是哈希值或基于先前讨论的任何类型的信息而计算的其他值。例如,对于任何给定的区块Blocki,可以对该区块的值进行更新以反映对该区块执行的处理,例如,新哈希值,新存储位置,相关联文件的新元数据,控制或访问的转移,标识符,或者要添加的其他动作或信息。尽管每个区块中的值被示出为与头和文件的数据的元数据分离,但是在另一实施例中,该值可以部分地或全部地基于该元数据。
一旦形成区块链770,则在任何时间点,可以通过向区块链查询跨区块的值的交易历史来获得文件的不可变监管链。该查询或追踪过程可以开始于解密当前最近包括的区块(例如,最后(第N)区块)的值,然后继续解密其他区块的值,直到达到创世区块并且恢复原始文件。解密还可以包括解密每个区块处的头和文件以及相关联的元数据。
基于在每个区块中进行的加密的类型来执行解密。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可以被公开地分发,以用作接收来自其他用户的消息的地址,例如,IP地址或家庭地址。私钥是保密的,并且用来对发送给其他区块链参与者的消息进行数字签名。签名包括在消息中,以便接收者可以使用发送者的公钥进行验证。以这种方式,接收者可以确定只有发送者可以发送该消息。
生成密钥对可以类似于在区块链上创建帐户,但是不必实际在任何地方进行注册。此外,发送者使用其私钥对在区块链上执行的每个交易进行数字签名。该签名确保只有帐户拥有者才能追踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
图8示出支持本文中描述和/或描绘的一个或多个示例实施例的示例系统800。系统800包括计算机系统/服务器802,该计算机系统/服务器802可与许多其他通用或专用计算系统环境或配置一起操作。可适合于与计算机系统/服务器802一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统,服务器计算机系统,瘦客户端,胖客户端,手持或膝上型设备,多处理器系统,基于微处理器的系统,机顶盒,可编程消费电子产品,网络PC,小型计算机系统,大型计算机系统,以及包括任何上述系统或设备的分布式云计算环境,等等。
可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述计算机系统/服务器802。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器802,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图8中所示,以通用计算设备的形式示出了云计算节点800中的计算机系统/服务器802。计算机系统/服务器802的组件可以包括但不限于一个或多个处理器或处理单元804、系统存储器806以及将包括系统存储器806的各种系统组件耦接到处理器804的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器802典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器802访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
在一个实施例中,系统存储器806实现其他附图的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机系统/服务器802可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统814可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块818的程序/实用工具816,可以存储在例如存储器806中,这样的程序模块818包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块818通常执行本发明所描述的实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例,完全软件实施例(包括固件、驻留软件、微代码等),或结合了软件和硬件方面的实施例,这些方面通常都可以在本文中被称为“电路”、“模块”或“系统”。此外,本申请的方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质上体现有计算机可读程序代码。
计算机系统/服务器802也可以与一个或多个外部设备820(例如键盘、指向设备、显示器822等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器802交互的设备通信,和/或与使得该计算机系统/服务器802能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口824进行。并且,计算机系统/服务器802还可以通过网络适配器826与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器826通过总线与计算机系统/服务器802的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器802使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管在附图中示出并且在前述详细描述中描述了系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例,但是将理解,本申请不限于所公开的实施例,而是能够进行如由以下权利要求阐述和定义的许多重新布置、修改和替换。例如,各个附图的系统的能力可以由本文中描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或两者的对。例如,由各个模块执行的功能的全部或部分可以由这些模块中的一个或多个模块来执行。此外,本文中描述的功能可以在模块或组件内部或外部、在各个时间并且与各种事件相关地执行。此外,可以经由以下各项中的至少一个在模块之间发送在各个模块之间发送的信息:数据网络,因特网,语音网络,因特网协议网络,无线设备,有线设备,和/或经由多个协议。此外,可以直接和/或经由一个或多个其他模块来发送或接收由任何模块发送或接收的消息。
本领域的技术人员将意识到,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备、或设备的组合。将上述功能呈现为由“系统”执行并不是旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文中公开的方法、系统和装置可以以与计算技术一致的局部化和分布式形式来实现。
应当注意,在本说明书中描述的系统特征中的一些已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片、晶体管或其他分立组件之类的成品半导体。模块也可以被实现在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等可编程硬件设备中。
模块也可以至少部分地以用于由各种类型的处理器执行的软件来实现。例如,所识别的可执行代码单元可以包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或函数。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,包括该模块并且实现该模块的规定目的。此外,模块可以存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用来存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在若干不同代码段上、在不同程序之间并且在若干存储器设备上。类似地,操作数据可以在本文中在模块内被识别和示出,以及可以以任何合适的形式来体现并且可以被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
将容易理解,如本文的附图中一般性描述和示出的,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不是旨在限制所要求保护的本申请的范围,而是仅仅代表本申请的所选择的实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置中的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员明显的是,某些修改、变型和替代构造将是明显的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当考虑全部范围的等同物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求来限定。
Claims (18)
1.一种计算系统,包括:
网络接口,所述网络接口被配置为从死锁支付网络的参与者接收死锁解除消息,其中每个死锁解除消息包括要执行的局部支付子集和零知识证明,所述零知识证明指示局部支付子集为相应的参与者创建正数账后余额,而不透露所述正数账后余额;以及
处理器,所述处理器被配置为确定所述死锁解除消息中包括的零知识证明是否有效,聚合来自所述死锁解除消息的要执行的局部支付子集以创建支付的全局可净算集,并且经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布所述全局可净算集。
2.根据权利要求1所述的计算系统,其中,响应于接收到参与者接受全局可净算集的共识,所述处理器被配置为触发支付的全局可净算集的结算。
3.根据权利要求1所述的计算系统,其中,所述处理器还被配置为经由数据区块的哈希链接链当中的数据区块来存储全局可净算集中包括的支付的标识。
4.根据权利要求1所述的计算系统,其中,利用皮德森承诺来隐藏局部支付子集中包括的支付金额。
5.根据权利要求1所述的计算系统,其中,所述零知识证明还指示未包括在局部支付子集中的最高优先级支付为相应的参与者创建负数账后余额,而不透露所述负数账后余额。
6.根据权利要求1所述的计算系统,其中,所述处理器还被配置为响应于缺少来自参与者对全局可净算集的全局同意而执行死锁解除的下一次迭代。
7.根据权利要求6所述的计算系统,其中,对于下一次迭代,所述处理器被配置为从支付网络的参与者接收新的死锁解除消息,所述新的死锁解除消息包括基于所发布的全局可净算集的经修改的局部支付子集。
8.根据权利要求7所述的计算系统,其中,对于下一次迭代,所述处理器被配置为聚合经修改的局部支付子集,并且经由数据区块的哈希链接链当中的另一数据区块来发布经修改的局部支付子集的聚合。
9.一种方法,包括:
从死锁支付网络的参与者接收死锁解除消息,每个死锁解除消息包括要执行的局部支付子集和零知识证明,所述零知识证明指示局部支付子集为相应的参与者创建正数账后余额,而不透露所述正数账后余额;
确定所述死锁解除消息中包括的零知识证明是否有效;
聚合来自所述死锁解除消息的要执行的局部支付子集以创建支付的全局可净算集;以及
经由参与者可访问的分布式账本的数据区块的哈希链接链当中的数据区块来发布全局可净算集。
10.根据权利要求9所述的方法,其中,响应于接收到参与者接受全局可净算集的共识,触发支付的全局可净算集的结算。
11.根据权利要求9所述的方法,还包括:经由数据区块的哈希链接链当中的数据区块来存储全局可净算集中包括的支付的标识。
12.根据权利要求9所述的方法,其中,利用皮德森承诺来隐藏局部支付子集中包括的支付金额。
13.根据权利要求9所述的方法,其中,所述零知识证明还指示未包括在局部支付子集中的最高优先级支付为相应的参与者创建负数账后余额,而不透露所述负数账后余额。
14.根据权利要求9所述的方法,还包括响应于缺少来自参与者对全局可净算集的全局同意而执行接收、确定、聚合和发布的下一次迭代。
15.根据权利要求14所述的方法,其中,下一次迭代的执行包括从支付网络的参与者接收新的死锁解除消息,所述新的死锁解除消息包括基于所发布的全局可净算集的经修改的局部支付子集。
16.根据权利要求15所述的方法,其中,下一次迭代的执行包括聚合经修改的局部支付子集,并且经由数据区块的哈希链接链当中的另一数据区块来发布经修改的局部支付子集的聚合。
17.一种包括指令的非暂态计算机可读介质,所述指令在由处理器读取时使所述处理器执行根据权利要求8至16中的任一项所述的方法。
18.一种计算机实现的设备,包括执行根据权利要求8至16中的任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/365,778 US20200311695A1 (en) | 2019-03-27 | 2019-03-27 | Privacy-preserving gridlock resolution |
US16/365,778 | 2019-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111754343A true CN111754343A (zh) | 2020-10-09 |
Family
ID=72604425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010189395.XA Pending CN111754343A (zh) | 2019-03-27 | 2020-03-18 | 隐私保护的死锁解除 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200311695A1 (zh) |
CN (1) | CN111754343A (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2019288204A1 (en) * | 2018-06-18 | 2021-02-04 | Jpmorgan Chase Bank, N.A. | Systems and methods for distributed-ledger based intercompany netting |
US11080403B1 (en) * | 2018-12-19 | 2021-08-03 | Hewlett-Packard Development Company, L.P. | Securely constructing a trusted virtual environment |
WO2020098833A2 (en) * | 2020-02-03 | 2020-05-22 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain-based trustable gurantees |
US20220020018A1 (en) * | 2020-02-28 | 2022-01-20 | Polymath Inc. | Cryptographic encryption protocol for data types and values |
US11636467B2 (en) * | 2020-09-14 | 2023-04-25 | Visa International Service Association | System, method, and computer program product for secured, encrypted transaction processing |
CN112436944B (zh) * | 2020-11-06 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
US11621845B2 (en) * | 2020-12-07 | 2023-04-04 | International Business Machines Corporation | Resolving complaints |
CN115801259B (zh) * | 2022-11-10 | 2023-06-09 | 上海零数众合信息科技有限公司 | 事务监管方法、装置、电子设备及存储介质 |
CN116032793B (zh) * | 2022-11-17 | 2024-04-02 | 中国联合网络通信集团有限公司 | 信息处理方法、装置、电子设备及计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9870508B1 (en) * | 2017-06-01 | 2018-01-16 | Unveiled Labs, Inc. | Securely authenticating a recording file from initial collection through post-production and distribution |
CN109074564A (zh) * | 2016-05-06 | 2018-12-21 | 万事达卡国际股份有限公司 | 使用记录保证即时支付的方法和系统 |
US20190019186A1 (en) * | 2017-07-13 | 2019-01-17 | Jpmorgan Chase Bank, N.A. | Systems and methods for automated decentralized multilateral transaction processing |
CN109257182A (zh) * | 2018-10-24 | 2019-01-22 | 杭州趣链科技有限公司 | 一种基于同态的密码学承诺与零知识范围证明的区块链隐私保护方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
US11941588B2 (en) * | 2015-11-06 | 2024-03-26 | Cable Television Laboratories, Inc. | Systems and methods for blockchain virtualization and scalability |
US11257077B2 (en) * | 2017-11-30 | 2022-02-22 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
-
2019
- 2019-03-27 US US16/365,778 patent/US20200311695A1/en active Pending
-
2020
- 2020-03-18 CN CN202010189395.XA patent/CN111754343A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109074564A (zh) * | 2016-05-06 | 2018-12-21 | 万事达卡国际股份有限公司 | 使用记录保证即时支付的方法和系统 |
US9870508B1 (en) * | 2017-06-01 | 2018-01-16 | Unveiled Labs, Inc. | Securely authenticating a recording file from initial collection through post-production and distribution |
US20190019186A1 (en) * | 2017-07-13 | 2019-01-17 | Jpmorgan Chase Bank, N.A. | Systems and methods for automated decentralized multilateral transaction processing |
CN109257182A (zh) * | 2018-10-24 | 2019-01-22 | 杭州趣链科技有限公司 | 一种基于同态的密码学承诺与零知识范围证明的区块链隐私保护方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200311695A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111754343A (zh) | 隐私保护的死锁解除 | |
CN114365116A (zh) | 来自私有区块链的更新的链外通知 | |
CN111881099A (zh) | 数据库私有文档共享 | |
US11251938B2 (en) | Blockchain verification using non-consecutive blocks | |
AU2021273375B2 (en) | Cross-network identity provisioning | |
CN111831740B (zh) | 对等体的同步 | |
CN112241919A (zh) | 具有数据流控制的多域区块链网络 | |
CN115699054A (zh) | 区块链的更快查看改变 | |
US11194770B2 (en) | Database mergeable ledgers | |
US11664973B2 (en) | Trust-varied relationship between blockchain networks | |
US11455598B2 (en) | Automated conflict resolution | |
CN115211093A (zh) | 数据对象的有效阈值存储 | |
CN114450708A (zh) | 基于现有链码的链码推荐 | |
CN115004625A (zh) | 用于区块链分类账的索引结构 | |
CN111831739A (zh) | 数据库复合背书 | |
CN111753002A (zh) | 基于同意的数据管理 | |
CN112084186A (zh) | 拆分和合并存储 | |
CN112733159A (zh) | 用于区块链的自由搭乘节点识别 | |
US11475365B2 (en) | Verification of stochastic gradient descent | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
CN115668856A (zh) | 分散式数据库中的许可事件 | |
CN114981773A (zh) | 无冲突版本控制 | |
CN112035291A (zh) | 快照恢复 | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
CN112019586B (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 |