[go: up one dir, main page]

CN115211093B - 数据对象的有效阈值存储 - Google Patents

数据对象的有效阈值存储 Download PDF

Info

Publication number
CN115211093B
CN115211093B CN202080084287.4A CN202080084287A CN115211093B CN 115211093 B CN115211093 B CN 115211093B CN 202080084287 A CN202080084287 A CN 202080084287A CN 115211093 B CN115211093 B CN 115211093B
Authority
CN
China
Prior art keywords
blockchain
data object
slices
hashed
portions
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.)
Active
Application number
CN202080084287.4A
Other languages
English (en)
Other versions
CN115211093A (zh
Inventor
V·博尔特尼科夫
M·法克特
J·雷施
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 CN115211093A publication Critical patent/CN115211093A/zh
Application granted granted Critical
Publication of CN115211093B publication Critical patent/CN115211093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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]
    • 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/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • H04L67/1055Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

示例操作可包括以下一个或多个:将数据对象划分成多个部分;对所述数据对象进行散列化以生成散列化数据对象;以及对所述多个部分进行散列化以生成多个散列化部分;生成多个切片,其中每个切片包括所述散列化数据对象和不同的相应散列化部分;以及分别跨多个区块链对等体分配所述多个切片。

Description

数据对象的有效阈值存储
技术领域
本申请总体上涉及将数据存储在区块链上,并且更具体地,涉及将大数据对象分解为切片并且跨多个区块链对等体分配切片。
背景技术
集中式数据库将数据存储和维护在位置处的单个数据库(例如,数据库服务器)中。该位置通常是中央计算机,例如台式中央处理单元(CPU)、服务器CPU或大型计算机。存储在集中式数据库上的信息典型地可从多个不同点访问。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式数据库上同时工作。集中式数据库由于其单个位置而易于管理、维护和控制,尤其是出于安全目的。在集中式数据库内,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定数据集仅具有一个主要记录。
然而,集中式数据库具有显著的缺点。例如,如果没有容错考虑,集中式数据库具有单点故障。因此,如果发生硬件故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据丢失并且所有用户的工作被中断。此外,集中式数据库高度依赖于网络连接性。结果,连接越慢,每个数据库访问所需的时间量增加。另一个缺点是当集中式数据库由于单个位置而经历高流量时发生瓶颈。此外,集中式数据库提供对数据的有限访问,因为数据库的维护只有数据的一个副本。
组织近来转向区块链作为用于安全地存储数据的装置,这种装置不受中央实体的限制并且可从多个点访问。在区块链网络中,对等体负责集体管理和存储区块链上的数据。在传统的区块链中,每个对等体存储数据对象的副本,从而在不需要中央存储器的情况下而提供冗余性。对于较大的数据文件,对等体可将数据对象的散列值存储在区块链上,同时将实际数据对象存储在离链存储中。然而,此存储过程通过依赖于外部实体(离链存储)来存储数据打破了区块链的安全性。因此,所需要的是克服这些缺点和限制的解决方案。
发明内容
一个示例实施例提供一种系统,系统包括一个或多个处理器,处理器被配置成进行以下中的一项或多项:将数据对象划分成多个部分;对所述数据对象散列化以生成经散列化的数据对象;以及对多个部分散列化以生成多个经散列化的部分;以及生成多个切片,其中每个切片包括经散列化的数据对象和不同的相应的经散列化的部分;以及网络接口,所述网络接口被配置成分别跨多个区块链对等体分发多个切片。
另一示例实施例提供一种方法,方法包括以下中的一项或多项:将数据对象划分成多个部分;对数据对象散列化以生成经散列化的数据对象;以及将多个部分散列化以生成多个经散列化的部分;生成多个切片,其中每个切片包括经散列化的数据对象和不同的相应的经散列化的部分;以及分别跨多个区块链对等体分发多个切片。
又一示例实施例提供一种包括指令的非暂时性计算机可读媒体,所述指令在由处理器读取时,致使所述处理器执行以下操作中的一项或多项:将数据对象划分成多个部分;对所述数据对象进行散列化以产生散列化数据对象;以及对所述多个部分进行散列化以产生多个散列化部分;生成多个切片,其中每个切片包括经散列化的数据对象和不同的相应的经散列化的部分;以及跨多个区块链对等体分别分发多个切片。
附图说明
图1为示出根据示例实施例的用于在切片中存储数据对象的区块链网络的示图。
图2A是示出根据示例实施例的区块链架构配置的示图。
图2B是示出根据示例实施例的区块链事务流程的示图。
图3A是示出根据示例实施例的经许可的区块链网络的示图。
图3B是示出根据示例实施例的另一经许可的区块链网络的示图。
图3C是示出根据示例实施例的未许可区块链网络的示图。
图4A是示出根据示例实施例的将数据对象转换为切片的过程的示图。
图4B是示出根据示例实施例的从切片重构数据对象并验证数据对象的过程的示图。
图5为示出根据示例实施例的将数据对象的切片存储在区块链上的方法的示图。
图6A是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统的示图。
图6B是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的另一示例系统的示图。
图6C是示出根据示例实施例的被配置为利用智能合约的另一示例系统的示图。
图6D是示出根据示例实施例的被配置为利用区块链的又一示例系统的示图。
图7A是示出根据示例实施例的新区块被添加到分布式账本的过程的示图。
图7B是示出根据示例性实施例的新数据区块的内容的示图。
图7C是示出根据示例实施例的数字内容的区块链的示图。
图7D是示出根据示例实施例的可以表示区块链中的区块的结构的区块的示图。
图8A是示出根据示例性实施例的存储机器学习(人工智能)数据的示例性区块链的示图。
图8B是示出根据示例性实施例的示例性量子安全模区块链的示图。
图9是示出了支持一个或多个示例性实施例的示例性系统的示图。
具体实施例
将容易理解的是,如在本文的附图中大体描述和图示的,本发明的部件可以以各种不同的配置布置和设计。因此,如附图中表示的方法、装置、非易失性计算机可读介质和系统中的至少一个的实施例的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施例。
在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例性实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合实施例所描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例性实施例”、“在一些实施例中”、“在其它实施例中”、或其它类似语言不一定都指相同组的实施例,并且在一个或多个实施例中,可以任何合适的方式组合或去除所描述的特征、结构、或特性。还,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何装置可以是不同的装置。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施例的描述中可以使用术语“消息”,但是应用可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例实施例提供方法、系统、组件、非暂态计算机可读媒质、设备和/或网络,用于将大数据对象分解为切片,并且跨区块链网络内的一组区块链对等体存储所述切片。
在一个实施例中,应用利用作为分布式存储系统的分布式数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。分散式数据库包括类似于能够在互不信任方之间维护记录的分布式账本的仅附加不可变数据结构。不可信方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,并且没有单个对等体可以修改数据库记录,而在分布式对等体之间没有达成一致。例如,对等体可执行一致协议以验证区块链存储事务,将存储事务分组成区块,并在区块上建立散列链。为了一致性,该过程根据需要通过排序存储事务形成账本。在不同实施例中,可以使用经许可的和/或未许可的区块链。在公共或无权限的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本地密码并且使用基于不同协议(诸如工作证明(PoW))的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的一组实体之间的安全交互,诸如交换资金、商品、信息等的企业。
本申请可以利用操作任意、可编程逻辑的区块链,其被定制为分布式存储方案并且被称为“智能合约”或“链码”。在一些情况下,可存在被称为系统链码的管理功能和参数的专用链码。应用还可以利用智能合约,智能合约是可信的分布式应用,其利用区块链数据库的防篡改特性和节点之间的基础协议,这被称为背书或背书策略。与本申请相关联的区块链事务在被提交至区块链之前可以被“背书”,而未被背书的事务被忽略。背书策略允许链接代码以对于背书必需的对等节点集合的形式指定用于事务的背书者。当客户端将事务发送给背书策略中指定的对等体时,执行该事务以验证事务。在验证之后,事务进入排序阶段,其中使用一致协议产生被分组为区块的经背书的事务的有序序列。
本申请可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书者(例如,对等体)提交事务调用并且向排序服务(例如,排序节点)广播事务建议的客户端或提交-客户端节点。另一类型的节点是对等节点,其可接收客户端提交的事务、提交事务并维持区块链事务的账本的状态和副本。对等体也可以具有背书人的作用,尽管它不是必需的。排序-服务-节点或排序-器是为所有节点运行通信服务的节点,并且其实现递送保证,诸如在提交事务和修改区块链的世界状态时向系统中的每个对等节点广播,该世界状态是初始区块链事务的另一名称,其通常包括控制和设置信息。
该应用能够利用账本,该账本是区块链的所有状态转换的排序、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,事务)引起。每个参与方(诸如对等节点)可维护账本的副本。事务可以导致一组资产键值对作为一个或多个操作数被提交到账本,诸如创建、更新、删除等。账本包括用于在区块中存储不可变的排序记录的区块链(也称为链)。账本还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为事务日志的链,事务日志被构造为散列化链接的区块,并且每个区块包含N个事务的序列,其中N等于或大于1。区块报头包括区块的事务的散列值以及先前区块的报头的散列值。以这种方式,账本上的所有事务可被排序和加密地链接在一起。因而,不可能篡改账本数据而不破坏散列链接。最近添加的区块链区块的散列值表示在链之前已经出现的每个事务,从而使得可以确保所有对等节点都处于一致且可信的状态。链可存储在对等节点文件系统(即,本地的、附加的存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可变账本的当前状态表示包括在链事务日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链调用执行针对账本的当前状态数据的事务。为了使这些链码交互有效,密钥的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的事务日志中的索引视图,因此可以在任何时间从链中重新生成它。在对等节点启动时并且在接受事务之前,可以自动恢复(或者如果需要的话生成)状态数据库。
只要规定数量的成员不受危害,区块链账本中的条目(例如,经许可的区块链)便是是高度可用的并且针对拒绝和拒绝服务攻击是具有抵抗性的。这提供安全性,而不依赖于存储在该链上的信息的任何集中权限。然而,账本在其可以存储的数据量方面是受限的,因为性能与链的大小相关。此外,存储的总成本基于复制账本的网络成员的数量和所有条目中的数据的总容量的乘积,因为账本被完全复制。此外,添加条目所需的总网络带宽是传输到每个成员的数据量的函数。因此,在区块链条目中存储诸如高分辨率医疗图像、视频、音频、详细技术设计等的大对象是不实际的。
此外,对访问任何区块链对等体(成员)的任何人公开账本条目。由此,如果区块链对等方受到损害,则攻击者可看到所有账本条目的内容。虽然可以将加密信息存储在账本中,但是这增加了密钥管理的复杂性。集中式密钥管理解决方案将是简单的,但随后变成控制和攻击的单个点。使用秘密共享的替代方案将对抗单个攻击点是安全的,并且消除集中式权威机构,但将创建用于密钥管理的外部解决方案的增加的复杂性。
到目前为止,试图处理将大对象存储在区块链中的问题的大多数系统依赖于外链的外部存储器或侧数据库。例如,超账本结构(Hyperledger Fabric)具有为大的对象提供更多存储的侧数据库。此选项的缺点中的一些包括聚合存储要求,其与所有离链对象的大小的总和乘以网络中的成员的数目成比例。还存在聚合的网络带宽成本,其是离链对象的大小乘以成员数量的函数。除了存储的成本之外,还存在对每个成员提供和管理离链存储的额外需要。此外,该选项不提供对成员看到离链对象的内容的能力的控制,因为如同账本上的信息一样,所有信息对于所有网络成员可见。
示例实施例通过使大存储对象能够被存储在区块链上而不需要每个对等体存储大数据对象的整个副本来克服这些现有系统的缺点。而是将数据对象划分为跨节点分发的切片,并存储在各个节点的区块链表上。例如,数据对象可被分为N个切片,其中N个切片中的任何k切片可用于重构数据对象(其中k<N)。在此示例中,群组中的每一对等体可将数据对象的不同切片存储在其账本上。通过这样做,不需要离链存储,因此消除了管理离链存储的需要。此外,对大数据对象的访问可被管理/控制,因为对等体的子集(例如,N个对等体中的k个)必须在数据对象可被恢复之前提供其切片。由此,即使攻击者经由区块链对等成员获得对账本的访问,攻击者也不能够查看/恢复数据对象。相反,为了能够访问数据对象,攻击者必须获得对k个区块链对等成员的账本的访问。
此外,由于对等体仅存储数据对象的相应切片,因此完整数据对象不被暴露给区块链对等体(成员组织),因此提供保护数据对象免于可见性,即使在区块链自身的参与者之间。为了使任何实体(成员或非成员)获得对整个数据对象的访问,它们必须接收规定数量的切片。此外,这种访问将经由确保机密性和隐私性的区块链来跟踪。
示例实施例整合用于将大对象存储在区块链上的有效阈值方案(ETS),其为存储管理连同区块链保证提供ETS的优点。例如,ETS可以包括将输入(数据对象)编码为可配置数量的“N”部分或切片(在本文中称为切片)的算法。在此,需要可配置数量的至少“k”个唯一切片来确定输入,其中(k<=N)。K个切片的总大小约等于输入的大小。如果拥有少于K个切片,那么难以(例如,计算上昂贵或不可行)确定关于输入的内容的任何内容。ETS的一些示例包括但不限于全或无变换-里德所罗门(AONT-RS)。另示例是秘密共享精简(SSMS),SSMS是计算上安全的秘密共享方案。
在本文的示例中,客户端/对等体可以使用ETS算法来从数据对象产生N个切片,其方式为数据对象可以随后从K个切片重构。客户端可将N个切片分发在网络中的不同节点之间,其中每个节点接收到不同切片。区块链中的主要对象可包含对象的散列化和所有切片的散列化。为了提取对象,对等体或客户端将需要从网络中的任何K个节点接收切片。背书策略也依赖于K个对等体。示例实施例提供用于将大对象保持在与区块链相同的节点上而不需要每个节点存储整个对象的副本的唯一存储过程。该系统有效地使用存储器,而不复制大对象,同时还提供对存储切片的位置以及哪个对等体获取哪个数据的控制。此系统的益处为聚合网络带宽独立于网络成员的数目,因为每一成员存储其相应切片而非将整个数据对象存储在离链存储装置中(经由网络)。
在传统数据库中实现此解决方案是不可能的。为了实现此处的解决方案,将需要网络的至少k个成员参与以提供k个不同的存储位置。这在传统数据库(具有一个集中式存储位置)中是不可能的。示例实施例解决了如何以分布式的方式在区块链上安全且成本有效地存储大数据对象的问题。此外,代替将整个对象存储在每个节点处,将不同切片存储在每个节点处。
本文提供的解决方案的一些益处包括允许大型对象存储在经许可的区块链内,而无需共享数据存储(离线)或使用加密密钥,同时仍保留区块链隐私特性。通过存储切片而不是整个数据对象,更高效的存储和带宽使用是可能的。此外,大对象可以在不同组织之间被管理为与其他区块链对象相同的要求。全访问被提供给具有有限带宽和存储使用的所有被允许的对等体。然而,每个对等体不能查看对象。相反,对等体必须协作来重构数据对象。这防止攻击者通过一个对等体获得对对象的访问。
图1示出了根据示例实施例的用于将数据对象10存储在切片10a-10f中的区块链网络100。参照图1,客户端110将数据对象10上传到包括多个区块链对等体121-126的区块链网络100。在这个示例中,客户端110将数据对象10分成多个部分。创建的部件的数量可以基于区块链网络100中的区块链对等体的数量。特别地,存在六个区块链对等体(N=6)。因而,客户端110可将数据对象10分解成六个对应部分。此外,客户端110可产生包括数据对象10的六个对应部分的六个对应切片10a-10f。此外,切片10a-10f可以包括数据对象10的散列化以及相应切片的散列化。切片10a-10f可以分配给区块链对等体121-126。
如果对等体宕机、重启、重新连接等,如果存在具有切片的至少k个活动对等体,那么可以重新创建切片。当对等体在与网络失去通信之后重启或重新连接时,对等体处理其丢失的区块,并且发现其是否丢失数据对象中的任何切片。在缺失切片的情况下,其可从客户端110请求切片。作为另一示例,对等体、客户端110或另实体可以使用新定义的切片取回(retrieve_slice)应用编程接口(API)从其他对等体取回足够的切片(例如,k个切片)。然后,可重构记录,并且可重新生成缺失的切片,并且将该缺失的切片提供给重新开始/重新连接的对等体。
此外,示例实施例修改存储对象10被区块链网络100背书的方式。在传统的经许可的区块链中,(例如,由客户端)选择对等体的子集以在事务被发送至排序节点并被提交至区块链之前初始地对事务进行背书。在这个过程中,每个背书节点验证整个事务。相反,在示例实施例中,每个区块链对等体可以支持其相应的切片,而不是整个存储事务。在图1中,例如,每个区块链对等体121-126可以在接收到其各自切片时支持其各自切片10a-10f。这里,区块链对等体121-126可以存储切片10a-10f,同时还执行相应切片的仿真以用于背书的目的。结果可以提供回客户端110。如果客户端接收到来自N个区块链对等体121-126中的至少k个区块链对等体的成功背书,则数据对象10被成功背书。此外,客户端可将这些签章连同数据对象的散列值以及切片的散列值打包成建议,并且将存储建议传输至可验证包的排序节点,然后将存储建议提供给区块链对等体121-126以存储在区块链上。
因此,背书过程可与存储过程组合,并且还可被分成类似于存储过程的切片。因此,即使一个或多个对等体不能够背书切片(例如,脱离状态、断开连接等),只要k个对等体可以背书它们各自的切片,数据对象也可以被成功地背书。
图2A示出根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可包括某些区块链元件,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描绘)。这些节点参与许多活动,诸如区块链事务添加和确认过程(一致)。区块链节点204-210中的一个或多个可以基于背书策略对事务进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层216中的区块链不可变账本,其副本也可存储在支撑物理基础设施214上。区块链配置可以包括被链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等)的一个或多个应用224,所存储的程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维护其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为事务并且经由附加到分发式账本而被安装在所有区块链节点204-210上。
区块链基础或平台212可包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施,所述基础设施可用于接收和存储新事务并提供对试图访问数据条目的审核者的访问。区块链层216可以暴露接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可用于验证事务(诸如资产交换事务)并保持信息私有。
图2A的区块链架构配置可经由由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,并且可以由节点204-210以智能合约和相关联的链式代码的形式来执行,该链式代码具有经受其执行的条件或其他代码元素。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或受到改变、更新等的其他通知。智能合约本身可用于识别与账本的授权和访问要求和使用相关联的规则。例如,读取数据226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理以创建要被写入到区块链的处理结果,所述处理结果包括写入数据228。物理基础设施214可用于取回本文所述的任何数据或信息。
智能合约可以经由高级应用和编程语言创建,并且然后被写到区块链中的区块。智能合约可以包括利用区块链(例如,区块链对等体的分发式网络)注册、存储和/或复制的可执行代码。事务是智能合约代码的执行,其可以响应于满足与智能合约相关联的条件而执行。智能合约的执行可以触发对数字区块链账本的状态的可信修改。由智能合约执行引起的对区块链账本的修改可以通过一个或多个一致协议遍及区块链对等体的分布式网络地自动复制。
智能合约可以以键值对的格式向区块链写入数据。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将不同逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合约使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就删除。
链接代码可以包括具有附加特征的智能合约的代码解释。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共有过程期间由链确认器一起执行和验证。链码接收散列化并且从区块链中取回与通过使用先前存储的特征提取器创建的数据模板相关联的散列值。如果散列值标识符的散列值和从所存储的标识符模板数据创建的散列值匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据。
图2B示出根据示例实施例的区块链的节点之间的区块链事务流250的示例。参考图2B,事务流可包括事务建议291,该事务建议291包括由客户端节点260发送至背书对等节点281-283的数据对象的切片。根据各种实施例,可仅由相应背书对等节点281-283中的一个来存储不同切片中的每一个切片。背书对等节点281-283还可执行/模拟相应切片并对照切片的散列值验证切片以及验证客户端签名。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。如果被批准,则背书对等节点281-283中的每可将提议响应292连同背书签名一起发送回客户端260。此处,提议响应292可仅针对发送至相应背书对等节点的相应切片,而不是针对整个数据对象。客户端260将至少k个切片的签章(其中N》k)、数据对象的散列值、以及切片的散列值组装到事务有效载荷293中,并且将其广播到排序服务节点284。排序服务节点284然后将排序事务作为区块递送到信道上的所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证事务。例如,对等体可检查背书策略以确保指定对等体的正确分配已对结果签名并对事务有效载荷293验证签名。
再次参考图2B,在290中,客户端节点260对数据对象进行切片,并且在291中,将具有不同切片的请求发送给作为背书者的对等节点281-283。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成事务建议。此外,客户端260可包含用于将数据对象切片成多个N切片的软件,其中N切片中的任何k切片需要重建数据对象。提议是调用链码功能以使得数据可以被读取和/或写入到账本(即,为资产写入新的键值对)的请求。SDK可以充当垫片(shim)以将事务提案封装成适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器)并采用客户端的加密证书来产生事务提案的唯一签名。
作为响应,在292中,背书的对等节点281-283可以验证(a)事务提议良好地形成,(b)事务在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中,客户端260)被适当地授权以在该信道上执行所提议的操作。此外,在292中,背书的对等节点281-283可将它们各自的切片存储在区块链账本上,并且如果成功验证,发送回对于相应切片的背书响应。此处,切片的成功验证和存储的标识以及背书的对等节点281-283的签名作为提议响应292被传递回客户端260的SDK,SDK解析用于应用消费的有效载荷。该过程可通过至少k个背书对等节点来重复,使得足够的背书方对等节点在数据对象的不同切片上达成一致。
作为响应,客户端260的应用检查/验证背书的对等体签名,并且比较建议响应以确定建议响应是否相同。如果链码仅查询账本,则应用将检查查询响应并且通常将不向排序节点服务284提交事务。如果客户端应用计划将事务提交给排序节点服务284以更新账本,则应用确定在提交之前指定的背书策略是否已被满足(即,至少k个对等节点确实必须背书切片)。该架构使得即使应用选择不检查响应或以其他方式转发未个性化事务,背书策略仍将由对等体强制执行并在提交验证阶段得到保持。
在成功检查之后,在步骤293,客户端260将(例如,至少k个不同切片的,等等)背书汇编成事务,并在事务消息内将事务建议和响应广播给排序节点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到该数据的带外连接。
在一些实施例中,本文中的区块链可以是未许可的区块链。与要求允许加入的经许可的区块链相反,任何人都可以加入未经许可的区块链。例如,为了加入未许可区块链,用户可通过提交事务并因此将条目添加到账本来创建个人地址并开始与网络交互。此外,所有方具有在系统上运行节点以及采用挖掘协议来帮助验证事务的选择。
图3C示出了由包括多个节点354的未许可区块链352处理的事务的处理350。发送者356希望经由未许可区块链352向接收者358发送支付或某一其他形式的价值(例如,契约、医疗记录、合约、商品、服务或可被封装在数字记录中的任何其他资产)。在一个实施例中,发送方设备356和接收方设备358中的每一个可具有提供用户界面控制和事务参数的显示的数字钱包(与区块链352相关联)。作为响应,事务贯穿区块链352而被广播至节点354。取决于区块链352的网络参数,节点基于未许可的区块链352创建者建立的规则(其可以是预定义的或动态分配的)来验证360事务。例如,这可以包括验证所涉及的各方的身份等。可以立即验证事务,或者可以将其与其他事务放置在队列中,并且节点354基于网络规则集确定事务是否有效。
在结构362中,将有效事务形成为区块并且用锁(散列值)密封。该过程可以通过挖掘节点354中的节点来执行。挖掘节点可以利用另外的软件,其特别地用于针对未许可区块链352挖掘和创建区块。每个区块可由使用由网络商定的算法创建的散列值(例如,256位数等)来标识。每个区块可包括报头、指向链中的先前区块的报头的散列值的指针或引用、以及一组有效事务。对先前区块的散列值的引用与区块的安全独立链的创建相关联。
在区块可以被添加到区块链之前,区块必须被验证。对未许可区块链352的验证可包括工作证明(PoW),其是从区块的头部导出的谜题的解。虽然在图3C的示例中未示出,但是用于验证区块的另一过程是桩证明。与工作证明不同,其中算法用权益证明来奖励解决数学问题的挖掘者,新区块的创建者以确定性方式被选择,取决于其财富,也被定义为“权益”。然后,由选择的/选择的节点执行类似的证明。
利用挖掘364,节点尝试通过对一个变量进行增量改变直到解满足全网络目标来解决区块。这产生PoW,从而确保正确答案。换言之,潜在的解决方案必须证明在解决该问题时耗尽计算资源。在一些类型的未许可区块链中,可以为矿工奖励用于正确挖掘封锁的价值(例如,硬币等)。
这里,PoW过程在区块的链接旁边使得区块链的修改极其困难,因为攻击者必须修改所有后续区块以便接受一个区块的修改。此外,随着新区块的挖掘,修改区块的难度增加,并且后续区块的数量增加。通过分发366,成功验证的区块被分发通过未许可分组链352,并且所有节点354将该区块添加到作为未许可分组链352的可审计的账本的多数链中。此外,将由发送者356提交的事务中的值存入或以其他方式传送到接收者设备358的数字钱包。
图4A示出根据示例实施例的将数据对象转换为切片的过程400A。这里,过程400A可以由客户端节点等执行。参照图4A,将要存储在区块链上的数据对象被加密以创建加密数据对象410。加密的数据对象410可被分成切片420。除了数据对象之外,客户端还可添加附加数据412以提供对丢失的弹性。这里,附加数据可以创建附加切片420。附加数据412使其在切片之间存在重叠并且在一个或多个切片随后丢失或损坏的情况下存在冗余。在一些实施例中,通过将对象划分成m个相等大小的部分来创建m个切片,并且提供额外的k个切片以用于针对切片的丢失(诸如由于故障或由于网络的恶意成员)的弹性,并且N=m+k。
每一切片420可包含共同内容和唯一内容两者。在图4A的示例中,示出了切片3的内容。在此,共同内容包括数据对象422的散列值,该散列值可以用于随后验证重构的数据对象。唯一内容包括相应切片424的散列值以及加密切片内容426(例如,加密数据对象410的相应部分)。
因此,有效阈值方案(ETS)可以与区块链集成。此处,系统可从数据对象产生N个切片,其中每一切片具有其散列值和用于整个对象的散列值。在背书过程中,区块链对等体可存储切片,在背书过程中,可对照散列值验证切片。这确保只有具有k+c<=n个切片的事务被背书。数据对象和切片可用随机密钥加密,随机密钥可与切片一起经由秘密共享提供。由此,为了重构数据对象,可能需要k个活对等体提取其各自的切片。否则,密钥将不能对加密数据进行解密。
在该示例中,区块链对等体(成员)被唯一地从1到N编号,其中N是作为网络的成员的对等体的数目。当针对账本提出具有大数据对象的新条目时,客户端(提出者)可以将ETS应用于数据对象并产生N个切片,其中可能需要任何k个切片(例如,规定数量的切片等)来重构数据对象。此外,对于每个切片,增强器将生成切片的完整性校验值(ICV)。在图4A的示例中,ICV是数据对象422的散列值和切片424的散列值。还应当理解,ICV可以是任何类型的数据项,其可被测试为与任何数据切片一致,并且在高确定度上确认ICV是否与为其计算ICV的相关数据切片一致。ICV的其他示例包括消息认证码、校验和、散列值(摘要)、数字签名、循环冗余校验等。
根据不同实施例,除了提议者想要包括在切片中的任何信息之外,每个所提议的切片可以包含1)整个数据对象的ICV和2)N个切片中的相应切片的ICV。每个成员将接收与该成员的索引相对应的建议条目(数据部分和散列值)。将条目添加到链中与任何其他区块链一样工作。在背书过程期间,节点将存储其切片并验证区块链事务中的ICV与所接收的切片一致,且接着其将背书此事务。
除了上述用于向链添加条目的改变之外,系统还可要求区块链对等体实现用于从彼此取回数据切片的新API。该API获取对象(或对象的切片)的标识符,并且如果被授权,则返回由该网络成员为该对象存储的对应切片。该系统可以实现这个API和区块链外部的取回。作为另示例,系统可以将事务添加到账本,其要求将整个记录提供给成员,这将创建已经取回记录的所有成员的跟踪机制。通过此扩展,仅在将事务添加到区块链之后,将切片提供到成员。
此外,用于加密数据对象的加密密钥也可分成部分密钥(例如,由客户端),所述部分密钥随后分发在区块链对等体中。在这种情况下,每个对等体可以只访问部分密钥而不访问整个加密密钥。然后,在重构过程期间,对等体可以提供其加密密钥的部分。如果恢复了加密密钥的足够部分,则可以解密数据对象。
图4B示出了根据示例实施例的从切片重构数据对象并验证数据对象的过程400B。参照图4B,四个切片是可用的。换句话说,存储切片2和5的区块链对等体不可用,使得仅切片1、3、4和6可用。在此示例中,六个中的四个满足所需的最小值(例如,k=4)。因此,区块链对等体430可以使用新定义的取回切片API从保持这种切片的相应对等体取回四个切片。此外,对等体430可以从四个切片(切片1、3、4和6)重建数据对象以生成重建的数据对象432。
对等端430还可从保持切片1、3、4和6的区块链对等端中的任一者取回数据对象的先前存储的散列值。在该示例中,对等体430可以使用共享散列函数生成重构数据对象432的对应散列值以生成经散列化的数据对象434。此外,对等体430可以验证经散列化的数据对象434的值与取回到的数据对象的散列值相同。如果相同,对等体430知道重构的数据对象432是有效的。如果没有,则当其他切片/对等体存在时,对等体可以忽略和尝试取回数据对象。
图5示出了根据示例性实施例的将数据对象的切片存储在区块链上的方法500。参照图5,在510中,所述方法可包括将数据对象划分为多个部分。这些部分可以是原始数据对象的较小对象(例如,子对象)。数据对象的示例包括音频文件、文档、视频、图像等。在一些实施例中,较小部分可以各自具有相同尺寸或不同尺寸。在一些实施例中,划分可包括将数据对象分解为对应于N个区块链对等体的N个部分,其中可利用N个部分中的任意k个来执行数据对象的重构,并且k小于N。在一些实施例中,划分可包括添加数据的k个附加部分以用于恢复丢失以生成N个部分。例如,可基于数据对象产生m个部分,并且可以针对损失抗性来添加k个部分。在此示例中,m+k可等于N。
在520中,所述方法可包括将所述数据对象散列化以生成经散列化的数据对象和对所述多个部分散列化以生成多个经散列化的部分。此处,经散列化的数据对象可表示可用于随后验证经重构数据对象的验证值。在530中,所述方法可包含产生多个切片,其中每一切片包含经散列化的数据对象和不同的相应经散列化的部分。此外,在540中,所述方法可包括跨多个区块链对等体来分布分发多个切片。
在一些实施例中,所述分发可以包括:分别向所述N个区块链对等体分配1至N之间的索引;以及基于所分配的索引向所述N个对等体分配N个切片。在一些实施例中,所述方法可以包括利用在所述多个区块链对等体之间共享的加密密钥对所述多个切片进行加密。在这一示例中,与数据对象一样,加密密钥可被分解成部分密钥(密钥部分)并被分发以使得每个对等体能够访问部分密钥但不能访问密钥的全部。在一些实施例中,响应于对数据对象的请求,该方法还包括从区块链对等体的子集中取回切片子集,以及从包含在切片子集中的散列化部分重构数据对象。
在一些实施例中,该方法还可以包括基于存储在取回到的切片中的一个切片中的散列化数据对象验证重构数据对象。此处,可从所取回切片中的任一者提取经散列化的数据对象。验证可包括例如生成重构数据对象的散列值,并将其与经散列化的数据对象进行比较以确保它们是相同的。如果不相同,则重构的数据对象有故障。在一些实施例中,经由在区块链对等体的子集上运行的切片取回应用编程接口(API)执行切片子集的取回。
图6A示出了包括被配置为执行根据示例实施例的各种操作的物理基础设施610的示例性系统600。参考图6A,物理基础设施610包括模区块612和模区块614。模区块614包括区块链620和智能合约630(其可以驻留在区块链620上),智能合约630可以执行包括在任何示例实施例中的任何操作步骤608(在模区块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模区块612和模区块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模区块612和模区块614可以是相同的模区块。
图6B示出了根据示例实施例的被配置为执行各种操作的另一个示例系统640。参考图6B,系统640包括模区块612和模区块614。模区块614包括区块链620和智能合约630(其可以驻留在区块链620上),智能合约630可以执行包括在任何示例实施例中的任何操作步骤608(在模区块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模区块612和模区块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模区块612和模区块614可以是相同的模区块。
图6C示出根据示例实施例的被配置为在订约方之间利用智能合约配置的示例系统和被配置为在区块链上强制执行智能合约条款的调解服务器。参考图6C,配置650可以表示由明确识别一个或多个用户设备652和/或656的智能合约630驱动的通信会话、资产传输会话或过程或历程。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要作为智能合约事务的各方的实体652和656中的一个或多个的数字签名。智能合约执行的结果可以作为区块链事务被写到区块链620。智能合约630驻留在可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上的区块链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和分发式账本722的当前状态可以存储在状态数据库724中。此处,当前状态数据表示曾经包括在区块链722的链事务日志中的所有键的最新值。链调用对照状态数据库724中的当前状态执行事务。为了使这些链码交互极其有效,所有密钥的最新值被存储在状态数据库724中。状态数据库724可以包括进入区块链722的事务日志的索引视图,因此可以在任何时间从链中重新生成它。在事务被接受之前,在对等体启动时,状态数据库724可自动被恢复(或者如果需要的话被生成)。
背书节点从客户端接收事务,并基于模拟结果背书事务。背书节点持有模拟事务建议的智能合约。当背书节点背书事务时,背书节点创建事务背书,该事务背书是指示模拟事务的背书的从背书节点到客户端应用的签名响应。背书事务的方法取决于可以在链码中指定的背书策略。背书策略的示例是“多数背书同事必须背书事务”。不同的信道可具有不同的背书策略。客户端应用程序将经过验证的事务转发至排序服务710。
排序服务710接受背书的事务,将它们排序到区块中,并且向提交对等体递送所述区块。例如,当已经达到事务阈值、定时器超时或另一条件时,排序服务710可以发起新区块。在图7A的示例中,区块链节点712是提交对等体,其已接收到新数据新数据区块730以供存储在区块链720上。区块链中的第区块可以称为生成区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序器群集构成。排序服务710不处理事务、智能合约或维护共享账本。相反,排序服务710可以接受背书的业务并且指定那些业务被提交到分发式账本720的顺序。可以设计区块链网络的架构,使得‘排序’(例如,Solo、Kafka、BFT等)的具体实现变成可插拔组件。
事务以一致的顺序被写到分发式账本720。事务的顺序被建立以确保对状态数据库724的更新在它们被提交至网络时是有效的。与其中通过解决密码谜题或挖掘发生排序的密码货币区块链系统(例如,Bitcont等)不同,在该示例中,分发式账本720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据区块730时,新数据区块730可以被广播到提交对等体(例如,区块链节点711、712和713)。作为响应,每个提交对等体通过检查以确保读取集和写入集仍匹配状态数据库724中的当前世界状态来验证新数据区块730内的事务。具体地,提交对等体可以确定当背书者模拟事务时存在的读数据是否与状态数据库724中的当前世界状态相同。当提交对等体验证事务时,事务被写到分发式账本720上的区块链722,并且状态数据库724用来自读-写集合的写数据来更新。如果事务失败,即,如果提交对等体发现读-写集合与状态数据库724中的当前世界状态不匹配,则排序到区块中的事务将仍然被包括在该区块中,但它将被标记为无效,并且状态数据库724将不被更新。
参考图7B,被存储在分发式账本720的区块链722上的新数据区块730(也被称为数据区块)可以包括多个数据段,诸如区块报头740、区块数据750和区块元数据760。应当理解,不同描绘的区块和其内容,诸如新数据区块730和其内容。图7B中所示的仅仅是示例,并不意味着限制示例实施例的范围。新数据区块730可以在区块数据750内存储N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息。新数据区块730还可以包括到区块报头740内的先前区块(例如,图7A中的区块链722上)的链路。特定来说,区块标头740可包含先前区块的标头的散列化。区块头740还可包括唯一区块号、新数据区块730的区块数据750的散列化等。新数据区块730的区块号可以是唯一的并且以不同顺序分配,诸如从零开始的递增/顺序顺序。
区块数据750可以存储被记录在新数据区块730内的每个事务的事务信息。例如,事务数据可以包括事务的类型、版本、时间戳、分发式账本720的信道ID、事务ID中的一个或多个,时期、有效载荷可见性、链码路径(部署TX(事务))、链码名称、链码版本、输入(链码和功能)、客户端(创建者)标识(诸如公钥和证书),客户端的签名、背书人的身份、背书人签名、建议散列化、链码事件、响应状态、命名空间、读取集合(由事务读取的密钥和版本的列表等),写入集合(键和值的列表等)、开始键、结束键、键列表、Merkel树查询概要等。可针对N个事务中的每个事务存储事务数据。
根据不同实施例,区块数据750还可存储包含来自数据对象的多个切片中的数据切片的切片数据752。切片数据752可包括原始数据对象的一部分、数据对象的散列值、切片的散列值等。切片数据752包括本文中描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因而,切片数据752可以存储在区块链722的分布式账本720上的区块的不可变日志中。将切片数据752存储在区块链上的一些益处反映在本文公开和描绘的不同实施例中。虽然在图7B中,在区块数据750中描绘了切片数据752,但是切片数据752也可以位于区块报头740或区块元数据760中。
区块元数据760可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于区块创建的签名、对最后配置区块的引用、标识区块内的有效和无效事务的事务过滤器、对区块进行排序的排序服务的存留的最后偏移等。签名、最后配置区块、和排序器元数据可以由排序服务710添加。同时,区块(诸如区块链节点712)的提交者可以基于背书策略、读/写集合的验证等来添加有效/无效信息。事务过滤器可包括大小等于区块数据750中的事务的数量的字节阵列和标识事务是否有效/无效的验证码。在一些实施例中,虽然在图7B中未示出,但是区块元数据760可以在其内存储推荐的智能合约的元数据。
图7C示出了根据本文描述的实施例的用于数字内容的区块链770的实施例。数字内容可包括一个或多个文件和相关联的信息。所述文件可包含媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面充当保护措施来保护数字内容的完整性、有效性和真实性,从而使其适合用于法律程序中,其中可接受性规则适用,或在其中考虑证据或其中数字信息的呈现和使用以其他方式感兴趣的其他设置中。在这种情况下,数字内容可以被称为数字证据。
区块链可以各种方式形成。在一个实施例中,数字内容可以包括在区块链本身中并且从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储参考信息的散列值(例如,报头、值等)。然后可以一起加密散列值和相关联的数字内容。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的哈希值可以用作引用先前区块的基础。这可以说明如下:
区块1 区块2 区块N
散列值1 散列值2 散列值N
数字内容1 数字内容2 数字内容N
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可在没有任何数字内容的情况下存储每个区块的内容的经加密的散列化。数字内容可以被存储在与原始文件的哈希值相关联的另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域或者甚至是单独的关系数据库。通过获得或查询感兴趣区块的哈希值,然后在存储区域中查找与该实际数字内容对应存储的值,可以引用或访问每个区块的数字内容。这个操作可以被执行,例如,数据库网守。这可以说明如下:
区块链 存储区
区块1散列值 区块1散列值… 内容
. .
. .
. .
区块N散列值 区块N散列值… 内容
在图7C的示例性实施例中,区块链770包括以有序序列加密链接的多个区块7781、7782、…、778N,其中N≥1。用于链接区块7781、7782、…、778N的加密可以是多个键控或非键控散列值函数中的任何函数。在一个实施例中,区块7781、7782、…、778N经受散列值函数,该散列化函数从基于区块中的信息的输入产生n位字母数字输出(其中n是256或另一个数)。这样的散列化函数的示例包括但不限于SHA类型(SHA代表安全散列化算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于现时的算法和防冲突的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)原始文件的HA-2计算的散列值
2)发端设备标识
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地址或家庭地址。私有密钥保密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可能已经发送该消息。
产生密钥对可类似于在区块链上创建账户,但不必实际上在任何地方注册。此外,在区块链上执行的每个事务由发送方使用其私钥进行数字签名。此签名确保仅账户的所有者能够跟踪和处理(如果在由智能合约确定的许可的范围内)区块链的文件。
图8A和图8B示出了可以合并和使用在本文中的区块链的使用情况的另外的示例。具体地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量历史数据(或训练数据)来构建预测模型以便对新数据进行准确预测。机器学习软件(例如,神经网络等)经常可以筛选数百万个记录以挖掘非直观模式。
在图8A的示例中,主机平台820构建并部署用于资产830的预测监视的机器学习模型。这里,主机平台820可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、油气设备、船、船、交通工具等。作为另一示例,资产830可以是非有形资产,诸如股票、货币、数字硬币、保险等。
可以使用区块链810来显著地改进机器学习模型的训练过程802和基于经训练的机器学习模型的预测过程804两者。例如,在802中,不是要求数据科学家/工程师或其他用户收集数据,而是历史数据可由资产830本身(或通过中间物,未示出)存储在区块链810上。这可显著地减少主机平台820在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可以直接地并且可靠地从其起始位置直接传输到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到使用该数据来建立机器学习模型的个体。这允许在资产830之间共享数据。
可以基于一致机制将所收集的数据存储在区块链810中。一致机制拉入(允许节点)以确保正在记录的数据被验证并准确。所记录的数据被加时间戳、密码签名和不变。因此,它是可审计的、透明的、并且安全的。在某些情况下(即,供应链、医疗保健、物流等),添加直接写入该区块链的IoT设备可增加被记录的数据的频率和准确度。
此外,对收集的数据的机器学习模型的训练可采取由主机平台820进行的细化和测试的轮次。每个回合可以基于附加数据或先前未被考虑来帮助扩展机器学习模型的知识的数据。在802中,不同的训练和测试步骤(以及与其相关联的数据)可以由主机平台820存储在区块链810上。机器学习模型的每个细化(例如,变量、权重等的变化)可以存储在区块链810上。这提供了如何训练模型以及使用什么数据来训练模型的可验证证明。此外,当主机平台820已经实现最终训练的模型时,所得到的模型可以被存储在区块链810上。
在已经训练了模型之后,可以将其部署到现场环境,其中其可以基于最终训练的机器学习模型的执行做出预测/决定。例如,在804中,机器学习模型可以用于诸如飞机、风力涡轮机、保健机器等资产的基于条件的维护(CBM)。在该示例中,从资产830反馈的数据可以被输入到机器学习模型并且用于进行事件预测,诸如故障事件、错误代码等。通过在主机平台820处执行机器学习模型而做出的判定可以存储在区块链810上以提供可审核/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产830的一部分的未来崩溃/失败,并且创建替换该部分的警报或通知。此决策后面的数据可由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于区块链810发生。
区块链的新事务可被一起聚集成新区块并被添加到现有散列化值。然后将其加密以创建新区块的新散列化。当事务被加密时,其被添加到下一事务列表,等等。结果是各自包含所有先前区块的哈希值的区块链。存储这些区块的计算机定期比较它们的哈希值以确保它们全部一致。任何不同意的计算机丢弃引起该问题的记录。这种方法对于确保该阻挡链的抗篡改性是良好的,但它不是完美的。
游戏该系统的一种方式是不诚实的用户以他们的偏好改变事务列表,但是以保持散列化不变的方式。这可以通过强力完成,换言之,通过改变记录、加密结果以及查看散列化值是否相同。并且如果不是,则反复地尝试,直到它找到匹配的散列化为止。区块链的安全性基于这样的信念:普通计算机仅能够在完全不切实际的时间尺度(诸如宇宙的年龄)上执行这种暴力攻击。相比之下,量子计算机要快得多(快1000s倍)并且因此造成更大的威胁。
图8B示出了实现量子密钥分配(QKD)以防止量子计算攻击的量子安全模区块链852的示例850。在该示例中,区块链用户可以使用QKD来验证彼此的身份。这利用诸如光子的量子粒子发送信息,在不破坏光子的情况下窃听器无法复制该信息。这样,发送者和接收者通过该区块链可以确定彼此的身份。
在图8B的示例中,存在四个用户854、856、858和860。每对用户均可在它们之间共享密钥862(即,QKD)。由于在该示例中存在四个节点,因此存在六对节点,因此使用六个不同的秘密密钥862,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用量子粒子(例如光子)发送信息来创建QKD,该量子粒子不能被窃听者复制而不破坏它们。这样,一对用户可以确定彼此的身份。
区块链852的操作基于以下两个过程:(i)事务的创建,以及(ii)聚集新事务的区块的构造。可以类似于传统的区块链网络来创建新事务。每个事务可以包含关于发送者、接收者、创建时间、待转移的金额(或值)、证明发送者拥有用于操作的资金的参考事务的列表等的信息。该事务记录然后被发送到所有其他节点,在那里其被输入到未确认事务池中。这里,两方(即,854-860中的一对用户)通过提供其共享密钥862(QKD)来认证事务。该量子签名可附接至每个事务,使得其非常难以篡改。每个节点相对于区块链852的本地副本检查它们的条目以验证每个事务具有足够的资金。然而,事务尚未确认。
可以使用广播协议以分散方式创建区块,而不是对区块执行传统的挖掘过程。在预定时间段(例如,秒、分钟、小时等),网络可将广播协议应用于任何未确认的事务,从而实现关于事务的正确版本的拜占庭协议(共识)。例如,每个节点可以拥有私有值(该特定节点的事务数据)。在第一轮中,节点将它们的私有值传送给彼此。在随后的轮次中,节点传送它们在上一轮次从其他节点接收的信息。这里,诚实节点能够在新区块内创建完整的一组事务。这个新的嵌段可以被添加到区块链852中。在一个实施例中,本文描述和/或描绘的特征和/或动作可在阻挡链852上或相对于阻挡链852发生。
图9示出了支持本文中描述和/或描绘的一个或多个示例性实施例的示例性系统900。系统900包括计算机系统/服务器902,其可与许多其他通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器902一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括以上系统或设备中的任一个的分发式云计算环境等。
计算机系统/服务器902可以在由计算机系统执行的诸如程序模区块之类的计算机系统可执行指令的一般上下文中描述。一般而言,程序模区块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在分发式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分发式云计算环境中,程序模区块可以位于包括存储器存储设备的本地和远程计算机系统存储媒质中。
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906、以及将包括系统存储器906的不同系统组件耦合至处理器904的总线。
总线表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围组件互连(PCI)总线。
计算机系统/服务器902通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器902访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器906实现其他附图的流程图。系统存储器906可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机系统/服务器902还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储媒质。仅通过示例的方式,存储系统914可以被提供用于从不可移除的非易失性磁性介质(未示出,并且通常被称为“硬盘驱动器”)进行读取和写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线。如以下将还描绘和描述的,存储器906可以包括具有被配置成用于执行该应用的不同实施例的功能的一组(例如,至少一个)程序模区块的至少一个程序产品。
具有一组(至少一个)程序模区块918的程序/实用程序916,以及操作系统、一个或多个应用程序、其他程序模区块和程序数据,可以通过示例而非限制的方式存储在存储器906中。操作系统、一个或多个应用程序、其他程序模区块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模区块918通常执行如本文所述的应用的不同实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的方面可以体现为系统、方法或计算机程序产品。因此,本申请的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例的形式,在本文中可以统称为“电路”、“模区块”或“系统”。此外,本申请的方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
计算机系统/服务器902还可与一个或一个以上外部装置920(例如,键盘、指向装置、显示器922等)通信;和/或使计算机系统/服务器902能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可经由I/O接口924发生。此外,计算机系统/服务器902可以经由网络适配器926与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的一个或多个网络通信。如所描绘的,网络适配器926经由总线与计算机系统/服务器902的其他部件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器902结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。
虽然系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例已经在附图中示出并且在前面的详细描述中描述,但是将理解的是,本申请不限于所公开的实施例,而是能够具有由以下权利要求阐述和定义的许多重排、修改和替换。例如,不同附图的系统的能力可由本文描述的或分发式架构中的一个或多个模区块或组件来执行,并且可包括发射器、接收器或两者对。例如,由单独模区块执行的功能的全部或一部分可由这些模区块中的一者或一者以上执行。还,本文描述的功能可以在不同时间和关于模区块或组件内部或外部的不同事件来执行。此外,在各个模区块之间发送的信息可以经由数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多个协议中的至少一个在模区块之间发送。而且,由任何模区块发送或接收的消息可直接和/或经由一个或多个其他模区块发送或接收。
本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的局部和分发式形式来实现。
应注意,本说明书中所描述的系统特征中的一些已经被呈现为模区块,以便更具体地强调其实现独立性。例如,模区块可以被实现为硬件电路,所述硬件电路包括定制超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管之类的现成半导体、或其他分立组件。模区块也可以在可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现。
模区块也可以至少部分地在软件中实现,用于由不同类型的处理器执行。所标识的可执行代码单元可以例如包括可以例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑区块。然而,所识别的模区块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地结合在一起时,所述不同指令包括模区块并且实现模区块的所述目的。还,模区块可存储在计算机可读媒体上,所述计算机可读媒体可为(例如)硬盘驱动器、快闪装置、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类媒体。
实际上,可执行代码的模区块可以是单个指令或许多指令,并且甚至可以分发在几个不同的代码段上、在不同的程序之间、以及跨几个存储器设备。类似地,操作数据可以在本文中在模区块内被识别和示出,并且可以以任何合适的形式体现和组织在任何合适类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分发在不同位置上,包括在不同的存储设备上,并且可以至少部分地仅仅作为电子信号存在于系统或网络上。
将容易理解的是,如在此的附图中总体上描述和展示的,本申请的这些部件可以按多种多样的不同构型来安排和设计。因此,实施例的详细描述不旨在限制所要求的应用的范围,而仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置的硬件元件来实践以上内容。因此,虽然已经基于这些优选实施例描述了本申请,但是对于本领域技术人员而言显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解的是,所描述的实施例仅是说明性的,并且当考虑对其的全范围的等效物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围将仅由所附权利要求书限定。

Claims (16)

1.一种装置,包括:
处理器,被配置为将数据对象划分成多个部分,
将所述数据对象散列化以生成经散列化的数据对象,并且将所述多个部分散列化以生成多个经散列化的部分,
生成多个切片,其中每个切片包括所述经散列化的数据对象的副本和来自所述多个经散列化的部分的不同的相应的经散列化的部分;以及
网络接口,被配置为分别将具有所述多个切片的多个区块链事务分发给多个区块链对等体,其中每个区块链对等体接收具有不同切片的区块链事务;
其中所述处理器还被配置为响应于针对所述数据对象的请求,从所述区块链对等体的子集中取回切片的子集,从被包括在所述切片的子集中的经散列化的部分来生成重构的数据对象的对应散列值,以获得经散列化的重构的数据对象,以及基于被存储在所取回的所述切片中的一个切片中的经散列化的所述数据对象的副本以及经散列化的重构的数据对象来验证所重构的所述数据对象,并且响应于所重构的所述数据对象失效,在存在所述多个区块链对等体中的其他区块链对等体的情况下,从所述其他区块链对等体取回切片,以用于重构所述数据对象。
2.根据权利要求1所述的装置,其中所述处理器将所述数据对象划分成对应于N个区块链对等体的N个部分,其中所述N个部分中的任何k个部分能够重构所述数据对象,并且k小于N。
3.根据权利要求2所述的装置,其中所述处理器还被配置为:将1和N之间的索引分别分配给所述N个区块链对等体,并且控制所述网络接口以基于所分配的所述索引将N个切片分发给所述N个区块链对等体。
4.根据权利要求2所述的装置,其中所述处理器被配置为将所述数据对象划分成m个大小相等的部分,并且针对损失抗性而添加数据的k个附加部分以生成所述N个部分。
5.根据权利要求1所述的装置,其中所述处理器还被配置为利用加密密钥对所述多个切片进行加密,其中所述区块链对等体中的每个区块链对等体仅保持所述加密密钥的不完全的一部分,以使得没有单个区块链对等体完整地存储所述加密密钥。
6.根据权利要求1所述的装置,其中所述处理器被配置为经由在所述区块链对等体的子集上运行的切片取回应用编程接口API来取回所述切片的子集。
7.一种方法,包括:
将数据对象划分成多个部分;
将所述数据对象散列化以生成经散列化的数据对象,并且将所述多个部分散列化以生成多个经散列化的部分;
生成多个切片,其中每个切片包括所述经散列化的数据对象的副本和来自所述多个经散列化的部分的不同的相应的经散列化的部分;以及
分别将具有所述多个切片的多个区块链事务分发给多个区块链对等体,其中每个区块链对等体接收具有不同切片的区块链事务,
其中所述方法还包括:
响应于针对所述数据对象的请求,从所述区块链对等体的子集中取回切片的子集;
从被包括在所述切片的子集中的经散列化的部分来生成重构的数据对象的对应散列值,以获得经散列化的重构的数据对象;以及
基于被存储在所取回的所述切片中的一个切片中的经散列化的所述数据对象的副本以及经散列化的重构的数据对象来验证所重构的所述数据对象;以及
响应于所重构的所述数据对象失效,在存在所述多个区块链对等体中的其他区块链对等体的情况下,从所述其他区块链对等体取回切片,以用于重构所述数据对象。
8.根据权利要求7所述的方法,其中所述划分包括将所述数据对象拆分成对应于N个区块链对等体的N个部分,其中所述N个部分中的任何k个部分能够重构所述数据对象,并且k小于N。
9.根据权利要求8所述的方法,其中所述分发包括将1和N之间的索引分别分配给所述N个区块链对等体,并且基于所分配的所述索引将N个切片分发给所述N个区块链对等体。
10.根据权利要求8所述的方法,其中所述划分包括将所述数据对象划分成m个大小相等的部分,并且针对损失抗性而添加数据的k个附加部分以生成所述N个部分。
11.根据权利要求7所述的方法,还包括利用加密密钥对所述多个切片进行加密,其中所述区块链对等体中的每个区块链对等体仅保持所述加密密钥的不完全的一部分,以使得没有单个区块链对等体完整地存储所述加密密钥。
12.根据权利要求7所述的方法,其中所述切片的子集的所述取回经由在所述区块链对等体的子集上运行的切片取回应用编程接口API而被执行。
13.一种非暂态计算机可读介质,包括指令,所述指令在由处理器读取时,使所述处理器执行方法,所述方法包括:
将数据对象划分成多个部分;
将所述数据对象散列化以生成经散列化的数据对象,并且将所述多个部分散列化以生成多个经散列化的部分;
生成多个切片,其中每个切片包括经散列化的所述数据对象的副本和来自所述多个经散列化的部分的不同的相应的经散列化的部分;以及
分别将具有所述多个切片的多个区块链事务分发给多个区块链对等体,其中每个区块链对等体接收具有不同切片的区块链事务,
其中所述方法还包括:
响应于针对所述数据对象的请求,从所述区块链对等体的子集中取回切片的子集;
从被包括在所述切片的子集中的经散列化的部分来生成重构的数据对象的对应散列值,以获得经散列化的重构的数据对象;以及
基于被存储在所取回的所述切片中的一个切片中的经散列化的所述数据对象的副本以及经散列化的重构的数据对象来验证所重构的所述数据对象;以及
响应于所重构的所述数据对象失效,在存在所述多个区块链对等体中的其他区块链对等体的情况下,从所述其他区块链对等体取回切片,以用于重构所述数据对象。
14.根据权利要求13所述的非暂态计算机可读介质,其中所述划分包括将所述数据对象拆分成对应于N个区块链对等体的N个部分,其中所述N个部分中的任何k个部分能够重构所述数据对象,并且k小于N。
15.根据权利要求14所述的非暂态计算机可读介质,其中所述分发包括将1和N之间的索引分别分配给所述N个区块链对等体,并且基于所分配的所述索引将N个切片分发给所述N个对等体。
16.根据权利要求13所述的非暂态计算机可读介质,其中所述方法还包括利用加密密钥对所述多个切片进行加密,其中所述区块链对等体中的每个区块链对等体仅保持所述加密密钥的不完全的一部分,以使得没有单个区块链对等体完整地存储所述加密密钥。
CN202080084287.4A 2019-12-05 2020-11-16 数据对象的有效阈值存储 Active CN115211093B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/705,207 2019-12-05
US16/705,207 US11368285B2 (en) 2019-12-05 2019-12-05 Efficient threshold storage of data object
PCT/IB2020/060764 WO2021111220A1 (en) 2019-12-05 2020-11-16 Efficient threshold storage of data object

Publications (2)

Publication Number Publication Date
CN115211093A CN115211093A (zh) 2022-10-18
CN115211093B true CN115211093B (zh) 2025-01-24

Family

ID=76210481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080084287.4A Active CN115211093B (zh) 2019-12-05 2020-11-16 数据对象的有效阈值存储

Country Status (6)

Country Link
US (1) US11368285B2 (zh)
JP (1) JP7592089B2 (zh)
CN (1) CN115211093B (zh)
DE (1) DE112020005075B4 (zh)
GB (1) GB2605911B (zh)
WO (1) WO2021111220A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018100895A1 (de) * 2018-01-16 2019-07-18 Zoe Life Technologies Holding AG Währungseinheiten für Wissen
US11563679B1 (en) 2019-12-12 2023-01-24 Architecture Technology Corporation Distributed ledger adjustment in response to disconnected peer
US11343075B2 (en) 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US11372832B1 (en) * 2020-06-05 2022-06-28 Amazon Technologies, Inc. Efficient hashing of data objects
US20220006641A1 (en) * 2020-07-03 2022-01-06 Inveniam Capital Partners, Inc. Distribution of Blockchain Validation
JP7526604B2 (ja) * 2020-07-10 2024-08-01 富士通株式会社 生成プログラム、生成方法、および生成装置
CN111934990B (zh) * 2020-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 消息传输方法及装置
US11477279B1 (en) * 2021-06-18 2022-10-18 Compellio S.A. Digital assets exchange coordination
US12160532B2 (en) 2021-12-06 2024-12-03 Blocky, Inc. System and method for creating and maintaining immutability, agreement and availability of data
US20240022442A1 (en) * 2022-07-26 2024-01-18 Trustedpedia, Inc. Using x.509 and blockchain to provide a technology platform through which users may securely post digital information, into a system and to comment on, supplement, digitally associate their information with previously posted information using t-tags and to support and organize posted information with a community of users to suggest or establish trustworthy and/or agreed upon realities for multiple information categories and topics
CN116112484A (zh) * 2023-03-07 2023-05-12 芜湖雄狮汽车科技有限公司 文件分片上传方法、装置、车辆及存储介质
US11991247B1 (en) * 2023-03-09 2024-05-21 Ricoh Company, Ltd. Automation of granular object storage service cost and/or usage determination
KR20240174548A (ko) * 2023-06-09 2024-12-17 블록체인랩스 주식회사 블록체인 did 기반의 멀티 클라우드 서비스를 제공하는 장치 및 그 운영 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
WO2019072298A2 (en) * 2018-12-19 2019-04-18 Alibaba Group Holding Limited STORING BLOCK CHAIN ON THE BASIS OF A SHARED SECRET
CN110297831A (zh) * 2019-07-01 2019-10-01 电子科技大学 一种基于门限秘密共享的区块链分片存储方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10757187B2 (en) 2009-10-29 2020-08-25 Pure Storage, Inc. Streaming all-or-nothing encoding with random offset support
US8782441B1 (en) * 2012-03-16 2014-07-15 Google Inc. Methods and systems for storage of large data objects
US9547774B2 (en) * 2012-07-18 2017-01-17 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9521197B2 (en) 2012-12-05 2016-12-13 International Business Machines Corporation Utilizing data object storage tracking in a dispersed storage network
US20180351830A1 (en) * 2013-02-20 2018-12-06 The Marlin Company Storage of media content of an electronic media distribution system in a secure distributed database
US10318382B2 (en) 2014-01-31 2019-06-11 International Business Machines Corporation Determining missing encoded data slices
US10374807B2 (en) * 2014-04-04 2019-08-06 Hewlett Packard Enterprise Development Lp Storing and retrieving ciphertext in data storage
US10193696B2 (en) 2015-06-02 2019-01-29 ALTR Solutions, Inc. Using a tree structure to segment and distribute records across one or more decentralized, acylic graphs of cryptographic hash pointers
US10721058B2 (en) * 2015-08-04 2020-07-21 Charlie Housholder Ultra-secure blockchain enabled analytics
US10114969B1 (en) 2015-08-04 2018-10-30 Jordan White Chaney Ultra-secure blockchain-based electronic information transfer system
WO2017026987A1 (en) * 2015-08-07 2017-02-16 Hewlett Packard Enterprise Development Lp Encrypted data chunks
US10785033B2 (en) 2015-09-04 2020-09-22 Nec Corporation Method for storing an object on a plurality of storage nodes
US20170192688A1 (en) 2015-12-30 2017-07-06 International Business Machines Corporation Lazy deletion of vaults in packed slice storage (pss) and zone slice storage (zss)
US10334045B2 (en) 2016-06-06 2019-06-25 International Business Machines Corporation Indicating multiple encoding schemes in a dispersed storage network
US10067822B2 (en) 2016-09-26 2018-09-04 International Business Machines Corporation Combined slice objects in alternate memory locations
LU93377B1 (en) * 2016-12-15 2018-07-03 Luxembourg Inst Science & Tech List P2p network data distribution and retrieval using blockchain log
FR3061330B1 (fr) 2016-12-28 2019-05-24 Bull Sas Systeme et procede pour la creation et la gestion d'autorisations decentralisees pour des objets connectes
US10552062B2 (en) 2017-03-20 2020-02-04 Samsung Electronics Co., Ltd. System and method for storing very large key value objects
US10289315B2 (en) 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
JP2018190227A (ja) 2017-05-09 2018-11-29 野田 真一 ネットワーク分散型重複排除ファイルストレージシステム
US10397328B2 (en) * 2017-05-17 2019-08-27 Nec Corporation Method and system for providing a robust blockchain with an integrated proof of storage
US10944546B2 (en) 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
US10579586B1 (en) * 2017-09-13 2020-03-03 United States Of America As Represented By The Administrator Of Nasa Distributed hash object archive system
US10903980B2 (en) 2017-10-09 2021-01-26 Data Republic Pty Ltd System and method to protect sensitive information via distributed trust
US10250390B1 (en) * 2018-03-16 2019-04-02 Booz Allen Hamilton Inc. Data health assurance using private proof of authority
US20190311148A1 (en) * 2018-04-10 2019-10-10 Black Gold Coin, Inc. System and method for secure storage of electronic material
US10917234B2 (en) * 2018-05-03 2021-02-09 International Business Machines Corporation Blockchain for on-chain management of off-chain storage
CN108664223B (zh) * 2018-05-18 2021-07-02 百度在线网络技术(北京)有限公司 一种分布式存储方法、装置、计算机设备及存储介质
CN109587253B (zh) * 2018-12-11 2021-06-29 浙江大学 一种基于区块链对文件实现分布式存储的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386A (zh) * 2018-08-31 2019-02-15 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
WO2019072298A2 (en) * 2018-12-19 2019-04-18 Alibaba Group Holding Limited STORING BLOCK CHAIN ON THE BASIS OF A SHARED SECRET
CN110297831A (zh) * 2019-07-01 2019-10-01 电子科技大学 一种基于门限秘密共享的区块链分片存储方法

Also Published As

Publication number Publication date
DE112020005075T5 (de) 2022-07-21
GB2605911A (en) 2022-10-19
WO2021111220A1 (en) 2021-06-10
DE112020005075B4 (de) 2023-12-07
JP2023504492A (ja) 2023-02-03
GB202209513D0 (en) 2022-08-10
US11368285B2 (en) 2022-06-21
JP7592089B2 (ja) 2024-11-29
GB2605911B (en) 2025-03-05
US20210176038A1 (en) 2021-06-10
CN115211093A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
CN115211093B (zh) 数据对象的有效阈值存储
US11943237B2 (en) Malicious peer identification for database block sequence
US11349637B2 (en) Random node selection for permissioned blockchain
US11949691B2 (en) Malicious peer identification
US11201726B2 (en) Multi-layered image encoding for data block
JP7573645B2 (ja) ブロックチェーンのより高速なビュー変更
US11275859B2 (en) Preservation of privacy in large datasets
US11251938B2 (en) Blockchain verification using non-consecutive blocks
WO2021074719A1 (en) Database snapshot for managing state synchronization
CN111881109B (zh) 数据库可合并分类账
US12072991B2 (en) Preservation of privacy in large datasets
US12192352B2 (en) Key reclamation in blockchain network via OPRF
US20210256009A1 (en) Multi-client transaction validation
CN115004625A (zh) 用于区块链分类账的索引结构
US20230208638A1 (en) Future asset reclamation via blockchain
WO2023046409A1 (en) Digital asset platform with hsm verification
CN116361823A (zh) 用于隐私保护的区块链的选择性审计处理
CN117999566A (zh) 隐私保护状态引用
US11379594B2 (en) Media obfuscation
CN111984378B (zh) 数据库异常事务提交预防
US11856057B2 (en) Preservation of channel metadata

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant