CN111466096A - 提供不可变记录的系统和方法 - Google Patents

提供不可变记录的系统和方法 Download PDF

Info

Publication number
CN111466096A
CN111466096A CN201880061921.5A CN201880061921A CN111466096A CN 111466096 A CN111466096 A CN 111466096A CN 201880061921 A CN201880061921 A CN 201880061921A CN 111466096 A CN111466096 A CN 111466096A
Authority
CN
China
Prior art keywords
chunk
new
block
master
series
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.)
Granted
Application number
CN201880061921.5A
Other languages
English (en)
Other versions
CN111466096B (zh
Inventor
T·拉姆巴加
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.)
EUREKA CORP
Original Assignee
EUREKA 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 EUREKA CORP filed Critical EUREKA CORP
Publication of CN111466096A publication Critical patent/CN111466096A/zh
Application granted granted Critical
Publication of CN111466096B publication Critical patent/CN111466096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • 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
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了在计算系统中提供不可变记录和不可变记录排序的系统和方法。计算系统可为多个区块链的区块链网络的成员。每个区块可包括符合最小难度的密码摘要(或哈希)、利用其来生成符合难度的密码摘要的乱数以及参与相邻区块链的最近期区块的密码摘要列表。可在多个区块链中的各区块链之间传递区块,从而使区块链网络的每个成员能够验证数据事务的不可变记录,而没有典型区块链环境的互相信任需求。与每个区块的生成相结合,可将事件记录输入到生成区块的计算系统的事件日志中。可以将可包含可执行指令、请求等的事件记录传输到参与相邻区块链的计算系统,可在此作用于可执行项。此外,可以交换、比较和调节每个计算系统的事件日志以反映每个参与相邻区块链的每个区块的最早出现。

Description

