CN115769241A - 针对经许可的区块链的隐私保护架构 - Google Patents

针对经许可的区块链的隐私保护架构 Download PDF

Info

Publication number
CN115769241A
CN115769241A CN202180047807.9A CN202180047807A CN115769241A CN 115769241 A CN115769241 A CN 115769241A CN 202180047807 A CN202180047807 A CN 202180047807A CN 115769241 A CN115769241 A CN 115769241A
Authority
CN
China
Prior art keywords
transaction
request
blockchain
shards
processor
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
Application number
CN202180047807.9A
Other languages
English (en)
Inventor
A·德卡罗
C·格伦弗洛
K·埃尔·基亚维
E·安德罗莱基
A·索尼奥蒂
M·武科利克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115769241A publication Critical patent/CN115769241A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Power Engineering (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

处理器可以生成与交易相关联的请求。处理器可以收集与请求相关联的锚。处理器可以将交易转换成两个或更多个散列的集合。处理器可以向排序服务提交交易。处理器可以接收与交易相关联的请求。处理器可以标识与第一散列相关联的第一原像对于第一分片是已知的。处理器可以生成与交易相关联的第一标识标记。处理器可以接收与交易相关联的请求。处理器可以向第一分片分配第一任务。处理器可以标识与第一散列相关联的第一原像对于第一分片是已知的。处理器可以执行该任务。

Description

针对经许可的区块链的隐私保护架构
背景技术
本公开总体涉及区块链交易承诺领域,并且更具体地涉及在经许可的区块链中保护交易的隐私。
区块链通过跨网络的所有节点复制数据来提供数据的不变性。为了能够验证区块链,节点必须访问交易的完整历史,该链上的任何数据针对所有参与者都是可见的。
发明内容
本公开的实施例包括用于在区块链网络中处理私有交易的方法、***和计算机程序产品。处理器可以生成与交易相关联的请求。处理器可以收集与请求相关联的锚。处理器可以将交易转换成两个或更多个散列的集合。处理器可以向排序服务提交交易。
本公开的进一步的实施例包括一种用于在区块链网络中处理私有交易的方法。处理器可以接收与交易相关联的请求。处理器可以标识与第一散列相关联的第一原像对于第一分片是已知的。处理器可以生成与交易相关联的第一标识标记。
本公开的进一步的实施例包括一种用于在区块链网络中处理私有交易的方法。处理器可以接收与交易相关联的请求。处理器可以向第一分片分配第一任务。处理器可以标识与第一散列相关联的第一原像对于第一分片是已知的。处理器可以执行该任务。
以上发明内容并不旨在描述本公开的每个所示实施例或每个实现。
附图说明
包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。本公开中的附图示出了本公开的实施例,并且与描述一起用于解释本公开的原理。附图仅示出某些实施例,而并不限制本公开。
图1A示出了根据本公开的实施例的示例区块链架构。
图1B示出了根据本公开的实施例的区块链交易流程。
图2A示出了根据本公开的实施例的用于将交易原子地提交至区块链网络的示例***的框图。
图2B示出了根据本公开的实施例的用于将水平切割交易原子地提交到区块链网络的示例***的框图。
图2C示出了根据本公开的实施例的用于将垂直切割交易原子地提交到区块链网络的示例***的框图。
图3A示出了根据本公开的实施例的用于在区块链网络中处理私有交易的示例方法的流程图。
图3B示出了根据本公开的实施例的用于在区块链网络中处理私有交易的另一示例方法的流程图。
图3C示出了根据本公开的实施例的用于在区块链网络中处理私有交易的另一示例方法的流程图。
图4A示出了根据本公开的实施例的云计算环境。
图4B示出了根据本公开的实施例的抽象模型层。
图5示出了根据本公开的实施例的可用于实现本文所描述的方法、工具和模块以及任何相关功能中的一个或多个的示例计算机***的高等级框图。
虽然在本文中所描述的实施例服从不同修改和替代形式,但是其细节已经通过示例在附图中示出并且将被详细描述。然而应当理解,所描述的特定实施例不应被视为限制性的。相反,本发明旨在覆盖落入本公开的精神和范围内的所有修改、等同物和替代物。
具体实施方式
本公开的各方面总体涉及区块链交易承诺领域,并且更具体地涉及在经许可的区块链中保护交易的隐私。所描述的实施例通过围绕隐私优先方法重新设计区块链框架来解决区块链隐私问题,该隐私优先方法不依赖于昂贵的(例如,计算成本、资源成本等)加密原语。本文中所公开的是允许模块化交易执行环境、订购服务和内部数据存储的方法、***和计算机程序产品。对要讨论的区块链技术/领域的重要贡献是:具有快速原子分片间交易的新颖的基于分片的区块链框架;独立于底层数据管理***的域驱动交易创建;以及隐私保护非阻塞原子提交协议。
将容易理解的是,如在本文的附图中一般描述和图示的,本发明的组件可以以各种不同的配置布置和设计。因此,如附图中表示的方法、装置、非暂态计算机可读介质和***中的至少一个的实施例的以下详细描述并不旨在限制所要求保护的本申请的范围,而是仅仅表示所选择的实施例。
在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例实施例”、“一些实施例”或其他类似语言的使用是指结合该实施例所描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或移除。此外,在附图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施例的描述中可以使用术语“消息”,但是本申请可以应用于多种类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例实施例提供方法、***、组件、非暂态计算机可读介质、设备和/或网络,其在区块链网络中提供基于隐私保护的属性的文档共享。
在一个实施例中,本申请利用作为分布式存储***的去中心化数据库(诸如区块链),该分布式存储***包括彼此通信的多个节点。去中心化数据库包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信方在本文中称为对等体或对等体节点。每个对等体维护数据库记录的副本,并且没有单个对等体可以在分布式对等体之间没有共识的情况下修改数据库记录。例如,对等体可以执行共识协议以验证区块链存储交易,将存储交易分组成区块,并在区块上建立散列链。为了一致性,该过程根据需要通过将存储交易排序来形成分类账。在不同实施例中,可以使用经许可的和/或无许可的区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本地密码并且使用基于不同协议(诸如工作证明)的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的实体组之间的安全交互,诸如交换资金、商品、信息等的企业。
本申请可以利用操作任意、可编程逻辑的区块链,其被定制为去中心化存储方案并且被称为“智能合同”或“链码”。在一些情况下,可以存在被称为***链码的管理功能和参数的专用链码。本申请还可以利用智能合同,智能合同是可信的分布式应用,其利用区块链数据库的防篡改特性和节点之间的基础协议,这被称为背书或背书策略。与本申请相关联的区块链交易在被提交至区块链之前可以被“背书”,而未被背书的交易被忽略。背书策略允许链码以对于背书必需的对等体节点集合的形式指定针对交易的背书者。当客户端将交易发送给背书策略中指定的对等体时,执行该交易以验证交易。在验证之后,交易进入排序阶段,其中使用共识协议来产生被分组为区块的经背书的交易的有序序列。
本申请可以利用作为区块链***的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书者(例如,对等体)提交交易调用并且向排序服务(例如,排序节点)广播交易提议的客户端或提交客户端节点。另一类型的节点是对等体节点,其可以接收客户端提交的交易、提交交易并维持区块链交易的分类账的状态和副本。对等体也可以具有背书者的作用,尽管它不是必需的。排序服务节点或排序者是为所有节点运行通信服务的节点,并且其实现递送保证,诸如在提交交易和修改区块链的世界状态时向***中的每个对等体节点广播,世界状态是初始区块链交易的另一名称,其通常包括控制和设置信息。
本申请可以利用分类账,该分类账是区块链的所有状态转换的经排序的防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等体节点等)提交的链码调用(例如,交易)引起。每个参与方(诸如对等体节点)可以维护分类账的副本。交易可以导致资产键值对集合作为一个或多个运算对象被提交到分类账,诸如创建、更新、删除等。分类账包括用于在区块中存储不可变的经排序的记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为交易日志的链,该交易日志被构造为散列链接的区块,并且每个区块包括N个交易的序列,其中N等于或大于1。区块报头包括区块的交易的散列以及先前区块的报头的散列。以这种方式,分类账上的所有交易可以被排序并且加密地链接在一起。因此,不可能篡改分类账数据而不破坏散列链接。最近添加的区块链区块的散列表示在链之前已经出现的每个交易,从而使得可以确保所有对等体节点都处于一致并且可信的状态。该链可以存储在对等体节点文件***(例如,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链交易日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链码调用执行针对分类账的当前状态数据的交易。为了使这些链码交互高效,键的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的交易日志中的索引视图,因此可以在任何时间从链中重新生成它。在对等体节点启动时并且在接受交易之前,可以自动恢复(或者如果需要的话生成)状态数据库。
本文所描述和描绘的即时解决方案的一些益处包括用于在区块链网络中基于隐私保护属性的文档共享的方法和***。示例性实施例通过扩展数据库的特征(诸如不变性、数字签名和作为单个真实源)来解决时间和信任的问题。示例性实施例提供了用于在区块链网络中基于隐私保护属性的文档共享的解决方案。基于资产类型和基于智能合同管理资产的规则,区块链网络可以是同质的。
区块链与传统数据库的不同之处在于,区块链不是中央存储器,而是去中心化的、不可变的并且安全的存储器,其中节点可以共享对存储器中的记录的改变。区块链中固有的并且有助于实现区块链的一些属性包括但不限于本文进一步描述的不可变分类账、智能合同、安全、隐私、去中心化、共识、背书、可访问性等。根据不同方面,由于区块链固有的和唯一的不可变的责任性、安全性、隐私性、经许可的去中心化、智能合同的可用性、背书和可访问性,实现了区块链网络中基于隐私保护属性的文档共享的***。特别地,区块链分类账数据是不可变的,并且其提供用于在区块链网络中基于隐私保护属性的文档共享的高效方法。此外,区块链中加密的使用提供安全性并且建立信任。智能合同管理资产的状态以完成生命周期。示例区块链是许可去中心化的。因此,每个终端用户可以具有用于访问的其自己的分类账副本。多个组织(和对等体)可以在区块链网络上绑定。密钥组织可以充当背书对等体,以验证智能合同执行结果、读取-设置和写入-设置。换言之,区块链固有特征提供在区块链网络中处理私有交易的高效实现。
示例实施例的益处之一是,其通过实现用于在区块链网络中处理私有交易的方法来改进计算***的功能。通过本文所描述的区块链***,计算***(或计算***中的处理器)可通过提供对诸如分布式分类账、对等体、加密技术、MSP、事件处理等能力的访问来执行利用区块链网络的私有交易处理的功能。此外,区块链使得能够创建商业网络并且使任何用户或组织板上参与。这样,该区块链不仅仅是数据库。该区块链具有创建用户和板上/板外组织的商业网络的能力,以便以智能合同的形式协作和执行服务过程。
示例实施例提供优于传统数据库的多个益处。例如,通过区块链,实施例提供了区块链固有的和唯一的不可变的责任性、安全性、隐私性、许可的去中心化、智能合同的可用性、背书以及可访问性。
同时,传统数据库不能用于实现示例实施例,因为它没有带来商业网络上的所有方,它不创建可信协作并且不提供数字资产的有效存储。传统数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。由此,本文所描述的利用区块链网络的所建议的实施例不能在传统数据库中实现。
同时,如果传统数据库被用于实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性和交易速度慢。因而,示例实施例提供对隐私保护处理技术/领域中的问题的特定解决方案。
示例实施例还改变数据可以如何存储在区块链的区块结构内。例如,数字资产数据可以安全地存储在数据区块的某个部分内(例如,在报头、数据段或元数据内)。通过将数字资产数据存储在区块链的数据区块内,可以通过区块的散列链接链将数字资产数据附加到不可变区块链分类账。在一些实施例中,通过使与数字资产相关联的个人数据不与区块链的传统区块结构内的资产一起存储,数据区块可不同于传统数据区块。通过移除与数字资产相关联的个人数据,区块链可基于不可变责任性和安全性来提供匿名性的益处。
继续,区块链文档处理器可以具有两个组件:私有的链下处理器,其管理与参与者相关的私有信息的安全处理;以及分类账处理器,其管理使用网络的共识算法与区块链网络的所有参与者共享的公共信息的处理。
根据示例性实施例,意图与其他组织共享文档的每个组织使用连接到区块链网络的区块链文档处理器。使用文档处理器,组织可以在分类账上建立以下:文档模板的列表(诸如归档的云存储提议等);将以散列形式在分类账上共享的每个文档模板的属性;来自不同模板的用于匹配和共享文档的关键属性的组合;以及合伙默克尔树(partnershipMerkle tree):每个合伙默克尔树可以基于合伙组织的(例如,建议实体的)标识符(ID)来建立。
在一些实施例中,所有文档(例如,文件等)被存储在链下数据存储(例如,云服务器、数据中心等)上。作为区块链交易的一部分,仅提交原像、属性散列和/或文档标识符(ID)。例如,如本公开中所建议的,将散列的原像存储在区块链内的特定分片中,所述特定分片私下地验证交易并防止其他分片查看信息。
图1A图示根据本公开的实施例的区块链架构100。在一些实施例中,区块链架构100可以包括某些区块链元件,例如,一组区块链节点102。区块链节点102可以包括一个或多个区块链节点,例如对等体104-110(这四个节点仅通过示例描绘)。这些节点参与多个活动,诸如区块链交易添加和确认过程(共识)。对等体104-110中的一个或多个可以基于背书策略来背书和/或推荐交易,并且可以为区块链架构100中的所有区块链节点102提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层116中的区块链不可变分类账,其副本也可存储在支持物理基础设施114上。区块链配置可包括一个或多个应用124,这些应用链接到应用编程接口(API)122以访问和执行所存储的程序/应用代码120(例如,链代码、智能合同等),这些程序/应用代码可根据参与者寻求的定制配置来创建并且可维持其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为交易并且经由附加到分布式分类账而被安装在所有区块链节点104-110上。
区块链基底或平台112可以包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施,该支持物理计算机基础设施可以用于接收和存储新交易并提供对试图访问数据条目的审核者的访问。区块链层116可以暴露接口,该接口提供对处理程序代码和参与物理基础设施114所必需的虚拟执行环境的访问。密码信任服务118可用于验证交易(诸如资产交换交易)并保持信息私有。
图1A的区块链架构100可以经由由区块链平台112暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码120。代码120可以控制区块链资产。例如,代码120可以存储和传送数据,并且可以由对等体104-110以智能合同和相关联的链式代码的形式来执行,其中条件或其他代码元素受其执行。作为非限制性示例,可以创建智能合同以执行存储空间的生成、存储空间的预留、对当前建议的更新等。智能合同本身可用于标识与分类账的授权和访问要求和使用相关联的规则。例如,(多个)文档属性信息126可以由包括在区块链层116中的一个或多个处理实体(例如,虚拟机)处理。结果128可以包括多个链接的共享文档(例如,每个链接的共享文档记录智能合同的发布,等等)。物理基础设施114可用于检索本文所述的任何数据或信息。
智能合同可以经由高级应用和编程语言创建,并且然后被写到区块链中的区块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合同代码的执行,其可以响应于满足与智能合同相关联的条件而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的(多个)修改可以通过一个或多个共识协议遍及区块链对等体的分布式网络被自动复制。
智能合同可以以键值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由所供应的执行环境保存在存储器中,然后一旦标识了区块链需要的数据就删除。
链码可以包括具有附加特征的智能合同的代码解释。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共识过程期间由链验证程序一起执行和验证。链码接收散列并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据(例如,因此原子地将交易提交至区块链)。
图1B示出根据示例实施例的在区块链的节点之间的区块链交易流150的示例。参考图1B,交易流可包括由应用客户端节点160发送至背书对等体节点181的交易提议191(例如,在一些实施例中,在确定与交易提议191相关联的散列的原像匹配特定分片内所保存的原像时,可发送交易提议191用于背书)。背书对等体181可以验证客户端签名并且执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。如果被批准,则提议响应192连同背书签名一起被发送回客户端160。客户端160将背书组装成交易有效负载193并将其广播至排序服务节点184。排序服务节点184然后将排序交易作为区块递送到信道上的所有对等体181-183。在提交到区块链之前,每个对等体181-183可以验证交易。例如,对等体可检查背书策略以确保指定对等体的正确分配已对结果签名并对交易有效负载193验证签名。
再次参考图1B,客户端节点160通过构建请求并将请求发送至作为背书者的对等体节点181来发起交易191。客户端160可以包括利用所支持的软件开发工具包(SDK)的应用,该SDK利用可用的API来生成交易提议191。提议是调用链码函数以使得数据可以被读取和/或写入到分类账(例如,为资产写入新的键值对)的请求。SDK可以充当垫片(shim)以将交易提议191封装成适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器)并采用客户端的密码证书来产生交易提议191的唯一签名。
作为响应,背书对等体节点181可验证(a)交易提议191形成良好,(b)交易在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(该示例中的客户端160)被适当地授权以在该信道上执行所建议的操作。背书对等体节点181可以将交易提议191输入作为对所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读出集合和写入集合的交易结果。然而,此时没有对分类账进行更新。在192中,该值集合连同背书对等体节点181的签名作为提议响应192被传递回客户端160的SDK,SDK解析应用消费的有效负载。
作为响应,客户端160的应用检查/验证背书对等体签名,并且比较提议响应以确定提议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应并且通常将不向排序节点服务184提交交易。如果客户端应用意图将交易提交给排序节点服务184以更新分类账,则应用确定在提交之前是否已满足指定的背书策略(例如,具有交易所需的特定分片的所有对等体节点是否对该交易进行背书)。这里,客户端可仅包括交易的多方中的一个。在这种情况下,每个客户端可具有其自身的背书节点,并且每个背书节点将需要对交易进行背书。该架构使得即使应用选择不检查响应或以其他方式转发未背书的交易,背书策略仍将由对等体强制执行并在提交验证阶段得到保持。
在成功检查之后,在步骤193中,客户端160将背书组装到交易中并且将交易提议191和交易消息内的响应广播至排序节点184。交易可包含读出/写入集合、背书对等体签名和信道ID。排序节点184不需要检查交易的全部内容以便执行其操作,相反,排序节点184可以简单地从网络中的所有信道接收交易,按信道对它们按时间顺序进行排序,并且按信道创建交易区块。
交易的区块被从排序节点184递送到信道上的所有对等体节点181-183。区块内的交易194被验证以确保任何背书策略被满足并确保对于读出集合变量的分类账状态没有改变,因为读出集合是由交易执行生成的。区块中的交易被标记为有效或无效。此外,在步骤195中,每个对等体节点181-183将区块附加到信道的链,并且对于每个有效交易,写入集合被提交到当前状态数据库。发出事件以通知客户端应用交易(调用)已经被不变性地附加到链,以及通知交易被验证还是被无效。
现在参见图2A,图示了根据本公开的实施例的用于将交易原子地提交到区块链网络的示例***200的框图。在一些实施例中,***200包括交易202,交易202包括第一散列204和第二散列206。***200进一步包括第一分片208、第二分片210和第三分片212。***继续包括第一验证214、第二验证216、未知原像218、原子提交(例如,命令、操作、模块、节点等)220和忽略(例如,命令、操作、模块、节点等)222。在一些实施例中,交易202被发送至***200以被区块链网络验证和提交至区块链网络/通过区块链网络提交。交易202被分成第一散列204和第二散列206,它们具有与其相关联的原像(例如,未描绘)。散列204、206的原像然后被发送到分片208-210的全部、一个或任意组合,分片208-210具有与第一散列204或第二散列206相关联的原始版本的副本。
如所描绘的,第一分片208包括与第一散列204相关联的原像的副本,第二分片210包括与第二散列206相关联的原像的副本,并且第三分片212不包括任一原像的副本。在一些实施例中,第一分片208允许容纳/利用第一分片208的节点/对等体执行第一验证214;第二分片210允许容纳/利用第二分片210的节点/对等体执行第二验证216。在一些实施例中,在验证214、216后,执行原子提交220并且将交易提交到区块链网络。
在一些实施例中,容纳/利用第三分片212的节点/对等体标识未知原像218已被发送到第三分片212的节点/对等体并且未知原像218被由忽略222忽略。在一些实施例中,同时执行原子提交220和忽略222。注意,***200中所描绘的内容允许交易(例如,交易202)提交到区块链网络,而不尽情地向整个区块链网络***息。
应进一步注意,关于***200(以及分别关于图2B至图C的***230、250)使用某些假设,以下详述假设:
对网络参与者运行的所有过程和网络节点之间的通信是部分同步的。更具体地,针对每个通信回合,对于在两个正确节点之间发送的每个消息,存在等待时间的上限Δ∈[1,∞),其以回合数目测量;
散列函数和公共密钥基础设施(PKI)不能被故意破坏。注意,本文所讨论的所呈现的网络设置被许可,例如,所有参与者是已知的并且具有与(超分类账)结构的当前实现类似的方式向其分配的角色。这样,进一步假设通信是点对点认证的,例如,使用传输层安全(TLS);
网络中的每个节点(松散地对应于结构中的对等体)属于至少一个隐私分片。虽然每个节点复制相同的分类账,但其仅与相同隐私分片中的其他节点共享其对世界状态的视图。所有本地分片状态的并集创建完整的世界视图。因此,进一步假设网络中的所有其他节点已知所有节点及其分片成员资格。然而,节点***露其本地状态或者本文中描述的协议未指定的任何信息。此外,虽然节点可能表现故障,但我们假设分片作为整体是诚实的,但是好奇的,并且不会失败;
客户端是与分类账交互的实体。它们负责发起交易。多个客户端可协作以一起创建交易。这些客户端中的每一个都可能是拜占庭故障(Byzantine faulty)。特别地,一些或甚至所有涉及的客户端可能与网络的其余部分串通;
资产是表示分类账上的物理对象或虚拟概念的数据的集合。如本文所公开的,资产是第一类公民并且成为与区块链交互的主要点。通过在面向对象编程中像对象一样对它们建模,这样的智能资产管理它们自己的数据。它们跟踪它们自己的内部状态,并且仅使公共API可用于交互。这基于一个或多个智能资产之间的交互将传统智能合同拆分成两部分:资产限定和业务逻辑。每个可以由不同的领域专家来处理,使得应用开发、互操作性和资产的组合更容易。资产限定(例如,其内部工作和公共API)安装在隐私分片上。由此,不同的分片可提供类似于提供金融工具的不同选择的银行的不同的智能资产限定。进一步假设所有API调用接受包含所请求状态转换的所有必要数据的数据传输对象(DTO)。所有DTO和资产本身可实现接口GetID()和GetStakeholder()。第一个确保分类账可以找到先前创建的资产,并且需要后者来验证利益相关者策略,如下面所讨论的。注意,本文公开的方法、***和计算机程序产品不限于资产,而相反是对于交易内容不可知的;
进一步假设,要求每个资产具有限定的利益相关者集合。例如,IOU资产将需要借款人和出借人作为利益相关者。当安装资产限定时,每个API可以注册利益相关者策略。无论何时客户端调用API,它们可以提供满足用于函数调用的策略的一个或多个利益相关者签名。例如,针对来自联合银行账户的撤回请求的策略可能需要两个利益相关者签名中的一个签名。利益相关者为资产的内部状态的一部分,且可随时间而改变。
从概念观点来看,利益相关者的存在防止在没有分叉的情况下对分类账的双重花费,如在本文中所呈现的。每当利益相关者将资产的所有权转移到新的利益相关者时,该资产将不再接受旧的利益相关者的签名。如果恶意利益相关者试图为相同资产创建两个转移,则它们将最终出现在全球分类账中全序出现。然后,第一交易改变利益相关者,因此当第二交易被验证时,其违反资产的利益相关者策略并且被丢弃;
交易是同时状态转换的语义单元并且由客户端提交给分类账。它可以涉及多个隐私分片和它的不同部分之间的复杂的依赖性。例如,交易可以包括三个状态转换。分片A中的第一转换和分片B中的第二转换相互依赖以提交,从而确保原子交互。第三转换涉及分片C,但独立于其他两个部分。这可导致A和B丢弃交易而C提交交易的情形。这是被允许的行为,因为每个分片的本地状态的正确性被保留并且交易的原子部分也是共识的。如果分片C的部分真正独立于A和B,那么那些分片是否被丢弃将不重要。否则,第三部分需要接收依赖关系,并且由原子性保证覆盖;
排序服务负责创建交易的全局顺序。像隐私分片一样,排序服务在所描述的场景中被视为“黑匣子”。这样,排序服务表现诚实但好奇。进一步,它创建由客户端提交的交易的总顺序,将此顺序切割成区块并将区块散布到网络中的所有隐私分片。如本文描述且在下文更详细论述,通过构建不知道在单个交易中涉及哪些分片。因此,全局排序服务不可能将交易仅传播到所涉及的分片。
返回参考图2A,描述了简化的示例,例如:一个客户端Bob想要从另一个客户端Alice借100美元。为此目的,它们将创建IOU智能资产,该资产表示隐私分片Siou上的借用总和,其已安装该资产限定。作为交换,Alice将向Bob传送存储在隐私分片中的价值100美元的现有资产。这两个操作属于相同的交易并且可以原子地执行。
在另一示例中,Alice和Bob针对CreateIOU调用协商DTO的内容。如前所述,GetID()和GetStakeholders()已经被实现,因此它们仅需要确保它们添加它们的公共密钥以将它们标记为利益相关者并且同意正确的值。该协商完全发生在所涉及的客户端之间,而不涉及任何分片或排序服务。
一旦Bob和Alice都对用于IOU创建的DTO满意,它们就准备对分片Siou的请求。此请求由函数调用的唯一指定的名称(在此情况下为CreateIOU)、对应的DTO、任意请求ID和此请求所依赖的分片集合组成。请求ID确保接收此请求的分片可区分同一请求的恶意/偶然重放与仅具有相同参数的真实第二请求。通过向请求添加依赖关系集合{Stoken},Alice和Bob可以告诉Siou,Stoken必须验证交易的另一部分。在这种情况下,Siou将当且仅当Stoken也提交其改变的情况下提交改变(这将在下面更全面地描述)。
满足请求中函数调用的利益相关者策略的客户端集合需要利用属于其利益相关者公共密钥的相同私有密钥对请求的四个部分的默克尔根散列进行签名。接收分片稍后检查这些签名是否遵守利益相关者策略。对于CreateIOU,在Siou上注册的策略是借款人和出借人都需要签署请求,因此Alice和Bob都添加他们的签名。由于这些签名,没有客户端能够创建没有被所需数量的利益相关者看见的有效请求。
最后,将请求发送至分片的Bob将与他在网络中的角色相关联的签名添加至消息(表2)以验证他被允许向分片发出请求。这种角色的示例是WRITER,被允许创建请求和交易的某人。该最后签名不被认为是消息的一部分并且在验证之后将被分片丢弃,使得没有关于请求的发送者的信息可泄漏到网络的其余部分。由于请求ID,每个客户端签名被绑定到特定请求;在不尝试重放整个请求的情况下,其不能被恶意客户端重新使用,这可以通过在分片上的重复预防来处理。
当分片Siou从Bob接收到请求时,它首先检查对复制的请求,然后它解包有效负载并使用DTO的GetStakeholders()接口接收必要的公共密钥来对照CreateIOU的利益相关者策略来验证签名。如果该验证不成功,则分片简单地以错误消息做出响应。否则,下一步骤取决于分片的配置。
在一些实施例中,区块链的执行引擎从交易流完全解耦,因此分片可被配置来进行预序或后序执行或两者的一些混合。如果分片进行预序执行,那么其现在模拟CreateIOU并且将结果存储在本地暂态存储库中。如果分片被配置来进行后序执行,那么所得有效负载为空。无论哪种方式,分片然后对请求的默克尔根散列(没有σrole)和结果有效负载进行签名。这充当未来交易的部分原像,因此分片可在将响应返回至客户端之前将其本地存储。然后,分片仅返回原像的散列及其签名。注意,客户端不需要获知请求的结果。响应中的散列简单地充当原像对交易的锚点。
在一些实施例中,对于完整交易的所有部分,可重复以上提供的步骤。因此,Alice和Bob也必须同意Alice将向Bob传送哪个资产。它们创建以{Siou}作为依赖性集合的转移令牌的请求。这样,如果Siou也提交了交易的它的部分,则令牌转移才会通过。然后,Alice将请求发送到Stoken,其中持有该特定资产。然后,在转移令牌请求的DTO的GetID接口的帮助下,Stoken从资产的数据库中加载资产。这样,请求的利益相关者和现有资产两者可以一起被验证。在这种情况下,资产的所有者也必须是转移的利益相关者。将此转换为策略给出:“一个签名必须与现有资产的单个利益相关者和转移的一个利益相关者相匹配,另一签名必须仅与转移的另一利益相关者相匹配。”
一般而言,对不同分片的多个请求可同时处理,因为它们之间的唯一链接是它们的依赖性集合,其仅在提交交易之后的验证期间使用。注意,所涉及的分片中没有分片获知其他分片的请求是什么。
在一些实施例中,在Alice和Bob从分片Siou和Stoken接收到响应之后,在Alice和Bob都利用针对个体请求的相同私有密钥对默克尔根散列进行签名之前,Alice和Bob收集并且散列该响应。与先前的单个请求一样,Alice附加与她的网络角色相关联的签名,并且将整个交易发送给排序服务。
交易由该交易中涉及的所有分片响应的散列和所有涉及的利益相关者的默克尔根的签名组成。在此,我们在利益相关者与客户端之间进行区分,因为单个客户端可能对分片的每个请求使用不同的密钥对。在这种情况下,该客户端需要用所有涉及的私有密钥对交易进行签名。重要的是要指出,客户端在不需要确切了解任何响应原像的情况下对默克尔根进行签名。这允许部分不透明交易。
在另一示例中,在三个客户端Alice、Bob和Cerise之间采取周期性欠彼此10美元的净额结算场景。Alice愿意取消她与Bob的IOU,如果同时Cerise与她的IOU被取消的话。类似地,Bob和Cerise也一样。然而,客户端都不需要知道其他两个客户端之间的协定,以确保净额结算为自己工作。因此,它们创建具有三个部分的交易,其中每个客户端仅知道经散列的分片响应中的两个。必须将净额结算转移的三个部分组合在单个交易中以保证原子性。客户端仍然能够对交易的默克尔根进行签名,因为他们确信交易的不透明部分不能涉及他们的任何资产。否则的话,他们将不得不对请求签名,从而导致在交易中创建不透明散列。应注意,交易可隐含地涉及来自相同分片的多个经散列的响应。
在一些实施例中,当排序服务接收到新交易时,它验证客户端的角色,然后丢弃该签名并将该交易放入新区块中,该新区块然后被传播到整个网络。由于排序服务仅看到与未知公共密钥相关联的散列和签名,它不能获知关于客户端的身份(除了发送者之外)或甚至涉及哪些隐私分片的任何东西。然而,它可以获知所涉及的分片和客户端的数目。如果该泄露是个问题,则客户端可在之前的步骤中向交易添加任何数目的假冒的(例如,假的、伪造的等)散列和伪造签名,以使真实数目的参与者模糊。此外,如果真实的发送者的身份应被保密,则代理客户端可用于向排序服务广播交易。
在一些实施例中,在IOU的情况下,分片Siou和Stoken两者扫描它们接收的每个新区块中的每个交易。他们将交易的每个默克尔叶与它们先前已经创建但还未验证的原像的散列进行比较。因此,在某个时刻,Siou将标识对CreateIOU请求的响应的散列。为了检查已知散列是有效交易的一部分,Siou验证原像的所有利益相关者也已经对完整交易签名。如果不是这种情况,则可以在不知道请求利益相关者之一的情况下创建交易。
假设Siou被配置成进行预序执行,它已经存储了模拟的请求结果。因为到现在该结果可能是过时的,所以它需要验证该结果仍然有效。如果代替Siou被配置为执行后序执行,其将模拟结果并检查有效性,如先前所讨论的。在任一情况下,如果结果无效,则其丢弃交易并继续移动。如果结果是有效的,它询问Stoken是否它的交易部分也是有效的。为此,它将相关交易的默克尔根发送给Stoken
同时,Stoken已完成相同的事,因此每个将用成功或失败消息响应其他分片的查询。如果分片接收到失败消息,其丢弃本地结果,即使其有效。否则,结果将被提交到本地分类账状态。这确保了IOU被创建并且令牌被传送或者既不创建也不传送。
作为另一实例,提交协议在具有两个以上分片的场景中变得更复杂。想象具有四个分片S0、S1、S2、S3的场景。每个分片Si取决于来自两个分片Si-1mod 4和Si+1mod 4的结果。如果S1是有效的,并且来自S0和S2的响应也是有效的,则它将继续并且提交。但情况可能是S1在其他分片中的任一者有机会从S3获得响应之前询问。如果S3无效,则S0和S2两者也将它们的结果改变为无效。因此,S1不应提交交易的它的部分。这意味着应实现跨所有所涉及的分片的原子提交(AC)的变化。
进一步,在处理模糊的极端情况的情况下,交易可包括对相同分片的多个请求。在这种情况下,执行计算结果的验证,验证顺序与它们相关联的散列在交易中出现的顺序相同。该顺序由交易的签署的默克尔根固定,因此结果是确定性的,只要每个单个确认的结果是确定性的。接下来,限定具有多个请求Smulti的分片的响应给予任何依赖分片Sdep。在一些实例中,不能通过Sdep区分请求,因为它不能将交易中的散列连接到特定分片。在另外的实例中,因为依赖关系集合不一定创建双向依赖关系,所以Smulti不知道Sdep想要对哪个请求Sdep进行响应。因此,Smulti只能对Sdep给出单个回答。单个响应不会破坏任何依赖验证的原子性的唯一方式是通过以全或无的方式聚合所有请求结果。因此,独立于验证请求的数目,任何分片的响应是由其他分片和单个成功或失败查询的交易散列。
要注意的是,通常需要依次验证交易以确保确定性。但分片可以能够推理交易依赖性。尤其如果分片使用预序执行,那么分片可发现仅接触不同状态的交易。在这种情况下,待验证的分片可并行验证独立交易以避免被等待来自另一分片的响应的单个交易完全阻止。然而,即使交易的依赖性分析是不可能的,也确保在没有永久网络分区的假设下,所有分片最终取得进展。到交易被提交给排序服务时,所有涉及的分片已经看到它们自己的相关联的原像。否则,分片将不能够签署对客户端的请求的响应。如果分片在交易中未标识散列,则该散列属于不同分片或者它是无效散列,因此在任一情况下可忽略该散列。因此,当分片开始特定交易的原子提交协议时,每个所涉及的分片可明确地决定其自身的开始值。提交的延迟由接收区块的最新分片和原子提交协议的等待时间确定。通过假设,所有分片表现良好,因此所有分片最终都会决定。
要强调的是,本公开不保证交易的完全提交或丢弃,而仅保证依赖部分的原子性。假设交易由两个独立部分组成。则每个对应的分片将验证其部分的利益相关者是交易签名的完全集合的子集。在这种情况下,第一分片不能且不应能够决定第二分片是否能够验证签名。因此,第一分片提交改变而第二分片不理会它是可能的。然而根据限定,两个部分在语义上是独立的,因此这不会导致对分类账的全局状态的任何不一致或可能的攻击。
现在参见图2B,其示出了根据本公开的实施例的用于将水平切割交易原子地提交到区块链网络的示例***230的框图。要注意的是,***230的各种描述可利用以上关于图2A的***200描述的场景或描述。
在一些实施例中,***230可以包括交易232,该交易232被分成第一散列234和第二散列236。在一些实施例中,可将散列234、236中的每个的原像(未示出)发送到第一分片238、第二分片240或两个分片238、240。如所描绘的但绝非限制,第一分片238标识其已保留如所发送的第一散列234的匹配(相同)原像。进一步,第二分片240标识其已保留第二散列236的匹配原像。
在一些实施例中,在分片238、240标识它们具有散列234、236的相应原像时,第一分片238生成第一标识(ID)标记242并且第二分片240生成第二ID标记244。在一些实施例中,经由原子提交252将标记242、244提交至区块链。在一些实施例中,在原子提交252之前、之后或同时,第一ID标记242被呈现给第一用户246和第二用户248。进一步,第二ID标记244被呈现给第一用户246和第三用户250。
例如,农场主将农作物递送到经销商的交易可分成两个散列。一个散列可以涉及将作物递送到经销商的运输经营者,并且另一散列可以涉及将被递送到经销商的农作物。在发起交易之前,将区块链中的第一分片发送至与运输运营商相关的散列的原像,并且将区块链中的第二分片发送至与农作物相关的散列的原像。
在农场主向经销商发起交易时,两个散列的原像发送到每个分片,并且具有匹配原像的相应分片产生对农场主和运输经营者或经销商透明的标识。即,农夫既知道正在使用的运输经营者又知道正在递送的农作物,但经销商仅知道正在递送的农作物(因为经销商不需要知道正在使用的搬运人)。
参考图2C,其示出了根据本公开的实施例的用于将垂直切割交易原子地提交到区块链网络的示例***260的框图。要注意的是,***260的各种描述可利用以上关于图2A的***200描述的场景或描述。
在一些实施例中,***260可包括交易262,该交易262被分成第一散列264和第二散列266。在一些实施例中,可将散列264、266中的每个的原像(未示出)发送到第一分片268、第二分片270或两个分片268、270。如所描述的但绝非限制,第一分片268标识其已保留如所发送的第一散列264的匹配(相同)原像。进一步,第二分片270标识其已保留第二散列266的匹配原像。
在一些实施例中,在第一分片268标识其具有与第一散列264相关的匹配原像时,第一分片268执行第一任务272。进一步,在第二分片270标识其具有与第二散列266相关的匹配原像时,第二分片270执行第二任务274。在一些实施例中,在执行第一任务272和第二任务274后,可执行原子提交276。
例如,Bob从Alice购买100,000美元的房子的交易可以被提交给区块链网络。交易可被分成两个散列:第一散列,其与房屋从Alice到Bob的所有权转移相关;以及第二散列,其与房屋从Bob到Alice的100,000美元的转移相关。在一些实施例中,在发起交易之前,每个散列的相应原像可相应地发送至第一分片和第二分片。在发起转换时,两个原像被发送到第一分片和第二分片两者,并且每个分片标识具有匹配的相应原像。在一些实施例中,第一分片包括与第一散列相关联的原像并且第一分片执行将房屋所有者从Alice转移到Bob的任务,此外,第二分片包括与第二散列相关联的原像并且第二分片执行从Bob转移到Alice的100,000美元的任务。
现在参见图3A,所示出的是根据本公开的实施例的用于在区块链网络中处理私有交易的示例方法300的流程图。在一些实施例中,方法300可由区块链网络中的处理器(例如,节点、计算机***等)执行。
在一些实施例中,方法300开始于操作302,其中处理器生成与交易相关联的请求。方法300前进到操作304,在操作304,处理器收集与请求相关联的锚。在一些实施例中,方法300前进到操作306,在操作306,处理器将交易转换成两个或更多个散列的集合。方法300继续至操作308,在操作308,处理器将交易提交至排序服务。在一些实施例中,方法300。
下面更全面地讨论可以通过方法300实现但是在图3A中未示出的进一步操作。因此,在一些实施例中,请求可以是修改区块链分类账的可处理行动。在一些实施例中,方法300进一步前进到处理器通过区块链网络(其可容纳在处理器中/上)中的两个或更多个分片验证交易的操作。交易可由两个或更多个分片本地(例如,在区块链中的其他分片不可见的情况下)验证。
在一些实施例中,两个或更多个分片通过方法300验证交易,进一步进行到使处理器通过两个或更多个分片中的每个分片接收与两个或更多个散列相关联的相应的已知原像。处理器通过两个或更多个分片中的每个分片将相应的已知原像与两个或更多个散列进行匹配。
在一些实施例中,方法300进一步继续进行到处理器通过两个或更多个分片(在处理器中/上)执行请求的原子提交的操作。在一些实施例中,原子提交可在不与其他两个或更多个分片中的任一者共享任何相应的已知原像的情况下执行。
现在参见图3B,所示出的是根据本公开的实施例的用于处理区块链网络中的私有交易的另一示例方法330的流程图。在一些实施例中,方法330可由区块链网络中的处理器(例如,节点、计算机***等)执行。
在一些实施例中,方法330开始于操作332,其中处理器接收与交易相关联的请求。方法330继续至操作334,其中处理器标识与第一散列相关联的第一原像对于第一分片是已知的。方法330进行到操作336,其中处理器生成与交易相关联的第一标识标记。在一些实施例中,方法330结束。
下面更全面地论述可以通过方法330实现但是在图3B中未示出的进一步操作。因此,在一些实施例中,方法330进一步继续至处理器标识与第二散列相关联的第二原像对第二分片是已知的操作。处理器生成与交易相关联的第二标识标记。
在一些实施例中,该第一标识标记被显示给第一用户和第二用户,并且该第二标识标记被显示给第一用户和第三用户。在一些实施例中,方法330进一步继续进行到处理器验证交易的操作。处理器然后将交易原子地提交至区块链网络。
现在参见图3C,所示出的是根据本公开的实施例的用于在区块链网络中处理私有交易的示例方法的流程图。在一些实施例中,方法350可由区块链网络中的处理器(例如,节点、计算机***等)执行。
在一些实施例中,方法350开始于操作352,其中处理器接收与交易相关联的请求。方法350继续至操作354,其中处理器为第一分片分配第一任务。方法350继续至操作356,其中处理器标识与第一散列相关联的第一原像对于第一分片是已知的。方法350进行到操作358,其中处理器执行第一任务。在一些实施例中,方法350结束。
下面更全面地论述可以通过方法350实现但是在图3C中未示出的进一步操作。因此,在一些实施例中,方法350进一步前进到处理器为第二分片分配第二任务的操作。处理器标识与第二散列相关联的第二原像对第二分片是已知的。处理器执行第二任务。在一些实施例中,执行第一任务和第二任务作为交易的原子提交的一部分。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户端平台或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地分配和重新分配。存在部分独立性的感觉,因为消费者通常不具有对所提供的资源的确切部分的控制或知识,但可能能够在较高抽象级别(例如,国家、州或数据中心)指定部分。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云***通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作***、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作***和应用。消费者不管理或控制底层云基础设施,而是具有对操作***、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
图4A示出了云计算环境410。如图所示,云计算环境410包括由云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点400,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话400A、台式计算机400B、膝上型计算机400C和/或汽车计算机***400N。节点400可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。
这允许云计算环境410提供基础架构、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图4A中示出的计算设备400A-N的类型仅旨在是说明性的,并且计算节点400和云计算环境410可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
图4B示出了由云计算环境410(图4A)提供的一组功能抽象层。应提前理解,图4B中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施例不限于此。如下所述,提供以下层和对应功能。
硬件和软件层415包括硬件和软件组件。硬件组件的示例包括:大型机402;基于RISC(精简指令集计算机)架构的服务器404;服务器406;刀片服务器408;存储设备411;以及网络和网络组件412。在一些实施例中,软件组件包括网络应用服务器软件414和数据库软件416。
虚拟化层420提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器422;虚拟存储器424;虚拟网络426,包括虚拟专用网络;虚拟应用和操作***428;以及虚拟客户端430。
在一个示例中,管理层440可以提供以下描述的功能。资源供应442提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价444在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户446为消费者和***管理员提供对云计算环境的访问。服务水平管理448提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行450提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层460提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航462;软件开发和生命周期管理464;虚拟课堂教育交付466;数据分析处理468;交易处理470;以及原子提交472。
图5示出了根据本公开的实施例的可用于实现本文所描述的方法、工具和模块中的一个或多个和任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例性计算机***501的高级框图。在一些实施例中,计算机***501的主要组件可以包括一个或多个CPU 502、存储器子***504、终端接口512、存储接口516、I/O(输入/输出)设备接口514、和网络接口518,所有这些可以直接或间接地通信地耦合,以用于经由存储器总线503、I/O总线508、和I/O总线接口单元510的组件间通信。
计算机***501可以包含一个或多个通用可编程中央处理单元(CPU)502A、502B、502C和502D,这里统称为CPU502。在一些实施例中,计算机***501可以包含相对大型***的典型的多个处理器;然而,在其他实施例中,计算机***501可以替代地是单个CPU***。每个CPU 502可执行存储在存储器子***504中的指令,并且可包括一个或多个板上高速缓存。
***存储器504可包括易失性存储器形式的计算机***可读介质,诸如随机存取存储器(RAM)522或高速缓存存储器524。计算机***501可以进一步包括其他可移动/不可移动、易失性/非易失性计算机***存储介质。仅通过示例的方式,存储***526可被设置为从不可移动、非易失性磁介质(诸如,“硬盘驱动器”)读取和写入不可移动、非易失性磁介质。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,或用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。此外,存储器504可包括闪存,例如闪存棒驱动器或闪存驱动器。存储器设备可通过一个或多个数据介质接口连接到存储器总线503。存储器504可包括具有一组(例如,至少一个)程序模块的至少一个程序产品,这些程序模块被配置为执行不同实施例的功能。
各自具有至少一组程序模块530的一个或多个程序/实用程序528可被存储在存储器504中。程序/实用程序528可以包括管理程序(也称为虚拟机监视器)、一个或多个操作***、一个或多个应用程序、其他程序模块和程序数据。操作***、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序528和/或程序模块530一般执行不同实施例的功能或方法。
尽管存储器总线503在图5中示出为提供CPU 502、存储器子***504和I/O总线接口510之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式中的任一种布置,诸如分级、星形或网络配置中的点对点链路、多个分级总线、并行和冗余路径、或任何其他适当类型的配置。此外,尽管I/O总线接口510和I/O总线508被示出为单个相应的单元,但是在一些实施例中,计算机***501可以包含多个I/O总线接口单元510、多个I/O总线508、或两者。进一步,虽然示出了将I/O总线508与运行到不同I/O设备的不同通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或全部I/O设备可以直接连接到一个或多个***I/O总线。
在一些实施例中,计算机***501可以是多用户大型计算机***、单用户***、或者服务器计算机或具有很少或没有直接用户界面但从其他计算机***(客户端)接收请求的类似设备。进一步,在一些实施例中,计算机***501可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
要注意的是,图5旨在描述示例性计算机***501的代表性主要组件。然而,在一些实施例中,单个组件可以具有比图5中所表示的更大或更小的复杂度,可以存在不同于图5中所示出的那些组件或者除图5中所示出的那些组件之外的组件,并且此类组件的数量、类型和配置可以变化。
如在此更详细地讨论的,预期在此描述的方法的一些实施例的一些或全部操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
本公开可以是任何可能的技术细节集成度的***、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本披露的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
本文参考根据本公开的实施例的方法、装置(***)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本公开的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的***来实现。
已经出于说明的目的呈现了本披露的不同实施例的描述,但并不旨在是详尽的或限于所披露的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
虽然已经根据具体实施例描述了本披露,但预期其变更和修改将对本领域技术人员变得清楚。因此,以下权利要求旨在被解释为覆盖落入本公开的真实精神和范围内的所有这样的改变和修改。

