CN114365116A - 来自私有区块链的更新的链外通知 - Google Patents
来自私有区块链的更新的链外通知 Download PDFInfo
- Publication number
- CN114365116A CN114365116A CN202080063049.5A CN202080063049A CN114365116A CN 114365116 A CN114365116 A CN 114365116A CN 202080063049 A CN202080063049 A CN 202080063049A CN 114365116 A CN114365116 A CN 114365116A
- Authority
- CN
- China
- Prior art keywords
- data
- blockchain
- participant
- value
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Power Engineering (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
示例性操作可以包括以下的一个或多个:通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;生成参与者数据的变更值的通知;基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
Description
技术领域
本申请总体涉及用于通过区块链存储数据的系统,更具体地涉及用于与不具有对私有区块链的读访问权的链外实体安全地共享在私有区块链上发生的分类账更新的协议。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如台式中央处理单元(CPU)、服务器CPU或大型计算机。存储在集中式数据库上的信息通常是可从多个不同点访问的。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式数据库上同时工作。集中式数据库由于其单个位置而易于管理、维护和控制,特别是出于安全目的进行管理、维护和控制。在集中式数据库内,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定数据集仅有一个主要记录。
机构们近来已经转向将区块链作为对传统数据库的改进的存储系统。区块链提供优于传统数据库的许多益处,包括数据冗余、无中央权限、多个访问节点等。然而,为了读取/访问对区块链数据的更新,相关方通常必须为区块链的成员。这是因为区块链的非参与者不应该能访问区块链的分类账。目前,没有一种机制能将更新的通知从私有区块链安全地递送到不是私有区块链的成员的非参与者系统(链外实体)。
因此,需要改进和克服这些缺点和限制的解决方案。
发明内容
一个示例性实施例提供一种系统,该系统包括一个或多个处理器以及网络接口。处理器被配置用于进行以下的一个或多个:通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;以及生成参与者数据的变更值的通知。网络接口被配置用于基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
另一示例性实施例提供一种方法,所述方法包括以下的一项或多项:通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;生成参与者数据的变更值的通知;以及基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
进一步的示例性实施例提供一种包括指令的非暂时性计算机可读介质,所述指令在被处理器读取时使所述处理器执行以下的一个或多个:通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;生成参与者数据的变更值的通知;以及基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
从第一方面来看,本发明提供一种计算系统,包括:处理器和网络接口。处理器被配置用于通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;以及生成参与者数据的变更值的通知。网络接口被配置用于基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
优选地,本发明提供了一种计算系统,其中,处理器将非参与者系统的公钥与数据字段的标识符一起存储在私有区块链的访问矩阵中以创建链接。
优选地,本发明提供一种计算系统,其中,数据字段被存储在私有区块链的数据块的主体、键值存储器和世界状态数据库中的一个或多个内。
优选地,本发明提供一种计算系统,其中,被进一步配置用于生成包括参与者数据的变更值的消息,并将所生成的消息存储在不同区块链的数据块内。
优选地,本发明提供一种计算系统,其中,处理器被进一步配置用于对包括参与者数据的变更值的消息进行哈希,并控制网络接口向非参与者系统发送经哈希的消息。
优选地,本发明提供一种计算系统,其中,处理器被配置用于检测由对应于参与者数据的参与者对数据字段的值的修改。
优选地,本发明提供了一种计算系统,其中,响应于检测到对值的修改,处理器被配置用于触发私有区块链的通知实体向非参与者系统发送用非参与者系统的公钥加密的包括可由公共区块链独立验证的变更值的真实性证明的通知。
优选地,本发明提供了一种计算系统,其中,处理器响应于私有区块链的区块链结点之间的共识,生成参与者数据的变更值的通知。
从另一方面来看,本发明提供一种方法,包括:通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;生成参与者数据的变更值的通知;以及基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
优选地,本发明提供了一种方法,其中,所述创建链接包括将非参与者系统的公钥与数据字段的标识符一起存储在私有区块链的访问矩阵中。
优选地,本发明提供一种方法,其中,数据字段被存储在私有区块链的数据块的主体、键值存储器和世界状态数据库中的一个或多个内。
优选地,本发明提供一种方法,进一步包括:生成包括参与者数据的变更值的消息,并将所生成的消息存储在不同区块链的数据块内。
优选地,本发明提供一种方法,进一步包括:对包括参与者数据的变更值的消息进行哈希,并向非参与者系统发送经哈希的消息。
优选地,本发明提供一种方法,其中,所述检测包括检测由对应于参与者数据的参与者对数据字段的值的修改。
优选地,本发明提供了一种方法,该方法进一步包括:响应于检测到修改,触发私有区块链的通知实体向非参与者系统发送用非参与者系统的公钥加密的包括可由公共区块链独立验证的变更值的真实性证明的通知。
优选地,本发明提供了一种方法,其中,响应于私有区块链的区块链节点之间达成共识而执行参与者数据的变更值的通知的生成。
从另一方面来看,本发明提供一种包括指令的非暂时性计算机可读介质,所述指令在被处理器读取时使处理器执行一种方法,所述方法包括:通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;生成参与者数据的变更值的通知;以及基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
优选地,本发明提供了一种非暂时性计算机可读介质,其中,所述创建链接包括将非参与者系统的公钥与数据字段的标识符一起存储在私有区块链的访问矩阵中。
优选地,本发明提供一种非暂时性计算机可读介质,其中,数据字段被存储在私有区块链的数据块的主体、键值存储器和世界状态数据库中的一个或多个内。
优选地,本发明提供一种非暂时性计算机可读介质,其中,所述方法进一步包括生成包括参与者数据的变更值的消息,并将所生成的消息存储在不同区块链的数据块内。
附图说明
图1是示出根据示例性实施例的用于与非参与者系统共享来自私有区块链分类账的更新的系统的示意图。
图2A是示出根据示例性实施例的示例区块链架构配置的示意图。
图2B是示出根据示例性实施例的在节点之间的区块链交易流程的示意图。
图3A是示出根据示例性实施例的许可网络的示意图。
图3B是示出根据示例性实施例的另一个许可网络的示意图。
图3C是示出根据示例性实施例的无许可网络的示意图。
图4A是示出根据示例性实施例的用于向对私有区块链上的数据字段的更新注册非参与者系统的引导进程的示意图。
图4B至图4D是示出根据示例性实施例的通知非参与者系统并与非参与者系统共享对数据字段的更新的过程的示意图。
图5是示出根据示例性实施例的向非参与者系统通知对私有区块链的更新的方法的示意图。
图6A是示出根据示例性实施例的被配置为执行本文描述的一个或多个操作的示例系统的示意图。
图6B是示出根据示例性实施例的被配置为执行本文描述的一个或多个操作的另一个示例系统的示意图。
图6C是示出根据示例性实施例的被配置为利用智能合约的另一示例系统的示意图。
图6D是示出根据示例性实施例的被配置为利用区块链的又一示例系统的示意图。
图7A是示出根据示例性实施例的将新块添加到分布式分类账的过程的示意图。
图7B是示出根据示例性实施例的新数据块的数据内容的示意图。
图7C是示出根据示例性实施例的用于数字内容的区块链的示意图。
图7D是示出根据示例性实施例的可以表示区块链中的块的结构的块的示意图。
图8A是示出根据示例性实施例的存储机器学习(人工智能)数据的示例性区块链的示意图。
图8B是示出根据示例性实施例的示例性量子安全模区块链的示图。
图9是示出支持一个或多个示例性实施例的示例性系统的示图。
具体实施方式
将容易理解的是,如在本文的附图中大体描述和例示的那样,本发明的组件可以以各种不同的配置来布置和设计。因此,以下对如附图中表示的方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的详细说明并不旨在限制本申请所要求保护的范围,而只是代表所选择的实施例。
在一个或多个实施例中,如贯穿本说明书所描述的本发明的特性、结构、或特征可以以任何适合的方式被组合或去除。例如,贯穿本说明书使用的短语“示例性实施例”、“一些实施例”或其他类似语言实际指的是结合实施例所描述的特定特性、结构或特征可以包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例性实施例”、“在一些实施例中”、“在其它实施例中”、或其它类似语言不一定都指同组实施例,在一个或多个实施例中,可以任何合适的方式组合或去除所描述的特性、结构、或特征。进一步,示意图中元素之间的任何连接可允许单向和/或双向的通信,即使所示的连接是单向或双向箭头。而且,附图中所示的任何装置可以是不同的装置。例如,如果所示的是移动设备发送信息,则也可用有线设备来发送该信息。
此外,尽管在实施例的描述中可能使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可能描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例性实施例提供的方法、系统、组件、非暂时性计算机可读介质、设备、和/或网络,向链外非参与者系统提供对区块链分类账数据的更新的通知。
在一个实施例中,该系统部署和配置作为分布式存储系统的去中心化数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。去中心化的数据库包括类似于能够在互不信任各方之间维护记录的分布式分类账的仅附加不可变数据结构。互不信任各方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,在分布式对等体之间没有达成共识的情况下,任何单个对等体都不能修改数据库记录。例如,对等体可以执行共识协议来验证区块链存储交易,将存储交易分组成块,并在块上建立哈希链。为了一致性,该过程根据需要通过对存储交易进行排序来形成分类账。在各种实施例中,可以使用许可区块链和/或无许可区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本机加密货币并且使用基于诸如工作证明(PoW)的各种协议的共识。另一方面,许可区块链数据库在一组共享共同目标但不完全相互信任的实体之间提供安全的交互,诸如交换资金、商品、信息之类的业务。
区块链可以操作为去中心化的存储方案定制的任意、可编程逻辑,其被称为“智能合约”或“链码”。在一些情况下,可能存在称为系统链码的、用于管理功能和参数的专用链码。本申请能进一步利用智能合约,其是利用区块链数据库的防篡改特性和节点之间称为背书或背书策略的基础协议的可信分布式应用。与本申请相关联的区块链交易可以在向区块链提交之前进行“背书”,而未背书的交易则被忽略。背书策略允许链码为交易指定以背书所需的对等节点集合为形式的背书者。当客户端将交易发送给背书策略中指定的对等体时,将执行交易以验证交易。在验证之后,交易进入排序阶段,其中使用共识协议来生成有序的分组为块的背书交易序列。
区块链可以包括在其中配置的是区块链系统的通信实体的节点。在不同类型的多个节点可在相同物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中分组,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交-客户端节点,其向背书者(例如,对等体)提交交易调用并且向排序服务(例如,排序节点)广播交易提议。另一类型的节点是对等节点,它可以接收客户端提交的交易、提交该交易并维护区块链交易的分类账的状态和副本。对等体也可以扮演背书者的角色,尽管这不是一项要求。排序服务节点或排序者是为所有节点运行通信服务的节点,其实现交付保证,诸如在提交交易和修改区块链的世界状态时向系统中的每个对等节点进行广播,区块链的世界状态是初始区块链交易的另一个名称,其通常包括控制和设置信息。
区块链可以包括分类账,其是区块链的所有状态转换的排序的、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)可维护分类账的副本。交易可能导致一组资产键-值对被作为诸如创建、更新、删除之类的一个或多个操作数而提交到分类账。分类账包括用于按块存储不可变的有序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
(区块链的)链是被构造为哈希链接块的交易日志,并且每个块包含N个交易的序列,其中N等于或大于1。块头包括该块的交易的哈希以及前一个块的头的哈希。以这种方式,分类账上的所有交易都可以被排序并以密码方式链接在一起。因而,在不破坏哈希链接的情况下不可能篡改分类账数据。最近添加的区块链块的哈希代表链上在它之前已经出现的每个交易,从而使得可以确保所有对等节点都处于一致且可信的状态。可以将链存储在对等节点文件系统(即本地的、附加的存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态代表链交易日志中包括的所有键的最新值。由于当前状态代表通道已知的最新键值,因此有时将其称为世界状态。链调用执行针对分类账的当前状态数据的交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以只是链的交易日志的索引视图,因此可以在任何时间根据链重新生成状态数据库。状态数据库可以在对等节点启动和交易被接受之前自动恢复(或者在需要时生成)。
通常会出现这样的情况,即除了资产持有人之外的实体在拥有资产中拥有权益。例如,当某人购买房屋时,银行或其他机构通常会在该人向银行偿还贷款的同时保留财产的留置权。当房主将其资产信息存储在由区块链托管的私有土地登记网络上时,房主可以访问区块链数据,因为房主是成员;但是出借人(其对该资产也有权益)不能访问,因为他们不是区块链的成员。在这种情况下,如果房主要通过土地登记区块链出售资产并记录这种变更,那么出借人将不知道这种变更,因为它们不能访问区块链,因此不能检测或读取已经发生的变更。
示例性实施例通过扩展或以其他方式与非成员或非参与者实体共享私有区块链数据来克服区块链的有限通知能力。系统可以将非参与者的系统链接到或以其他方式关联到分布式分类账上的数据值。在以上示例中,数据值(例如房屋等)可以由房主控制,并且可以代表房主和银行两者都有权益的值,在这种情况下,银行是非参与者实体。可以通过将非参与者实体的标识符与数据字段的标识符一起存储在可用于确定对区块链数据的访问权限的数据矩阵中来执行该链接。在一些实施例中,可以通过将非参与者的公钥与数据字段的标识符一起存储在矩阵中来创建链接。
当房主随后例如通过出售资产、做出变更、支付税务账单等来更新数据值时,区块链系统可以识别更新已经发生,并将该更新(以加密的形式)转发至非参与者系统。同时,可以使用公共区块链来执行私有区块链的通知者与非参与者系统之间的交换,以用来自接收数据的非参与者系统的支付来补偿通知者。例如,公共区块链可确保通知人遵守其交易结束日期,并在通知中提供真实信息。如本文所述,该通知(1)例如通过使用接收方的公钥进行加密,以机密方式发送到非私有区块链接收方,并且(2)该通知携带其包含的数据确实被存储在私有区块链上的可验证保证,例如私有区块链的对等方的数字签名。
该信息带有其在私有区块链上的出处的可验证保证。如果没有此类可验证保证,通知者可能会恶意地或疏忽地提供不正确的信息。如果通知者提供了错误信息,通知者最终会丧失之前提供的托管资金。此外,公共区块链可确保接收数据的非参与者系统已完成交易并提供了足够的补偿。在这种情况下,通知者将对称钥释放至公共区块链,以便将双重加密的数据字段解密至非参与者系统。公共区块链可以验证所释放的对称钥对消息M2进行解密以产生M2,并且验证M1是通过使用非参与者系统的公钥加密一些消息而生成的。这里,公共区块链可以采用零知识证明。释放不真实对称钥或不真实数据字段将导致通知者丧失公共区块链上承诺给它的资金。此外,非参与者系统可以在通知者释放对称钥且公共区块链验证对称钥之后,向公共区块链释放确认接收到对称钥的数字签名。如果未释放真实签名,则非参与者系统将丧失公共区块链上承诺给它的资金,其与通知者如果释放了非真实对称钥则会丧失的资金相称。
因此,可以将私有区块链数据以有针对性的方式共享到外部的链外方。传统的区块链系统使得在没有被成员同意的情况下将外部各方添加到区块链是不可行的(侵犯隐私的)。示例性实施例将通知者的角色引入到私有区块链中。在一些实施例中,通知者可以是新系统,也可以是区块链网络内的现有对等体。通知的通知者和接收方(非参与者系统)中的每一个都可将本票资金或资产转发到公共区块链,在那里它被一个或多个智能合约存储和持有。当事人一方不履行职责时,智能合约所持有的钱被作为罚款释放给另一方。
示例性实施例所描述的协议可以在不向其他非参与者系统揭示数据的情况下,与公共区块链上的外部参与方以原子方式交换私有区块链数据以获得奖励。使用这个协议,可以实施一种用于将数据/资产从私有区块链单边(单向)链接到外部实体(其可以是不同的私有区块链的成员)的方法,而无需两个网络具有共同的成员(对等体或客户端)。
本文描述的协议通过以保持对不应知情方的数据机密性的方式使得能够实现来自私有区块链的无信任(即,不需要信任单个方)通知,对传统区块链产生功能改进。该系统提高了从私有区块链到外部方的数据共享的安全性和隐私性。该协议也可以被认为是增强了传统的区块链访问控制方法,因为揭示数据的决定需要在私有区块链的参与者之间达成共识。
本文中的系统的一些益处包括:当成员数据被更新时,通知服务可使用公共区块链来与链外用户交换此信息以获得某种奖励。进一步,除了保证将更新可靠地递送到链外用户之外,该系统还与通知者可靠地共享奖励,并且提供链外非参与用户从私有区块链成员接收数据的不可否认性。此外,私有区块链不需要从一开始就具有通知服务,因为该服务可以通过激励现有对等体通过协议通知外部各方来形成。
图1示出了根据示例性实施例的用于与非参与者系统共享来自私有区块链分类账的更新的系统。参考图1,系统100包括专用网络,其在该示例中包括私有区块链110、参与者111(或私有区块链110的成员)以及通知系统112(通知者)。还应了解,专用网络可包括许多参与者111和多个通知者112,但为方便起见仅示出了各自的一个。系统100进一步包括非参与者122和公共区块链120。在该示例中,通知者112与非参与者接收方122建立了对存储在区块链110上的参与者111的私有数据的更新的单向共享。
在该示例中,私有区块链110包括作为成员的参与者111,其具有对私有区块链110的分布式分类账的读取和写入许可。专用网络还包括通知者112,其是私有区块链110的成员并且至少具有私有区块链110的读取许可。同时,非参与者系统122不属于私有区块链110,因此不具有对分类账的可信读访问或写访问,但对对私有区块链110的分类账中的特定字段的更新感兴趣。例如,特定字段可以存储参与者111的数据,诸如在参与者111是房主的示例中的房屋购买信息,非参与者系统是对房屋具有留置权的出借人的系统。
在这个示例中,公共区块链120可以用于在从通知者112提供更新数据字段的加密版本时存储更新数据字段的加密版本的哈希。这里,可以用非参与者系统122的公钥对数据字段进行加密。此外,包括加密数据字段的消息M1,可以基于对等体之间的共识由私有区块链110的智能合约生成,并记录在区块链的分类账上。此外,通知者112可以用只有通知者112知道的对称钥对消息M1进行加密,将M1的哈希版本发送到非参与者系统122,并且也将M1的哈希版本记录在公共区块链120上。这里,非参与者系统122不能访问加密的M1,因为它没有对称钥。
此外,公共区块链120可以具有在其中执行的、验证通知者112和非参与者系统122两者都按通知协议履行其义务的智能合约。在此示例中,公共区块链120可以给予非参与者系统122证明(从M1解密的)数据字段是不真实的机会。如果该字段确实是真实的,则在期满时间之后将资金释放给通知者112。在此之前,可以存在由公共区块链120调解的包括用于收据签名的对称钥的单独交换。如果在释放对称钥之后不提供签名收据,则非参与者系统122失去资金。通知者112和非参与者系统122都预先承诺等量的资金。如果任何一方都不履行其义务,则不在公共区块链上转移资金。
如果双方履行各自的义务,每一方均都会获得和损失同等金额的资金,从而产生净零利润和损失的期望结果。如果任何一方未能履行其义务(或忘记记录),公共区块链120将阻止向其释放提前提供给他们的本票资金。例如,如果通知者112释放了真实的对称钥,则它以非参与者系统122为代价获得资金,但是如果非参与者系统122没有通过消息M1的哈希释放数字签名,则其不获得任何资金。结果是112因其合规性的净收益,但是122因其不合规性的净损失。在这种情况下,公共区块链120是参与者111、通知者112和非参与成员122可访问的。这些实体中的每一个都可以有公共区块链120上的账户。虽然在图1中未示出,但是可以在公共区块链120上执行能托管资金并且在满足条件并由可以是签名、哈希等的输入触发的情况下释放的智能合约。
图2A示出根据示例性实施例的区块链架构配置200。参照图2A,区块链架构200可包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例示出)。这些节点参与许多活动,诸如区块链交易添加和确认过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略对交易进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证并试图写入在区块链层216中存储的、其副本也可能存储在底层物理基础设施214上的区块链不可变分类账。区块链配置可以包括链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等)的一个或多个应用224,所存储的程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维护其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为交易并通过附加到分布式分类账而安装在所有区块链节点204-210上。
区块链基础或平台212可以包括各种层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和用于接收和存储新交易并向试图访问数据条目的审计者提供访问的支持物理计算机基础设施。区块链层216可以暴露提供处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问的接口。密码信任服务218可用于验证交易(诸如资产交换交易)并保持信息私有。
图2A的区块链架构配置可通过由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,可以由节点204-210以智能合约和相关联的链式代码的形式来执行,该链式代码具有受其执行影响的条件或其他代码元素。作为非限制性实例,可以创建智能合约以执行提醒、更新和/或受变更、更新等影响的其他通知。智能合约本身可用于识别与分类账的授权和访问要求和使用相关联的规则。例如,读取集226可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)进行处理。写入集228可以包括通过一个或多个智能合约处理读取集226的结果。物理基础设施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可以将交易提议输入作为所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读取集和写入集的交易结果。然而,此时没有对分类账进行更新。在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的数字钱包。
图4A示出根据示例性实施例的用于向对私有区块链110上的参与者111的数据字段的更新注册非参与者系统(接收方122)的引导程序400A。参考图4A,在401中,接收方122与通知者112和参与者111共享其公钥,连同存储在私有区块链110上并且接收方122期望接收对其更新的参与者111的一个或多个数据值。在402中,通知者112请求存储参与者111数据的一个或多个字段之间的关联。在403中,引导程序智能合约在私有区块链110上执行,并创建在私有区块链110的分类账上存储的数据字段与接收方122的标识符之间的链接。在该示例中,所述链接可以通过将所述字段的标识符和接收方122的标识符(例如公钥等)存储在用于访问私有区块链110的矩阵中来创建。
在此示例中,所述链接将接收方122设置为当在私有区块链中对特定字段进行任何更新时应接收通知的指定方。例如,将接收方122的公钥与接收方122感兴趣的私有区块链的字段相关联。在404中,接收方122向公共区块链120提供用于通知的付款,其被保持在直到通知者112的职责已经被执行为止。该笔钱由在405中在公共区块链120上执行的付款智能合约持有。当通知者112基于协议与接收方122共享更新的通知时,该笔资金将用于向通知者112提供奖励。
图4B-4D示出了将分类账更新与接收方122共享并且将激励提供给通知者112的过程400B-400D。参照图4B,在411中,对数据字段进行更新或者以其他方式进行更新。这里,参与者111可通过变更值(诸如通过销售、留置、税等)来执行更新。在412中,在私有区块链110上执行的引导智能合约可以使用接收方122的公钥来对更新的字段进行加密以生成消息M1。进一步,在413中,通知者112可以读取由私有区块链110生成的加密消息M1,并且用只有通知者112才知道的对称钥对消息M1进行加密。在414中,通知者112可以将经哈希的消息M1记录在公共区块链120上,然后在415中,通知者112可以通过使用对称钥对消息M1进行加密来创建消息M2并且将该消息M2发送到接收方122。
参照图4C,在过程400C中,该协议处理用于递送证明的更新数据的交换。在421中,通知者112向公共区块链120提供本票。同样地,在422中,接收方122向公共区块链120提供相应的本票金额(相同金额)。如果双方当事人履行义务,这些货币金额相互抵消,并无效。在一些实施例中,可以在公共区块链120上执行智能合约SC-N-Key和SC-R-Sig,并且可以将他们设计为耦合合约,其中各方承诺以金钱来交换将来向同一合约提供的信息,以确保协议的正确执行。耦合合约可以确保,如果各方提交合约所需信息,各方将收回抵押资金,否则,该资金作为不遵守规则的惩罚分给对方。在一些情况下,可以使用超时来确保双方有足够的时间来将他们的输入提交给智能合约并在对方不合作的情况下收回承诺金额。
在423中,通知者112向公共区块链提供对称钥(SC-N-key),在424中,公共区块链120可以验证该对称钥解密由通知者112先前提供的消息M2(M1的哈希)。因为公共区块链120是公共的,所以对称钥在步骤423中变成公共知识。此外,公共区块链120可以基于由SC-N-key执行的零知识证明来验证M1也是使用接收方122的公钥加密的。在425中,接收方122向SC-R-sig提供M1的经签名的哈希作为接收证明,SC-R-sig可以在426中验证签名。
现在参考图4D,在431中,通知者112向公共区块链120提供接收方122的M2的签名(SC-Payment)。在432中,接收方122使用对称钥对消息M2进行解密,并且使用接收方的私钥对存储在消息中的经加密的更新进行解密以揭示原始更新值。这里,接收方122可以在433中将解密的更新值提供到公共区块链120。这并非所有情况下都会发生。例如,当接收方122检查解密值并发现其为不真实信息时,可以执行提交。接收方122然后可以将该信息提交给公共区块链120以证明其不真实性,由此防止通知者112获得付款。作为另一示例,在默认情况下,接收方122可以简单地解密M1,获得有用信息,并且可以在期满时间之后(由于没有提出质疑)向公共区块链120上的通知者112清算支付。在是例外情况的434中,公共区块链120验证解密是成功的,并且检查通过来自私有区块链参与者的附加背书提供的解密值的真实性。如果解密值是不真实的,则不释放任何付款。在435(这是默认情况)中,公共区块链120验证没有接收到质疑,在436中,公共区块链120向通知者112释放激励。
图5示出了根据示例性实施例的向非参与者系统通知对私有区块链的更新的方法500。参考图5,在510中,所述方法可包括通过链码创建非参与者系统与存储在私有区块链上的数据字段之间的链接,其中,该数据字段包括私有区块链的参与者数据。该链接或关联可以包括将该非参与者系统的标识符与该数据字段的标识符组合存储在该区块链上可访问的矩阵或其他文件中。非参与者系统的标识符可包括公钥、设备ID、用户信息等。在私有区块链上实现的智能合约可以将非参与者系统的标识符引导到区块链中,使得对数据字段的每次更新都触发向非参与者系统的通知。该数据字段可以指存储在私有区块链上的数据块的主体、分布式分类账的关键值存储和分布式分类账的世界状态数据库中的一个或多个中的数据字段。
在520中,所述方法可包括基于从存储在私有区块链上的数据字段的读取操作来检测存储在所链接的数据字段中的参与者数据的值的变更。这里,智能合约或其他服务可以检测对数据字段的更新以及所创建的与非参与者系统的链接/关联,并且触发私有区块链上的向非参与者系统发送的共识。
在530中,所述方法可包括产生参与者数据的变更值的通知。例如,可以响应于批准向非参与者系统发送的通知的私有区块链上的对等节点或背书者节点的共识而生成通知。该共识决策可以基于预定义的规则而不是取决于不同对等节点的心血来潮。例如,如果发现非参与者系统与数据字段之间的链接,则背书者节点可以批准/背书通知,等等。
在540中,该方法可以包括基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。在一些实施例中,通知可以包括已用公钥加密的更新值,该公钥有仅为非参与者系统所知的私有对应物。在通知之前,可以释放用单向密码哈希算法生成的加密值的哈希,以及释放用通知者所知但非参与者系统不知的对称钥进一步加密的加密值。这里,用于执行加密的钥可以是非参与者系统的公钥,从而使得非参与者系统能够使用其自己的私钥安全地解密更新值。在一些实施例中,通知还可以包括可由第三方(即公共区块链)独立验证的该数据字段的相关真实性证明。
在一些实施例中,该方法可以进一步包括生成包括参与者数据的变更值(其可以用非参与者系统的密钥加密)的消息并将所生成的消息存储在的不同区块链的数据块内。
在一些实施例中,所述检测可以包括检测对应于参与者数据的参与者对数据字段的值的修改。在一些实施例中,响应于检测到该修改,该方法可以进一步包括触发私有区块链的通知实体向非参与者系统发送通知。在一些实施例中,响应于私有区块链的区块链节点之间达成一致而执行参与者数据的变更值的通知的生成。
图6A示出了包括按照示例性实施例的被配置为执行各种操作的物理基础设施610的示例性系统600。参考图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合约630(其可以驻留在区块链620上),其可以执行任何示例性实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或示出的实施例中的一个或多个,并且可以代表从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是同一个模块。
图6B示出了按照示例性实施例的被配置为执行各种操作的另一个示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合约630(其可以驻留在区块链620上),智能合约630可以执行任何示例性实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或示出的实施例中的一个或多个,并且可以代表从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是同一个模块。
图6C示出按照示例性实施例被配置为在订约方之间利用智能合约配置的示例系统和被配置为在区块链上强制执行智能合约条款的中介服务器。参考图6C,配置650可以代表由明确标识一个或多个用户设备652和/或656的智能合约630驱动的通信会话、资产转移会话或进程或过程。智能合约的执行、操作和执行结果可以由服务器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、时期、有效载荷可见性、链码路径(部署交易)、链码名称、链码版本、输入(链码和函数)、客户端(创建者)标识(诸如公钥和证书),客户端的签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、命名空间、读取集(由交易读取的键和版本的列表等)、写入集(键和值的列表等)、开始键、结束键、键的列表、Merkel树查询概要等。可以为N个交易中的每个交易存储交易数据。
块元数据760可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于块创建的签名、对最后一个配置块的引用、标识块内的有效和无效交易的交易过滤器、对块进行排序的排序服务的最后一个偏移量等。签名、最后一个配置块以及排序者元数据可以由排序服务710添加。同时,块(诸如区块链节点712)的提交者可以基于背书策略、读取集/写入集的验证等来添加有效/无效信息。交易过滤器可包括大小等于块数据750中的交易的数量的字节阵列和标识交易是否有效/无效的验证码。
图7C示出了根据本文所述实施例的数字内容的区块链770的实施例。数字内容可包括一个或多个文件和相关联的信息。文件可包含介质、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变更、仅附加的特点是保护数字内容的完整性、有效性和真实性的保障,从而使其适用于适用可采性规则适用的法律程序,或考虑证据的其它环境,或对数字信息的呈示和使用感兴趣的其他环境。在这种情况下,数字内容可以称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以包括在区块链本身中并且从区块链本身访问。例如,区块链的每个块可以与相关联的数字内容一起存储引用信息(例如,头、值等)的哈希值。然后可以将哈希值和相关联的数字内容一起进行加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并可以用每个块的哈希值作为引用前一个块的基础。这可以例示如下:
块1 块2...... 块N
哈希值1 哈希值2 哈希值N
数字内容1 数字内容2 数字内容N
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密的哈希而不带有任何数字内容。可以将数字内容存储在与原始文件的哈希值相关联的另一存储区或存储器地址中。其他存储区可以是用于存储区块链的相同存储设备,或者可以是不同的存储区或者甚至是单独的关系数据库。通过获得或查询感兴趣的块的哈希值,然后在存储区中查找与实际的数字内容对应地存储的该哈希值,可以引用或访问每个块的数字内容。该操作可以例如通过数据库守门员来执行。这可以例示如下:
在图7C的示例性实施例中,区块链770包括按排序顺序密码连接的多个块7781、7782、…、778N,其中N≥1。用来链接块7781、7782、…、778N的加密可以是多个键控或非键控哈希函数中的任何函数。在一个实施例中,块7781、7782、…、778N服从于从基于块中的信息的输入产生n位字母数字输出(其中,n是256或另一个数)的哈希函数。这样的哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和防冲突的PRF算法。在另一实施例中,块7781、7782、…、778N可以通过不同于哈希函数的函数进行加密链接。为了说明的目的,参考哈希函数(例如,SHA-2)进行以下描述。
区块链中的块7781、7782、…、778N中的每一个包括头、文件的版本、以及值。由于区块链中的哈希,头和值对于每个块是不同的。在一个实施例中,值可以被包括在头中。如下文更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一个块7781称为生成块,包括头7721、原始文件7741和初始值7761。用于生成块的哈希方案、以及实际上在所有后续块中的哈希方案,可能各不相同。例如,可以对第一个块7781中的所有信息一起进行一次性哈希,或者,可以将第一个块7781中的信息的每个或部分单独进行哈希,然后可以执行对单独哈希的部分的哈希。
头7721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、介质格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。头7721可以自动地(例如,通过区块链网络管理软件)生成或者由区块链参与者手动地生成。与区块链中的其他块7782至778N中的头不同的是,生成块中的头7721不引用前一个块,因为根本就没有前一个块。
生成块中的原始文件7741可以是例如由设备捕获的数据,在将其包含在区块链中之前经过处理或未经处理。通过系统的接口从设备、介质源或节点接收原始文件7741。原始文件7741与元数据相关联,元数据例如可以由用户、设备和/或系统处理器手动地或自动地生成。可以将元数据包含在与原文件7741相关联的第一个块7781中。
生成块中的值7761是基于原始文件7741的一个或多个唯一性属性生成的初始值。在一个实施例中,该一个或多个唯一性属性可以包括原始文件7741的哈希值、原始文件7741的元数据和与文件相关联的其他信息。在一个实施例中,初始值7761可以基于以下唯一性属性:
1)原始文件的SHA-2计算的哈希值
2)始发设备ID
3)原始文件的起始时间戳
4)原始文件的初始存储位置
5)软件当前控制原始文件和相关联的元数据的区块链网络成员ID
区块链中的其他块7782至778N也具有头、文件和值。然而,与第一块7721不同的是,其他块中的头7722至772N中的每个都包括紧邻的前一个块的哈希值。前一个块的哈希值可以只是前一个块的头的哈希,也可以是整个前一个块的哈希值。通过在其余块的每一个中包括前一个块的哈希值,可以如箭头780所示逐个块地进行从第N个块返回到生成块(和相关联的原始文件)的跟踪,以建立可审计且不可变的监管链。
其他块中的头7722至772N中的每一个还可以包括其他信息,例如,版本号、时间戳、随机数、根信息、难度级别、共识协议和/或其他参数或与对应的文件和/或区块链相关联的信息。
其他块中的文件7742至774N可以等于原始文件,或者可以是生成块中的原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可以因块而异。例如,所述处理可以涉及对先前块中的文件的任何修改,如编辑信息或以其他方式改变文件的内容、从文件中剔除信息、或向文件添加或附加信息。
另外或可替代地,所述处理可以涉及仅从先前块复制文件、改变文件的存储位置、分析来自一个或多个先前块的文件、将文件从一个存储或内存位置移动到另一个、或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式将不同分析、统计或与该文件相关联的其他信息相关联。
其他块中的其他块7762至776N中的每一个中的值是唯一的值,并且因所执行的处理而都是不同的。例如,任何一个块中的值对应于前一个块中的值的更新版本。该更新反映在被赋值的块的哈希中。块的值因此提供在块中执行什么处理的指示,并且还允许通过区块链返回到原始文件的跟踪。该跟踪确认文件在整个区块链中的监管链。
例如,考虑前一个块中的文件的部分被编辑、屏蔽或像素化以保护在文件中示出的人的身份的情况。在这种情况下,包括编辑文件的块将包括与编辑文件相关联的元数据,例如,如何执行编辑、谁执行编辑、编辑发生的时间戳等。元数据可被哈希以形成值。因为块的元数据不同于经哈希处理以在前一个块中形成值的信息,所以这些值彼此不同并且可以在解密时恢复。
在一个实施例中,当发生以下任何一个或多个时,可以更新前一个块的值(例如,计算新的哈希值)以形成当前块的值。在该示例性实施例中,可以通过对以下指出的信息的全部或一部分进行哈希来计算新的哈希值。
a)新SHA-2计算的哈希值,如果文件已经以任何方式经过处理(例如,如果文件被编辑、复制、更改、访问或采取一些其他动作)
b)文件的新存储位置
c)所识别的与文件相关联的新元数据
d)将文件的访问权或控制权从一个区块链参与者转移至另一个区块链参与者
图7D示出按照一个实施例可以代表区块链790中的块的结构的块的实施例。所述块Blocki包括头772i、文件774i和值776i。
头772i包括前一个块Blocki-1的哈希值和附加参考信息,所述附加参考信息例如可以是本文所讨论的任意类型的信息(例如,包括引用、特征、参数等的头信息)。所有的块(当然,除了生成块)都引用前一块的哈希。前一块的哈希值可以只是前一块中的头的哈希,也可以是前一块中的信息的全部或部分(包括文件和元数据)的哈希。
文件774i包括多个数据,如按顺序的数据1、数据2、…、数据N。用描述与数据相关联的内容和/或特征的元数据—元数据1、元数据2、…、元数据N—来标记数据。例如,每个数据的元数据可以包括用于指示数据的时间戳、处理数据、指示数据中描绘的人或其他内容的关键词、和/或可能有助于确定整体文件的有效性和内容的其他特征的信息,特别是例如如结合以下讨论的实施例所描述的、其作为数字证据的使用的信息。除了元数据之外,每个数据可以用对先前数据的引用REF1、REF2、…、REFN进行标记,以防止篡改、文件中的间隙以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合约),在不改变哈希的情况下就不能更改元数据,这很容易地被识别为无效。因此,元数据创建了可被访问以供区块链中的参与者使用的信息的数据日志。
值776i是哈希值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定的块Blocki,可以更新该块的值以反映为该块执行的处理,例如,新的哈希值、新的存储位置、相关联的文件的新的元数据、控制权或访问权的转移、标识符、或将被添加的其他动作或信息。尽管每个块中的值被示为是与文件的数据的元数据和头分离的,但是在另一实施例中,该值可以部分地或整体地基于该元数据。
一旦形成区块链770,在任何时间点,可以通过查询区块链以获得跨块的值的交易历史来获得文件的不可变监管链。该查询或跟踪过程可以从解密当前包括的块(例如,最后一个(第N个)块)的值开始,然后继续解密其他块的值,直到到达生成块并恢复原始文件为止。该解密还可能涉及解密每个块的头和文件以及相关联的元数据。
解密是基于在每个块中发生的加密的类型来执行的。这可能会涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可以公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥要保密,用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收方可以用发送方的公钥来验证。这样,接收方可以确信仅可能是发送方发送了消息。
生成密钥可类似于在区块链上创建账户,但不必实际上在任何地方注册。此外,在区块链上执行的每个交易由发送方使用其私钥进行数字签名。此签名确保只有账户的所有者才能跟踪和处理(如果在由智能合约确定的许可的范围内)区块链的文件。
图8A和图8B示出了可以在本文中并入和使用的区块链的用例的附加实例。具体地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量历史数据(或训练数据)来构建预测模型,以对新数据进行准确预测。机器学习软件(例如,神经网络等)通常可以筛选数百万个记录来发现非直观模式。
在图8A的示例中,主机平台820构建并部署用于资产830的预测监控的机器学习模型。这里,主机平台820可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、油气设备、船只、船舶、车辆等。作为另一示例,资产830可以是无形资产,诸如股票、货币、数字币、保险等。
可以使用区块链810,来显著地改进机器学习模型的训练过程802和基于训练后的机器学习模型的预测过程804。例如,在802中,不是要求数据科学家/工程师或其他用户收集数据,而是可由资产830自身(或通过中介,未示出)在区块链810上存储历史数据。这可以显著地减少主机平台820在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可以直接地且可靠地从其起源位置直接发送到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到用该数据来构建机器学习模型的个体。这允许在资产830之间共享数据。
可以基于共识机制将所收集的数据存储在区块链810中。共识机制拉入(许可节点)以确保被记录的数据经过验证且准确。所记录的数据是带时间戳的、加密签名的且不可变的。因此,它是可审计的、透明的、并且安全的。在某些情况下(即,供应链、医疗保健、物流等),添加直接写到区块链的物联网设备可以增加被记录的数据的频率和准确度。
此外,机器学习模型在所收集的数据上的训练可能要由主机平台820进行多轮次的微调和测试。每个轮次都可以基于附加的数据或先前未考虑的数据来帮助扩展机器学习模型的知识。在802中,不同的训练和测试步骤(以及与其相关联的数据)可以由主机平台820存储在区块链810上。机器学习模型的每次微调(例如,变量、权重等的变化)可以存储在区块链810上。这提供了训练模型是如何训练的以及使用什么数据来训练模型的可验证证明。此外,当主机平台820已经实现最终训练的模型时,所得到的模型可以被存储在区块链810上。
在训练了模型之后,可以将其部署到可以基于最终训练的机器学习模型的执行来进行预测/决策的现场环境。例如,在804中,机器学习模型可以用于诸如飞机、风力涡轮机、医疗保健机器等资产的基于条件的维护(CBM)。在该示例中,从资产830反馈的数据可以被输入到机器学习模型并且用于进行诸如故障事件、错误代码等的事件预测。通过在主机平台820处执行机器学习模型而做出的判定,可以存储在区块链810上以提供可审核/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产830的零件的未来损坏/故障,并且创建替换该零件的警报或通知。此决策背后的数据可由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或示出的特征和/或动作可以在区块链810上或关于区块链810发生。
可以将区块链的新交易聚集到一个新块中并添加到现有哈希值。然后将其加密以创建新块的新哈希。当交易被加密时,其被添加到下一交易列表,等等。结果是各自包含所有先前块的哈希值的区块链。存储这些块的计算机定期比较它们的哈希值以确保它们都是一致的。任何不同意的计算机丢弃引起问题的记录。这种方式有利于确保区块链的抗篡改,但并不完美。
一种耍弄这种系统的方式是不诚实的用户以对他们有利、但保持哈希不变的方式来改变交易列表。这可以通过蛮力来进行,换言之,通过改变记录、加密结果、然后查看哈希值是否相同来进行。如果不相同,就反反复复地尝试,直到找到匹配的哈希为止。区块链的安全性基于这样的信念:普通计算机只能以完全不切实际的时间尺度(诸如宇宙年龄)进行这种蛮力攻击。相比之下,量子计算机要快得多(快数千倍),因此构成更大的威胁。
图8B示出实施量子密钥分配(QKD)以防止量子计算攻击的量子安全区块链852的示例850。在该示例中,区块链用户可以使用QKD来验证彼此的身份。这利用诸如光子的量子粒子发送信息,窃听者无法在不破坏它们的情况下复制这些粒子。这样,发送方和接收方可以通过区块链来确定彼此的身份。
在图8B的示例中,存在四个用户854、856、858和860。每对用户均可在它们之间共享密钥862(即,QKD)。由于示例中有四个节点,因此有六个节点对,因此使用六个不同的密钥862,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用窃听者无法在不破坏它们的情况下复制的量子粒子(例如光子)发送信息来创建QKD。这样,一对用户可以确定彼此的身份。
区块链852的操作基于以下两个过程:(i)交易的创建,以及(ii)聚集新交易的块的构造。可以类似于传统的区块链网络来创建新交易。每个交易可以包含关于发送方、接收方、创建时间、待转移的金额(或值)、证明发送方拥有用于操作的资金的参考交易的列表等的信息。该交易记录然后被发送到所有其他节点,在那里其被输入到未确认交易池中。这里,两方(即,854-860中的一对用户)通过提供他们的共享密钥862(QKD)来认证交易。该量子签名可以附接到每个交易,使得其非常难以篡改。每个节点相对于区块链852的本地副本检查它们的条目以验证每个交易具有足够的资金。然而,交易尚未确认。
可以使用广播协议以去中心化的方式来创建块,而不是对块执行传统的挖掘过程。在预定时间段(例如,秒、分钟、小时等),网络可将广播协议应用于任何未确认的交易,从而实现关于交易的正确版本的拜占庭协议(共识)。例如,每个节点可以拥有一个私有值(该特定节点的交易数据)。在第一个轮次中,节点互相传送它们的私有值。在随后的轮次中,节点传送它们在前一轮次从其他节点接收的信息。这里,诚实节点能够在新块内创建一组完整交易。这个新块可以被添加到区块链852中。在一个实施例中,本文描述和/或示出的特征和/或动作可在区块链852上或相对于区块链852发生。
图9示出了支持本文中描述和/或示出的一个或多个示例性实施例的示例性系统900。系统900包括计算机系统/服务器902,其可与许多其他通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器902一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括以上系统或设备中的任一个的分布式云计算环境等。
计算机系统/服务器902可以在由计算机系统执行的诸如程序模块之类的计算机系统可执行指令的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储媒质中。
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906、以及将包括系统存储器906的不同系统组件耦合至处理器904的总线。
总线代表若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围组件互连(PCI)总线。
计算机系统/服务器902通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器902访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器906实现其他附图的流程图。系统存储器906可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)910和/或高速缓冲存储器912。计算机系统/服务器902还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储媒质。仅通过示例的方式,存储系统914可以被提供用于从不可移除的非易失性磁性介质(未示出,通常被称为“硬盘驱动器”)进行读取和写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线。如以下将进一步示出和描述的,存储器906可以包括具有被配置成用于执行该应用的不同实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块918的程序/实用程序916,以及操作系统、一个或多个应用程序、其他程序模块和程序数据,可以通过示例而非限制的方式存储在存储器906中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块918通常执行如本文所述的应用的不同实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的方面可以体现为系统、方法或计算机程序产品。因此,本申请的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例的形式,在本文中可以统称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
计算机系统/服务器902还可与一个或多个外部设备920(例如,键盘、指点设备、显示器922等)通信;和/或使计算机系统/服务器902能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可通过I/O接口924发生。此外,计算机系统/服务器902可以通过网络适配器926与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的一个或多个网络通信。如图所示,网络适配器926通过总线与计算机系统/服务器902的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器902结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。
虽然系统、方法和非暂时性计算机可读介质中的至少一个的示例性实施例已经在附图中示出并且在前面的详细说明中作了描述,但是将理解的是,本申请不限于所公开的实施例,而是能够具有由以下权利要求阐述和定义的许多重排、修改和替换。例如,各种附图的系统的能力可由本文描述的或分布式架构中的一个或多个模块或组件来执行,并且可包括发射器、接收方或成对的发射器、接收方。例如,由单独模块执行的功能的全部或一部分可由这些模块中的一个或多个执行。进一步,本文描述的功能可以在不同时间和关于模块或组件内部或外部的不同事件来执行。此外,在各个模块之间发送的信息可以通过数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或通过多个协议中的至少一个在模块之间发送。而且,由任何模块发送或接收的消息可直接和/或通过一个或多个其他模块发送或接收。
本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个实例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的局部和分布式形式来实现。
应注意,本说明书中所描述的系统特征中的一些已经被呈现为模块,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,所述硬件电路包括定制超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管之类的现成半导体、或其他分立组件。模块也可以以可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)来实现。
模块也可以至少部分地以软件来实现,由各种类型的处理器执行。所标识的可执行代码单元可以例如包括可以例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地结合在一起时,所述不同指令包括模块并且实现模块的所述目的。进一步,模块可存储在计算机可读介质上,所述计算机可读介质可为(例如)硬盘驱动器、快闪装置、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、在不同的程序之间、以及跨几个存储器设备。类似地,操作数据可以在本文中在模块内被识别和示出,并且可以以任何合适的形式体现和组织在任何合适类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分布在不同位置上,包括在不同的存储设备上,并且可以至少部分地仅仅作为电子信号存在于系统或网络上。
将容易理解的是,如在此的附图中总体上描述和展示的,本申请的这些组件可以按多种多样的不同构型来安排和设计。因此,实施例的详细描述不旨在限制所要求的应用的范围,而仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置的硬件元件来实践以上内容。因此,虽然已经基于这些优选实施例描述了本申请,但是对于本领域技术人员而言显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是说明性的,并且当考虑对其的全范围的等效物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围将仅由所附权利要求书限定。
Claims (20)
1.一种计算系统,包括:
处理器,被配置用于通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;以及生成参与者数据的变更值的通知;和
网络接口,被配置用于基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
2.如权利要求1所述的计算系统,其中,处理器将非参与者系统的公钥与数据字段的标识符一起存储在私有区块链的访问矩阵中以创建链接。
3.如权利要求1所述的计算系统,其中,数据字段被存储在私有区块链的数据块的主体、键值存储器和世界状态数据库中的一个或多个内。
4.如权利要求1所述的计算系统,其中,处理器被进一步配置用于生成包括参与者数据的变更值的消息,并将所生成的消息存储在不同区块链的数据块内。
5.如权利要求4所述的计算系统,其中,处理器被进一步配置用于对包括参与者数据的变更值的消息进行哈希,并控制网络接口向非参与者系统发送经哈希的消息。
6.如权利要求1所述的计算系统,其中,处理器被配置用于检测由对应于参与者数据的参与者对数据字段的值的修改。
7.如权利要求6所述的计算系统,其中,响应于检测到对值的修改,处理器被配置用于触发私有区块链的通知实体向非参与者系统发送用非参与者系统的公钥加密的包括可由公共区块链独立验证的变更值的真实性证明的通知。
8.如权利要求1所述的计算系统,其中,处理器响应于私有区块链的区块链结点之间的共识,生成参与者数据的变更值的通知。
9.一种方法,包括:
通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;
基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;
生成参与者数据的变更值的通知;以及
基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
10.如权利要求9所述的方法,其中,所述创建链接包括将非参与者系统的公钥与数据字段的标识符一起存储在私有区块链的访问矩阵中。
11.如权利要求9所述的方法,其中,数据字段被存储在私有区块链的数据块的主体、键值存储器和世界状态数据库中的一个或多个内。
12.如权利要求9所述的方法,进一步包括生成包括参与者数据的变更值的消息,并将所生成的消息存储在不同区块链的数据块内。
13.如权利要求12所述的方法,进一步包括对包括参与者数据的变更值的消息进行哈希,并向非参与者系统发送经哈希的消息。
14.如权利要求9所述的方法,其中,所述检测包括检测由对应于参与者数据的参与者对数据字段的值的修改。
15.如权利要求14所述的方法,进一步包括,响应于检测到修改,触发私有区块链的通知实体向非参与者系统发送用非参与者系统的公钥加密的包括可由公共区块链独立验证的变更值的真实性证明的通知。
16.如权利要求9所述的方法,其中,响应于私有区块链的区块链节点之间达成共识而执行参与者数据的变更值的通知的生成。
17.一种包括指令的非暂时性计算机可读介质,所述指令在由处理器读取时使处理器执行一种方法,所述方法包括:
通过链码创建非参与者系统与私有区块链上存储的数据字段之间的链接,其中,数据字段包括私有区块链的参与者数据;
基于从私有区块链上存储的数据字段的读取操作来检测参与者数据的值的变更;
生成参与者数据的变更值的通知;以及
基于非参与者系统与数据字段之间的链接向非参与者系统发送通知。
18.如权利要求17所述的非暂时性计算机可读介质,其中,所述创建链接包括将非参与者系统的公钥与数据字段的标识符一起存储在私有区块链的访问矩阵中。
19.如权利要求17所述的非暂时性计算机可读介质,其中,数据字段被存储在私有区块链的数据块的主体、键值存储器和世界状态数据库中的一个或多个内。
20.如权利要求17所述的非易失性计算机可读介质,其中,所述方法进一步包括生成包括参与者数据的变更值的消息,并将所生成的消息存储在不同区块链的数据块内。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/573,865 | 2019-09-17 | ||
US16/573,865 US11277260B2 (en) | 2019-09-17 | 2019-09-17 | Off-chain notification of updates from a private blockchain |
PCT/EP2020/074581 WO2021052769A1 (en) | 2019-09-17 | 2020-09-03 | Off-chain notification of updates from a private blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114365116A true CN114365116A (zh) | 2022-04-15 |
Family
ID=72381078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080063049.5A Pending CN114365116A (zh) | 2019-09-17 | 2020-09-03 | 来自私有区块链的更新的链外通知 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11277260B2 (zh) |
EP (1) | EP4042631A1 (zh) |
JP (1) | JP7510234B2 (zh) |
CN (1) | CN114365116A (zh) |
WO (1) | WO2021052769A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11164180B1 (en) | 2018-08-06 | 2021-11-02 | United Services Automobile Association (Usaa) | Privacy preservation in private consensus networks |
US11216573B1 (en) * | 2018-08-06 | 2022-01-04 | United Services Automobile Association (Usaa) | Privacy preservation in private consensus networks |
US11288380B2 (en) * | 2019-10-14 | 2022-03-29 | Oracle International Corporation | Securely sharing selected fields in a blockchain with runtime access determination |
CN111357026B (zh) * | 2020-02-03 | 2022-06-07 | 支付宝(杭州)信息技术有限公司 | 基于区块链的可信保函 |
SG11202013145YA (en) * | 2020-02-03 | 2021-01-28 | Alipay Hangzhou Inf Tech Co Ltd | Blockchain-based trustable guarantees |
US11468089B1 (en) * | 2021-02-19 | 2022-10-11 | Sprint Communications Company L.P. | Synchronization of distributed ledger processes |
CN112988896B (zh) * | 2021-03-29 | 2023-02-28 | 湖北央中巨石信息技术有限公司 | 一种基于区块链的同步共识方法及系统及装置及介质 |
CN113157805B (zh) * | 2021-04-16 | 2024-05-03 | 西安瓜大网络科技有限公司 | 一种事务定序共识方法和系统 |
CN113094750B (zh) * | 2021-04-20 | 2024-02-09 | 西安交通大学 | 一种基于区块链的压缩与隐私工业数据共享的实现方法 |
US11935042B2 (en) | 2021-08-13 | 2024-03-19 | Nec Corporation | Delegated off-chain payments using cryptocurrencies |
US20230068301A1 (en) * | 2021-08-26 | 2023-03-02 | Mastercard International Incorporated | Method and system for privately managed digital assets on an enterprise blockchain |
CN113556363B (zh) * | 2021-09-18 | 2021-12-17 | 中国人民解放军国防科技大学 | 基于去中心化和分布式代理重加密的数据共享方法及系统 |
US11789937B2 (en) | 2022-01-28 | 2023-10-17 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and apparatus for exchanging data between blockchain system and non-blockchain system |
KR102614819B1 (ko) * | 2022-06-15 | 2023-12-19 | 선종엽 | 커스텀 대체 불가 토큰(Custom Non-Fungible Token)을 생성하는 서버의 동작방법 및 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402792B2 (en) | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
US10878522B2 (en) * | 2016-08-18 | 2020-12-29 | First American Financial Corporation | Systems and methods for using blockchains to record, manage, and transfer ownership rights to land titles |
US10565570B2 (en) | 2016-09-27 | 2020-02-18 | The Toronto-Dominion Bank | Processing network architecture with companion database |
CN107196772B (zh) * | 2017-03-24 | 2020-03-13 | 创新先进技术有限公司 | 一种广播消息的方法及装置 |
US10944546B2 (en) * | 2017-07-07 | 2021-03-09 | Microsoft Technology Licensing, Llc | Blockchain object interface |
US10516525B2 (en) | 2017-08-24 | 2019-12-24 | International Business Machines Corporation | System and method for detecting anomalies in examinations |
US10963400B2 (en) | 2017-10-11 | 2021-03-30 | International Business Machines Corporation | Smart contract creation and monitoring for event identification in a blockchain |
EP3563329B1 (en) * | 2018-12-13 | 2022-02-09 | Advanced New Technologies Co., Ltd. | Off-chain smart contract service based on trusted execution environment |
MY194395A (en) | 2018-12-19 | 2022-11-30 | Advanced New Technologies Co Ltd | Data isolation in a blockchain network |
SG11201906830XA (en) | 2018-12-21 | 2019-08-27 | Alibaba Group Holding Ltd | Verifying integrity of data stored in a consortium blockchain using a public sidechain |
EP3673616A4 (en) * | 2019-05-31 | 2020-10-28 | Advanced New Technologies Co., Ltd. | PUBLIC KEY RESTORATION PROCESS BASED ON AN SM2 SIGNATURE |
US20210089422A1 (en) * | 2019-09-06 | 2021-03-25 | Common Computer Inc. | System and method for serverless computing based on blockchain |
-
2019
- 2019-09-17 US US16/573,865 patent/US11277260B2/en active Active
-
2020
- 2020-09-03 WO PCT/EP2020/074581 patent/WO2021052769A1/en unknown
- 2020-09-03 CN CN202080063049.5A patent/CN114365116A/zh active Pending
- 2020-09-03 EP EP20767770.9A patent/EP4042631A1/en active Pending
- 2020-09-03 JP JP2022517234A patent/JP7510234B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP7510234B2 (ja) | 2024-07-03 |
EP4042631A1 (en) | 2022-08-17 |
US20210083845A1 (en) | 2021-03-18 |
JP2022548168A (ja) | 2022-11-16 |
US11277260B2 (en) | 2022-03-15 |
WO2021052769A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360963B2 (en) | Tracking and verification of physical assets | |
US11277260B2 (en) | Off-chain notification of updates from a private blockchain | |
US20210091960A1 (en) | Tracking and verification of physical assets | |
AU2021254870B2 (en) | Faster view change for blockchain | |
US11636094B2 (en) | Chaincode recommendation based on existing chaincode | |
US11362826B2 (en) | Endorsement process for non-deterministic application | |
US11664973B2 (en) | Trust-varied relationship between blockchain networks | |
US20220329436A1 (en) | Token-based identity validation via blockchain | |
CN115943411A (zh) | 用于保护数据的噪声交易 | |
US20230070625A1 (en) | Graph-based analysis and visualization of digital tokens | |
US20210297271A1 (en) | Subscription service for networks | |
US11475365B2 (en) | Verification of stochastic gradient descent | |
US20220276996A1 (en) | Assessment node and token assessment container | |
US11924348B2 (en) | Honest behavior enforcement via blockchain | |
CN112052474A (zh) | 蓝光拷贝服务 | |
KR20230005353A (ko) | 탈중앙화된 데이터베이스에서 허가된 이벤팅 | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
US12045810B2 (en) | Trifocal key for controlling custodians of digital assets | |
AU2021253009B2 (en) | Contextual integrity preservation | |
CN114981773A (zh) | 无冲突版本控制 | |
US20210150597A1 (en) | Automated invoicing | |
US20210248271A1 (en) | Document verification | |
US20210232540A1 (en) | Document storage and verification | |
US20210248272A1 (en) | Document verification | |
US20210250334A1 (en) | Data linkage across multiple participants |
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 |