提供不可变记录的系统和方法
相关申请
本申请要求于2017年9月8日提交的名称为″Systems and methods ofdistributed dynamically changing state machines with provable ordering ofevents″(具有可证事件排序的分布式动态变化状态机的系统和方法)的美国临时专利申请62/556,212以及2018年7月3日提交的名称为″DETECTION OF ANOMALIES IN A COMPUTERSYSTEM″(计算机系统中的异常的检测)的美国临时专利申请62/693,870的优先权,这些临时专利申请均据此全文以引用方式并入本文。
技术领域
本公开整体涉及用于记录保持的电子台账(诸如由区块链提供的分布式台账)的领域,并且更具体地涉及提供不可变记录的系统和方法。
附图说明
结合附图,根据以下说明和所附权利要求,本文的实施方案将变得更完全显而易见。应当理解,附图仅描绘了典型的实施方案,并且因此不被认为是对本公开范围的限制,将参考附图具体和详细地描述和解释各个实施方案。
图1是根据本公开的一个实施方案的计算系统内的区块链的区块的示意图。
图2是根据本公开的一个实施方案的交叉默克尔化区块链网络的示意图,该交叉默克尔化区块链网络包括三个参与区块链,即主区块链、第一参与相邻区块链和第二参与相邻区块链。
图3A是示出来自参与相邻区块链的区块在图1至图2的主区块链内的交叉默克尔化的部分流程图。
图3B是示出区块的创建的部分流程图。
图4是示出根据本公开的一个实施方案可在区块链网络(诸如图1至图3B的区块链网络)中实现的几何处理不可变性程度的曲线图。
图5是根据本公开的一个实施方案的在计算系统内执行的操作的部分区块示意图,该示意图示出了主区块链和事件日志。
图6是根据本公开的一个实施方案的图5所述计算系统的操作的详细部分区块示意图。
图7是根据本公开的一个实施方案的区块链网络的向量时钟的流程图。
图8是图7的向量时钟的一部分的详细视图。
图9是根据本公开的一个实施方案的提供不可变记录的计算系统的示意图。
具体实施方式
事务记录保持(对商业很重要的一种商业实践)需要至少准确性、可访问性、安全性和可靠性。技术进步不仅响应这些需求,而且推动这些需求。计算机系统(硬件和软件)可在一定程度上促进准确、可访问、安全、可靠的事务记录保持。基于计算机的事务记录保持的多个方面同时带来了相比于早期传统书笔记录保持的新优势和劣势。
本公开涉及提供不可变记录的系统和方法。本公开的实施方案可包括分布式动态变化状态机。本公开可包括在彼此具有互连性/通信的此类机器内部和之间提供可证事件排序的系统和方法。动态变化状态机(例如,计算系统)可例如用于事务记录保持。事务记录保持固有地需要可靠、可证准确性,包括事件(事务事件及其他)发生并记录在计算系统内的次序。硬件或软件故障或者违法者(malfeasor)可不利地影响计算系统内的记录保持的可靠性和可证性。本发明提供了确保相互传送特定事务和计时信息的多个计算系统的记录保持的可靠性和可证性的系统和方法。
异常是指超出计算机所有者/操作员预期的计算机或计算系统内的状态变化一例如但不限于实际或表观计时差异或事件次序记录的偏差以及数据完整性的实际缺陷。(数据完整性的缺陷不一定要求数据自身的缺陷,但的确给数据可靠性和可证性带来了不确定性)。
计算机是指这样的电子设备,其能够执行机器可读指令;适用于存储和/或处理数据;并且包括至少处理器、存储器、输入能力和输出能力。计算机可为完整的计算系统或计算系统的部件。计算机能够执行接收数据、处理数据、存储数据、传输数据和输出数据的计算机功能中的一者或多者。
计算系统是指一个计算机或者一起通信来完成计算机的一个或多个功能的计算机和类似设备集合。
网络是指计算系统之间的互连性的系统或方法及相关设备,而不论拓扑、协议、操作系统或地球物理位置如何。具体地讲,如本文所用的网络包括具有节点之间的多方向同步和异步通信的多路复用网络,其中一个节点表示一个计算系统或特定的计算系统集合,并且其中一个节点可同时与多个其他节点通信,且其中多个节点可同时与多个节点通信。
区块链是指这样的系统或方法,其中数据包含在逻辑区块内,数据的各种区块在逻辑上组织成以相对时间排序的序列,并且每个区块的数据的元素包括识别并将该区块在逻辑上连接到紧接在前的区块的代币。
区块链网络是指至少两个区块链的集合,这些区块链彼此交换一定量的特定数据,由此区块链网络中的每个区块链为区块链网络内的每个其他区块链提供一定程度的事实证明和工作量证明。所交换的特定数据可包括区块链区块。区块链网络可通过包括如本文所公开的交叉默克尔化的单向密码学形式实现。
主区块链通常是指由当事人操作的区块链;然而,在本公开的上下文内,主区块链是本文当作读者就是操作示例性区块链的当事人来讨论的示例性区块链。此外,出于本公开的目的,示例性主区块链也参与区块链网络。
参与相邻区块链是指除主区块链外参与区块链网络但在与主区块链相同的区块链网络内参与的区块链。不论是主区块链还是参与相邻区块链,每个区块链均是参与区块链。
区块是指区块链的成员单元,并且进一步是指在逻辑上汇编在一起的数据集合,且可包括多种固定类型和大小的数据以及非固定类型和大小的数据。换句话讲,区块可包含例如但不限于(1)版本标识符、(2)区块标识符、(3)乱数(nonce)、(4)摘要、(5)父摘要、(6)时间戳和(7)事务数据。项目(1)至(6)可各自具有特定数据类型和大小,而项目(7)可包括不同类型和/或长度的数据的集合。每个区块可包含代币(例如,父哈希),该代币识别该区块为其一个成员的区块链中的紧接在前的区块。
集是指半序集或偏序集,如以下学术文章中所讨论:Deshpande,Jayant V.(1968)″On Continuity of a Partial Order″Proceedings of the AmericanMathematical Society,19(2):383-386(Deshpande,Jayant V.,1968年,″关于偏序的连续性″,《美国数学会志》,第19卷,第2期,第383-386页),Doi:10.1-9-/S0002-9939-1968-0236071-7,该文献全文以引用方式并入本文。
SHA是指安全哈希算法。SHA是以可具有可变长度的字符串作为输入并且产生固定长度的输出的单向密码函数或函数集。SHA的目的是产生输出字符串且无法根据该输出字符串导出输入字符串。出于本公开的目的,提到的SHA涉及依据(或符合)由国家标准技术研究所(NIST)发布于联邦信息处理标准(FIPS)出版物180-4中的美国国家安全局标准的SHA-2家族实现,称为SHA256。SHA256能够采用高达1.844e19个字符以上(2,000,000太字节以上)的可变长度的输入字符串并且产生256位(32字节)输出字符串。在至少一些SHA256实现中,输入字符串可为(空)并且产生输出字符串。SHA256(或另一个SHA)的输出字符串称为摘要。术语″哈希″可与摘要互换使用。本公开的一些实施方案中可使用其他合适的安全密码哈希算法。
摘要是来自安全哈希算法的输出。对于SHA256,摘要的长度为256位或32字节。摘要(也称为哈希)具有256位的固定长度;因此SHA256可产生多达2256个不同摘要(哈希)。摘要的表示的长度可根据计算系统编码方法而变化。例如,十六进制计算系统可将摘要表示为32字符字符串。
双重哈希或双重哈希操作是指″对哈希进行哈希操作″,或生成摘要且随后使用该摘要作为输入字符串或输入字符串的一部分进行另一次哈希迭代以产生新摘要。对于第二次迭代而言,可例如通过序连将从第一次迭代输出的摘要与另一个摘要组合,并且这两个摘要的组合形成第二次哈希迭代的输入。如果另一个摘要不可用,则可使用原本复制第一个输出摘要,并且可将复本摘要组合以形成第二次哈希迭代的输入。
默克尔化(merkelize)或默克尔化(merkelizing)(某些出版物中为″默克尔化(merklize)″或″默克尔化(merklizing)″)是指这样的过程,其中每个数据字符串集合通过SHA来处理,并且每个所得摘要与另一个以同样方式产生的摘要例如通过序连来配对,然后再次通过SHA来处理以产生新摘要,重复该程序直至仅留下单个摘要。如果在任何迭代时存在奇数个摘要(大于一(1)),则复制其中一个摘要并且将复本序连到其原本,然后通过SHA来处理。单个剩余摘要可称为特定数据字符串集合的默克尔根。类似地,默克尔化(merkelized)是指数据已通过默克尔化来处理。
交叉默克尔化是指这样的默克尔化,其中来自一个区块链的呈摘要形式的数据使用另一个区块链的也呈摘要形式的数据来默克尔化。在区块链网络中,每个参与区块链贡献使特定区块链的最新区块与每个其他参与区块链关联的摘要,并且每个参与区块链使针对当前区块接收的所有摘要一起默克尔化。下文进一步详述了交叉默克尔化。
系统时间是指计算系统的计时子系统的时间。习惯作法是将计算系统的计时子系统配置为使其定期与远程计时系统(诸如由美国国家标准技术研究所(NIST)操作的时间服务器)同步。
相对时间是指基于事件发生的表观时间来对事件的排序,或在不遵守严格时间基准的情况下由特定排序机构感知或向特定排序机构报告。出于说明的目的,事件A可在20180601:0101:10.150 UTC时在计算系统CS-A内发生,事件B可在相对于UTC的事件A后400毫秒在计算系统CS-B内发生,并且事件C可在相对于UTC的事件A后1,300毫秒(1.3秒)以及事件B后900毫秒在计算系统CS-C内发生。CS-A和CS-B可向CS-C报告事件A和B的发生,包括事件系统时间。由于网络拓扑的原因,事件B的报告可在事件B发生后700毫秒以及事件C发生前200毫秒到达CS-C。由于远程性和网络延迟的原因,事件A的报告可在事件A发生后2,900毫秒(2.9秒)以及事件C发生后1,600毫秒(1.6秒)到达CS-C。对于CS-C,基于事件C何时在CS-C内发生以及事件A和B的报告何时到达CS-C得出的这些事件的相对时间(次序)为B CA,即使根据UTC的绝对次序为A B C。
冲突要么是指从SHA产生相同摘要(摘要冲突),要么是指同时发生两个或更多个区块的事件(区块冲突)。摘要冲突不论有多么不可能,理论上都可能因输入字符串不同而引起。摘要冲突可因多个计算系统在参与例如区块链网络时彼此同时产生相同摘要(或基本如此)而引起。当参与区块链网络的两个(或更多个)计算系统同时或在具有相同时间戳的情况下产生和/或输送和/或接收区块时,可发生区块冲突。区块链系统包括以防止一个或多个区块链失效或搁置的方式减少这些冲突类型中的每一者的方法。例如,从带有与接收计算系统的最新原生区块相同的时间戳的另一个区块链接收区块的计算系统可简单地忽略传入区块的时间戳并且将传入区块当成在紧接在最新原生区块之后到达。类似地,在原生区块产生的同时从另一个区块链接收区块的区块链参与计算系统可被配置为将传入区块当成在新原生区块之后到达,而不考虑传入区块的时间戳。从两个(或更多个)参与计算系统中的每一者接收区块的区块链参与计算系统可被配置为基于每个区块的时间戳、每个发送区块链的长度(也称为高度)、区块链ID序列化等中的一者来对多个传入区块进行排序。
冲突抗性是指不同输入字符串产生摘要冲突的不可能性。(由于解决区块冲突只是选择如何对区块进行排序的问题,因此区块冲突抗性不是很重要的问题。)由于SHA256可产生多达2256个不同摘要,因此冲突抗性可被认为非常高。在一些计算应用中,理论上可通过人为对可接受的结果摘要施加一个或多个限制来减少SHA256冲突抗性。换句话讲,特定应用可实施具有0值的x连续位的规则,从而有效地减少特定应用可作为来自SHA256的输出来接受的不同摘要的数量。由于SHA是单向密码函数,这种输出限制规则不能用作SHA256的输入参数,而是仅用作后处理实现,从而需要用不同输入字符串迭代地产生摘要直至产生与规则相符的摘要。在至少一些区块链实现中,改变输入字符串可通过以下方式完成:将乱数前置或附加到输入字符串,并且随SHA每次迭代而递增乱数或随机生成或以其他方式获得随机新乱数直至产生与规则相符的摘要。
冲突解决是指否决除一个以外的所有相同摘要而使得每个被否决的摘要均可被弃用的一个或多个系统或一种或多种方法。当弃用一个摘要时,也可能弃用所述被弃用的摘要为其一个元素的区块。
乱数是指任意整数(例如,32位整数)。乱数可为一系列乱数的成员。在一些实施方案中,为每次使用迭代随机地生成或伪随机地生成乱数。在其他实施方案中,可针对每次连续使用迭代将乱数递增到下一个值。可例如但不限于通过算法生成32位整数或通过协议规定的初始值来选择初始乱数(用于区块生成循环的第一次迭代的乱数)。可通过算法再次生成32位整数或通过先前使用的乱数的协议规定的递增来选择下一个乱数(用于相同区块生成循环的后续迭代)。在一个实施方案中,可为每次迭代重新生成乱数,而不必考虑先前乱数的值。
工作量证明是指与施加具有0值的x连续位的要求的输出限制规则相符的摘要。由于SHA不采用输出控制参数,因此可在生成之后将摘要与该规则进行比较。通过迭代地生成摘要直至得到相符摘要来产生符合该规则的摘要。相符摘要可用作产生摘要所花费的计算机处理量(″工作量″)的展示性证据(″证明″)。输出限制规则可类似地需要具有1值的x连续位、或所定义的具有0s和1s特定次序的特定长度的子字符串。更高(更长)的工作量证明要求可产生更低的冲突抗性。
目标难度是指指定形成与工作量证明相符的摘要所受到的特定限制的要素。例如但不受限制,目标难度可指示摘要必须具有十(10)个连续0位,才符合工作量证明摘要。
事务习惯上可指(a)交换,诸如用商品/服务交换商品/服务、用商品/服务交换付款、交换债务、交换约定、交换义务等;和(b)由此记录或以其他方式处理类型(a)的事务的计算机功能;和(c)由此记录类型(b)的事务的计算机功能。作为示例,类型(a)事务可为销售小部件以换取现金;相关类型(b)事务可为因该销售而减少库存中的小部件数量;并且相关类型(c)事务可为与执行库存减量的访问有关的计算机日志条目记录信息(例如,用户身份、登录时间、对库存软件的访问、售出的小部件的减法运算等)。类型(c)的事务还可包括固件或软件的安装、修改或删除的记录,包括图像尺寸、数字签名、许可证、证书等。
应当容易理解,如本文附图总体描述且示出的实施方案的部件可被布置和设计成多种不同的构型。因此,如以下对在附图中所表示的各种实施方案的更详细描述不旨在限制如权利要求所述的本公开的范围,而仅仅是各种实施方案的代表。尽管在附图中呈现了实施例的各种方面,除非明确指示,否则附图不必按比例绘制。
术语″一″和″一种″可被描述为一个,但不限于一个。例如,尽管本公开可叙述″具有一个摘要的集合″,但本公开还设想了该集合可具有两个或更多个摘要。
除非另外指明,否则所有范围包括端点和端点之间的所有数值。
本说明书通篇对″实施方案″或″所述实施方案″的提及意指,结合该实施方案所述的特定特征、结构或特性包括在至少一个实施方案中。因此,如本说明书通篇所述,引用的短语或其变型不一定全部涉及相同实施方案。
图1是根据本公开的一个实施方案的计算系统1内的区块链的区块10的示意图。区块10可包括标头11和有效负荷13。根据本公开的一个实施方案,可通过区块链实现来在计算系统1上产生或以其他方式实现区块10。图1的区块10包括区块标识符(或区块ID)12、区块链版本(或区块链版本标识符)14、区块链标识符(或区块链ID)16、时间戳18、工作量证明区域(或POWR)20(其可被视为数学集合论含义内的集合)、区块摘要30、目标难度40、区块乱数50以及贡献区块摘要的集合60。区块10可包括一个或多个记录摘要70,72,74(例如,默克尔根),包括当前区块10的记录摘要70以及参与相邻区块链的区块的一个或多个记录摘要72,74。记录摘要70,72,74可被视为数学集合论含义内的集合。区块10可包括从其他区块链(例如,参与相邻区块链)接收的区块的一个或多个区块标头80,82。
区块10可包括有效负荷13内的记录的集合90。记录的集合可包括事务记录。事务记录可包括与事务有关的信息的条目。
区块10的标头11可包括区块ID 12、区块链版本14、区块链ID 16、时间戳18、POWR20、区块摘要30、目标难度40、区块乱数50、贡献区块摘要的集合60以及区块10的事务的记录摘要70(默克尔根)。有效负荷13可包括记录的集合90。
区块ID 12可为顺序标识符,其指示区块10所属的区块链中的区块10的相对次序。区块链版本标识符14可指示区块链协议的特定版本,创建区块10的区块链在此区块链协议下操作。时间戳18可为根据对在此创建区块10的区块链进行托管的计算系统1的计时子系统得出的系统时间的指示符。下文将进一步描述POWR 20、区块摘要30、目标难度40以及贡献区块摘要的集合60。区块10内的上述元素的形式和次序可受到区块链协议的支配,创建区块10的区块链在此区块链协议下操作。
计算系统1可为包括一个或多个计算设备的任何适当计算系统,每个计算设备包括一个或多个处理器、一个或多个计算机可读介质、一个或多个电子存储器、一个或多个输入/输出设备和/或一个或多个通信接口。
图1所示的元素12-90的次序只是为了方便读者,并非本公开的特定实施方案的要求。本公开的一个实施方案可具有比本文所述更多或更少的元素。
图2是根据本公开的一个实施方案的交叉默克尔化区块链网络100的示意图,该交叉默克尔化区块链网络包括三个参与区块链,即主区块链200、第一参与相邻区块链300和第二参与相邻区块链400。主区块链200包括根据本公开的一个实施方案的一系列区块,其中识别了区块230。还在区块链网络100和主区块链200的上下文中示出了图1的区块10。尽管图2描绘了区块链网络100中的三个参与区块链200,300,400,但根据本公开的区块链网络可具有更少(但至少两个)或更多参与区块链。此外,区块链网络100可为多路复用网络。
主区块链200的区块230包括至少独特区块ID 212、区块链版本214、区块链ID216、时间戳218以及数据区域226。独特区块ID 212可类似于(且数值方面不同于)区块10的独特区块ID 12。区块链版本214可类似于区块10的区块链版本14。区块链ID 216可类似于区块10的区块链ID 16。时间戳218可类似于(且数值方面不同于)区块10的时间戳18。数据区域226可包括与图1的区块10的其他元素类似的元素,并且可包括图1中未识别的元素。识别了第一参与相邻区块链300的区块330,其具有可与主区块链200的区块230大体上类似的元素312,314,316,318,326。识别了第二参与相邻区块链400的区块430,其具有可与主区块链200的区块230大体上类似的元素412,414,416,418,426。
在相应区块链200,300,400的最低方位处表示了区块230,330,430中的每一者,但这仅是为了便于参考。区块230,330,430可各后接有每个区块230,330,430的相应区块链200,300,400内的一系列区块。作为示例,主区块链200的区块230被示出为具有后接的区块10P,区块10是其随后后接的区块,并且区块10被示出为具有进一步后接的区块10N。主区块链200的后接区块10P,10,10N等中的每一者具有与区块230的时间戳218类似的时间戳。每个后接区块10P,10,10N的时间戳被示出为记录相继更晚的时间。在主区块链200内,每个后接区块中记录的时间戳形成至少主区块链200内的事件的逻辑次序。换句话讲,从生成区块的计算系统的系统时间导出主区块链200内的每个区块的时间戳。
参与相邻区块链300,400类似地被表示为具有相继更晚后接的区块330P,430P,并且在其他方面大体上且功能上类似于主区块链200。与主区块链200的后接区块时间戳一样,每个参与相邻区块链300,400的后接区块时间戳形成相应区块链300,400内的不可变次序序列基准。
主区块链200可驻留在图1的计算系统1内,区块链200从该计算系统导出每个后接区块时间戳的时间。每个参与相邻区块链300,400可类似地驻留在与主区块链200的计算系统1类似的相应不同计算系统内。每个参与相邻区块链300,400可从相应参与相邻区块链300,400驻留在其中的计算系统(类似于区块链200的计算系统1)的系统时间导出相应区块链300,400的每个后接区块时间戳的时间。如本领域普通技术人员可充分理解的,每个计算系统(类似于主区块链200的计算系统1)可具有不同系统时间设置和/或机制。
当每个参与区块链200,300,400完成每个后接区块时,该区块被传送到至少一个参与相邻区块链。例如,第一参与相邻区块链300的每个区块可在324处传送到至少主区块链200,并且第二参与相邻区块链400的每个区块可在每个区块被创建时在422处传送到至少主区块链200。主区块链200在参与相邻区块链300,400内的区块的产生相对时间方面可为不可知的。当参与相邻区块链300,400的每个此类区块在324,422处传送到主区块链200时,主区块链200可获知区块链200从参与相邻区块链300,400意识到该区块的存在的相对时间。更广泛地讲,当区块链200,300,400中的每一者创建区块(例如,分别创建区块230,330,430)并且在区块链网络100内的其他区块链200,300,400间传送该区块时,区块链200,300,400中的每一者可在112处记录每个后接区块的创建并且可在114处以时间推进110序列对这些区块进行排序。换句话讲,每个区块链200,300,400可获知区块链网络100中的每个区块链200,300,400的每个区块的创建(或创建通信)的时序114。参见下面的图5至图6。
现在参考图1和图2。在本示例中,图1的区块10是图2中的主区块链200的成员。区块ID 12对于区块10可为独特的。换句话讲,区块链中的每个区块可具有独特区块ID 12。区块链版本14可识别主区块链200在产生区块10时使用的区块链协议的特定实现。区块链ID16可识别区块10为其一个成员的特定区块链200。区块链ID 16仅是为了方便起见而被示出为4字节十六进制表示,并非本公开的要求。可按多种不同方式形成区块链ID 16,前提条件是区块链ID 16对于每个区块链可为独特的。时间戳18可报告产生区块10的系统时间。时间戳18可采用例如但不限于以下形式:Unix纪元时间戳、或与根据本公开的区块链协议的实施方案相符的任何其他形式。
贡献区块摘要的集合60包括来自参与区块链网络100的每个区块链200,300,400的最近期区块摘要66,64,62。在图1的示例中,区块摘要集合60包括第一参与相邻区块链300的最近期区块的区块摘要62、第二参与相邻区块链400的最近期区块的区块摘要64、以及主区块链200中紧接在区块10之前的最近期区块的区块摘要66。
通过使区块摘要62和区块摘要64默克尔化来创建区块摘要30。换句话讲,将区块摘要62,64(用于来自参与相邻区块链的区块)序连以便形成单个64字节字符串,然后通过SHA对该字符串进行处理。通过SHA使区块摘要62,64默克尔化的输出是完全包括区块摘要30的32字节字符串。由于每个区块摘要62,64,66由不同区块链200,300,400贡献,因此这些区块摘要62,64,66的默克尔化具体是交叉默克尔化。在具有超过三个参与区块链的区块链网络中,区块摘要集合60可包括来自每个参与区块链的区块摘要,并且可使每个此类区块摘要交叉默克尔化,且产生区块摘要的默克尔根以生成区块摘要30。区块10包括区块摘要66,该区块摘要以与主区块链200之前和之内的最近期区块10P的一部分相同的方式产生。区块摘要66可将区块10连接到主区块链200内的最近期先前创建的区块10P。类似地,区块10的区块链200的协议可将区块摘要30传递到主区块链200中的紧密后接的区块10N。这样,区块10之后的区块10N连接到区块10,并且区块10连接到区块10之前的最近期区块10P。区块的该互连在整个主区块链200中是固有的,并且用于将每个区块连接到其直接前驱和后继。类似地,区块摘要62可能已从参与相邻区块链300传递到主区块链200,并且区块摘要64可能已从参与相邻区块链400传递到主区块链200。与将区块10连接到主区块链200内的紧接在前的区块10P类似,这会将区块10连接到每个参与相邻区块链300,400内的紧接在前的区块330P,430P
区块10的区块链200的协议同样可引导区块摘要30向每个参与相邻区块链300,400的传递222,224,使得每个参与相邻区块链300,400的紧密后接的区块330N,430N可连接到主区块链200的区块10。这样,每个参与区块链200,300,400连接到每个其他参与区块链200,300,400。更具体地讲,主区块链200通过以下方式直接连接到每个参与相邻区块链300,400:直接从每个参与相邻区块链300,400接收区块330P,430P的先前区块摘要62,64;并且将区块摘要30发送到每个参与相邻区块链300,400。参与相邻区块链300,400作为以下的结果而彼此间接连接:每个参与相邻区块链300,400将区块摘要(类似于摘要62,64)发送到主区块链200并且从主区块链200接收其他参与相邻区块链400,300的区块摘要(类似于摘要64,62)。每个参与区块链200,300,400的区块链协议可使这些摘要(类似于62,64,66)交叉默克尔化为每个参与区块链的下一个后接区块。该交叉默克尔化过程可在整个区块链网络100中激增,从而以密码和独立可验证的方式使参与区块链200,300,400互连。通过分享(即,发送区块摘要30)到区块链网络100中的其他参与相邻区块链300,400,而使不可变性(即,由区块链实现的数据的不可变性)与参与区块链200,300,400的共识(即,添加区块)解耦。
图3A是根据本公开的一个实施方案的示出参与相邻区块链300,400的区块330P和430P与图1至图2的主区块链200的交叉默克尔化的部分流程图。图3B是示出区块10的创建的部分流程图。参见图3A和图3B,主区块链200中区块10P可紧接在区块10之前。可在701处将区块10P的区块摘要66直接传递到区块10。区块摘要66可用作前面区块10P的基准,该区块紧接在区块10之前。可将参与相邻区块链300的最新前面区块330P传送(参见图2中的324)到主区块链200。可在702处提取区块330P的摘要62并且将其直接传递到区块10。类似地,可将参与相邻区块链400的最新前面区块430P传送(参见图2中的422)到主区块链200,并且在703处提取区块摘要64并将其直接传递到区块10。
还可在704处从前面区块10P提取目标难度40。在一个实施方案中,还可从参与相邻区块链300,400的区块330P,430P提取目标难度40以便与前面区块10P的目标难度40进行比较,作为在将来自参与相邻区块链300,400的数据包括于区块10中之前的附加有效性检查。
可在710,711处将来自区块330P的区块摘要62以及来自区块430P的区块摘要64序连在一起以形成输入字符串29。可将该序连中的出现次序设定为区块链网络100的区块链协议的特定实现的要求。然后可在712处将输入字符串29传送到SHA 600,并且通过该SHA进行处理以在713处生成区块10的区块摘要30。可在764处(通过R4)将区块摘要30传递到区块10。在随后的阶段,当主区块链200生成后接的区块10N时,区块摘要30可作为区块10的元素传递到区块10N,并且可用作从区块10N返回到区块10的基准,这包括作为前面区块10P的基准的区块摘要66。将每个先前区块的区块摘要包括于后接区块中的该程序形成了区块链的每个区块之间的引用连接性链以便建立区块链内的区块次序的不可变记录。区块链内的区块的该不可变排序固有地建立了特定区块链及因此区块链网络100中的每个参与区块链的每个区块中包括的数据的不可变记录。另外,不可变性与单独区块链对参与节点添加区块的共识的任何要求解耦。
每个区块链200,300,400可利用乱数源500,每个参与区块链200,300,400具有其自身的乱数源500。乱数源500可以是为每次迭代生成随机乱数的计算过程,或可以是为第一次迭代生成初始乱数、之后为每次连续迭代递增或以其他方式改变乱数的计算过程。可从乱数源500接收候选乱数510。选择第一候选乱数510的方式可由参与区块链200,300,400的区块链协议规定,并且可由区块链网络100的协议定义。可在720,721处将候选乱数510和区块摘要30序连在一起以形成输入字符串520。然后可在730处由SHA 600处理输入字符串520以在731处基于区块摘要30来产生候选工作量证明摘要(POW摘要)32。然后可在740处将候选POW摘要32与目标难度40进行在550处的比较。换句话讲,通过″对哈希进行哈希操作″来产生POW摘要32,其中待进行哈希操作的哈希是区块摘要30,因此POW摘要32是双重哈希。
目标难度40在本示例中被示出为十六进制值;然而,本公开既不需要显式表达式0xFFFF0000,也不需要十六进制格式。目标难度40可按这样的形式表达:其向区块链网络100的每个区块链200,300,400传输在所得摘要的大端或小端出现的特定数量的具有″关″值的连续位(或具有″0″值的字节)以便符合POW。在另一个实施方案中,可使目标难度40结构化为需要特定数量的具有″开″值的连续位(或具有″1″值的字节)。在另一个实施方案中,目标难度40可需要跨越候选POW摘要32的指定部分的″关″和″开″位(″0″和″1″字节)的特定序列。
如果候选POW摘要32在552处不符合目标难度40,则在590处弃用候选POW摘要32和候选乱数510并且区块链将R1返回到乱数源500。选择新的候选乱数510。新的候选乱数510的选择方式可由参与区块链200,300,400的区块链协议规定,并且可由区块链网络100的协议定义,例如但不限于如下方式:始终随每次迭代而递增乱数值或始终随每次迭代而递减。可将新的候选乱数510序连到区块摘要30,接着通过SHA 600进行处理,然后在550处进行比较以确定是否符合目标难度40。这些步骤可重复地迭代且每次迭代使用新的候选乱数510,直至产生符合目标难度40的候选POW摘要32。
如果候选POW摘要32在550处符合目标难度40,则在558处将候选POW摘要32传递到粗略测试560以确定是否需要任何其他POW摘要来完成区块10POWR 20。由于当前候选POW摘要32是当前区块10的结果,因此需要至少一个附加POW摘要。在当前示例中,需要两个附加POW摘要。由于这个原因,″上一个摘要″测试560在562处失败。可在760处将当前候选POW摘要32放入临时存储器563中,并且区块链200将R2返回到当前候选乱数510。在723处通过以下方式重新使用产生成功候选POW摘要32的候选乱数510:将候选乱数510与摘要62序连(722)以产生输入字符串530。可在732处将输入字符串530传递到SHA 600以在733处产生候选POW摘要22。然后在741处处理候选POW摘要22以与目标难度40进行比较。如果当前候选POW摘要22在550处不符合目标难度40,则在552,590处弃用当前候选POW摘要22和候选乱数510。此外,将先前候选POW摘要32在750处从临时存储器563移除并且在590处弃用。然后区块链200返回R1以选择新的候选乱数510。
如果候选POW摘要22在550处符合目标难度40,则可在760处将候选POW摘要22连同先前候选POW摘要32一起存储在临时存储器563中。区块链继续迭代遍历乱数选择R1,R2直到已为主区块链200和参与相邻区块链300,400等的每个最新区块摘要66,62,64等生成符合目标难度40的候选POW摘要32,22,24等。一旦已为每个区块摘要66,62,64等生成与目标难度40相符的候选POW摘要32,22,24等,就可在566处从临时存储器563检索候选POW摘要32,22,24等中的每一者以在762处将其放入区块10的POWR 20中。主区块链200还可在766处将成功候选乱数510作为区块乱数50存储在区块10中。
一旦已生成区块10,主区块链200就可将区块10传递到参与相邻区块链300,400中的每一者。区块10包括区块链200从相应参与相邻区块链300,400中的每一者的上一个先前区块330P,430P接收到的区块摘要62和64。换句话讲,区块10的元素是来自第一参与相邻区块链300上一个先前区块330P的摘要62。因此,从参与相邻区块链300接收区块摘要62,然后将该区块摘要发送回该参与相邻区块链,这允许参与相邻区块链300检查或以其他方式监测其自身存储的数据和/或事务的完整性。同样,从第二参与相邻区块链400接收区块摘要64并将该区块摘要发送回该第二参与相邻区块链,从而允许第二参与相邻区块链400验证或以其他方式监测所存储的数据和/或事务的其自身完整性。区块10的POWR 20向参与相邻区块链300,400中的每一者提供区块10的有效性的保证,从而确保在主区块链200处接收到区块摘要62,64时参与相邻区块链300,400中的每一者各自接收相应区块摘要62,64。类似地,区块10向参与相邻区块链300,400中的每一者传输区块摘要30。参与相邻区块链300,400中的每一者将区块摘要30返回到主区块链200且下一个后续区块来自每个参与相邻区块链300,400。这允许主区块链200向其自身认证区块链200的真实性,并因此认证区块链200的每个区块的事务记录的真实性。此外,由于主区块链200向参与相邻区块链300,400中的每一者传输成功候选乱数510,因此参与相邻区块链300,400中的每一者可使用所公开的成功候选乱数510通过SHA来处理每个先前区块摘要62,64,66,以确保已根据区块链协议生成POWR并且每个区块摘要62,64,66正确。这样,即使每个参与区块链200,300,400未获知每个其他参与区块链200,300,400的实际数据,每个参与区块链在每个参与区块链200,300,400的数据的完整性(包括事务和摘要的次序)方面也可具有高置信度。这会为每个区块链200,300,400创建不可变记录而不必事先需要信任且除了参与区块链网络100之外无需依赖许可。换句话讲,数据的不可变性与参与区块链200,300,400的共识解耦。
此外,每个参与区块链200,300,400独立地验证候选乱数510和先前区块摘要(类似于图1、图3A的区块摘要62,64,66)产生与目标难度相符的摘要(类似于图3A的POW摘要22,24,32)的能力使参与区块链200,300,400中的每一者能够识别与参与区块链200,300,400之一的数据有关的异常。换句话讲,如果参与相邻区块链300使用主区块链200所报告的候选乱数510来执行区块摘要(类似于区块摘要62,64,66)的验证,并且由该验证过程得到的摘要中的任何一者未能匹配主区块链200所报告的对应POW摘要,则参与相邻区块链300可向每个参与区块链200,300,400指出摘要异常。这允许在引起异常的事件的片刻内且在不透露所涉及的实际数据的情况下检测出区块链网络100的参与区块链200,300,400中的数据异常。另外,识别该异常的参与区块链200,300,400还可将先前已知的正确区块数据与所识别的异常数据捆绑在一起,并且将违规行为证明传播到每个其他参与区块链200,300,400,包括存在该异常的该区块链200,300,400。该异常的该交叉报告或违规行为证明可使每个参与区块链200,300,400能够让其自身不受不良数据的可能注入的影响,并且还为每个计算机系统所有者/操作员提供审计跟踪以便只消片刻就能隔绝异常数据的发生,而不论来源如何。例如,在最坏情况场景中,如果参与相邻区块链400在来自参与相邻区块链300的区块中检测到异常数据,并且操作参与相邻区块链300的实体的一个或多个计算系统受到如此严重损坏而使计算系统所有者/操作员不能通过内部手段定位异常,则来自任何其他参与区块链200,400的数据可实现异常事件的重建并帮助校正和减轻。
上述交叉默克尔化过程也可称为相互合并挖掘,因为每个参与区块链200,300,400同时产生区块,而无需依赖于其他参与区块链200,300,400中的每一者,同时结合可由其他参与区块链200,300,400中的每一者给出的任何区块。
图4是示出根据本公开的一个实施方案可在区块链网络(诸如图2至图3B的区块链网络100)以及非网络化区块链中实现的几何处理不可变性程度的曲线图150。对于本示例而言,不可变性程度是指初始区块摘要在给定子区块内的迭代嵌套程度。换句话讲,初始区块的不可变性程度为初始区块内的1、第二区块后的2、第三区块后的4、第四区块后的8等。在网络化区块链中,初始区块的不可变性程度强劲得多地增加,因为特定区块链的第二区块具有通过与参与相邻区块链交叉默克尔化来嵌套的初始区块。例如,在具有三个参与区块链(诸如图2至图3B的主区块链200)的区块链网络中,初始区块具有第二区块后的6、第三区块后的21、第三区块后的44等不可变性程度。多重嵌套、特别是逐个集合嵌套进一步增强了不可变性。
曲线图150的垂直刻度152表示可在本公开的各种实施方式中实现的不可变性程度。曲线图150的水平刻度154表示在各种实施方式中创建的区块的数量。值得注意的是,曲线图150的垂直刻度152示出了每个刻度标记有三个数量级的不可变性增加的可视化,使得曲线图150垂直地跨越0至1090(1之后是910s)。更具体地讲,曲线图150反映了不可变性几何级数的总趋势,但不限于此。
数据线160表示最开始创建的100个区块的非网络化区块链的近似不可变性程度。数据线162表示参与三个参与区块链的区块链网络的区块链(类似于图2至图3B的主区块链200)的近似不可变性程度。数据线164和166分别表示五个和八个参与区块链的区块链网络中的区块链的不可变性程度。由于垂直刻度152以数量级呈现,数据线160,162,164,166看起来像描绘的是纯线性分段。作为参考,在创建第50个区块后数据线160(表示非网络化区块链)的不可变性程度为2.815×1014,并且数据线162(表示三个区块链的区块链网络)的不可变性程度为1.994×1023、或非网络化区块链的7.084×108倍。在100个区块后,由数据线162表示的区块链的不可变性程度为由数据线160表示的非网络化区块链的不可变性程度的4.517×1017倍。在100个区块后,由数据线166表示的八个区块链的网络中的区块链的不可变性程度为非网络化区块链的大约2.152×1059倍。
图5是根据本公开的一个实施方案的在计算系统(诸如图1至图3B的计算系统1)内执行的一些操作的部分区块示意图,包括主区块链200和事件日志280。图5的元素大体上类似于图2的对应元素。示出了主区块链200及第一参与相邻区块链和第二参与相邻区块链300,400分别的区块230,330,430以供参考。还示出了时间进度110以供参考,并且该时间进度类似于图2的时间进度110。主区块链200可在计算系统1内操作或由该计算系统操作。除了主区块链200之外,计算系统1还可在持续进行的基础上生成事件日志280。图5的至少一些通信可在与图2相同的网络(其可为多路复用网络)内泄露。
事件日志280包括事件记录的集合,其在图5中由事件日志280的示意图内的一系列点值表示。事件记录284被示出为放大的点值,并且可以是对计算系统1的初始启动进行记录的事件日志280中的事件记录。事件记录284可包含初始序列标识符(Seq.ID)286,其在此处被示出为″0000″以表示事件日志280中的第一个且初始的事件记录。事件记录284还可包括表示事件的逻辑所有者的标识符288。对于事件记录284而言,标识符288被示出为″0000″以表示例如但不限于计算系统1的主操作系统。每个事件记录还可包括如下所述的可执行项。
可将每个事件记录(由沿着事件日志280的一系列点值表示)以单个顺序系列输入到事件日志280中。虽然事件日志280的每个事件记录可包括时间戳(未示出),但事件记录中的这种条目可能是为了照顾执行事件日志280的手动检查的计算机操作员(未示出)的利益。事件日志280的条目及事件日志280自身可为时间不可知的。Seq.ID 286为″0000″的初始事件记录之后的每个事件记录可递增1。换句话讲,紧接在初始事件记录284之后的事件记录可具有″0001″的Seq.ID。
作为示例,与图5的区块230类似的区块230被示出为已由主区块链200生成并且具有事件日志280中的相关事件记录211。事件记录211具有″0004″的Seq.ID 213,从而对于本示例而言,表明这是事件日志280中的第五个顺序事件记录。事件记录211包括″A01″的事件标识符(″事件ID″)215,从而指示事件记录211在逻辑上由主区块链200的区块230拥有。为便于参考,事件ID 215的″A01″值将事件记录211与图5中的主区块链200的区块230相关联,并且类似地与图2中的相同区块230相关联。在后续点,主区块链200被示出为已生成后续区块240。当生成区块240时,主区块链200在242处产生事件日志280中的事件记录244。事件记录244包括″0009″的Seq.ID 246和″A02″的事件ID 248。事件ID 248″A02″将事件记录244的逻辑所有者识别为主区块链200的区块240。Seq.ID 246″0009″指示事件记录211是事件日志280中的第十个事件记录。
在主区块链的区块240的创建之后,示出了在第一参与相邻区块链300中生成的区块340。参与区块链300在341处将区块340(或区块340的密码哈希(例如,POW哈希、区块哈希和/或记录哈希)和任何对应乱数)传递到主区块链200。主区块链200在342处创建事件日志280中的事件记录344。事件记录344包括″000a″的Seq.ID 346和″B02″的事件ID 348。Seq.ID 346″000a″指示事件记录344是事件日志中的第十一个事件记录。事件ID 348″B02″指示事件记录344的逻辑所有者是第一参与相邻区块链300的区块340。
在区块240和340的创建之后,第二参与相邻区块链400可生成区块440。第二参与相邻区块链400在441处将区块440(或区块440的密码哈希(例如,POW哈希、区块哈希和/或记录哈希)和任何对应乱数)传递到主区块链200。主区块链200在442处创建事件日志280中的事件记录444。事件记录444包括″000b″的Seq.ID 446和″C02″的事件ID 448。Seq.ID446″000b″指示事件记录444是事件日志中的第十二个事件记录。
在一个实施方案中,由第一区块的创建所产生的事件日志280中的条目集合可被默克尔化并包括在第二区块中。换句话讲,使用图5的主区块链200作为一个示例,从区块240的创建开始且Seq.ID 246及随后Seq.ID的值为0009至000b(包括端值)的事件日志280中的条目可被一起默克尔化并包括在主区块链200的下一个区块250中。本文用于Seq.ID246,286,346,446的值仅仅是示出每个连续事件记录244,344,444具有相对于彼此递增的Seq.ID 246,346,446的示例。特定事件日志280可包括特定条目244,344,444之间的附加条目,这些附加条目与在主区块链200中创建区块及主区块链200从第一参与相邻区块链和第二参与相邻区块链300,400接收区块相关联。
虽然本示例示出了事件日志280仅包括与区块链区块相关联的条目,但在另一个实施方案中,事件日志也可包括其他条目。例如,事件日志可包括与以下事件中的任一者相对应的事件记录:区块链中记录的多种事件,包括可引起或以其他方式提示采取动作的可执行事件。类似地,事件ID 248,348,448的值″A02″、″B02″和″C02″是为了便于参考,不一定反映每个相应事件记录244,344,444中的具体事件或事件ID值。换句话讲,每个区块链区块相关事件记录244,344,444可包括与特定相关区块链区块有关的多个数据项,诸如作为示例但不限于区块ID、区块摘要、区块时间戳、区块链ID等。
图5示出了托管主区块链200的计算系统1的事件日志280。每个参与区块链200,300,400等同样可具有事件日志280,其中每个此类事件日志独立于每个其他事件日志。
此外,由于网络延迟或类似问题,有可能的是在本示例中,参与相邻区块链300,400的区块可延迟到达主区块链200,从而引起事件日志的技术性错序,但是由于不存在某种其他因素,该延迟将是无关紧要的。此外,向量时钟(下文所述)可校正技术性错序。换句话讲,在计算机速度下,可例如在时间(1)时在主区块链200处创建区块,而可能已在时间(0)时创建了任一参与相邻区块链300,400处的区块,其中时间(1)为例如时间(0)后的500毫秒,但来自参与相邻区块链300或400的区块可在时间(2)时到达主区块链,其中时间(2)为时间(0)后的800毫秒以及时间(1)后的300毫秒。由于事件日志280是时间不可知的并且根据所接收到的次序顺序地建立条目,因此在逻辑上与参与相邻区块链300或400的区块相关联的区块的事件记录在顺序上处于主区块链200的区块的事件记录之后,即使技术上是在参与相邻区块链300,400的区块之前创建主区块链200的区块。考虑到向量时钟(下文所述)可校正事件记录次序中的任何错误,事件日志中的两个连续或几乎连续的条目的时间差可能无足轻重。
图6是根据本公开的一个实施方案的图5所述计算系统1的操作的详细部分区块示意图。图6中的细节区域对应于事件日志280的区域,该区域与上文所讨论的区块240,340,440有关,且具有根据本公开的一个实施方案的粗略时间验证实现。主区块链200被示出为计算系统1内的逻辑过程。计算系统1包括操作主区块链200(或以其他方式实现主区块链200的协议)的所有逻辑过程,并且还包括事件日志280和基于时间的验证过程900。还示出了第一参与相邻区块链和第二参与相邻区块链300,400。
基于时间的验证过程900基本上以时间不可知的方式操作,因为基于时间的验证过程900不受计算系统1的时间子系统的限制或控制。基于时间的验证过程900发送并接收数据和请求以实现并记录时间戳集合的比较,如下文进一步解释。
主区块链200被示出为已生成区块链区块240。区块240可包括区块时间戳(未示出,但参见例如图1中的18),其指示创建区块240的系统时间。主区块链200可在910处与计算系统1的基于时间的验证过程900通信。更具体地讲,主区块链200可在910处向基于时间的验证过程900传送与新创建的区块240有关的多个数据,诸如区块ID、区块时间戳、区块摘要等。基于时间的验证过程900可在922处以电子方式接触第一时间服务器920,从而向该时间服务器发送签署的传输(包括所提供的与新创建的区块240有关的至少一些数据),并且请求第一时间服务器920用签署的时间证书(未示出)作出响应。从第一时间服务器920请求当前时间的方法可为适用于从公共时间服务器获得当前时间的任何适当且标准化的方法或协议,诸如非对称密钥网络时间协议。第一时间服务器920可在922处通过相同通信介质作出响应并发送回签署的传输,并且在第一时间服务器920处包括当前时间的签署的证书。
基于时间的验证过程900在接收到从第一时间服务器920返回的签署的传输以及签署的时间证书后,可重复该过程,从而在932处将签署的传输连同对签署的时间证书(未示出)的请求一起发送到第二时间服务器930。第二时间服务器930可通过相同通信介质返回与新创建的区块240有关的数据的签署的传输以及签署的时间证书(未示出),该签署的时间证书指示第二时间服务器930处的当前时间。然后基于时间的验证过程900可比较第一时间服务器920和第二时间服务器930所报告的时间以确定时间报告的差异是否落在区块链协议内建立的可接受极限以内。如果该差异超过区块链协议建立的极限,则基于时间的验证过程900可重新查询任一个或两个时间服务器920,930,或可将请求发送到与时间服务器920,930类似的一个或多个附加时间服务器。
如果第一时间服务器和第二时间服务器920,930所报告的时间之间的差异在区块链协议的极限以内,则基于时间的验证过程900可将区块时间戳18与从第一时间服务器和第二时间服务器920,930接收到的签署的时间证书进行比较。如果区块时间戳18与来自第一时间服务器和第二时间服务器920,930的签署的时间证书之间的差值在如区块链协议所建立的时间差异容限以内,则基于时间的验证过程900向主区块链900发送签署的传输(其包括与新创建的区块240有关的数据)以及签署的时间证书和指示适当基于时间的验证的信号(未示出)。在另一个实施方案中,基于时间的验证过程900可在242处直接引起事件日志280中的事件记录244的创建。在另一个实施方案中,基于时间的验证过程900可触发计算系统1内操作的另一个过程以在242处引起事件记录244的创建。
与新创建的区块240有关(或在逻辑上由该新创建的区块拥有)的事件日志280中的事件记录244可包括Seq.ID 246、指示事件记录244的逻辑所有者的事件ID 248、区块时间戳249(类似于图1的区块时间戳18)以及从第一时间服务器和第二时间服务器920,930接收到的签署的时间证书中记录的时间。
第一参与相邻区块链300被示出为已在主区块链200生成区块240后的某时间生成区块340。可在341处将区块340发送到主区块链200。在910处将区块340的接收传送到基于时间的验证过程900。基于时间的验证过程900可在924,934处查询如上所述的第一时间服务器和第二时间服务器920,930。如果区块340的区块时间戳(类似于图1的区块时间戳18)和从时间服务器920,930接收到的签署的时间证书之间的差值落在区块链协议差异极限以内,则在342处在事件日志280中建立事件记录344并且该事件记录包括与区块340相关联的数据。事件记录344可包括事件记录344的Seq.ID 346、指示事件记录344的逻辑所有者为区块340的事件ID 348、区块340的区块时间戳349以及响应于与区块340有关的查询而从时间服务器920,930接收到的时间954,964。
第二参与相邻区块链400被示出为已在主区块链200生成区块240后的某时间生成区块440。可在440处将区块440发送到主区块链200。在910处将区块440的接收传送到基于时间的验证过程900。基于时间的验证过程900可在926,936处查询如上所述的第一时间服务器和第二时间服务器920,930。如果区块440的区块时间戳(类似于图1的区块时间戳18)和从时间服务器920,930接收到的签署的时间证书之间的差值落在区块链协议差异极限以内,则在442处在事件日志280中建立事件记录444并且该事件记录包括与区块440相关联的数据。事件记录444可包括事件记录444的Seq.ID 446、指示事件记录444的逻辑所有者为区块340的事件ID 448、区块440的区块时间戳449以及响应于与区块440有关的查询而从时间服务器920,930接收到的时间956,966。
图7是根据本公开的一个实施方案的包括三个参与区块链(未示出)的区块链网络(类似于图2的区块链网络100和参与区块链200,300,400)的向量时钟800的流程图,该向量时钟800包括事件日志801,811,821。事件日志801,811,821仅作为示例而非作为限制,并且还可表示图2的区块链网络100的参与区块链200,300,400的事件日志。事件日志801可表示图5至图6的事件日志280,其可类似于图2的主区块链200的事件日志。同样,事件日志811和821可分别类似于图2、图5至图6的第一参与相邻区块链和第二参与相邻区块链300,400的事件日志。结合图7描述的至少一些通信可在与图2、图5相同的网络(其可为多路复用网络)中泄露。
对于图7的示例而言,与事件日志801相关联的第一区块链可为开始并创建事件日志801中的启动事件记录802的第一区块链。可生成第一区块并且由此产生事件记录803。对于本示例而言,出于该示例的目的,与图2的第一参与相邻区块链类似的第二区块链可在事件日志801的区块链后开始,并且可与事件日志811相关联。事件日志811可包括表示事件日志811(及其相关联的区块链)的启动的事件记录812。可在827处将事件日志811的事件记录812传送到事件日志801并插入到事件日志801中。可生成与事件日志811相关联的区块链的第一区块并且由此创建事件记录813。可在828处将事件记录813传送到事件日志801并插入到事件日志801中。对于到目前为止的示例而言,第一事件日志811的事件记录可包括第一区块链的启动事件记录802、第一区块链的第一区块事件记录803、第二区块链的启动事件记录(812)以及第二区块链的第一区块(813)。可按发生次序且对于时间不可知的方式将这些事件记录存储在事件日志801中。
出于该示例的目的,与图2的第二参与相邻区块链类似的第三区块链可启动并生成事件日志821中的启动事件记录822。可在834处将启动事件记录822传送到事件日志801并插入到事件日志801中。第三区块链可生成第一区块和第一区块事件记录823。可在836处将第一区块记录事件823传送到事件日志801并插入到事件日志801中。
就到目前为止描述的点而言,第二区块链的事件日志811仅包括启动事件记录812和第一区块事件记录813;并且第三区块链的事件日志821仅包括启动事件记录822和第一区块事件记录823。在事件日志811开始后的某个点,事件日志811可到达前置点830。前置点830可表示事件日志811至事件日志801的、对事件日志801接收到事件日志811的启动事件记录812之前的事件日志801的所有事件记录的请求。可在832处将事件日志801的任何事件记录(诸如启动事件记录802和第一区块事件记录)插入到事件日志811中,以便按照它们在事件日志801中输入且与在前置点830之前生成的所有事件记录有关的次序将事件记录802,803包括在事件日志811内。换句话讲,在与前置点830相关联的动作之后,事件日志811可依次包括事件日志801的启动事件记录802和第一区块事件记录803以及事件日志811的启动事件记录812和第一区块事件记录813。
类似地,事件日志821可到达前置点840。事件日志821可请求并接收事件日志801中的所有事件记录,并且可在842处插入从事件日志801接收到的事件记录,使得事件日志821可按照由事件记录802,803,804,812,813,822,823表示的事件发生的次序包括从事件日志801的启动事件记录802开始的所有事件日志事件记录的序列。
当区块链网络的每个区块链生成新区块时,可将后续区块事件记录输入到相关联的区块链的事件日志中,并且可将后续区块事件记录传送到区块链网络中的其他区块链的事件日志。作为示例但不受限制,可在相关联的区块链创建第一后续区块的同时,将后续区块事件记录804插入到事件日志801中。然后可在850处将事件记录804传送到事件日志811。在本示例中,可在事件日志821到达前置点840的同时,将事件记录804传送到事件日志821。事件日志821可生成后续区块事件记录823并且在836处将事件记录823传送到事件日志801。还可在852处将事件记录823传送到事件日志811。
当与事件日志801相关联的区块链生成新的后续区块时,按照创建次序在事件日志801中创建新的后续区块事件记录805,806,807(及随后区块事件记录直到无限)。将这些事件记录805,806,807在855,861,867处传送到事件日志811,并且在856,862,868处传送到事件日志821以便按照它们发生的次序包括于每个事件日志811,821中。同样,事件日志811生成新的后续区块事件记录814,815,816(及随后区块事件记录直到无限),并且在853,859,865处将这些事件记录814,815,816中的每一者传送到事件日志801以便按照两个事件日志801,811的各种事件发生的次序包括在事件日志801中。还将事件814,815,816从事件日志801传送(此处被示出为在854,860,866处传送)到事件日志821以便按照事件日志801,811,821的各种事件中的每一者发生的次序包括在事件日志821中。事件日志821还生成与和事件日志821相关联的区块链的后续新区块相对应的新的后续区块事件记录824,825,826,并且在857,863,869处将事件记录824,825,826传送到事件日志801。还将事件记录824,825,826传送(图7中被示出为由事件日志801在858,864,870处传送)到事件日志811。在生成时传送每个事件记录805...,815...,824...,使得每个事件日志801,811,821可包括由区块链网络内的所有区块链创建的所有区块事件记录的全面序列。
图8是图7的向量时钟800的一部分的详细视图。示出了与(事件日志801的)事件记录806、(事件日志811的)815和(事件日志821的)826相对应的事件日志801,811,821的一部分。在图7中,为便于说明,事件记录815的通信被示出为从事件日志811前进到事件日志801,并且从事件日志801前进到事件日志821。类似地,事件日志821的事件记录825被示出为从事件日志821传送到事件日志801,并且从事件日志801传送到事件日志811。另外,利用从一个事件日志到第二事件日志并从第二事件日志到第三事件日志的多步通信,每个事件日志801,811,821可与每个其他事件日志801,811,821直接通信。在图8中,将事件日志811的事件记录815在859处从事件日志811传送到事件日志801,在860处从事件日志801传送到事件日志821,并且还在880处从事件日志811传送到事件日志821。此外,当事件日志821已(经由880)从事件日志811接收到事件记录815时,事件日志821可在881处将事件记录815传送到事件日志801。
将事件日志801的事件记录806在861处从事件日志801传送到事件日志811,在862处从事件日志801传送到事件日志821,在882处从事件日志811传送到事件日志821,并且还在883处从事件日志821传送到事件日志811。每个事件日志的每个事件记录传送到每个其他事件日志确保了每个事件日志能够记录参与区块链网络的每个区块链中发生的每个事件的每个事件记录。此外,每个事件日志将事件记录从一个事件日志传送到每个其他事件日志可允许每个事件记录输入到每个事件日志中,即使存在网络中断。例如,事件日志821可试图在863和884处将事件825分别传送到事件日志801和事件日志811。事件记录825被示出为在884处被成功传送到事件日志811;然而,网络中断886导致了无法在863处将事件记录825传送到事件日志801。由于事件日志811将事件日志811的所有事件记录传送到事件日志801,因此即便事件日志821与事件日志801之间出现网络中断886,也可在888处将事件日志811的事件记录825传送到事件日志801。
由于参与区块链网络的每个区块链的每个事件日志将每个事件日志的每个事件记录传送到每个其他事件日志,因此为所有参与区块链生成区块创建的不可变记录。如此处所示,事件记录825已到达每个事件日志801,811,821,即使事件日志801,811之间存在网络中断886。事件记录的该多路通信(或多方外包)也可用于防止或识别错序事件记录。每个事件日志除了从每个其他事件日志接收单独事件记录之后,还可单独地或通过以下方式比较事件的排序:定期交换为比较事件日志内包含的事件的部分或完整列表。换句话讲,生成每个事件日志801,811,821的计算机过程可不时地交换与区块链网络的每个特定区块链相关联地生成的事件日志801,811,821的一部分。生成事件日志801,811,821的每个计算机过程可将所接收的事件日志与特定相关联的区块链的事件日志进行比较。如果生成事件日志801,811,821的计算机过程在所接收的事件日志内识别在所接收的事件日志中的比当前反映在计算机过程自身的事件日志中的更早的位置处输入的事件记录,则计算机过程可调节其自身的事件日志以反映事件的更早排序。
作为示例,图8的网络中断886并非防止事件记录825向事件日志801的传送863,而是仅仅引起延迟,使得事件记录825在另一个区块事件记录后输入在事件日志801中(例如,在图7中,事件日志811的新的后续区块816在865处传送到事件日志801)。因此事件日志801可将事件的偏序(参见图7)反映为815(区块B03)、806(区块A04)、816(区块B04)和825(区块C03)。当事件日志801的计算机过程接收事件日志811,821时,事件日志801的计算机过程可将事件日志811,821中的这些特定事件的次序识别为815,806,825,816,并且可调节事件日志801以反映事件825的最早排序。类似地,如果每个事件日志801,811,821具有处于不同次序位置的事件825,则事件日志801,811,821的交换和比较将使每个事件日志801,811,821能够采用事件825的最早次序序列。这样,每个事件日志801,811,821可反映在出现次序方面最早的点,在该点处首先生成每个相关联的区块链的每个区块。换句话讲,向量时钟800可允许每个事件日志801,811,821保持参与区块链网络的每个区块链内的每个区块的区块生成次序的不可变记录。向量时钟的不可变排序增强了通过交叉默克尔化的相互合并挖掘来实现的每个区块的不可变性程度。
每个事件条目还可包括可执行项。可执行项可表示待执行的真实世界物理动作或逻辑计算机可执行的功能或两者。换句话讲,特定事件条目可引用区块链网络中的区块链之一的相关联区块,并且可包含数据,操作区块链网络的区块链的计算系统之一对该数据的接收可指示:在操作接收计算系统的实体处、由操作接收计算系统的实体、或在操作接收计算系统的实体的指导下执行物理过程或动作,或者物理过程或动作执行接收计算系统(或接收计算系统的部件)内的逻辑过程或功能,或者两者兼有。作为示例但不受限制,并参见图7至图8,除了区块A04(示于事件记录806内)之外,操作事件日志801的计算系统还可生成事件记录806。除了对与事件日志801相关联的区块链(诸如图2的主区块链200)的区块A04的引用之外,事件记录806还可包括可由操作事件日志811的计算系统的实体执行来派送特定商品货物的指令、以及另外一个指令,该另外一个指令可由操作事件日志821的计算系统的实体执行,以在从事件日志811的计算系统接收到确认商品货物已派送的事件记录(诸如图7的事件记录816)后向操作事件日志811的计算系统的实体汇款。
图9是根据本公开的一个实施方案的提供不可变记录的计算系统1000的示意图。计算系统1000可包括一个或多个处理器1002、存储器1004、网络接口1006、区块链1010、向量时钟的向量1020、事件日志1022以及基于时间的验证过程1030。计算系统1000可类似于上述图1和图6的计算系统1。
向量1020可提供事件在事件日志1022中的日志记录,并且可提供从实现不同区块链的其他计算系统接收其他事件日志、然后将事件日志1022与其他事件日志进行比较的功能。
如可以理解的,计算设备的其他配置也是可能的,包括具有分布在通信网络上并经由通信网络互连的多个处理器和/或存储器的分布式计算系统。
示例性实施方案
以下是本公开范围内的一些示例性实施方案。为了在提供本公开时避免复杂性,下面所列的并非所有实施例都被单独地和明确地公开为已在本文中被设想为可与下面所列的所有其他实施例和上文所公开的其他实施方案组合。除非本领域的普通技术人员将理解下面所列的这些实施例(以及以上公开的实施方案)不是可组合的,否则可以在本公开的范围内设想,此类实施例和实施方案是可组合的。
实施例1.一种提供不可变记录保持(和/或事件次序和/或可证事件排序)的主计算系统,包括:一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质用于存储主区块链以将记录数据存储在按时间顺序链接的主区块系列中,该主区块系列的最近期区块包括密码哈希(例如,最近期区块的区块摘要)、最近期区块的密码哈希的乱数、顺序在先区块的密码哈希、顺序在先区块的密码哈希的乱数、密码哈希的目标难度、时间戳以及记录数据的一部分;一个或多个处理器,所述一个或多个处理器与所述一个或多个计算机可读存储介质电通信并且被配置为生成主区块链或以其他方式实现主区块链的协议,所述一个或多个处理器用于:创建主区块系列的新区块以存储新记录数据,该新区块通过包括最近期区块的密码哈希(例如,区块摘要)以及任选地最近期区块的密码哈希的乱数、最近期区块的密码哈希的目标难度及时间戳来链接到最近期区块,该新区块变成了主区块系列的新的最近期区块;使用新乱数生成主区块系列的新区块的新密码哈希(例如,新区块摘要)且该新密码哈希符合新区块的密码哈希的目标难度;将新密码哈希和新乱数存储在新区块中;并且经由网络接口通过通信网络向第一相邻计算系统传输新区块的新密码哈希和新区块的密码哈希的新乱数以使主区块链与第一参与相邻区块链在第一相邻计算系统上交叉默克尔化。
实施例2.根据实施例1所述的系统,其中主区块链的每个区块的密码哈希由单向安全哈希算法生成。
实施例3.根据实施例1所述的系统,其中密码哈希包括二叉哈希树,其中密码哈希由与乱数的序连产生以形成单向密码函数的输入字符串,该单向密码函数的输出符合目标难度,该目标难度包括指定相符密码哈希的规则。
实施例4.根据实施例3所述的系统,其中该规则指示相符密码哈希的指定位置中的一个或多个二进制值的特定集合。
实施例5.根据实施例1所述的系统,其中所述一个或多个处理器进一步用于从第一相邻计算系统接收第一相邻区块系列的最近期区块的密码哈希、对应乱数和密码哈希集合。
实施例6.根据实施例5所述的系统,其中第一参与相邻区块链的每个区块的密码哈希由单向安全哈希算法生成。
实施例7.根据实施例5所述的系统,其中密码哈希集合包括主区块链的最近期区块的至少密码哈希。
实施例8.根据实施例5所述的系统,其中密码哈希集合包括第二参与相邻区块链的最近期区块的至少密码哈希。
实施例9.根据实施例5所述的系统,其中所述一个或多个处理器进一步用于创建主区块系列的下一个区块,该下一个区块通过包括(新的最近期区块的)新密码哈希和(新的最近期区块的密码哈希的)新乱数来链接到新的最近期区块,该下一个区块还包括(第一相邻计算系统上实现的第一参与相邻区块链的)第一相邻区块系列的最近期区块的密码哈希(和对应乱数)。
实施例10.根据实施例5所述的系统,其中所述一个或多个处理器进一步用于存储主事件日志,该主事件日志包括事件记录的有序列表,每个事件记录对应于存储在主区块链的主区块系列中的记录数据的事务记录。
实施例11.根据实施例10所述的系统,其中所述一个或多个处理器进一步用于:向主事件日志记录指示新区块的创建的事件记录;并且在接收到第一参与相邻区块链的第一相邻区块系列的最近期区块的密码哈希和对应乱数后,向主事件日志记录与第一参与相邻区块链的第一相邻区块系列的最近期区块相对应的事件记录。
实施例12.根据实施例10所述的系统,其中所述一个或多个处理器进一步用于:将记录数据的事务记录识别为对应于事件;并且向主事件日志记录与该事件相对应的事件记录。
实施例13.根据实施例1所述的系统,其中所述一个或多个计算机可读存储介质进一步用于存储主事件日志,该主事件日志包括事件记录的有序列表,每个事件记录对应于主区块链的记录数据中包括的事务记录,其中所述一个或多个处理器进一步用于向主事件日志记录指示新区块的创建的事件记录。
实施例14.根据实施例13所述的系统,所述一个或多个处理器进一步用于:(例如,经由网络接口通过通信网络从第一相邻计算系统)接收第一相邻事件日志的至少一部分;将主事件日志与第一相邻事件日志进行比较;并且确保基于该比较来将每个区块的最早出现反映在主事件日志中。
实施例15.根据实施例14所述的系统,所述一个或多个处理器进一步用于:基于该比较和/或基于每个事件记录的主事件日志和相邻事件日志之一中的更早条目来对主事件日志的事件条目进行重新排序。
实施例16.根据实施例1所述的系统,其中第一相邻计算系统与该系统电子通信并且实现第一参与相邻区块链,该第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,该第一相邻区块系列的最近期区块包括最近期区块的密码哈希(例如,区块摘要)、最近期区块的密码哈希的乱数以及第一相邻区块系列的顺序在先区块的密码哈希(和任选地第一相邻区块系列的顺序在先区块的密码哈希的乱数)。
实施例17.根据实施例16所述的系统,第一相邻区块系列的最近期区块还包括第一主区块系列的最近期区块的密码哈希和第一主区块系列的最近期区块的密码哈希的乱数以使主区块链与第一参与相邻区块链交叉默克尔化。
实施例18.根据实施例1所述的系统,其中所述一个或多个处理器进一步用于(例如,经由网络接口通过通信网络)向第二相邻计算系统传输(新区块的)新密码哈希和(新区块的密码哈希的)新乱数以使主区块链与第二参与相邻区块链在第二相邻计算系统上交叉默克尔化。
实施例19.根据实施例18所述的系统,其中所述一个或多个处理器进一步用于从第二相邻计算系统接收第二相邻计算系统上实现的第二参与相邻区块链的第二相邻区块系列的最近期区块的密码哈希、对应乱数和密码哈希集合。
实施例20.根据实施例1所述的系统,其中记录数据包括多个事务记录。
实施例21.一种提供不可变记录保持的分布式电子记录系统(其可提供事件次序的不可变记录和/或其可提供可证事件排序),包括:主计算系统,该主计算系统实现主区块链以将记录数据存储在按时间顺序链接的主区块系列中,其中主区块系列的最近期区块包括主区块系列的最近期区块的密码哈希(例如,区块摘要)、主区块系列的最近期区块的密码哈希的乱数、主区块系列的顺序在先区块的密码哈希(和任选地主区块系列的顺序在先区块的密码哈希的乱数)以及记录数据的一部分;通过通信网络与主计算系统电子通信的第一相邻计算系统,该第一相邻计算系统实现第一参与相邻区块链,该第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,其中第一相邻区块系列的最近期区块包括第一相邻区块系列的最近期区块的密码哈希、第一相邻区块系列的最近期区块的密码哈希的乱数、第一相邻区块系列的顺序在先区块的密码哈希(和任选地第一相邻区块系列的顺序在先区块的密码哈希的乱数),其中主计算系统用于:创建主区块系列的新区块以存储新记录数据,该新区块通过包括主区块系列的最近期区块的密码哈希(例如,区块摘要)(和任选地主区块系列的最近期区块的密码哈希的乱数)来链接到主区块系列的最近期区块,该新区块变成了主区块系列的新的最近期区块;使用新乱数生成主区块系列的新区块的新密码哈希(例如,工作量证明摘要)(且该新密码哈希符合新区块的密码哈希的目标难度),该新密码哈希和该新乱数存储在新区块中;并且(例如,经由网络接口通过通信网络)向第一相邻计算系统传输新区块的新密码哈希和新区块的密码哈希的新乱数以使主区块链与第一参与相邻区块链交叉默克尔化。
实施例22.根据实施例21所述的系统,其中主区块链的每个区块的密码哈希由单向安全哈希算法生成,并且其中第一参与相邻区块链的每个区块的密码哈希由单向安全哈希算法生成。
实施例23.根据实施例21所述的系统,第一相邻区块系列的最近期区块还包括主区块系列的最近期区块的密码哈希和第一主区块系列的最近期区块的密码哈希的乱数。
实施例24.根据实施例21所述的系统,主区块系列的最近期区块还包括第一相邻区块系列的最近期区块的密码哈希和第一相邻区块系列的最近期区块的密码哈希的乱数。
实施例25.根据实施例21所述的系统,其中第一相邻计算系统进一步用于向主计算系统传输第一相邻计算系统上实现的第一参与相邻区块链的第一相邻区块系列的最近期区块的密码哈希和对应乱数。
实施例26.根据实施例21所述的系统,其中主计算系统进一步用于从第一相邻计算系统接收第一相邻计算系统上实现的第一参与相邻区块链的第一相邻区块系列的最近期区块的密码哈希和对应乱数。
实施例27.根据实施例21所述的系统,其中第一相邻计算系统用于:创建第一相邻区块系列的新相邻区块,该新相邻区块通过包括第一相邻区块系列的最近期区块的密码哈希(和第一相邻区块系列的最近期区块的密码哈希的乱数)来链接到第一相邻区块系列的最近期区块,该新区块变成了主区块系列的新的最近期区块;使用新乱数生成第一相邻区块系列的新区块的新密码哈希且该新密码哈希符合新区块的密码哈希的目标难度,该新密码哈希和该新乱数存储在新相邻区块中;并且(例如,经由网络接口通过通信网络)向主计算系统传输新相邻区块的新密码哈希和新相邻区块的密码哈希的新乱数以使第一参与相邻区块链与主区块链交叉默克尔化。第一相邻计算系统还可在新相邻区块中存储主区块系列的新区块的新密码哈希和主区块系列的新区块的密码哈希的新乱数以使主区块链与第一参与相邻区块链在第一相邻计算系统上交叉默克尔化。
实施例28.根据实施例21所述的系统,还包括:通过通信网络与主计算系统和/或第一相邻计算系统电子通信的第二相邻计算系统,该第二相邻计算系统实现第二参与相邻区块链,该第二参与相邻区块链包括按时间顺序链接的第二相邻区块系列,其中第二相邻区块系列的最近期区块包括第二相邻区块系列的最近期区块的密码哈希、第二相邻区块系列的最近期区块的密码哈希的乱数、第二相邻区块系列的顺序在先区块的密码哈希(和任选地第二相邻区块系列的顺序在先区块的密码哈希的乱数),其中主计算系统进一步用于(例如,经由网络接口通过通信网络)向第二相邻计算系统传输新区块的新密码哈希和新区块的密码哈希的新乱数以使主区块链与第二参与相邻区块链交叉默克尔化。
实施例29.根据实施例28所述的系统,其中第一相邻计算系统进一步用于向第二相邻计算系统传输第一相邻计算系统上实现的第一参与相邻区块链的第一相邻区块系列的最近期区块的密码哈希和对应乱数。
实施例30.根据实施例28所述的系统,其中主计算系统进一步用于从第二相邻计算系统接收第二相邻计算系统上实现的第二参与相邻区块链的第二相邻区块系列的最近期区块的密码哈希和对应乱数。
实施例31.根据实施例28所述的系统,其中第二相邻计算系统进一步用于从主计算系统接收主计算系统上实现的第一参与相邻区块链的主区块系列的最近期区块的密码哈希和对应乱数,并且其中第二相邻计算系统进一步用于从第一相邻计算系统接收第一相邻计算系统上实现的第一参与相邻区块链的第一相邻区块系列的最近期区块的密码哈希和对应乱数。
实施例32.一种提供(例如,事务记录的)不可变记录保持(和/或事件次序的不可变记录和/或可证事件排序)的方法,包括:在主计算系统上建立或以其他方式实现主区块链,该主区块链用于将事务记录存储在主区块系列中,该主区块系列存储在主计算系统的一个或多个计算机可读存储介质上并且按时间顺序链接,该主区块系列的最近期区块包括最近期区块的密码哈希(例如,工作量证明(POW)摘要)、最近期区块的密码哈希的乱数、顺序在先区块的密码哈希以及事务记录的一部分;创建主区块系列的新区块以存储新事务记录,该新区块通过包括最近期区块的密码哈希(例如,区块摘要)(和任选地最近期区块的密码哈希的乱数)来链接到最近期区块,该新区块变成了主区块系列的新的最近期区块;使用新乱数生成主区块系列的新区块的新密码哈希(例如,新POW摘要)(且该新密码哈希符合新区块的密码哈希的目标难度);将新密码哈希和新乱数存储在新区块中;并且(例如,经由网络接口通过通信网络)向第一相邻计算系统传输新区块的新密码哈希和新区块的密码哈希的新乱数以使主区块链与第一参与相邻区块链在第一相邻计算系统上交叉默克尔化。
实施例33.一种提供(例如,事务记录和/或事件次序的)不可变记录保持或以其他方式提供可证事件排序的系统(例如,主计算),包括:一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质用于存储主区块链以将事务记录存储在按时间顺序链接的主区块系列中,该主区块系列的最近期区块包括工作量证明(POW)摘要(其通过使用乱数对(最近期区块的)区块摘要进行密码哈希操作以实现(符合)目标难度而生成)、顺序在先区块的区块摘要以及事务记录的一部分;一个或多个处理器,所述一个或多个处理器与所述一个或多个计算机可读存储介质电通信并且被配置为实现主区块链的协议,所述一个或多个处理器用于:创建主区块系列的新区块以存储新事务记录,该新区块通过包括最近期区块的密码哈希(例如,区块摘要)来链接到最近期区块,该新区块将变成主区块系列的新的最近期区块;通过对新事务记录进行密码哈希操作来生成新事务记录的记录摘要(例如,默克尔根);通过使用新乱数对记录摘要进行密码哈希操作来生成新区块的区块摘要;通过使用新乱数对新区块的区块摘要进行密码哈希操作以实现(或以其他方式符合)目标难度来生成新区块的新POW摘要;将新区块的新POW摘要、新乱数和记录摘要存储在新区块中;并且(例如,经由网络接口通过通信网络)向第一相邻计算系统传输新区块的标头,该标头包括新区块的新POW摘要、新乱数和记录摘要以使主区块链与第一参与相邻区块链在第一相邻计算系统上交叉默克尔化。
实施例34.根据实施例33所述的系统,其中所述一个或多个处理器进一步用于(例如,经由网络接口通过通信网络)从第一相邻计算系统接收第一相邻计算系统上的第一参与相邻区块链的最近期第一相邻区块的标头,该标头包括第一相邻计算系统上的第一参与相邻区块链的最近期第一相邻区块的POW摘要、最近期第一相邻区块的乱数和最近期第一相邻区块的记录摘要以使第一参与相邻区块链与主区块链交叉默克尔化。
实施例35.根据实施例34所述的系统,其中所述一个或多个处理器进一步用于创建主区块系列的下一个区块,该下一个区块通过包括新区块的新POW摘要、新乱数和记录摘要、最近期第一相邻区块的POW摘要、最近期第一相邻区块的乱数以及最近期第一相邻区块的记录摘要来链接到新的最近期区块。
实施例36根据实施例33所述的系统,其中所述一个或多个处理器进一步用于(例如,在计算机可读存储介质中)保持主事件日志,该主事件日志包括事件记录的有序列表,每个事件记录对应于存储在主区块链的主区块系列中的事务记录中的一个事务记录。
实施例37.根据实施例36所述的系统,其中所述一个或多个处理器进一步用于向主事件日志记录指示新区块的创建的事件记录。
实施例38.根据实施例36所述的系统,所述一个或多个处理器进一步用于:(例如,经由网络接口通过通信网络)从第一相邻计算系统接收第一相邻事件日志的至少一部分;将主事件日志与第一相邻事件日志进行比较;并且确保基于该比较来将每个事件记录(例如,新区块的事件记录)的最早出现反映在主事件日志中。
实施例39.根据实施例38所述的系统,所述一个或多个处理器进一步用于:基于该比较和/或基于每个事件记录的主事件日志和相邻事件日志之一中的更早条目来对主事件日志的事件条目进行重新排序。
实施例40.一种提供(例如,事务记录和/或事件次序的)不可变记录保持或以其他方式提供可证事件排序的方法,包括:在主计算系统上建立或其他方式实现主区块链(的协议),该主区块链用于将事务记录存储在主区块系列中,该主区块系列存储在主计算系统的一个或多个计算机可读存储介质上并且按时间顺序链接,该主区块系列的最近期区块包括工作量证明(POW)摘要(其通过使用乱数对(最近期区块的)区块摘要进行密码哈希操作以实现(或以其他方式符合)目标难度而生成)、顺序在先区块的区块摘要以及事务记录的一部分;创建主区块系列的新区块以存储新事务记录,该新区块通过包括最近期区块的密码哈希(例如,区块摘要)来链接到最近期区块,该新区块变成了主区块系列的新的最近期区块;通过对新事务记录进行密码哈希操作来生成新事务记录的新记录摘要(默克尔根);通过使用新乱数对新记录摘要进行密码哈希操作来生成新区块的新区块摘要;通过使用新乱数对新区块的区块摘要进行密码哈希操作以实现(或以其他方式符合)目标难度来生成新区块的新POW摘要;将新POW摘要、新乱数和新记录摘要存储在新区块中;并且(例如,经由网络接口通过通信网络)向第一相邻计算系统传输新区块的标头,该标头包括新区块的新POW摘要、新乱数和新记录摘要以使主区块链与第一参与相邻区块链在第一相邻计算系统上交叉默克尔化。
实施例41.一种提供不可变记录保持的分布式电子记录系统,包括:主区块链,该主区块链用于将记录数据存储在按时间顺序链接的主区块系列中,其中主区块系列的最近期区块包括最近期区块的密码哈希、最近期区块的密码哈希的乱数、顺序在先区块的密码哈希以及记录数据的一部分;第一参与相邻区块链,该第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,其中第一相邻区块系列的最近期区块包括第一相邻区块系列的最近期区块的密码哈希、第一相邻区块系列的最近期区块的密码哈希的乱数以及第一相邻区块系列的顺序在先区块的密码哈希,其中主区块链用于:创建主区块系列的新区块以存储新记录数据,该新区块通过包括主区块系列的最近期区块的密码哈希来链接到主区块系列的最近期区块,该新区块变成了主区块系列的新的最近期区块;使用新乱数生成主区块系列的新区块的新密码哈希,该新密码哈希和该新乱数存储在新区块中;并且向第一参与相邻区块链传输新密码哈希和新乱数。
实施例42.一种提供不可变记录保持的系统,包括:主区块链,该主区块链用于将事务记录存储在按时间顺序链接的主区块系列中,其中该主区块系列的最近期区块包括工作量证明(POW)摘要、顺序在先区块的区块摘要以及事务记录的一部分;第一参与相邻区块链,该第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,其中第一相邻区块系列的最近期区块包括第一相邻区块系列的最近期区块的工作量证明(POW)摘要和第一相邻区块系列的顺序在先区块的区块摘要;其中主区块链用于:创建主区块系列的新区块以存储新事务记录,该新区块通过包括最近期区块的区块摘要来链接到最近期区块,该新区块将变成主区块系列的新的最近期区块;生成新事务记录的记录摘要(默克尔根);通过使用新乱数对新区块的区块摘要进行密码哈希操作来生成新区块的新POW摘要;将新区块的新POW摘要、新乱数和记录摘要存储在新区块中;并且向第一参与相邻区块链传输新POW摘要、新乱数和记录摘要。
实施例43.根据实施例41所述的系统,其中主区块链进一步用于从第一参与相邻区块链接收第一参与相邻区块链的最近期第一相邻区块的POW摘要、最近期第一相邻区块的乱数和最近期第一相邻区块的记录摘要。
实施例44.根据实施例43所述的系统,其中主区块链进一步用于创建主区块系列的下一个区块,该下一个区块通过包括新区块的区块摘要、新区块的新乱数和新区块的记录摘要来链接到新的最近期区块,并且其中下一个区块包括最近期第一相邻区块的POW摘要、最近期第一相邻区块的乱数和最近期第一相邻区块的记录摘要。
实施例45.根据实施例41所述的系统,还包括向量时钟,该向量时钟包括:主事件日志,该主事件日志包括事件记录的有序列表,每个事件记录对应于存储在主区块链的主区块系列中的事务记录中的一个事务记录;以及第一参与相邻事件日志,该第一参与相邻事件日志包括事件记录的有序列表,每个事件记录对应于存储在第一参与相邻区块链的第一相邻区块系列中的事务记录中的一个事务记录,其中向量时钟将主事件日志与第一相邻事件日志进行比较并且确保每个事件记录的最早出现反映在主事件日志中。
实施例46.根据实施例45所述的系统,其中向量时钟被配置为基于该比较来对主事件日志的事件记录进行重新排序。
实施例47.根据实施例45所述的系统,其中所述一个或多个处理器进一步用于(例如,向主事件日志)记录指示新区块的创建的事件记录。
实施例48.一种提供不可变记录以实现可证事件排序的系统,包括:(主计算系统上的)主区块链,该主区块链用于将事务记录存储在按时间顺序链接的主区块系列中,其中该主区块系列的最近期区块包括工作量证明(POW)摘要、顺序在先区块的区块摘要以及事务记录的一部分;(主计算系统上的)主事件日志,该主事件日志包括事件记录的有序列表,每个事件记录对应于存储在主区块链的主区块系列中的事务记录中的一个事务记录;(第一参与相邻计算系统上的)第一参与相邻区块链,该第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,其中第一相邻区块系列的最近期区块包括第一相邻区块系列的最近期区块的工作量证明(POW)摘要和第一相邻区块系列的顺序在先区块的区块摘要;(第一参与相邻计算系统上的)第一参与相邻事件日志,该第一参与相邻事件日志包括事件记录的有序列表,每个事件记录对应于存储在第一参与相邻区块链的第一相邻区块系列中的事务记录中的一个事务记录;以及向量时钟,该向量时钟将主事件日志与第一相邻事件日志进行比较并且确保每个事件记录的最早出现反映在主事件日志中,其中主区块链用于:创建主区块系列的新区块以存储新事务记录,该新区块通过包括最近期区块的区块摘要来链接到最近期区块,该新区块将变成主区块系列的新的最近期区块;生成新事务记录的记录摘要(默克尔根);通过使用新乱数对新区块的区块摘要进行密码哈希操作来生成新区块的新POW摘要;将新区块的新POW摘要、新乱数和记录摘要存储在新区块中;在主事件日志中记录与新区块的创建相对应的事件记录;并且向第一参与相邻区块链传输新POW摘要、新乱数和记录摘要。
实施例49.一种提供不可变记录以实现可证事件排序的主计算系统,包括:一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质用于存储:主区块链以将事务记录存储在按时间顺序链接的主区块系列中,该主区块系列的最近期区块包括工作量证明(POW)摘要(其通过使用乱数对(最近期区块的)区块摘要进行密码哈希操作以实现(符合)目标难度而生成)、顺序在先区块的区块摘要以及事务记录的一部分;以及主事件日志,该主事件日志包括事件记录的有序列表,每个事件记录对应于存储在主区块链的主区块系列中的事务记录中的一个事务记录;以及一个或多个处理器,所述一个或多个处理器与所述一个或多个计算机可读存储介质电通信并且被配置为实现主区块链的协议,所述一个或多个处理器用于:从第一相邻计算系统接收第一相邻计算系统上实现的第一参与相邻区块链的第一相邻区块系列的最近期区块的POW摘要、第一相邻区块系列的最近期区块的POW摘要的对应乱数以及第一相邻区块系列的最近期区块的记录摘要;创建主区块系列的新区块以存储新事务记录,所述新事务记录包括第一相邻区块系列的最近期区块的POW摘要、第一相邻区块系列的最近期区块的POW摘要的对应乱数以及第一相邻区块系列的最近期区块的记录摘要,其中该新区块通过包括最近期区块的密码哈希(例如,区块摘要)来链接到最近期区块,该新区块将变成主区块系列的新的最近期区块;通过对新事务记录进行密码哈希操作来生成新事务记录的记录摘要(例如,默克尔根),所述新事务记录包括第一相邻区块系列的最近期区块的POW摘要、第一相邻区块系列的最近期区块的POW摘要的对应乱数以及第一相邻区块系列的最近期区块的记录摘要;通过使用新乱数对记录摘要进行密码哈希操作来生成新区块的区块摘要;通过使用新乱数对新区块的区块摘要进行密码哈希操作以实现(符合)目标难度来生成新区块的新POW摘要;将新区块的新POW摘要、新乱数和记录摘要存储在新区块中;在主事件日志中记录与新区块的创建相对应的事件记录;将主事件日志与第一相邻事件日志进行比较并且确保每个事件记录的最早出现反映在主事件日志中,该第一相邻事件日志包括事件记录的有序列表,每个事件记录对应于第一相邻计算系统上实现的第一参与相邻区块链的第一相邻区块系列中存储的事务记录中的一个事务记录;并且(例如,经由网络接口通过通信网络)向第一相邻计算系统传输新区块的新POW摘要、新乱数和记录摘要以使主区块链与第一参与相邻区块链在第一相邻计算系统上交叉默克尔化。所描述的特征、操作或特性可以在一个或多个实施方案中以各种不同的配置布置和设计并且/或者以任何合适的方式组合。因此,系统和方法的实施方案的详细描述并非旨在限制本公开的范围,如权利要求所述的,而仅仅是本公开的可能实施方案的代表。另外,还将容易理解,结合所公开的实施例描述的方法的步骤或动作的顺序可以被改变,对于本领域的技术人员来说这将是显而易见的。因此,附图或具体实施方式中的任何顺序仅用于说明的目的,并不意味着暗示所需顺序,除非指定要求一种顺序。
实施方案可包括各种步骤,这些步骤可以体现在将由通用或专用计算机(或其他电子设备)执行的机器可执行指令中。另选地,这些步骤可由包括用于执行这些步骤的特定逻辑的硬件组件或通过硬件、软件和/或固件的组合来执行。
实施方案还可以作为包括计算机可读存储介质的计算机程序产品来提供,该计算机可读存储介质具有存储在其上的指令,这些指令可用于对计算机(或其他电子设备)进行编程以执行本文所述的过程。计算机可读存储介质可包括但不限于:硬盘驱动器、软盘、光盘、CD-ROM、DVD-ROM、ROM、RAM、EPROM、EEPROM、磁卡或光卡、固态存储设备或者适用于存储电子指令的其他类型的介质/机器可读介质。
如本文所用,软件模块或组件可包括位于存储器设备和/或计算机可读存储介质内的任何类型的计算机指令或计算机可执行代码。软件模块可例如包括计算机指令的一个或多个物理或逻辑块,该一个或多个物理或逻辑块可被组织为执行一个或多个任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。
在某些实施方案中,特定软件模块可包括存储在存储器设备的不同位置中的不同指令,这些指令一起实现模块的所述功能。实际上,模块可包括单个指令或许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及几个存储器设备上。一些实施方案可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,软件模块可位于本地和/或远程存储器存储设备中。另外,在数据库记录中被捆绑或一起呈现的数据可驻留在相同的存储器设备中、或者在几个存储器设备中,并且可通过网络在数据库中的记录的字段中被链接在一起。
已经参考各种实施方案(包括最佳模式)描述了上述说明书。然而,本领域技术人员理解到可做出各种修改和改变,而不脱离本公开的范围和本发明的基本原理。因此,本公开应被视为例示性的而非限制性的,并且所有此类修改旨在被包括在其范围内。同样,上文已针对各种实施方案描述了有益效果、其他优势和问题的解决方案。然而,有益效果、优势、问题的解决方案和可致使任何有益效果、优势或解决方案发生或变得更明显的任何(多个)元素均不被解释为关键的、必需的或必要的特征部或元素。
如本文所用,术语″包括″、″包含″或其任何其他变型旨在覆盖非排他性的包含,使得包括元素列表的过程、方法、制品或装置不仅包括那些元素,而且可包括未明确列出或此类过程、方法、制品或装置所固有的其他元素。另外,如本文所用,术语″被耦合″、″耦合″或其任何其他变型旨在覆盖物理连接、电连接、磁性连接、光学连接、通信连接、功能连接和/或任何其他连接。
权利要求书中关于特征或元件的术语″第一″的叙述不一定暗示存在第二或另外的此类特征或元件。本公开的原理可反映在有形计算机可读存储介质上的计算机程序产品中,该有形计算机可读存储介质具有体现在存储介质中的计算机可读程序代码装置。可利用任何合适的计算机可读存储介质,包括磁存储设备(硬盘、软盘等)、光存储设备(CD-ROM、DVD、蓝光光盘等)、闪速存储器等。这些计算机程序指令可加载到通用计算机、专用计算机或其他可编程数据处理装置上以产生机器,使得在计算机或其他可编程数据处理装置上执行的指令形成用于实现所指定的功能的装置。这些计算机程序指令还可存储在计算机可读存储器中,该计算机可读存储器可引导计算机或其他可编程数据处理装置以特定方式发挥作用,使得存储在计算机可读存储器中的指令产生包括实现所指定的功能的指令装置的制品。计算机程序指令也可加载到计算机或其他可编程数据处理装置上,以引起在计算机或其他可编程装置上执行一系列操作步骤而产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现所指定的功能的步骤。
本公开的原理可反映在作为一个或多个软件模块或部件实现的计算机程序中。如本文所用,软件模块或部件(例如,引擎、系统、子系统)可包括位于存储器设备和/或计算机可读存储介质内的任何类型的计算机指令或计算机可执行代码。软件模块可例如包括计算机指令的一个或多个物理或逻辑块,该一个或多个物理或逻辑块可被组织为执行一个或多个任务或实现特定数据类型的例程、程序、对象、部件、数据结构等。
在某些实施方案中,特定软件模块可包括存储在存储器设备的不同位置中的不同指令,这些指令一起实现模块的所述功能。实际上,模块可包括单个指令或许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及几个存储器设备上。一些实施方案可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,软件模块可位于本地和/或远程存储器存储设备中。另外,在数据库记录中被捆绑或一起呈现的数据可驻留在相同的存储器设备中、或者在几个存储器设备中,并且可通过网络在数据库中的记录的字段中被链接在一起。
相关领域技术人员易于使用此处提出的教导内容以及编程语言和工具诸如Java、Pascal、C++、C、数据库语言、API、SDK、汇编、固件、微码和/或其他语言和工具来提供有助于实现本发明的合适软件。
如本文所公开的实施方案可在数字计算机上完全或部分地由计算机实现。数字计算机包括执行所需计算的处理器。计算机还包括与处理器电子通信的存储器以存储计算机操作系统。计算机操作系统可包括但不限于MS-DOS、Windows、Linux、Unix、AIX、CLIX、QNX、OS/2和Apple。另选地,预期未来实施方案将适于在其他未来操作系统上执行。
在一些情况下,未详细示出或描述熟知的特征、结构或操作。此外,所描述的特征、结构或操作可在一个或多个实施方案中以任何合适的方式组合。还应当容易理解,如本文附图总体描述且示出的实施方案的部件可按多种不同配置来布置和设计。
根据特定应用或考虑到与系统的操作相关联的任何数量的成本函数,可以以替代方式实现各种操作步骤以及用于执行操作步骤的部件,例如,可以将这些步骤中的一个或多个步骤删除、修改或与其他步骤组合。
虽然在各种实施方案中已示出了本公开的原理,但是可使用在实践中使用的特别适于具体的环境和操作需求的结构、布置、比例、元件、材料和部件的许多修改,而不脱离本公开的原理和范围。这些和其他改变或修改旨在被包括在本公开的范围内。
因此,本发明的范围应该仅由以下权利要求书确定。

