CN111881109B - 数据库可合并分类账 - Google Patents

数据库可合并分类账 Download PDF

Info

Publication number
CN111881109B
CN111881109B CN202010315135.2A CN202010315135A CN111881109B CN 111881109 B CN111881109 B CN 111881109B CN 202010315135 A CN202010315135 A CN 202010315135A CN 111881109 B CN111881109 B CN 111881109B
Authority
CN
China
Prior art keywords
block
ledger
source
blockchain
hash
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
CN202010315135.2A
Other languages
English (en)
Other versions
CN111881109A (zh
Inventor
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 CN111881109A publication Critical patent/CN111881109A/zh
Application granted granted Critical
Publication of CN111881109B publication Critical patent/CN111881109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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
    • 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/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)

Abstract

示例操作可以包括以下一项或多项:由区块生成器生成用于源分类账的修改区块,接收将多个源分类账合并为合并分类账的合并请求,识别多个源分类账,从识别的源分类账的修改区块中生成创始区块,由提交者节点或对等方基于创始区块对合并分类账中的区块进行排序,并验证合并分类账中的区块顺序。

Description

数据库可合并分类账
技术领域
本申请总体上涉及可组合的共享分类账,并且更具体地,涉及数据库可合并分类账。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理单元(CPU)、服务器CPU或大型计算机。通常可以从多个不同点访问存储在集中式数据库中的信息。例如,基于客户端/服务器配置,多个用户或客户端工作站可以在集中式数据库上同时工作。特别是出于安全目的,因为集中式数据库位于单个位置,所以它易于管理、维护和控制。在集中式数据库中,数据冗余被最小化,因为所有数据的单个存储位置还意味着给定的一组数据仅具有一个主记录。
然而,集中式数据库遭受重大缺陷。例如,集中式数据库具有单个故障点。特别地,如果没有容错性的考虑,并且发生硬件故障(例如,硬件、固件和/或软件故障),则数据库中的所有数据都将丢失,并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。结果,连接速度越慢,每次数据库访问所需的时间量就会增加。另一个缺点是当集中式数据库由于单个位置而遇到高流量时,会出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供了对数据的有限访问。结果,多个设备在不造成严重的问题或存在覆盖已存储数据的风险的情况下无法同时访问同一条数据。此外,由于数据库存储系统的数据冗余很小甚至没有,因此,除了通过手动操作从备份存储中恢复之外,很难恢复意外丢失的数据。因此,需要一种克服这些缺点和局限性的解决方案。
发明内容
一个示例实施例提供了一种系统,该系统包括:区块链网络,该区块链网络包括区块生成器,该区块生成器被配置为对源分类账执行一个或多个生成的修改区块,接收将多个源分类账合并为合并分类账的合并请求,识别多个源分类账,并从识别的源分类账的修改区块中生成创始区块;以及提交者节点或对等方,该提交者节点或对等方被配置为基于创始区块在合并分类账中执行一个或多个顺序区块,并验证合并分类账中的区块顺序。
另一示例实施例提供了一种方法,该方法包括以下一项或多项:由区块生成器生成用于源分类账的修改区块,接收将多个源分类账合并为合并分类账的合并请求,识别多个源分类账,从识别的源分类账的修改区块中生成创始区块,由提交者节点或对等方基于创始区块对合并分类账中的区块进行排序,并验证合并分类账中的区块顺序。
又一示例实施例提供了一种包括指令的非暂态计算机可读介质,该指令当由处理器读取时,使处理器执行以下一项或多项:由区块生成器生成用于源分类账的修改区块,接收将多个源分类账合并到合并分类账中的合并请求,识别多个源分类账,从识别的源分类账的修改区块中生成创始区块,由提交者节点或对等方基于创始区块对合并分类账中的区块进行排序;以及验证合并分类账中的区块顺序。
附图说明
图1A示出根据示例实施例的用于合并源分类账的系统的网络图。
图1B示出根据示例实施例的用于源分类账合并的修改区块头的部分内容。
图1C示出根据示例实施例的在数据库系统中的源分类账合并的示例图。
图2A示出根据示例实施例的示例区块链架构配置。
图2B示出根据示例实施例的区块链交易流程。
图3A示出根据示例实施例的许可网络。
图3B示出根据示例实施例的另一许可网络。
图3C示出根据示例实施例的无许可网络。
图4示出根据示例实施例的用于在区块链网络中执行源分类账合并的系统消息传递图。
图5A示出根据示例实施例的基于区块链中的合并请求来合并源分类账的示例方法的流程图。
图5B示出根据示例实施例的以第一和第二格式表示数据的示例方法。
图6A示出根据示例实施例的被配置为执行在此所述的一个或多个操作的示例系统。
图6B示出根据示例实施例的被配置为执行在此所述的一个或多个操作的另一示例系统。
图6C示出根据示例实施例的被配置为利用智能合约的另一示例系统。
图6D示出根据示例实施例的被配置为利用区块链的又一示例系统。
图7A示出根据示例实施例的用于将新区块添加至分布式分类账的过程。
图7B示出根据示例实施例的新数据区块的内容。
图7C示出根据示例实施例的用于数字内容的区块链。
图7D示出根据示例实施例的可以表示区块链中的区块的结构的区块。
图8A示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链。
图8B示出根据示例实施例的示例量子安全区块链。
图9示出支持一个或多个示例实施例的示例系统。
具体实施方式
将容易理解的是,如在此的附图中一般性描述和图示的,即时组件可以以多种不同的配置来布置和设计。因此,如附图所示,对方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选实施例。
在一个或多个实施例中,可以以任何合适的方式组合或去除在整个说明书中描述的即时特征、结构或特性。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其它类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,在整个说明书中,短语“示例实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言的出现不一定全部指代同一组实施例,并且在一个或多个实施例中,所描述的特征、结构或特性可以以任何合适的方式组合或去除。
另外,尽管在实施例的描述中可能已经使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描绘某些类型的连接、消息和信令,但是本申请不限于某种类型的连接、消息和信令。
示例实施例提供了提供数据库可合并分类账的方法、系统、组件、非暂态计算机可读介质、设备和/或网络。
在一个实施例中,该申请利用作为分布式存储系统的分散式数据库(例如,区块链),该分散式数据库包括彼此通信的多个节点。分散式数据库包括类似于分布式分类账的只能追加的不可变数据结构,该分布式分类账能够维护互不信任的各方之间的记录。不信任方在此称为对等方或对等节点。每个对等方都维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有任何单个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储交易,将存储交易分组为区块,并在这些区块上构建哈希链。为了保持一致性,该过程在必要时通过对存储交易进行排序来形成分类账。在各种实施例中,可以使用许可的和/或无许可的区块链。在公共或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本机(native)加密货币,并基于各种协议(诸如工作量证明(PoW))使用共识。另一方面,许可的区块链数据库在共享共同目标但彼此之间并不完全信任的一组实体(诸如交换资金、商品、信息等的企业)之间提供安全的交互。
该申请可以利用区块链,该区块链操作被定制为分散式存储方案并被称为“智能合约”或“链码”的任意可编程逻辑。在一些情况下,可能存在用于管理功能和参数的专用链码,称为系统链码。该申请可以进一步利用智能合约,该智能合约是受信任的分布式应用,该分布式应用利用了区块链数据库的防篡改属性和节点之间的基础协议,该基础协议被称为背书或背书策略。与该申请相关联的区块链交易可以在提交给区块链之前被“背书”,而未被背书的交易则被忽略。背书策略允许链码以背书所必需的一组对等节点的形式指定用于交易的背书者。当客户端向背书策略中指定的对等方发送交易时,将执行交易以验证交易。验证之后,交易进入排序阶段,在该阶段中,使用共识协议来产生分组为区块的背书交易的有序序列。
该申请可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可以在同一物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中分组,并与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交客户端节点,其向背书者(例如,对等方)提交交易调用,并且将交易提议广播到排序服务(例如,排序节点)。另一类型的节点是如下的对等节点,该对等节点可以接收客户端提交的交易,提交交易并维护区块链交易分类账的状态和副本。尽管不是必需的,但对等方也可以充当背书者的角色。排序服务节点或排序者是为所有节点运行通信服务的节点,并且其实现交付保证,诸如在提交交易和修改区块链的世界状态时向系统中对等节点中的每个对等节点广播,该区块链的世界状态是用于初始区块链交易的另一个名称,该初始区块链交易通常包括控制和设置信息。
该申请可以利用分类账,该分类账是区块链的所有状态转换的有序防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)都可以维护分类账的副本。交易可导致一组资产密钥值对作为一个或多个操作数(诸如创建、更新、删除等)被提交到分类账。分类账包括如下的区块链(也称为链),该区块链用于将不可变的有序记录存储在区块中。分类账还包括用于维护区块链的当前状态的状态数据库。
该申请可以利用作为交易日志的链,该交易日志被构造为哈希链接的区块,并且每个区块包含N个交易的序列,其中N等于或大于1。区块头包括该区块交易的哈希,以及前一区块头的哈希。以该方式,分类账上的所有交易都可以被排序并加密链接在一起。因此,在不破坏哈希链接的情况下不可能篡改分类账数据。最近添加的区块链区块的哈希表示链上之前发生的每笔交易,从而可以确保所有对等节点处于一致且受信任的状态。该链可以存储在对等节点文件系统(即本地、附加存储、云等)上,从而有效地支持区块链工作载荷的仅附加性质。
不可变分类账的当前状态表示链交易日志中包括的所有密钥的最新值。由于当前状态表示信道已知的最新密钥值,因此有时将其称为世界状态。链码调用针对分类账的当前状态数据执行交易。为了使这些链码交互有效,可以将密钥的最新值存储在状态数据库中。状态数据库可能只是链中交易日志的索引视图,因此可以随时从链中重新生成。状态数据库可以在对等节点启动时以及在接受交易之前自动恢复(或根据需要生成)。
不可能在传统数据库而不是区块链上实现所公开的方法,因为该申请是区块链固有的,因为该申请描述了生成独立区块链的方法,同时保留了将来在任何时候合并它们的能力。可以验证得到的区块链,从合并的任何区块链中都没有忽略任何区块,并且区块的顺序是正确的。之所以需要区块链,是因为可能需要对区块进行加密合并使解决方案成为可能。
在此公开的方法通过创建合并具有可验证特征的区块链的可能性(即,没有从源区块链中遗漏任何区块并且可以验证区块交织),来利用区块链对计算机功能进行功能上的改进。
新数据被包括在所公开的修改区块头中(即,共享的链接时间戳/哈希和元组(区块链标识符和区块号))。当区块链或源分类账合并时,生成用于所得区块链的创始区块,并且包括加密证明以证实区块的交错(如何对源区块链的区块进行排序)被包含在所得区块链的创始区块中。以此类方式,对等方可以验证此类排序。当区块生成器(HyperledgerFabric中的排序服务)生成用于多个区块链的区块时,所公开的方法最有用。因此,它们可以实现使区块链/源分类账合并的方法。
图1A示出根据示例实施例的用于合并源分类账的系统的网络图。参考图1A,网络100包括区块链节点或对等方104、区块生成器108以及提交者节点或对等方112。区块链网络100可以是公共或许可的区块链网络100。
企业区块链网络100可以由一大批组织组成。它们的子集之间的一些交互可保持私有,并且不会与整个组共享。Hyperledger Fabric区块链网络100为此引入信道的概念,其中区块链网络100可以生成若干源分类账,但是只有参与者的子集可以参与它们中的每一个。本申请解决了合并分类账120,而不必重新生成和传送所有内容,同时仍然保证了要合并的每个共享分类账或源分类账的个体不变性。
区块链节点或对等方104生成到区块生成器108的合并请求124,其在许可的区块链网络100中可以是排序者节点或对等方。合并请求124指示区块生成器108组合两个或更多个源分类账116A至116N。合并请求124可以包括用于合并136的每个源分类账116的标识符以及构成合并策略的必要批准(签名)。虽然示出了两个源分类账116,但是可以通过在此公开的方法合并任何数量的源分类账116。响应于接收到合并请求124,区块生成器108从合并请求124中识别特定的源分类账116,并访问所识别的源分类账116A、116N的修改区块头128。
区块生成器108如合并请求124所指示对修改区块140进行排序,并向提交者节点或对等方112提供创始区块132。创始区块包括用于合并所识别的源分类账116的修改区块140的顺序和排序的可验证证明。如关于图1B所详细描述的,用于合并修改区块140的顺序由修改区块头128确定。
尽管修改区块140可以包括时间戳,但是它们本身并不能提供可靠的排序,因为这需要盲目信任,即修改区块中每一个修改区块中的数据按照时间戳的顺序进行结算——而事实并非如此。本申请利用链接时间戳记来验证修改区块中每一个修改区块中的数据被结算的正确顺序。链接时间戳记使用修改区块头128中的哈希值来验证正确的区块顺序,因为哈希是基于前一区块,并且哈希生成可以通过哈希序列来验证。链接时间戳不仅链接给定源分类账116上的修改区块140,而且链接不同源分类账116的修改区块140,因此在合并源分类账116时可以建立唯一且可验证的排序。提交者节点或对等方112可以存储合并的修改区块140到合并分类账120。
图1B示出根据示例实施例的用于源分类账合并的修改区块头的部分内容。参考图1B,修改区块头128包括源分类账标识符142、区块号144、同一源分类账146的前一区块的哈希,以及由区块生成器108生成的前一区块的哈希148。源分类账标识符142、区块号144和同一源分类账146的前一区块的哈希是用于传统区块的传统(即,未修改的)区块头128所共有的。源分类账标识符142唯一地识别标识符142适用于哪个源分类账116。区块号144唯一地识别对应区块位于对应源分类账116中的对应区块链内的位置。源分类账标识符142和区块号144的组合用于防止在合并过程期间遗漏任何修改区块140。
生成的前一区块的哈希148是包括在修改区块头128内的新参数。区块生成器108生成用于区块链网络100的所有区块链和源分类账116的区块。区块生成器108生成新区块(按照接收顺序的修改区块140),而不考虑前一(多个)区块是针对哪个源分类账116生成的。因此,紧接前一生成区块可能是相同的源分类账116(例如,区块2分类账3之后的区块3分类账3),或不同的源分类账(例如,区块5分类账1之后的区块3分类账3)。该第二哈希148允许区块生成器108通过提供前一区块无论是什么的哈希,并且因此提供可能到不同源分类账116的链接,来确定创始区块132内的正确区块顺序。
哈希148可能指示在合并请求124内未识别的不同源分类账116(即,将不合并的不同源分类账116)。在那种情况下,不同的源分类账116可以被忽略,但是通过哈希148链接回去,直到找到所识别的源分类账116。与被忽略的源分类账116对应的区块将不包括在合并分类账120中,但是创始区块132将“链接”被忽略的区块。例如,如果链接的系列哈希反映了区块1分类账3->区块2分类账2->区块4分类账1的序列,并且分类账2不包括在合并请求124中,但分类账1和3包括在其中,则创始区块132可以包括区块1分类账3->区块4分类账1的链接的系列哈希。以该方式,哈希146和148提供了源分类账116A-116N之间的交叉链接,以便提供可靠的修改区块140的创建顺序而不依赖于传统时间戳。
图1C示出根据示例实施例的在数据库系统中的源分类账合并的示例图。参考图1C,网络150包括合并过程,该合并过程涉及两个共享分类账116,识别为共享分类账116A和共享分类账116B。共享分类账116A包括三个修改区块140,识别为分类账1区块1-1 154A、分类账1区块1-2 154B和分类账1区块1-3 154C。共享分类账116B包括两个修改区块140,识别为分类账2区块2-1 158A和分类账2区块2-2 158B。
区块生成器108从输入区块154和158中生成创始区块132。在所示示例中,创始区块132依次包括分类账1区块1-1 154A、分类账1区块1-2154B、分类账2区块2-1 158A、分类账1区块1-3 154C和分类账2区块2-2 158B的顺序。
在接收到合并请求124时,区块生成器108生成包括要合并的区块的顺序的创始区块132,并创建可验证证明:区块的顺序是有效的,并且没有遗漏来自任何源分类账116的修改区块140。提交者节点或对等方112可以重新使用区块154、158的内容。在一个实施例中,提交者节点或对等方112从源分类账116获得修改区块140,对如由创始区块132指定的修改区块140进行排序,并存储排序的修改区块140作为合并分类账120。合并分类账120依次包括分类账1区块1-1 154A、分类账1区块1-2 154B、分类账2区块2-1158A、分类账1区块1-3154C、分类账2区块2-2158B和区块顺序和证明166。
由于每个区块包含前一区块的内容的哈希,因此提交者节点或对等方112能够通过计算前一区块的哈希并将其与以下区块中包括的值进行比较来验证前一区块的链接或内容。在一个实施例中,新区块包括从前一区块到当前区块的链接证明。在另一个实施例中,修改区块头128可以包括内容的哈希,但是不链接到内容的哈希,而是链接到由区块生成器108生成的时间戳记值。
所公开的可合并分类账允许具有合并能力的不同源分类账116的区块被创建,允许区块内容的完全重用,并创建新的合并分类账120的创始区块132。排序由区块生成器108确定,但是它可以被区块链网络100的任何节点或对等方完全验证。合并方法是一致的,并且不进行智能合约的合并。在可选且更简单的实施例中,每个智能合约将保持与合并源分类账116之前的状态相同的状态。还可以基于源分类账116被合并的顺序以及在合并分类账120中变得统一的源分类账116所共有的智能合约,重新执行交易或定义用于确定需要重新执行哪些交易的方法。
图2A示出根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式描绘)。这些节点参与了许多活动,诸如区块链交易添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来对交易背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证并且试图写入存储在区块链层216中的区块链不可变分类账,其副本也可以存储在基础物理基础结构214上。区块链配置可以包括一个或多个应用224,该应用链接到应用编程接口(API)222以访问和执行存储的程序/应用代码220(例如,链码、智能合约等),该程序/应用代码220可以根据参与者寻求的定制配置来创建,并且可以保持自己的状态,控制自己的资产,并接收外部信息。可以将其部署为交易,并经由附加到分布式分类账,安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,加密信任服务、虚拟执行环境等)的各个层,以及可用于接收和存储新交易并向寻求访问数据条目的审核器提供访问的物理计算机基础结构。区块链层216可以暴露接口,该接口提供对处理程序代码和接合物理基础结构214所必需的虚拟执行环境的访问。加密信任服务218可以用于验证诸如资产交换交易的交易并保持信息私有。
图2A的区块链架构配置可经由区块链平台212暴露的一个或多个接口以及提供的服务来处理和执行程序/应用代码220。代码220可控制区块链资产。例如,代码220可以存储和传送数据,并且可以由节点204-210以智能合约和相关链码的形式以进行其执行的条件或其它代码元素来执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或进行更改、更新等的其它通知。智能合约本身可以用于识别与授权和访问要求以及分类账的使用相关联的规则。例如,信息226可以包括来自区块链节点或对等方的合并请求,并且可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)进行处理。结果228可以包括用于合并分类账的创始区块。物理基础结构214可以用于取得在此描述的任何数据或信息。
可以经由高级应用和编程语言创建智能合约,并且然后将其写入区块链中的区块。智能合约可以包括可执行代码,该可执行代码被区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制。交易是可以响应于与智能合约相关联的条件得到满足而执行的智能合约代码的执行。智能合约的执行可以触发对数字区块链分类账状态的(多个)可信任修改。由智能合约执行引起的对区块链分类账的(多个)修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中自动复制。
智能合约可以以密钥值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并将其用于应用操作中。智能合约代码可以将各种逻辑操作的输出写入区块链。该代码可用于在虚拟机或其它计算平台中创建临时数据结构。写入区块链的数据可以是公开的和/或可以加密并保持为私有。智能合约使用/生成的临时数据由提供的执行环境保存在存储器中,一旦识别出区块链所需的数据,便将该临时数据删除。
链码可以包括具有附加特征的智能合约的代码解释。如在此所述,链码可以是部署在计算网络上的程序代码,在该计算网络中,在共识过程期间由链验证器一起执行和验证。链码接收哈希,并从区块链中取得与使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希与从存储的标识符模板数据创建的哈希匹配,则链码将授权密钥发送到请求的服务。链码可以将与加密详细信息相关联的数据写入区块链。
图2B示出根据示例实施例的在区块链的节点之间的区块链交易流250的示例。参考图2B,交易流可以包括由应用客户端节点260发送到背书对等节点281的交易提议291。背书对等方281可以验证客户端签名并执行链码功能以发起交易。输出可包括链码结果、在链码中读取的一组密钥/值版本(读取集)以及以链码写入的一组密钥/值(写入集)。如果批准,则将提议响应292与背书签名一起发送回客户端260。客户端260将背书组装成交易有效载荷293,并将其广播到排序服务节点284。排序服务节点284然后将排序的交易作为区块传递给信道上的所有对等方281-283。在提交到区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略,以确保指定对等方的正确分配已经对结果进行了签名并针对交易有效载荷293验证了签名。
再次参考图2B,客户端节点260通过构造请求并将其发送给作为背书者的对等节点281来发起交易291。客户端260可以包括利用支持的软件开发工具包(SDK)的应用,该软件开发工具包(SDK)利用可用的API来生成交易提议。该提议是调用链码功能的请求,使得可以将数据读取和/或写入分类账(即,为资产写入新的密钥值对)。SDK可以充当垫片,将交易提议打包为适当的架构格式(例如,远程过程调用(RPC)上的协议缓冲区),并采用客户端的加密凭据为交易提议生成唯一的签名。
作为响应,背书对等节点281可以验证(a)交易提议格式正确,(b)过去尚未提交交易(重放攻击保护),(c)签名有效,并且(d)提交者(在该示例中为客户端260)被适当授权在该信道上执行提议的操作。背书对等节点281可以将交易提议输入作为所调用的链码功能的参数(arguments)。然后针对当前状态数据库执行链码,以产生包括响应值、读取集和写入集的交易结果。然而,此时尚未对分类账进行任何更新。在292中,将值的集合以及背书对等节点281的签名作为提议响应292传递回客户端260的SDK,该SDK解析用于应用消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等方签名,并比较提议响应以确定提议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应,并且通常不将交易提交至排序节点服务284。如果客户端应用打算将交易提交至排序节点服务284以更新分类账,则应用在提交之前确定指定的背书策略是否已实现(即,交易所需的所有对等节点是否都对交易进行背书)。这里,客户端可以仅包括交易的多方之一。在该情况下,每个客户端可具有自己的背书节点,并且每个背书节点都需要对交易背书。该架构使得即使应用选择不检查响应或以其它方式转发未背书的交易,背书策略仍将由对等方强制执行并在提交验证阶段得到维护。
在成功检查之后,在步骤293中,客户端260将背书组装成交易,并在交易消息内将交易提议和响应广播到排序节点284。交易可包含读取/写入集、背书对等方签名和信道ID。排序节点284不需要为了执行其操作而检查交易的全部内容,而是排序节点284可以简单地从网络中的所有信道接收交易,按信道按时间顺序对它们进行排序,并创建每信道的交易区块。
交易的区块从排序节点284传递到信道上的所有对等节点281-283。验证区块内的交易294,以确保满足任何背书策略,并确保自从通过交易执行生成读取集以来,读取集变量的分类账状态没有变化。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块附加到信道的链,并且对于每个有效交易,将写入集提交给当前状态数据库。发出一个事件,以通知客户端应用交易(调用)已被不可变地附加到链,并通知交易是经过验证有效还是无效。
图3A示出许可的区块链网络300的示例,其特征在于分布式分散的对等架构。在该示例中,区块链用户302可以发起到许可的区块链304的交易。在该示例中,该交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用发布,直接通过API发布等。网络可以提供对诸如审核器的监管器306的访问。区块链网络操作者308管理成员许可,诸如将监管器306注册为“审核器”,并且将区块链用户302注册为“客户端”。审核器可能只限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了将来自传统数据源312的凭据包括在链码中,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可的区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书颁发机构316取得用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链304上进行交易。同时,可能要求尝试利用链码的用户在传统数据源312上验证其凭据。为确认用户的授权,链码可以通过传统处理平台318使用对该数据的带外连接。
图3B示出许可的区块链网络320的另一示例,其特征在于分布式分散的对等架构。在该示例中,区块链用户322可以将交易提交至许可的区块链324。在该示例中,该交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用发布,直接通过API发布等。网络可以提供对诸如审核器的监管器326的访问。区块链网络操作者328管理成员许可,诸如将监管器326注册为“审核器”,并且将区块链用户322注册为“客户端”。审核器可能只限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者330编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了将来自传统数据源332的凭据包括在链码中,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书颁发机构336取得用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链324上进行交易。同时,可能要求尝试利用链码的用户在传统数据源332上验证其凭据。为了确认用户的授权,链码可以通过传统处理平台338使用对该数据的带外连接。
图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的数字钱包。
图4示出根据示例实施例的用于在区块链网络中执行源分类账合并的系统消息传递图400。参考图4,系统消息传递图400包括区块生成器410、提交者节点或对等方420以及区块链网络430。区块生成器410从区块链节点或对等方或区块链客户端接收合并请求415。接下来,区块生成器410基于合并请求中存在的标识符来确定要合并哪些源分类账425。一旦识别了源分类账,区块生成器410就从区块链网络430获得或访问源分类账426。
区块生成器410从获得或访问的源分类账426创建创始区块440。区块生成器410基于可验证的时间戳(哈希,如前所述)对区块445排序。然后将创始区块446提供给提交者节点或对等方420。
提交者节点或对等方420接收创始区块446,并验证合并分类账的区块顺序450。修改区块451被提交给存储合并分类账455的区块链网络430。
图5A示出根据示例实施例的基于区块链中的合并请求来合并源分类账的示例方法的流程图500。参考图5A,方法500可以包括以下步骤中的一个或多个步骤。
在框504处,区块生成器生成用于任何数量的源分类账的修改区块。为了使源分类账可合并,源分类账中的所有区块都必须是具有修改区块头的修改区块。
在框508处,区块生成器接收合并请求。合并请求指定两个或多个要合并的源分类账。
在框512处,区块生成器识别要合并的源分类账,并获得或访问相应的修改区块头。
在框516处,区块生成器然后生成用于合并分类账的创始区块。
在框520处,基于可验证的时间戳(哈希,如先前所公开的),区块生成器指示创始区块内的合并分类账中的区块顺序。
在框524处,提交者节点或对等方从区块生成器接收创始区块,验证合并分类账的区块顺序,并提交合并分类账。
图5B示出根据示例实施例的以第一和第二格式表示数据的示例方法的流程图550。参考图5B,方法550可以包括以下步骤中的一个或多个步骤。
在框554处,该过程包括接收第一数据组。第一数据组以第一格式表达。
在框558处,该过程包括接收第二数据组。第二数据组以第二格式表达,其中第二格式不同于第一格式。
在框562处,该过程包括合并第一数据组和第二数据组。
在框566处,该过程包括提供公共表示。第一和第二数据组在至少一个公共列中表示,其中,保持第一和第二格式。
在框570处,该过程包括提供对第一和第二格式的引用。该引用包括提供元组图,该元组图提供对第一和第二格式的引用。
图6A示出根据示例实施例的包括配置为执行各种操作的物理基础结构610的示例系统600。参考图6A,物理基础结构610包括模块612和模块614。模块614包括区块链620和智能合约630(可以驻留在区块链620上),该区块链620和智能合约630可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础结构610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出根据示例实施例的被配置为执行各种操作的另一示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合约630(其可以驻留在区块链620上),该区块链620和智能合约630可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础结构610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C示出根据示例实施例的被配置为利用缔约方之间的智能合约配置的示例系统以及被配置为在区块链上实施智能合约条款的中介服务器。参考图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话或过程或程序,该智能合约630明确地识别一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由作为智能合约交易的当事方的实体652和656中的一个或多个实体进行数字签名。智能合约执行的结果可以作为区块链交易被写入区块链620。智能合约630驻留在区块链620上,该区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其它链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即服务器654)来在区块链上执行交易(调用、查询等)的公共接口。这里,服务器654是持有世界状态的副本和分布式分类账的区块链网络对等组件,其允许客户端652和656查询关于世界状态的数据以及将交易提交到区块链网络中,其中取决于智能合约630和背书政策,背书对等方将运行智能合约630。
以上实施例可以以硬件,以处理器执行的计算机程序,以固件或以上述的组合来实现。计算机程序可以体现在诸如存储介质的计算机可读介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其它形式的存储介质中。
示例性存储介质可以耦合到处理器,使得处理器可以从该存储介质读取信息,并且可以向该存储介质写入信息。在替代方案中,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为分立组件驻留。
图7A示出根据示例实施例的将新区块添加到分布式分类账720的过程700,并且图7B示出根据示例实施例的用于区块链的新数据区块结构730的内容。参考图7A,客户端(未示出)可以向区块链节点711、712和/或713提交交易。客户端可以是从任何来源接收的指令以在区块链720上制定活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)为区块链提出交易的应用。多个区块链对等方(例如,区块链节点711、712和713)可以保持区块链网络的状态以及分布式分类账720的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括:背书对等方,其对客户提出的交易进行模拟和背书;以及提交对等方,其验证背书,验证交易并将交易提交给分布式分类账720。在该示例中,区块链节点711、712和713可以执行背书者节点、提交者节点或二者的角色。
分布式分类账720包括:区块链,其将不可变的顺序记录存储在区块中;以及保持区块链722当前状态的状态数据库724(当前世界状态)。每信道可以存在一个分布式分类账720,并且每个对等方对于作为其成员的每个信道维护其自己的分布式分类账720副本。区块链722是构造为哈希链接的区块的交易日志,其中每个区块包含N个交易的序列。区块可包括诸如图7B中所示的各种组件。可以通过在当前区块的区块头内添加前一区块头的哈希来生成区块的链接(图7A中的箭头所示)。以该方式,对区块链722上的所有交易进行排序,并将其加密链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链722中的最新区块表示在其之前的每个交易。区块链722可以存储在对等文件系统(本地或附加存储)上,该对等文件系统支持只能追加的区块链工作载荷。
区块链722的当前状态和分布式分类账722可以存储在状态数据库724中。这里,当前状态数据表示区块链722的链交易日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库724中的当前状态执行交易。为了使这些链码交互非常高效,所有密钥的最新值都存储在状态数据库724中。状态数据库724可以包括到区块链722的交易日志中的索引视图,因此可以在任何时间从链中重新生成它。状态数据库724可以在接受交易之前在对等方启动时自动恢复(或在需要时生成)。
背书节点从客户端接收交易,并基于模拟结果对该交易背书。背书节点持有模拟交易提议的智能合约。当背书节点对交易背书时,背书节点创建交易背书,该交易背书是从背书节点到客户端应用的签名响应,指示对模拟交易的背书。对交易背书的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等方必须对交易背书”。不同的信道可具有不同的背书策略。客户端应用将背书的交易转发到排序服务710。
排序服务710接受背书的交易,将其排序为区块,并将该区块传递给提交对等方。例如,当已经达到交易的阈值、计时器超时或另一条件时,排序服务710可以发起新的区块。在图7A的示例中,区块链节点712是提交对等方,该提交对等方已接收存储在区块链720上的新数据的新数据区块730。区块链中的第一区块可以被称为创始区块,该创始区块包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序者集群组成。排序服务710不处理交易、智能合约或维护共享分类账。而是,排序服务710可以接受背书的交易,并指定将这些交易提交给分布式分类账720的顺序。区块链网络的架构可以被设计为使得“排序”的特定实现(例如,Solo、Kafka、BFT等)成为可插拔组件。
以一致的顺序将交易写入分布式分类账720。建立交易的顺序以确保对状态数据库724的更新在提交给网络时有效。与通过解决加密难题或挖掘进行排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式分类账720的当事方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据区块730时,新数据区块730可以广播给提交对等方(例如,区块链节点711、712和713)。作为响应,每个提交对等方通过检查以确保读取集和写入集仍与状态数据库724中的当前世界状态相匹配,来验证新数据区块730内的交易。具体地,提交对等方可以确定背书者模拟交易时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等方验证交易时,将交易写入分布式分类账720上的区块链722,并且状态数据库724采用读写集中的写入数据更新。如果交易失败,也就是说,如果提交对等方发现读写集与状态数据库724中的当前世界状态不匹配,则排序为区块的交易仍将包括在该区块中,但它将标记为无效,并且状态数据库724将不被更新。
参考图7B,存储在分布式分类账720的区块链722上的新数据区块730(也称为数据区块)可以包括多个数据段,诸如区块头740、区块数据750和区块元数据760。应当理解,各种所描绘的区块及其内容,诸如图7B中所示的新数据区块730及其内容仅是示例,并不意味着限制示例实施例的范围。新数据区块730可以在区块数据750内存储N个交易(例如,1、10、100、500、1000、2000、3000等)的交易信息。新数据区块730还可以包括:到区块头740内的前一区块(例如,在图7A中的区块链722上)的链接。特别地,区块头740可包括前一区块头的哈希。区块头740还可以包括唯一的区块号、新数据区块730的区块数据750的哈希等。新数据区块730的区块号可以是唯一的,并且可以以各种顺序分配,诸如从零开始的增量/序列顺序。
区块数据750可以存储记录在新数据区块730内的每个交易的交易信息。例如,交易数据可以包括交易的类型、版本、时间戳、分布式分类账720的信道ID、交易ID、历元、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)标识(诸如公钥和证书)、客户端签名、背书者身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读取集(交易读取的密钥和版本列表等)、写入集(密钥和值的列表等)、开始密钥、结束密钥、密钥列表、Merkle树查询摘要等中的一个或多个。可以针对N个交易中的每一个交易存储交易数据。
在一些实施例中,区块数据750还可存储新数据762,该新数据762将附加信息添加到区块链722中的区块的哈希链接的链。附加信息包括在此描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据762可以存储在分布式分类账720上的区块的不可变日志中。存储此类新数据762的一些益处反映在本文公开和描绘的各种实施例中。虽然在图7B中,新数据762被描绘在区块数据750中,但是也可以位于区块头740或区块元数据760中。
区块元数据760可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括在区块创建时的签名、对最后一个配置区块的引用、识别区块内有效交易和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移持续时间(last offsetpersisted)等。签名、最后一个配置区块和排序者元数据可以由排序服务710添加。同时,区块的提交者(诸如区块链节点712)可以基于背书策略、读取/写入集的验证等添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据750中的交易数量的字节阵列和识别交易是否有效/无效的验证码。
图7C示出根据在此所述实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其它形式的数字内容。区块链的不可变的只能追加的方面充当保护数字内容的完整性、有效性和真实性的保障,使其适用于适于可受理性规则的法律程序中,或在考虑证据的情况下或在其它方面关注的数字信息的呈现和使用的情况下的其它设置。在该情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且可以从其访问。例如,区块链的每个区块可以沿着相关联的数字内容存储参考信息的哈希值(例如,头、值等)。然后可以将哈希值和相关联的数字内容一起加密。因此,可以通过解密区块链中的每个区块来访问每个区块的数字内容,并且每个区块的哈希值可以用作参考前一区块的基础。这可以说明如下:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密哈希,而无需任何数字内容。数字内容可以与原始文件的哈希值相关联地存储在另一存储区域或存储器地址中。其它存储区域可以是用于存储区块链的相同存储设备,或可以是不同的存储区域,或甚至是单独的关系数据库。可以通过获得或查询关注的区块的哈希值,并且然后查找具有在与实际数字内容相对应地存储的存储区域中的值,来引用或访问每个区块的数字内容。该操作可以例如被数据库把关系统(gatekeeper)执行。这可以说明如下:
在图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)SHA-2计算的原始文件的哈希值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关联元数据的软件的区块链网络成员ID
区块链中的其它区块7782至778N也具有头、文件和值。然而,与第一区块7721不同,其它区块中的头7722至772N中的每一个头均包括紧接前一区块的哈希值。紧接前一区块的哈希值可以只是前一区块的头的哈希,或可以是整个前一区块的哈希值。通过在剩余区块的每个区块中包括前一区块的哈希值,可以逐个区块地从第N个区块回到创始区块(以及相关联的原始文件)执行追踪,如箭头780所示,以建立可审核且不可变的监管链。
其它区块中的头7722至772N中的每一个头还可包括其它信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或通常与对应文件和/或区块链相关联的其它参数或信息。
例如,取决于执行的处理类型,其它区块中的文件7742至774N可以等于原始文件,或者可以是创始区块中原始文件的修改版本。所执行的处理类型可能随区块而变化。该处理可以涉及例如在前一区块中对文件的任何修改,诸如编辑信息或以其它方式改变文件的内容,从文件中取走信息,或向文件添加或附加信息。
另外地或可替代地,该处理可以涉及仅从前一区块中复制文件,改变文件的存储位置,从一个或多个前一区块分析文件,将文件从一个存储或存储器位置移动到另一存储或存储器位置,或相对于区块链文件和/或其关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或以其它方式关联与文件相关联的各种分析、统计或其它信息。
其它区块7762至776N中的每个其它区块中的值是唯一值,并且由于执行的处理而全部不同。例如,任何一个区块中的值都对应于前一区块中值的更新版本。该更新反映在为其分配了值的区块的哈希中。因此,区块的值提供了对在区块中执行了哪些处理的指示,并且还允许通过区块链追溯回到原始文件。该追踪确认了整个区块链中文件的监管链。
例如,考虑为了保护文件中所示的人的身份而对前一区块中的文件的部分进行编辑、遮挡或像素化的情况。在该情况下,包括编辑文件的区块将包括与编辑文件相关联的元数据,例如,如何执行编辑、谁执行编辑、在哪里发生(多次)编辑的时间戳等。可以对元数据进行哈希处理以形成值。由于该区块的元数据与被哈希处理以形成前一区块中的值的信息不同,因此这些值彼此不同,并且在解密时可以恢复。
在一个实施例中,当随后的任何一个或多个区块值发生时,可以更新前一区块值(例如,计算出新的哈希值)以形成当前区块值。在该示例实施例中,可以通过对以下所述的全部或部分信息进行哈希处理来计算新的哈希值。
a)如果以任何方式处理文件(例如,如果文件已被编辑、复制、更改、访问或已采取一些其它动作),则新的SHA-2计算的哈希值
b)文件的新存储位置
c)与文件相关联的识别的新元数据
d)将文件的访问或控制从一个区块链参与者转移到另一个区块链参与者
图7D示出根据一个实施例的可以表示区块链790中的区块的结构的区块的实施例。区块Blocki包括头772i、文件774i和值776i
头772i包括前一区块Blocki-1的哈希值和附加参考信息,该附加信息例如可以是在此讨论的任何类型的信息(例如,包括引用、特征、参数等的头信息)。当然,除创始区块外,所有区块均引用前一区块的哈希。前一区块的哈希值可以仅仅是前一区块中头的哈希,或前一区块中所有或部分信息(包括文件和元数据)的哈希。
文件774i依次包括多个数据,诸如Data 1,Data 2,…,Data N。数据用元数据Metadata 1,Metadata 2,…,Metadata 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发生。
可以将用于区块链的新交易一起收集到新区块中,并添加到现有的哈希值中。然后将其加密以为新区块创建新的哈希。加密后,这将添加到下一个交易列表中,依此类推。结果是区块的链,每个区块都包含所有先前区块的哈希值。存储这些区块的计算机会定期比较其哈希值,以确保它们都一致。不一致的任何计算机都将丢弃导致问题的记录。该方法对于确保区块链的防篡改很有用,但并不是完美的。
对该系统进行博弈的一种方法是让不诚实的用户以他们的喜好更改交易列表,但是要保持哈希值不变。这可以通过暴力来完成,换句话说,可以通过更改记录,加密结果以及查看哈希值是否相同来实现。如果没有,则一次又一次尝试,直到找到匹配的哈希为止。区块链的安全性是基于如下的信念,即普通计算机只能在完全不切实际的时间范围内(诸如宇宙的年龄)进行这种暴力攻击。相比之下,量子计算机要快得多(快几千倍),并且因此构成更大的威胁。
图8B示出量子安全区块链852的示例850,该量子安全区块链852实现量子密钥分配(QKD)以保护免受量子计算攻击。在该示例中,区块链用户可以使用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支持在此描述和/或描绘的一个或多个示例实施例。系统900包括计算机系统/服务器902,该计算机系统/服务器902可与许多其它通用或专用计算系统环境或配置一起操作。可适用于计算机系统/服务器902的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述任何系统或设备的分布式云计算环境等。
可在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述计算机系统/服务器902。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器902,在该分布式云计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质二者中。
如图9所示,云计算节点900计算机系统/服务器902以通用计算设备的形式表现。计算机系统/服务器902的组件可以包括但不限于:一个或者多个处理器或者处理单元904,系统存储器906,连接不同系统组件(包括系统存储器906和处理单元904)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器902典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。系统存储器906可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机系统/服务器902可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统914可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器906可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块918的程序/实用工具916,可以存储在例如存储器906中,这样的程序模块918包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块918通常执行本发明所描述的实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了软件和硬件方面的实施例的形式,该软件和硬件方面通常在此都可以被称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取具有体现在其上的计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
计算机系统/服务器902也可以与一个或多个外部设备920(例如键盘、指向设备、显示器922等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器902交互的设备通信,和/或与使得该计算机系统/服务器902能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口924进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器926通过总线与计算机系统/服务器902的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器902使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管在附图中示出并且在前面的详细描述中描述了系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例,但是应当理解,本申请不限于所公开的实施例,而是能够进行如所附权利要求所阐述和定义的许多重新布置、修改和替换。例如,各个附图的系统的能力可以由在此描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或两者的对。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个模块来执行。此外,在此描述的功能可以在各种时间并且与模块或组件内部或外部的各种事件相关地执行。此外,可以经由以下各项中的至少一项在模块之间发送各种模块之间发送的信息:数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多种协议。此外,可以直接和/或经由一个或多个其它模块来发送或接收由任何模块发送或接收的消息。
本领域技术人员将意识到,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、手机、平板计算设备、智能手机或任何其它合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,在此公开的方法、系统和装置可以以与计算技术一致的局部和分布式形式来实现。
应该注意,在本说明书中描述的一些系统特征已经作为模块呈现,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管或其它分立组件的现货半导体。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
模块也可以至少部分地用软件来实现,以由各种类型的处理器执行。可执行代码的所识别单元可以例如包括计算机指令的一个或多个物理或逻辑块,该计算机指令可以例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,该指令当在逻辑上结合在一起时,包括模块并实现模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其它此类介质。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在多个不同的代码段、不同的程序之间以及跨多个存储器设备。类似地,操作数据可以在此在模块内被识别和示出,并且可以以任何合适的形式来体现并且可以在任何合适的类型的数据结构内被组织。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
将容易理解,如在此的附图中一般性描述和示出的,本申请的组件可以以多种不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅代表本申请的所选实施例。
本领域的普通技术人员将容易地理解,可以以不同顺序的步骤和/或以与所公开的配置不同的配置的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员显而易见的是,某些修改、变型和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是说明性的,并且当考虑全部范围的等同及其修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求限定。

Claims (16)

1.一种系统,包括:
区块链网络,其包括:
区块生成器,其被配置为:
生成用于源分类账的修改区块;
接收将多个源分类账合并为合并分类账的合并请求;
识别所述多个源分类账;以及
从所述识别的源分类账的修改区块中生成创始区块;以及
提交者节点或对等方,其被配置为:
基于所述创始区块对所述合并分类账中的区块进行排序;以及
验证所述合并分类账中的区块顺序。
2.根据权利要求1所述的系统,其中,所述区块生成器生成用于源分类账的修改区块包括:所述区块生成器进一步被配置为:
计算与当前区块相同的源分类账的紧接前一区块的第一哈希;
计算由所述区块生成器创建的紧接前一区块的第二哈希;以及
在所述修改区块的区块头中包含所述第一哈希和所述第二哈希。
3.根据权利要求2所述的系统,其中,所述合并请求包括多个源分类账标识符,其中,所述区块生成器识别所述多个源分类账包括:所述区块生成器将源分类账与所述多个源分类账标识符中的每一个源分类账标识符进行匹配。
4.根据权利要求2所述的系统,其中,所述创始区块包括用于所述识别的源分类账的所合并的修改区块的顺序和所述顺序的可验证证明。
5.根据权利要求4所述的系统,其中,所述提交者节点或对等方验证所述合并分类账中的所述区块顺序包括:所述提交者节点或对等方进一步被配置为:
将用于所述识别的源分类账的所合并的修改区块的所述顺序与所述第一哈希和所述第二哈希进行比较;以及
响应于用于所合并的修改区块的所述顺序与由所述第一哈希和所述第二哈希所隐含的顺序匹配,验证所述区块顺序。
6.根据权利要求5所述的系统,其中,响应于所述提交者节点或对等方验证所述合并分类账中的所述区块顺序,所述提交者节点或对等方进一步被配置为:
从所述识别的源分类账中读取修改区块;以及
以所验证的区块顺序将所述修改区块排列到所述合并分类账中。
7.根据权利要求2所述的系统,进一步包括:所述区块生成器进一步被配置为:
提供没有从所述合并分类账中遗漏来自所述识别的源分类账的修改区块的指示。
8.一种方法,包括:
由区块生成器生成用于源分类账的修改区块;
接收将多个源分类账合并为合并分类账的合并请求;
识别所述多个源分类账;
从所述识别的源分类账的修改区块中生成创始区块;
由提交者节点或对等方基于所述创始区块对所述合并分类账中的区块进行排序;以及
验证所述合并分类账中的区块顺序。
9.根据权利要求8所述的方法,其中,生成用于源分类账的修改区块包括:
计算与当前区块相同的源分类账的紧接前一区块的第一哈希;
计算由所述区块生成器创建的紧接前一区块的第二哈希;以及
在所述修改区块的区块头中包含所述第一哈希和所述第二哈希。
10.根据权利要求9所述的方法,其中,所述合并请求包括多个源分类账标识符,其中,识别所述多个源分类账包括:将源分类账与所述多个源分类账标识符中的每一个源分类账标识符进行匹配。
11.根据权利要求9所述的方法,其中,所述创始区块包括用于合并所述识别的源分类账的所述修改区块的顺序和所述顺序的可验证证明。
12.根据权利要求11所述的方法,其中,验证所述合并分类账中的所述区块顺序包括:
由提交者节点或对等方将用于合并所述识别的源分类账的所述修改区块的所述顺序与所述第一哈希和所述第二哈希进行比较;以及
响应于用于合并所述修改区块的所述顺序与由所述第一哈希和所述第二哈希所隐含的顺序匹配,验证所述区块顺序。
13.根据权利要求12所述的方法,其中,响应于验证所述合并分类账中的所述区块顺序,所述方法包括所述提交者节点或对等方进一步被配置为:
从所述识别的源分类账中读取修改区块;以及
以所验证的区块顺序将所修改区块排列到所述合并分类账中。
14.根据权利要求9所述的方法,进一步包括:
由所述区块生成器提供没有从所述合并分类账中遗漏来自所述识别的源分类账的修改区块的指示。
15.一种包括指令的非暂态计算机可读介质,所述指令在被处理器读取时使所述处理器执行根据权利要求8至14中任一项所述的方法。
16.一种装置,包括用于执行权利要求8至14中任一项所述的方法的模块。
CN202010315135.2A 2019-05-02 2020-04-21 数据库可合并分类账 Active CN111881109B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/401343 2019-05-02
US16/401,343 US11194770B2 (en) 2019-05-02 2019-05-02 Database mergeable ledgers

Publications (2)

Publication Number Publication Date
CN111881109A CN111881109A (zh) 2020-11-03
CN111881109B true CN111881109B (zh) 2024-03-29

Family

ID=73017723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010315135.2A Active CN111881109B (zh) 2019-05-02 2020-04-21 数据库可合并分类账

Country Status (2)

Country Link
US (1) US11194770B2 (zh)
CN (1) CN111881109B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11563679B1 (en) * 2019-12-12 2023-01-24 Architecture Technology Corporation Distributed ledger adjustment in response to disconnected peer
US11580098B2 (en) * 2020-02-14 2023-02-14 International Business Machines Corporation Multi-client transaction validation
US11321298B1 (en) * 2020-12-01 2022-05-03 International Business Machines Corporation Automated merge of DLT networks
IT202200011327A1 (it) 2022-05-30 2023-11-30 Traent S R L Relazioni temporali basate su crittografia in e tra strutture di registri persistenti verificabili

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108846659A (zh) * 2018-06-13 2018-11-20 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN109074566A (zh) * 2016-04-29 2018-12-21 区块链控股有限公司 使用分布式散列表和点对点分布式分类账控制合约的履行的方法和系统
CN109377216A (zh) * 2018-08-07 2019-02-22 阿里巴巴集团控股有限公司 一种基于中心化结算与区块链存证的交易方法及系统
CA3114591A1 (en) * 2017-09-14 2019-03-14 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data associated with product lifecycle events using permissioned distributed ledgers
CN109684287A (zh) * 2018-12-29 2019-04-26 厦门链平方科技有限公司 基于区块链的网关信息共享查询方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058344B2 (en) 2013-01-31 2015-06-16 International Business Machines Corporation Supporting flexible types in a database
US10923215B2 (en) * 2016-09-20 2021-02-16 Nant Holdings Ip, Llc Sample tracking via sample tracking chains, systems and methods
EP3516545A1 (en) * 2016-09-21 2019-07-31 R-Stor Inc. Systems and methods for using a distributed ledger for data handling
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
US10158611B2 (en) 2016-11-17 2018-12-18 Bank Of America Corporation System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash
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
US10320574B2 (en) * 2017-05-05 2019-06-11 International Business Machines Corporation Blockchain for open scientific research
US11240035B2 (en) * 2017-05-05 2022-02-01 Jeff STOLLMAN Systems and methods for extending the utility of blockchains through use of related child blockchains
SG11201909999RA (en) * 2017-06-06 2019-11-28 Visa Int Service Ass Linked multiple blockchain system
US10616324B1 (en) * 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US10928803B2 (en) * 2018-05-02 2021-02-23 Rockwell Automation Technologies, Inc. Managing blockchains for multiple components in an industrial facility
CN108932348B (zh) 2018-08-16 2020-06-30 北京京东尚科信息技术有限公司 区块链的合并处理方法、装置、区块链节点及存储介质
US10949548B2 (en) * 2018-10-18 2021-03-16 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers
US20200134760A1 (en) * 2018-10-31 2020-04-30 Motorola Solutions, Inc Method for Weighted Voting in a Public Safety Distributed Ledger
US20200202343A1 (en) * 2018-12-20 2020-06-25 Paypal, Inc. Blockchain-based suspicious activity verification and recording

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074566A (zh) * 2016-04-29 2018-12-21 区块链控股有限公司 使用分布式散列表和点对点分布式分类账控制合约的履行的方法和系统
CA3114591A1 (en) * 2017-09-14 2019-03-14 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data associated with product lifecycle events using permissioned distributed ledgers
CN108846659A (zh) * 2018-06-13 2018-11-20 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN109377216A (zh) * 2018-08-07 2019-02-22 阿里巴巴集团控股有限公司 一种基于中心化结算与区块链存证的交易方法及系统
CN109684287A (zh) * 2018-12-29 2019-04-26 厦门链平方科技有限公司 基于区块链的网关信息共享查询方法及系统

Also Published As

Publication number Publication date
US20200349123A1 (en) 2020-11-05
CN111881109A (zh) 2020-11-03
US11194770B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
CN111800268B (zh) 用于区块链背书的零知识证明
US20220292214A1 (en) Blockchain endorsement with approximate hash verification
US12003647B2 (en) Reduced-step blockchain verification of media file
US11539527B2 (en) Peer node recovery via approximate hash verification
CN115210741B (zh) 部分有序的区块链
US11711202B2 (en) Committing data to blockchain based on approximate hash verification
JP7499852B2 (ja) 許可型ブロックチェーンのためのランダムなノード選択
US11689356B2 (en) Approximate hash verification of unused blockchain output
CN114128214B (zh) 用于配置区块链的安全层
US20200382309A1 (en) Approximate hash verification for blockchain
AU2021254870B2 (en) Faster view change for blockchain
CN111985003A (zh) 数据库恶意对等体识别
CN111881109B (zh) 数据库可合并分类账
CN111881206A (zh) 用于数据块的多层图像编码
US11251938B2 (en) Blockchain verification using non-consecutive blocks
CN115211093A (zh) 数据对象的有效阈值存储
US11580098B2 (en) Multi-client transaction validation
CN114450708A (zh) 基于现有链码的链码推荐
CN115004625A (zh) 用于区块链分类账的索引结构
CN116941265A (zh) 区块链网络身份管理使用ssi
CN112733159A (zh) 用于区块链的自由搭乘节点识别
CN112052474A (zh) 蓝光拷贝服务
CN115943411A (zh) 用于保护数据的噪声交易
CN111797426B (zh) 一种用于去信任通知服务的方法和系统
CN116438776A (zh) 区块链网络中通过伪随机函数的密钥回收

Legal Events

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