Claims (25)

1.一种用于处理区块链网络中的私有交易的方法,所述方法包括:
生成与交易相关联的请求;
收集与所述请求相关联的锚;
将所述交易转换成两个或更多个散列的集合;以及
向排序服务提交所述交易。
2.根据权利要求1所述的方法,其中所述请求是修改区块链分类账的可处理行动。
3.根据权利要求1所述的方法,还包括:
由所述区块链网络中的两个或更多个分片验证所述交易,其中所述交易由所述两个或更多个分片本地验证。
4.根据权利要求3所述的方法,其中所述两个或更多个分片验证所述交易包括:
由所述两个或更多个分片中的每个分片接收与所述两个或更多个散列相关联的相应的已知原像;以及
由所述两个或更多个分片中的每个分片将所述相应的已知原像与所述两个或更多个散列进行匹配。
5.根据权利要求4所述的方法,还包括:
由所述两个或更多个分片执行所述请求的原子提交。
6.根据权利要求5所述的方法,其中在不与其他两个或更多个分片中的任何一个共享任何相应的已知原像的情况下,所述原子提交被执行。
7.一种用于处理区块链网络中的私有交易的***,所述***包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置为执行操作,所述操作包括:
生成与交易相关联的请求;
收集与所述请求相关联的锚;
将所述交易转换成两个或更多个散列的集合;以及
向排序服务提交所述交易。
8.根据权利要求7所述的***,其中所述请求是修改区块链分类账的可处理行动。
9.根据权利要求7所述的***,其中所述操作还包括:
由所述区块链网络中的两个或更多个分片验证所述交易,其中所述交易由所述两个或更多个分片本地验证。
10.根据权利要求9所述的***,其中所述两个或更多个分片验证所述交易包括:
由所述两个或更多个分片中的每个分片接收与所述两个或更多个散列相关联的相应的已知原像;以及
由所述两个或更多个分片中的每个分片将所述相应的已知原像与所述两个或更多个散列进行匹配。
11.根据权利要求10所述的***,其中所述操作还包括:
由所述两个或更多个分片对所述请求执行原子提交。
12.根据权利要求11所述的***,其中在不与其他两个或更多个分片中的任何一个共享任何相应的已知原像的情况下,所述原子提交被执行。
13.一种用于处理区块链网络中的私有交易的计算机程序产品,所述计算机程序产品包括其中包含有程序指令的计算机可读存储介质,所述程序指令由处理器可执行以使所述处理器执行功能,所述功能包括:
生成与交易相关联的请求;
收集与所述请求相关联的锚;
将所述交易转换成两个或更多个散列的集合;以及
向排序服务提交所述交易。
14.根据权利要求13所述的计算机程序产品,其中所述请求是修改区块链分类账的可处理行动。
15.根据权利要求13所述的计算机程序产品,还包括:
由所述区块链网络中的两个或更多个分片验证所述交易,其中所述交易由所述两个或更多个分片本地验证。
16.根据权利要求15所述的计算机程序产品,其中所述两个或更多个分片验证所述交易包括:
由所述两个或更多个分片中的每个分片接收与所述两个或更多个散列相关联的相应的已知原像;以及
由所述两个或更多个分片中的每个分片将所述相应的已知原像与所述两个或更多个散列进行匹配。
17.根据权利要求16所述的计算机程序产品,还包括:
由所述两个或更多个分片对所述请求执行原子提交。
18.根据权利要求17所述的计算机程序产品,其中在不与其他两个或更多个分片中的任何一个共享任何相应的已知原像的情况下,所述原子提交被执行。
19.一种用于处理区块链网络中的私有交易的方法,所述方法包括:
接收与交易相关联的请求;
标识与第一散列相关联的第一原像对第一分片是已知的;以及
生成与所述交易相关联的第一标识标记。
20.根据权利要求19所述的方法,还包括:
标识与第二散列相关联的第二原像对第二分片是已知的;以及
生成与所述交易相关联的第二标识标记。
21.根据权利要求20所述的方法,其中所述第一标识标记被显示给第一用户和第二用户,并且其中所述第二标识标记被显示给所述第一用户和第三用户。
22.根据权利要求21所述的方法,还包括:
验证所述交易;以及
向所述区块链网络原子地提交所述交易。
23.一种用于处理区块链网络中的私有交易的方法,所述方法包括:
接收与交易相关联的请求;
为第一分片分配第一任务;
标识与第一散列相关联的第一原像对所述第一分片是已知的;以及
执行所述第一任务。
24.根据权利要求23所述的方法,还包括:
为第二分片分配第二任务;
标识与第二散列相关联的第二原像对所述第二分片是已知的;以及
执行所述第二任务。
25.根据权利要求24所述的方法,其中作为所述交易的原子提交的部分,所述第一任务和所述第二任务被执行。
CN202180047807.9A 2020-07-06 2021-06-14 针对经许可的区块链的隐私保护架构 Pending CN115769241A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/920,844 US11853291B2 (en) 2020-07-06 2020-07-06 Privacy preserving architecture for permissioned blockchains
US16/920,844 2020-07-06
PCT/IB2021/055197 WO2022008996A1 (en) 2020-07-06 2021-06-14 Privacy preserving architecture for permissioned blockchains