Claims (26)

1.一种提供不可变记录保持的系统,包括:
一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质用于存储主区块链以将记录数据存储在按时间顺序链接的主区块系列中,所述主区块系列的最近期区块包括所述最近期区块的密码哈希、所述最近期区块的所述密码哈希的乱数、顺序在先区块的密码哈希以及所述记录数据的一部分;
一个或多个处理器,所述一个或多个处理器与所述一个或多个计算机可读存储介质电通信并且被配置为实现所述主区块链,所述一个或多个处理器用于:
创建所述主区块系列的新区块以存储新记录数据,所述新区块通过包括所述最近期区块的所述密码哈希来链接到所述最近期区块,所述新区块变成了所述主区块系列的新的最近期区块;
使用新乱数生成所述新区块的新密码哈希;
将所述新密码哈希和所述新乱数存储在所述新区块中;以及
向第一相邻计算系统传输所述新密码哈希和所述新乱数。
2.根据权利要求1所述的系统,其中所述一个或多个处理器进一步用于从所述第一相邻计算系统接收第一相邻区块系列的最近期区块的密码哈希、对应乱数和密码哈希集合。
3.根据权利要求2所述的系统,其中所述一个或多个处理器进一步用于创建所述主区块系列的下一个区块,所述下一个区块通过包括所述新密码哈希和所述新乱数来链接到所述新的最近期区块,所述下一个区块还包括所述第一相邻区块系列的所述最近期区块的所述密码哈希。
4.根据权利要求2所述的系统,其中所述一个或多个处理器进一步用于存储主事件日志,所述主事件日志包括事件记录的有序列表,每个事件记录对应于存储在所述主区块链的所述主区块系列中的所述记录数据的事务记录。
5.根据权利要求1所述的系统,其中所述一个或多个计算机可读存储介质进一步用于存储主事件日志,所述主事件日志包括事件记录的有序列表,每个事件记录对应于所述主区块链的所述记录数据中包括的事务记录,
其中所述一个或多个处理器进一步用于向所述主事件日志记录指示所述新区块的创建的事件记录。
6.根据权利要求5所述的系统,所述一个或多个处理器进一步用于:
从第一相邻计算系统接收第一相邻事件日志的至少一部分;
将所述主事件日志与所述第一相邻事件日志进行比较;以及
确保基于所述比较来将每个事件记录的最早出现反映在所述主事件日志中。
7.根据权利要求1所述的系统,其中所述第一相邻计算系统与所述系统电子通信并且实现第一参与相邻区块链,所述第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,所述第一相邻区块系列的最近期区块包括所述最近期区块的密码哈希、所述最近期区块的所述密码哈希的乱数以及所述第一相邻区块系列的顺序在先区块的密码哈希。
8.根据权利要求1所述的系统,其中所述一个或多个处理器进一步用于向第二相邻计算系统传输所述新密码哈希和所述新乱数。
9.根据权利要求8所述的系统,其中所述一个或多个处理器进一步用于从所述第二相邻计算系统接收所述第二相邻计算系统上实现的第二参与相邻区块链的第二相邻区块系列的最近期区块的密码哈希、对应乱数和密码哈希集合。
10.根据权利要求1所述的系统,其中所述记录数据包括多个事务记录。
11.一种提供不可变记录保持的分布式电子记录系统,包括:
主计算系统,所述主计算系统实现主区块链以将记录数据存储在按时间顺序链接的主区块系列中,其中所述主区块系列的最近期区块包括所述最近期区块的密码哈希、所述最近期区块的所述密码哈希的乱数、顺序在先区块的密码哈希以及所述记录数据的一部分;
通过通信网络与所述主计算系统电子通信的第一相邻计算系统,所述第一相邻计算系统实现第一参与相邻区块链,所述第一参与相邻区块链包括按时间顺序链接的第一相邻区块系列,其中所述第一相邻区块系列的最近期区块包括所述第一相邻区块系列的所述最近期区块的密码哈希、所述第一相邻区块系列的所述最近期区块的所述密码哈希的乱数以及所述第一相邻区块系列的顺序在先区块的密码哈希,
其中所述主计算系统用于:
创建所述主区块系列的新区块以存储新记录数据,所述新区块通过包括所述主区块系列的所述最近期区块的所述密码哈希来链接到所述主区块系列的所述最近期区块,所述新区块变成了所述主区块系列的新的最近期区块;
使用新乱数生成所述主区块系列的所述新区块的新密码哈希,所述新密码哈希和所述新乱数存储在所述新区块中;以及
向所述第一相邻计算系统传输所述新密码哈希和所述新乱数。
12.根据权利要求11所述的系统,所述第一相邻区块系列的所述最近期区块还包括所述主区块系列的所述最近期区块的所述密码哈希和所述第一主区块系列的所述最近期区块的所述密码哈希的所述乱数。
13.根据权利要求11所述的系统,所述主区块系列的所述最近期区块还包括所述第一相邻区块系列的所述最近期区块的所述密码哈希和所述第一相邻区块系列的所述最近期区块的所述密码哈希的所述乱数。
14.根据权利要求11所述的系统,其中所述第一相邻计算系统进一步用于向所述主计算系统传输所述第一相邻计算系统上实现的所述第一参与相邻区块链的所述第一相邻区块系列的所述最近期区块的所述密码哈希和所述对应乱数。
15.根据权利要求11所述的系统,其中所述第一相邻计算系统用于:
创建所述第一相邻区块系列的新相邻区块,所述新相邻区块通过包括所述第一相邻区块系列的所述最近期区块的所述密码哈希来链接到所述第一相邻区块系列的所述最近期区块,所述新区块变成了所述主区块系列的新的最近期区块;
使用新乱数生成所述第一相邻区块系列的所述新区块的新密码哈希,所述新密码哈希和所述新乱数存储在所述新相邻区块中;以及
向所述主计算系统传输所述新密码哈希和所述新乱数。
16.根据权利要求11所述的系统,还包括:
通过通信网络与所述主计算系统和所述第一相邻计算系统电子通信的第二相邻计算系统,所述第二相邻计算系统实现第二参与相邻区块链,所述第二参与相邻区块链包括按时间顺序链接的第二相邻区块系列,其中所述第二相邻区块系列的最近期区块包括所述第二相邻区块系列的所述最近期区块的密码哈希、所述第二相邻区块系列的所述最近期区块的所述密码哈希的乱数、所述第二相邻区块系列的顺序在先区块的密码哈希,
其中所述主计算系统进一步用于向所述第二相邻计算系统传输所述新密码哈希和所述新乱数。
17.一种提供不可变记录保持的方法,包括:
在主计算系统上实现主区块链,所述主区块链用于将事务记录存储在按时间顺序链接的主区块系列中,所述主区块系列的最近期区块包括所述最近期区块的密码哈希、所述最近期区块的所述密码哈希的乱数、顺序在先区块的密码哈希以及所述事务记录的一部分;
创建所述主区块系列的新区块以存储新事务记录,所述新区块通过包括所述最近期区块的所述密码哈希来链接到所述最近期区块,所述新区块变成了所述主区块系列的新的最近期区块;
使用新乱数生成所述新区块的新密码哈希;
将所述新密码哈希和所述新乱数存储在所述新区块中;以及
向第一相邻计算系统传输所述新密码哈希和所述新乱数。
18.根据权利要求17所述的方法,还包括:
从所述第一相邻计算系统接收第一相邻区块系列的最近期区块的密码哈希、对应乱数和密码哈希集合。
19.根据权利要求18所述的方法,还包括:
创建所述主区块系列的下一个区块,所述下一个区块通过包括所述新密码哈希和所述新乱数来链接到所述新的最近期区块,所述下一个区块还包括所述第一相邻区块系列的所述最近期区块的所述密码哈希。
20.根据权利要求17所述的方法,还包括:
向主事件日志记录指示所述新区块的创建的事件记录,其中所述主事件日志包括事件记录的有序列表,每个事件记录对应于所述主区块链的事务记录。
21.一种提供不可变记录保持的系统,包括:
一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质用于存储主区块链以将事务记录存储在按时间顺序链接的主区块系列中,所述主区块系列的最近期区块包括工作量证明(POW)摘要、顺序在先区块的区块摘要以及所述事务记录的一部分;
一个或多个处理器,所述一个或多个处理器与所述一个或多个计算机可读存储介质电通信并且被配置为实现所述主区块链,所述一个或多个处理器用于:
创建所述主区块系列的新区块以存储新事务记录,所述新区块通过包括所述最近期区块的密码哈希来链接到所述最近期区块,所述新区块将变成所述主区块系列的新的最近期区块;
生成所述新事务记录的记录摘要(默克尔根);
通过使用新乱数对所述新区块的区块摘要进行密码哈希操作来生成所述新区块的新POW摘要;
将所述新区块的所述新POW摘要、所述新乱数和所述记录摘要存储在所述新区块中;以及
向第一相邻计算系统传输所述新POW摘要、所述新乱数和所述记录摘要。
22.根据权利要求21所述的系统,其中所述一个或多个处理器进一步用于从所述第一相邻计算系统接收所述第一相邻计算系统上的第一参与相邻区块链的最近期第一相邻区块的POW摘要、所述最近期第一相邻区块的乱数以及所述最近期第一相邻区块的记录摘要。
23.根据权利要求22所述的系统,其中所述一个或多个处理器进一步用于创建所述主区块系列的下一个区块,所述下一个区块通过包括所述新POW摘要、所述新乱数和所述记录摘要、所述最近期第一相邻区块的所述POW摘要、所述最近期第一相邻区块的所述乱数以及所述最近期第一相邻区块的记录摘要来链接到所述新的最近期区块。
24.根据权利要求21所述的系统,其中所述一个或多个处理器进一步用于保持主事件日志,所述主事件日志包括事件记录的有序列表,每个事件记录对应于存储在所述主区块链的所述主区块系列中的所述事务记录中的一个事务记录。
25.根据权利要求24所述的系统,其中所述一个或多个处理器进一步用于向所述主事件日志记录指示所述新区块的创建的事件记录。
26.根据权利要求24所述的系统,所述一个或多个处理器进一步用于:
从所述第一相邻计算系统接收第一相邻事件日志的至少一部分;
将所述主事件日志与所述第一相邻事件日志进行比较;以及
基于所述比较来对所述主事件日志的事件条目进行重新排序。
CN201880061921.5A 2017-09-08 2018-09-10 提供不可变记录的系统和方法 Active CN111466096B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762556212P 2017-09-08 2017-09-08
US62/556,212 2017-09-08
US201862693870P 2018-07-03 2018-07-03
US62/693,870 2018-07-03
PCT/US2018/050302 WO2019051429A1 (en) 2017-09-08 2018-09-10 SYSTEMS AND METHODS FOR PROVIDING IMMUABLE RECORDINGS