Publications (1)

Publication Number Publication Date
CN115769241A true CN115769241A (zh) 2023-03-07

Family

ID=79166984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180047807.9A Pending CN115769241A (zh) 2020-07-06 2021-06-14 针对经许可的区块链的隐私保护架构

Country Status (6)

Country Link
US (1) US11853291B2 (zh)
JP (1) JP2023532959A (zh)
CN (1) CN115769241A (zh)
DE (1) DE112021002797T5 (zh)
GB (1) GB2612243A (zh)
WO (1) WO2022008996A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3642774B1 (en) * 2017-06-20 2023-05-10 nChain Licensing AG System and method of multi-round token distribution using a blockchain network
US10887090B2 (en) * 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support
US11853291B2 (en) 2020-07-06 2023-12-26 International Business Machines Corporation Privacy preserving architecture for permissioned blockchains
US11914616B1 (en) 2022-12-16 2024-02-27 Alchemy Insights, Inc. Systems and methods for creating a consistent blockchain including block commitment determinations
US11769143B1 (en) 2022-12-22 2023-09-26 Alchemy Insights, Inc. System and method for high performance providing fresh NFT metadata
US11728976B1 (en) 2022-12-22 2023-08-15 Alchemy Insights, Inc. Systems and methods for efficiently serving blockchain requests using an optimized cache
US11750711B1 (en) 2022-12-22 2023-09-05 Alchemy Insights, Inc. Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
US11816021B1 (en) 2022-12-22 2023-11-14 Alchemy Insights, Inc. System and method for intelligent testing of blockchain applications using a shadow system
US11811955B1 (en) * 2022-12-23 2023-11-07 Alchemy Insights, Inc. Systems and methods for improving reliability in blockchain networks using sharding
US11941053B1 (en) 2023-03-09 2024-03-26 Bank Of America Corporation Secure data interactions performed by an internet of things (IoT) device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408584B (zh) 2014-12-18 2017-11-03 中国农业银行股份有限公司 一种交易关联性的分析方法及***
US10269012B2 (en) * 2015-11-06 2019-04-23 Swfl, Inc. Systems and methods for secure and private communications
AU2017216289A1 (en) * 2016-02-04 2018-09-27 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
US10747744B2 (en) * 2016-10-10 2020-08-18 AlphaPoint Distributed ledger comprising snapshots
US11146535B2 (en) 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US11281805B2 (en) * 2016-12-22 2022-03-22 Itext Group Nv Distributed blockchain-based method for saving the location of a file
CN107103054B (zh) 2017-04-12 2019-03-26 北京航空航天大学 一种私有区块链的智能合约异步执行存储***与实现方法
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
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
WO2019207503A1 (en) 2018-04-27 2019-10-31 nChain Holdings Limited Partitioning a blockchain network
WO2020010159A1 (en) * 2018-07-02 2020-01-09 A7 Core, Inc. Enterprise consumer safety system
WO2020033216A2 (en) * 2018-07-31 2020-02-13 Oded Wertheim Scaling and accelerating decentralized execution of transactions
JP6830530B2 (ja) * 2018-11-07 2021-02-17 アドバンスド ニュー テクノロジーズ カンパニー リミテッド アカウントモデルの下でパブリックおよびプライベートトランザクションをサポートするブロックチェーンシステム
CN110088793B (zh) * 2018-12-19 2023-10-20 创新先进技术有限公司 区块链网络中的数据隔离
US10878415B1 (en) * 2019-05-14 2020-12-29 Captain Capital Management Llc Configurable robots for network based processes
CN112148728A (zh) * 2019-06-28 2020-12-29 伊姆西Ip控股有限责任公司 用于信息处理的方法、设备和计算机程序产品
WO2020098818A2 (en) * 2019-11-29 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Taking snapshots of blockchain data
US11853291B2 (en) 2020-07-06 2023-12-26 International Business Machines Corporation Privacy preserving architecture for permissioned blockchains