Publications (2)

Publication Number Publication Date
CN111466096A true CN111466096A (zh) 2020-07-28
CN111466096B CN111466096B (zh) 2021-12-31

Family

ID=65629516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880061921.5A Active CN111466096B (zh) 2017-09-08 2018-09-10 提供不可变记录的系统和方法

Country Status (4)

Country Link
US (3) US10803022B2 (zh)
EP (1) EP3679683A4 (zh)
CN (1) CN111466096B (zh)
WO (1) WO2019051429A1 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10542115B1 (en) 2015-10-01 2020-01-21 Sprint Communications Company L.P. Securing communications in a network function virtualization (NFV) core network
US10348488B1 (en) * 2017-08-25 2019-07-09 Sprint Communications Company L.P. Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network
EP3679683A4 (en) 2017-09-08 2021-08-25 Uledger, Inc. SYSTEMS AND PROCEDURES FOR PROVIDING IMMUTABLE RECORDINGS
US11159376B2 (en) * 2018-05-24 2021-10-26 International Business Machines Corporation System and method for network infrastructure analysis and convergence
EP3584654B1 (en) * 2018-06-19 2020-06-10 Siemens Aktiengesellschaft Hierarchical distributed ledger
US11062042B1 (en) 2018-09-26 2021-07-13 Splunk Inc. Authenticating data associated with a data intake and query system using a distributed ledger system
US11924360B2 (en) 2018-10-08 2024-03-05 Green Market Square Limited Blockchain timestamp agreement
US10608829B1 (en) 2018-10-08 2020-03-31 International Business Machines Corporation Blockchain timestamp agreement
US10805094B2 (en) * 2018-10-08 2020-10-13 International Business Machines Corporation Blockchain timestamp agreement
CN111899103B (zh) * 2018-10-25 2024-05-03 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
US10841178B2 (en) * 2018-11-26 2020-11-17 International Business Machines Corporation Cognitive balancing IT ecosystems
CN110020945B (zh) * 2018-11-27 2020-10-30 创新先进技术有限公司 一种基于多个区块链网络的数据读取方法及系统
CN111385246B (zh) * 2018-12-28 2021-09-21 华为技术有限公司 一种安全路由识别方法及装置
AU2019203859B2 (en) * 2019-03-14 2021-01-07 Advanced New Technologies Co., Ltd. Methods and devices for acquiring and recording tracking information on blockchain
US11182726B2 (en) * 2019-03-28 2021-11-23 Nest Global Solutions, Llc Blockchain-based system for analyzing and tracking work performance
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
US11070379B2 (en) * 2019-04-18 2021-07-20 Advanced New Technologies Co., Ltd. Signature verification for a blockchain ledger
US11507562B1 (en) * 2019-05-22 2022-11-22 Splunk Inc. Associating data from different nodes of a distributed ledger system
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
SG11202002911UA (en) * 2019-09-02 2021-04-29 Advanced New Technologies Co Ltd Managing blockchain-based centralized ledger systems
SG11202002734SA (en) 2019-09-02 2020-04-29 Alibaba Group Holding Ltd Managing blockchain-based centralized ledger systems
WO2019228560A2 (en) * 2019-09-02 2019-12-05 Alibaba Group Holding Limited Managing blockchain-based centralized ledger systems
CN110830260B (zh) * 2019-09-27 2021-09-24 电子科技大学 一种基于区块链的数字签名的时间戳生成方法
US11290294B2 (en) * 2019-10-04 2022-03-29 Sap Se Collaboration hub with blockchain verification
GB2588138A (en) * 2019-10-09 2021-04-21 Nchain Holdings Ltd Methods and devices for secure symbiotic mining
US11907199B2 (en) 2019-10-23 2024-02-20 Hewlett Packard Enterprise Development Lp Blockchain based distributed file systems
US11868339B2 (en) 2019-10-23 2024-01-09 Hewlett Packard Enterprise Development Lp Blockchain based distributed file systems
US11803461B2 (en) * 2019-10-30 2023-10-31 Hewlett Packard Enterprise Development Lp Validation of log files using blockchain system
WO2021145606A1 (en) * 2020-01-17 2021-07-22 Samsung Electronics Co., Ltd. User apparatus and manager apparatus included in blockchain network and controlling method thereof
US11343075B2 (en) * 2020-01-17 2022-05-24 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US11856086B2 (en) * 2020-02-06 2023-12-26 International Business Machines Corporation Tracking and linking item-related data
WO2020143856A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
CN111630549B (zh) 2020-04-22 2022-05-27 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
WO2020143854A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
US11736456B2 (en) 2020-09-29 2023-08-22 International Business Machines Corporation Consensus service for blockchain networks
CN113037852B (zh) * 2021-03-22 2022-08-09 中国人民银行数字货币研究所 一种区块链节点同步方法和装置
US11943210B2 (en) * 2021-04-16 2024-03-26 Verizon Patent And Licensing Inc. System and method for distributed, keyless electronic transactions with authentication
US20220398340A1 (en) * 2021-06-13 2022-12-15 Artema Labs, Inc Systems and Methods for Encrypting and Controlling Access to Encrypted Data Based Upon Immutable Ledgers
US12032707B2 (en) 2021-10-15 2024-07-09 Bank Of America Corporation Secure digital record with improved data update and sharing
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
US11880824B1 (en) * 2023-04-06 2024-01-23 Nant Holdings Ip, Llc Managing digital blockchains via digital tokens, systems, methods, and apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017091530A1 (en) * 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries
US20170195406A1 (en) * 2015-06-15 2017-07-06 Graduate School At Shenzhen, Tsinghua University Distributed network node operation system based on operation control unit

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2393868B1 (es) 2006-07-14 2013-11-06 Kinamik Data Integrity, S.L. Método y sistema para generar registros de auditoría inmutables.
US7912057B2 (en) 2007-01-12 2011-03-22 Wi-Lan Inc. Convergence sublayer for use in a wireless broadcasting system
JP5753273B2 (ja) 2011-10-14 2015-07-22 株式会社日立製作所 データの真正性保証方法、管理計算機及び記憶媒体
RU2510623C2 (ru) 2012-04-19 2014-04-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ репликации информации в распределенных базах данных с конкурентным распределением потоков
CN102843236B (zh) 2012-09-12 2014-12-10 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
EP3317775B1 (en) 2015-07-02 2022-02-16 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US10805393B2 (en) 2015-12-02 2020-10-13 Olea Networks, Inc. System and method for data management structure using auditable delta records in a distributed environment
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US10715531B2 (en) * 2016-02-12 2020-07-14 Visa International Service Association Network topology
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
US9967088B2 (en) * 2016-05-23 2018-05-08 Accenture Global Solutions Limited Rewritable blockchain
US10841097B2 (en) 2016-07-08 2020-11-17 Mastercard International Incorporated Method and system for verification of identity attribute information
US10523443B1 (en) * 2016-08-24 2019-12-31 Bruce Kleinman Devices, methods, and systems for cryptographic authentication and provenance of physical assets
RU2019111909A (ru) * 2016-10-03 2020-11-06 Виза Интернэшнл Сервис Ассосиэйшн Сетевая топология
US10367645B2 (en) * 2016-10-26 2019-07-30 International Business Machines Corporation Proof-of-work for smart contracts on a blockchain
US10169614B2 (en) * 2016-11-17 2019-01-01 International Business Machines Corporation Container update system
US10387684B2 (en) 2016-12-09 2019-08-20 International Business Machines Corporation Interlocked blockchains to increase blockchain security
US10291408B2 (en) 2016-12-23 2019-05-14 Amazon Technologies, Inc. Generation of Merkle trees as proof-of-work
US9882918B1 (en) 2017-05-15 2018-01-30 Forcepoint, LLC User behavior profile in a blockchain
EP3404639A1 (en) 2017-05-18 2018-11-21 Nokia Technologies Oy Vehicle operation
KR102348418B1 (ko) 2017-07-11 2022-01-07 스월즈, 인크. 네트워크 내의 분산 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치
EP3679683A4 (en) 2017-09-08 2021-08-25 Uledger, Inc. SYSTEMS AND PROCEDURES FOR PROVIDING IMMUTABLE RECORDINGS
US11139979B2 (en) 2017-12-18 2021-10-05 Koninklijke Kpn N.V. Primary and secondary blockchain device
US20190236562A1 (en) 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment
US20190259274A1 (en) 2018-02-22 2019-08-22 General Motors Llc System and method for managing trust using distributed ledgers in a connected vehicle network
WO2019167116A1 (ja) 2018-02-27 2019-09-06 日本電気株式会社 ブロックチェーン管理システム、ブロックチェーン管理装置、情報提供装置及びブロックチェーン管理方法
US11153097B1 (en) 2018-03-01 2021-10-19 Wells Fargo Bank, N.A. Systems and methods for distributed extensible blockchain structures
CN108683630B (zh) 2018-04-03 2020-05-29 阿里巴巴集团控股有限公司 跨区块链的认证方法及装置、电子设备
US11063746B2 (en) 2018-04-19 2021-07-13 Electronics And Telecommunications Research Institute Method for selecting consensus node using nonce and method and apparatus for generating blockchain using the same
US11429565B2 (en) 2018-05-24 2022-08-30 International Business Machines Corporation Terms of service platform using blockchain
US10542046B2 (en) 2018-06-07 2020-01-21 Unifyvault LLC Systems and methods for blockchain security data intelligence
US20200014542A1 (en) 2018-07-03 2020-01-09 ULedger, Inc. Detection of anomalies in a computer system
US11334856B2 (en) * 2018-11-21 2022-05-17 Capital One Services, Llc Check tampering prevention using blockchain
US10326802B1 (en) * 2018-12-04 2019-06-18 Xage Security, Inc. Centrally managing data for orchestrating and managing user accounts and access control and security policies remotely across multiple devices
CN110869967B (zh) * 2019-03-28 2024-04-16 创新先进技术有限公司 用于并行处理区块链交易的系统和方法
US11469886B2 (en) * 2019-05-22 2022-10-11 Salesforce.Com, Inc. System or method to implement record level access on metadata driven blockchain using shared secrets and consensus on read
WO2021062258A1 (en) * 2019-09-25 2021-04-01 Visa International Service Association Key-value map commitments system and method
US11522670B2 (en) * 2019-12-04 2022-12-06 MaataData, Inc. Pyramid construct with trusted score validation
US11405183B2 (en) * 2020-01-29 2022-08-02 Salesforce.Com, Inc. Using cache objects to store events for adding corresponding objects in a blockchain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170195406A1 (en) * 2015-06-15 2017-07-06 Graduate School At Shenzhen, Tsinghua University Distributed network node operation system based on operation control unit
WO2017091530A1 (en) * 2015-11-24 2017-06-01 Gartland & Mellina Group Blockchain solutions for financial services and other transaction-based industries