Also Published As

Publication number Publication date
DE112021002797T5 (de) 2023-04-06
US20220004539A1 (en) 2022-01-06
GB2612243A (en) 2023-04-26
JP2023532959A (ja) 2023-08-01
WO2022008996A1 (en) 2022-01-13
US11853291B2 (en) 2023-12-26

Similar Documents

Publication Publication Date Title
US11741083B2 (en) Cross-shard private atomic commit
US11853291B2 (en) Privacy preserving architecture for permissioned blockchains
CN113711536A (zh) 从区块链网络中提取数据
US11431503B2 (en) Self-sovereign data access via bot-chain
US11888981B2 (en) Privacy preserving auditable accounts
WO2022007548A1 (en) Blockchain implementation to securely store information off-chain
US20220100733A1 (en) Transaction reordering in blockchain
US11550796B2 (en) Coexistence mediator for facilitating blockchain transactions
JP2023535914A (ja) 機密保護プロトコルを使用するサプライ・チェーン用の持続可能なトークン
US11943360B2 (en) Generative cryptogram for blockchain data management
CN116583833A (zh) 自审计区块链
CN115943606A (zh) 可编辑区块链
US11573952B2 (en) Private shared resource confirmations on blockchain
US20220311595A1 (en) Reducing transaction aborts in execute-order-validate blockchain models
US11640392B2 (en) Blockchain endorsement agreement
CN114579585A (zh) 区块链选择性世界状态数据库
US11683173B2 (en) Consensus algorithm for distributed ledger technology
US11375009B1 (en) Minimizing the impact of malfunctioning peers on blockchain
US20230267220A1 (en) Privacy preserving asset token exchange
US11755562B2 (en) Score based endorsement in a blockchain network
US20230267457A1 (en) Privacy preserving asset transfer between networks
US12015715B2 (en) Trusted aggregation with data privacy based on zero-knowledge-proofs

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