Also Published As

Publication number Publication date
RU2020112598A (ru) 2021-10-08
US20210232547A1 (en) 2021-07-29
US20230359590A1 (en) 2023-11-09
CN111466096B (zh) 2021-12-31
RU2020112598A3 (zh) 2022-01-25
US11580075B2 (en) 2023-02-14
EP3679683A4 (en) 2021-08-25
US20190079950A1 (en) 2019-03-14
US10803022B2 (en) 2020-10-13
EP3679683A1 (en) 2020-07-15
WO2019051429A1 (en) 2019-03-14
US12072847B2 (en) 2024-08-27

Similar Documents

Publication Publication Date Title
CN111466096B (zh) 提供不可变记录的系统和方法
CN108805570B (zh) 数据处理方法、装置及存储介质
CN109313654B (zh) 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和系统
CN110869967B (zh) 用于并行处理区块链交易的系统和方法
CN109313752B (zh) 使用审计保证形成用于被许可的区块链的高效共识机制的方法和系统
EP3345360B1 (en) Method for storing an object on a plurality of storage nodes
US10067810B2 (en) Performing transactions between application containers
CN109981565B (zh) 基于Meta-BFT共识机制的区块链平台及实现方法
US9419804B2 (en) Data authenticity assurance method, management computer, and storage medium
CN110417502B (zh) 一种区块链节点时钟共识方法及装置
CN112970020A (zh) 使用分布式账本监视设备部件
CN111418183A (zh) 区块链区块的异步处理
CN113157733A (zh) 一种面向多链数据关联性的高效溯源查询方法
CN114221972A (zh) 中继区块链系统以及跨链交易方法
CN111582845A (zh) 区块链的跨链交易方法、装置以及电子设备
CN110599175A (zh) 一种区块处理方法及相关设备
CN111339551B (zh) 数据的验证方法及相关装置、设备
CN115225639A (zh) 共识可信集群的变更方法、装置、计算机设备及介质
CN111400270A (zh) 一种基于区块链的文件授时的方法和装置
CN112163917B (zh) 基于区块链的票据处理方法、装置、介质及电子设备
RU2768202C2 (ru) Системы и способы для обеспечения неизменяемых записей
Majd et al. Secure and Cost Effective IoT Authentication and Data Storage Framework using Blockchain NFT
Spenger Using Blockchain for Tamper-Proof Broadcast Protocols
Konduri et al. Poster: Asynchronous computing for partial differential equations at extreme scales
CN116846916B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40033372

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant