CN116249999A - 用于区块链网络的共识服务 - Google Patents
用于区块链网络的共识服务 Download PDFInfo
- Publication number
- CN116249999A CN116249999A CN202180066600.6A CN202180066600A CN116249999A CN 116249999 A CN116249999 A CN 116249999A CN 202180066600 A CN202180066600 A CN 202180066600A CN 116249999 A CN116249999 A CN 116249999A
- Authority
- CN
- China
- Prior art keywords
- tos
- key
- gateway
- blockchain
- transaction
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于在区块链网络中建立共识的计算机实施的方法、一种用于区块链网络的总体排序服务以及一种计算机程序产品。一个实施例可以包括为区块链网络中的组织提供第一总排序服务(TOS)网关,在第一TOS网关处生成对称密钥,分割对称密钥以生成多个密钥份额,以及将多个密钥份额中的至少一个分发到区块链网络中的第二TOS网关。在一些实施例中,TOS网关可以具有对共享消息队列的读取/写入访问权,该共享消息队列使得消息对于区块链网络中的每个其他TOS网关可用。一些实施例还可以包括通过从区块链网络中的第二网关请求密钥份额中的一个密钥份额来恢复对称密钥,以及使用密钥份额中的一个密钥份额来重构对称密钥。
Description
背景技术
本公开内容涉及最终确定和提交交易,更具体地说,涉及在去中心化的分布式交易处理系统中实现共识。
1948年EDVAC系统的开发常常被认为是计算机时代的开始。从那时起,计算机系统已经发展成为极其复杂的设备。今天的计算机系统通常包括复杂的硬件和软件组件、应用程序、操作系统、处理器、总线、内存、输入/输出设备等的组合。随着半导体处理和计算机结构的进步将性能越推越高,甚至更先进的计算机软件也在发展以利用这些能力的更高的性能,使得今天的计算机系统比几年前强大得多。
已成功应用计算系统的一个领域是交易处理。历史上,中央式数据库在位于一个位置处的一个物理系统上执行的特殊目的数据库程序中存储和维护交易数据。这个位置通常是中央式计算机,例如,服务器计算机或大型计算机。中央式数据库相对容易维护和管理,特别是为了安全起见,因为它们是单点控制。
发明内容
根据本公开的实施例,一种用于在区块链网络中建立共识的计算机实施的方法。一个实施例可以包括为区块链网络中的组织提供第一总排序服务(TOS)网关,在第一TOS网关处生成对称密钥,分割对称密钥以生成多个密钥份额,并将多个密钥份额中的至少一个分配给区块链网络中的第二TOS网关。在一些实施例中,TOS网关可以对共享消息队列具有读取/写入访问权,该共享消息队列使消息可用于区块链网络中的每个其他TOS网关。一些实施例还可以包括通过从区块链网络中的第二网关请求密钥份额之一来恢复对称密钥,并使用密钥份额之一重构对称密钥。
根据本公开的实施例,一种用于机密的排序服务的计算机程序产品,包括一个或多个计算机可读存储介质以及共同存储在该一个或多个计算机可读存储介质上的程序指令。该程序指令可以包括用于为区块链网络中的每个组织运行总排序服务网关的程序指令,其中每个总排序服务网关具有对共享消息队列的读取/写入访问权,该队列将消息分配给每个组织,识别组织内的一组组织,并生成包括该一组组织的通道,其中该一组组织自主地合作。该程序指令还可以包括用于生成仅为该一组组织所知的对称密钥的程序指令,将该对称密钥分割成与该一组组织中的多个组织相关联的各个份额,以及存储份额而不存储整个对称密钥。
根据本公开的实施例,一种用于区块链网络的总排序服务。一个实施例可以包括多个总排序服务(TOS)网关,每个网关与区块链网络中的多个成员组织之一相关联,以及适合将对称密钥重新分配给区块链网络中的多个TOS网关的共享消息队列。多个TOS网关可以各自包括可操作地连接到存储器的处理器,该存储器包含程序指令,当在处理器上执行时,该程序指令在多个TOS网关中的第一个生成对称密钥,将对称密钥分割成多个密钥份额,并将多个密钥份额中的至少一个分配给区块链网络中的第二个TOS网关。
上述概述并不旨在描述每个说明性实施例或或本公开的每个实施方式。
附图说明
本申请中包括的附图被纳入说明书并构成说明书的一部分。它们说明了本公开的实施例,并与具体实施方式一起用于解释本公开的原理。附图只是说明了某些实施例,并不限制本公开的内容。
图1描绘了与一些实施例一致的数据处理系统。
图2描绘了与一些实施例一致的云计算环境。
图3描绘了与一些实施例一致的抽象模型层。
图4是与一些实施例一致的区块链系统的高层图。
图5A描绘了与一些实施例一致的区块链架构配置的示例。
图5B说明了与一些实施例一致的区块链交易流程。
图6A说明了与一些实施例一致的流程图。
图6B说明了与一些实施例一致的进一步的流程图。
图6C说明了与一些实施例一致的被配置为执行本文描述的一个或多个操作的示例系统。
图6D说明了与一些实施例一致的被配置为执行本文描述的一个或多个操作的另一示例系统。
图6E说明了与一些实施例一致的被配置为利用智能合约的另一示例系统。
图6F说明了与一些实施例一致的包括区块链的系统。
图7A和图7B说明了与一些实施例一致的创建通道的一种方法。
图8说明了与一些实施例一致的由总排序服务网关(TOS网关)恢复对称密钥的一种方法。
图9是说明了与一些实施例一致在区块链中扩大成员的一种方法900的流程图。
图10A和图10B说明了与一些实施例一致的轮换密钥的一种方法。
图11A说明了根据示例实施例的新区块被添加到分布式分类账的过程。
图11B说明了根据示例实施例的新数据块的内容。
图11C说明了根据示例实施例的用于数字内容的区块链。
图11D说明了根据示例实施例的可以代表区块链中的区块的结构的框。
图12A说明了根据示例实施例的存储机器学习(人工智能)数据的示例区块链。
图12B说明了根据示例实施例的示例量子安全区块链。
虽然本发明可用于各种修改和替代形式,但其具体内容已在附图中以示例方式显示,并可进行详细描述。然而,应该理解的是,本发明的意图并不是要将本发明限制在所描述的特定实施例中。相反,本发明的意图是涵盖所有的修改、等同物和替代物。
具体实施方式
本公开内容的各方面涉及最终确定和提交交易;更具体的各方面涉及在去中心化的、分布式交易处理系统中实现共识。虽然本公开不一定局限于此类应用,但通过对使用此背景的各种示例的讨论可以理解本公开内容的各方面。
去中心化数据库一般指分布式存储系统,其中多个节点合作来存储和/或提供对数据的访问。区块链是去中心化数据库的示例,它通常包括类似于分布式分类账的仅附加不可变的数据结构,能够维护相互不信任/不被信任的各方之间的记录。这些相互不信任的/不被信任的各方在此被称为对等体或对等体节点。
在一些区块链实施例中,每个对等体维护分布式数据库记录的副本,在对等体之间没有达成共识的情况下,没有一个对等体可以修改分布式数据库记录。在一些区块链实施例中,对等体可以执行共识协议以确认区块链交易,将区块链交易分组成区块并在区块上建立哈希链。该过程可以通过为了一致性对存储交易进行排序而形成分布式分类账。
在公共的或无权限的区块链实施例中,任何人都可以参与而不需要具体的授权。相比之下,有权限的区块链实施例提供了一个系统,该系统可以确保有共同目标但仍然不完全信任彼此的一组授权实体之间的相互作用,诸如交换资金、货物、信息等业务。
一些区块链的实施例可以操作任意的、可编程的逻辑,为诸如“智能合约”和“链码”的去中心存储方案量身定做。在其中一些实施例中,专门的链码可能存在于管理功能和参数,这被称为系统链码。智能合约是可信的分布式应用,它利用了区块链的防篡改特性和节点之间的基础协议(通常被称为背书或背书策略)。
在一些实施例中,区块链交易在被提交到区块链之前可以被“背书”,而没有被“背书”的交易可以忽略。与一些实施例一致的背书策略允许链码以背书所需的一组对等节点的形式为交易指定背书者。当客户端将交易发送到背书策略中指定的对等体时,交易可以被执行以验证交易。在确认之后,交易可以进入排序阶段,在排序阶段中,共识协议被用来产生被分组到区块的经背书的交易的有序序列。
在一些区块链的实施例中,节点可以作为区块链系统的通信实体。在这些实施例中,“节点”可以执行一种逻辑功能,在某种意义上,不同类型的多个节点可以在同一物理服务器上运行。节点可以在信任域中被分组,并可以与以各种方式控制它们的逻辑实体相关联。节点还可以包括不同的类型,诸如向背书者(例如,对等体)提交交易请求的客户端或提交客户端节点以及向排序服务广播交易提议的排序节点。然而,另一类型的节点是对等节点,该对等节点可以接收客户提交的交易、提交交易并维护区块链交易的状态和分类账的副本。在一些实施例中,对等节点也可以有背书者的角色,尽管这不是一个要求。
在一些实施例中,排序服务节点(或“排序者”)可以为所有节点运行通信服务并实施交付保证,诸如在提交交易和修改区块链的世界状态时向系统中的每个对等节点广播。在一些实施例中,世界状态可包括初始区块链交易,它通常包括控制和设置信息。
然而,区块链技术的一些用户可能不愿意托管排序节点。这可能是因为将端点暴露在公共互联网上存在固有的安全风险,而许多用户缺乏管理该风险所需的技术专长、关注和资源。此外,没有轮换的基于领导者的共识协议会导致网络带宽分配不均。这又可能导致一些用户将计算、磁盘I/O、网络带宽花在不涉及他们的交易上。还有一些用户可能会担心是否符合监管、服务水平协议等,特别是在某个区块链实施方式不包括运行排序节点的经济激励的情况下。
相反,在形成由第三方(例如,不是在区块链上记录的大量交易的一方)托管共识服务的区块链网络时,也可能存在挑战。例如,如果排序服务由第三方运行,第三方可能有机会接触到区块链内容,因为排序服务基本上是自己创建区块,而且新带来的节点需要解析区块,以便赶上区块链的状态。然而,这可能会产生不必要的副作用,诸如:(i)第三方可能能够清楚地(例如,未加密的)看到所有通道的所有交易,因此可能会访问到机密的和/或敏感信息;(ii)如果区块链网络的各方希望迁移到新的排序服务提供商,则可能需要第三方排序服务的合作,但由于这是一项非艰巨的任务,它提出了永恒的供应商锁定的风险。
因此,本公开的一些实施例可以使无法托管排序服务节点的组织团体也能创建区块链网络。这些区块链网络可以包括机密的总排序服务(TSO),在一些实施例中,它可以从多个总排序服务网关(TSO网关)接收和转发加密后的交易有效载荷。
数据处理系统
图1说明了与一些实施例一致的数据处理系统(DPS)100a的实施例。本实施例中的DPS 100a可以实施为个人计算机;服务器计算机;便携式计算机,诸如笔记本或笔记本电脑、PDA(个人数字助理)、平板电脑或智能手机;嵌入到较大设备(诸如汽车、飞机、远程会议系统、电器)中的处理器;智能设备;或任何其他适当类型的电子设备。此外,除图1所示的组件外,还可能存在其他组件,而且这些组件的数量、类型和配置可能有所不同。此外,图1仅描绘了DPS 100a的代表性主要组件,个别组件的复杂性可能比图1所表示的更大。
图1中的数据处理系统100a包括通过系统总线122连接到存储器112、大容量存储接口114、终端/显示接口116、网络接口118和输入/输出(“I/O”)接口120的多个中央处理单元110a-110d(本文一般称为处理器110或CPU110)。本实施例中的大容量存储接口114将系统总线122连接到一个或多个大容量存储设备,诸如直接存取存储设备140、通用串行总线(“USB”)存储设备141或可读/可写光盘驱动器142。网络接口118允许DPS 100a通过通信介质106与其他DPS 100b通信。存储器112还包含操作系统124、多个应用程序126和程序数据128。
图3中的数据处理系统100a实施例是通用计算设备。因此,处理器110可以是任何能够执行存储在存储器112中的程序指令的设备,并且本身可以由一个或多个微处理器和/或集成电路构成。在该实施例中,DPS 100a包含多个处理器和/或处理核心,这是较大的、能力较强的计算机系统的典型;然而,在其他实施例中,计算系统100a可能包括单处理器系统和/或被设计为模拟多处理器系统的单处理器。此外,处理器110可以使用一些异构数据处理系统100a来实施,其中主处理器与次处理器存在于芯片上。作为另一说明性示例,处理器110可以是包含多个相同类型的处理器的对称多处理器系统。
当数据处理系统100a启动时,相关联的处理器110最初执行构成操作系统124的程序指令,该系统管理DPS 100a的物理资源和逻辑资源。这些资源包括存储器112、大容量存储接口114、终端/显示接口116、网络接口118和系统总线122。与处理器110一样,一些DPS100a实施例可以利用多个系统接口114、116、118、120和总线122,而这些接口又可以各自包括单独的、完全编程的微处理器。
操作系统、应用和/或程序的指令(一般称为“程序代码”、“计算机可用程序代码”或“计算机可读程序代码”)最初可位于大容量存储设备140、141、142中,它们通过系统总线122与处理器110通信。不同实施例中的程序代码可以体现在不同的物理或有形计算机可读介质上,诸如系统存储器112或大容量存储设备140、141、142。在图3的说明性示例中,指令以持久性存储的功能性形式存储在直接存取存储设备140上。然后这些指令被加载到存储器112中以供处理器110执行。然而,程序代码还可以以功能性形式位于计算机可读介质142上,计算机可读介质142可以被选择性地移除并且可以被加载到或被转移到DPS 100a上以供处理器110执行。
系统总线122可以是促进处理器110、存储器112和接口114、116、118、120之间的通信的任何装置。此外,尽管本实施例中的系统总线122是提供系统总线122之间的直接通信路径的相对简单的单一总线结构,但其他总线结构与本公开内容一致,包括但不限于分层、星形或网络配置的点对点链接,多个分层总线,并行和冗余路径等。
存储器112和大容量存储设备140、141、142协同工作以存储操作系统124、应用程序126和程序数据128。在本实施例中,存储器112是能够存储数据和程序的随机存取半导体设备。尽管图3在概念上将设备描绘为单一的单片实体,但在一些实施例中,存储器112可能是更复杂的布置,诸如高速缓存和其他存储器设备的分层结构。例如,存储器112可以存在多个分层的高速缓存,这些高速缓存还可以按功能划分以便一个高速缓存保存指令而另一个缓存保存非指令数据,这些数据由一个或多个处理器使用。存储器112还可以分布并与不同的处理器110或处理器110的集合相关联,这在各种所谓的非均匀存储器访问(NUMA)计算机架构中是已知的。此外,一些实施例可以利用允许DPS 100a表现得好像它可以访问一个大的、单一的存储实体而不是访问多个、较小的存储实体(诸如存储器112和大容量存储设备140、141、142)的虚拟寻址机制。
尽管操作系统124、应用程序126和程序数据128被说明为被包含在存储器112内,但在一些实施例中,它们中的一些或全部可以物理上位于不同的计算机系统上,并且可以例如通过通信介质106远程访问。因此,虽然操作系统124、应用程序126和程序数据128被说明为被包含在存储器112内,但这些元素不一定同时完全被包含在同一物理设备中,甚至可以驻留在其他DPS 100b的虚拟存储器中。
系统接口114、116、118、120支持与各种存储和I/O设备通信。大容量存储接口114支持连接一个或多个大容量存储设备140、141、142,这些设备通常是旋转式磁盘驱动器存储设备、使用集成电路组装件作为存储器持续存储数据的通常使用闪存的固态存储设备(SSD)、或这两者的组合。然而,大容量存储设备140、141、142也可以包括其他设备,包括被配置为对主机来说是单一的大型存储设备的磁盘驱动器阵列(通常称为RAID阵列)和/或存档存储介质,如硬盘驱动器、磁带(例如迷你DV)、可写入的紧凑型光盘(例如CD-R和CD-RW)、数字多功能光盘(如DVD、DVD-R、DVD+R、DVD+RW、DVD-RAM)、全息存储系统,蓝色激光盘,IBMMillipede设备等。
终端/显示接口116用于将一个或多个显示单元(诸如显示器180)直接连接到数据处理系统100a。这些显示单元180可以是非智能(即哑巴)终端,诸如LED显示器,或者本身是完全可编程的工作站用于允许IT管理员和客户与DPS 100a通信。然而,请注意,虽然提供显示接口116以支持与一个或多个显示单元180的通信,但计算机系统100a不一定需要显示单元180,因为所有需要与客户和其他过程的互动可以通过网络接口118发生。
通信介质106可以是任何合适的网络或网络的组合,并且可以支持任何适合于与多个DPS 100a、100b的数据和/或代码通信的适当协议。因此,网络接口118可以是任何有利于这种通信的设备,无论网络连接是使用当今的模拟和/或数字技术还是经由未来的一些网络机制进行。合适的通信介质106包括但不限于使用一个或多个“InfiniBand”或IEEE(电气和电子工程师协会)802.3x“以太网”规范、蜂窝传输网络实施的网络;使用IEEE802.11x、IEEE 802.16、通用分组无线电服务(“GPRS”)、FRS(家庭无线电服务)或蓝牙规范之一实施的无线网络;诸如FCC 02-48中描述的超宽频(“UWB”)技术或类似内容。本领域的技术人员将理解,许多不同的网络和传输协议可用于实施通信介质106。传输控制协议/互联网协议(“TCP/IP”)套件包含合适的网络和传输协议。
云计算
图2示出了与一些实施例一致的包含一个或多个DPS l00a的云环境。应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务递送的模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的、按需的网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的瘦或胖客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活跃客户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至单独应用能力的底层云基础结构,可能的例外是有限的客户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将使用提供者支持的编程语言和工具创建的消费者创建或获取的应用部署到云基础结构上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享并且支持具有共享关注(例如,任务、安全性)的特定社区要求、策略和合规性考虑。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图2,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,该本地计算设备例是如个人数字助理(PDA)或蜂窝电话54A、桌上型计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。在一个或多个网络中,它们可以物理地或虚拟地分组(未示出),例如上述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供云消费者不需要为其维护本地计算设备上的资源的基础设施、平台和/或软件作为服务。可以理解,图中所示的计算设备的类型54A-54N仅是说明性的,并且计算节点10和云计算环境50可以通过任何计算设备与任何类型的计算设备通信网络和/或网络可寻址连接的类型(例如,使用web浏览器)。
现在参考图3,示出了由云计算环境50(图2)提供的一组功能抽象层。应当预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储装置72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态地采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供云计算资源的预安排和采购,根据该SLA预期该云计算资源的未来要求。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;交易处理95以及排序服务96。
区块链系统
图4是与一些实施例一致的区块链系统400的高级图。在图4的实施例中,使用区块链的团体的每个成员组织(用于说明性目的A、B和C)可以运行总排序服务网关(TOS网关)GA、GB、GC等,其可以进而被部署为团体的成员组织A、B、C内的集群或云服务。TOS网关GA、GB、GC等可以各自具有对总排序服务TSO的读取/写入访问权,总排序服务TSO可以由第三方服务提供商维护。
在一些实施例中,总排序服务TOS可以维护共享消息队列450,该共享消息队列450可用于向参与区块链团体的所有人发布消息。对于跨越组织A、B等的子集的通道,TOS网关GA、GB等可以自主地合作创建仅对组织A、B等的子集已知的对称密钥K;然后分割共享的密钥(即,符号化地,(KA,KB等)←Split(K));将部分对称密钥和密钥份额分配给其他TOS网关;然后只将密钥份额KA、KB等(而不是对称密钥K本身)保存在非易失性存储器中。相比之下,共享的对称密钥K在一些实施例和实施方式中可以只维护在易失性存储器(例如RAM)中。
然后,TOS网关GA、GB、GC可以接收来自团体成员组织A、B、C内的内部客户CA、CB、CC的交易;用共享对称密钥K加密这些交易;建立加密后的交易的总排序;解密总排序交易并形成区块;使用各自的长期私有区块链密钥对区块进行自主签名;并在其组织A、B、C内广播区块。在一些实施例中,TOS网关GA、GB、GC可以知道彼此的公共证书,并使用它们进行签名验证(在一些实施例中,所有协议消息都可以被签名)。此外,在一些实施例和/或实施方式中,正如将参照图7-图10更详细地讨论的那样,TOS网关GA、GB、GC也可以自主地轮换这些密钥,诸如在成员重新配置的情况下。
图4的实施例中的总排序服务TOS不需要并且通常不能访问由内部客户端CA、CB、Cc产生的未加密的交易信息。也就是说,本公开的一些实施例可以保护团体和团体组织A、B、C的机密性,因为即使在被第三方执行时,总排序服务TOS也不能得知关于它正在处理的数据的任何信息。这样,提供总排序服务TOS的组织不必是可信团体成员,而可以是不相关的第三方,诸如云计算服务的提供商。因此,本公开的一些实施例可以包括具有委托的总排序服务的区块链,该委托的总排序服务:(i)使总排序服务能够由第三方运行;以及(ii)不向该第三方公开任何机密的或其他形式的交易信息。
在一些实施例中,运行总排序服务TOS的第三方也可用作总排序持续消息传递服务。有利地,这可以允许受限的TOS网关GA、GB、GC仅提供发送消息、以相同顺序接收消息以及不删除消息的能力。
一些实施例的另一特征和优点在于,它们可能需要相对低的管理开销,因为区块链操作可以是完全自主的。这进而可以允许团体成员A、B、C等相对平滑的区块链体验。
在一些实施例中,总排序服务TOS可以另外提供区块链团体的成员之间的资源分配的公平性,因为处理通常包括将交易上传和将交易下载到共享消息队列450。然而,因为下载仅仅是上载的聚合,所以来自每个组织A、B、C的内部客户端CA、CB、Cc可以仅仅支付将交易上载到总排序服务TOS中的费用,并且它隐含地说明了所有组织A、B、C的下载。
另外,一些实施例还可以包括以下安全特征中的一个或多个:(i)自主操作,以便从等式中移除人类元素;(ii)对总排序服务TOS与具有对其本地TOS网关的文件系统的访问权的欺诈管理员之间的共谋的抵抗性;(iii)密钥建立协议,其可以被修改以使用除了常规方案之外的量子抵抗方案,从而在存在量子计算机的情况下实现前向保密;以及(iv)用于不同通道的不同密钥,并且因此不需要完全信任每个其他组织来适当地保护那些密钥。
分布式分类账
在一些实施例中,分布式分类账可以是区块链的所有状态转换的有序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书节点、对等节点等)提交的链码调用(即,交易)产生。交易又转而导致一组资产密钥值对被提交给分布式分类账作为一个或多个操作数,诸如创建、更新、删除等。分布式分类账可以包括区块链(也称为链),其用于以区块存储不可变的有序记录。分布式分类账还可以包括状态数据库,其维护区块链的当前状态。一些实施例每通道使用一个分布式分类账,但是其他实施例也是可能的。这些实施例中的每个对等节点为它们作为其成员的每个通道维护分布式分类账的副本。
在一些实施例中,链可以包括交易日志,其可以被构造为哈希链接的区块,并且每个区块包含N个交易的序列,其中N等于或大于一。区块头部可以包括区块的交易的哈希以及前面的区块头部的哈希。以此方式,可以对分类账上的所有交易进行排序并且将其加密地链接在一起。因此,在这些实施例中,在不破坏哈希链接的情况下篡改分类账数据是不可能的。最近添加的区块链区块的哈希表示在其之前到来的链上的每个交易,使得可以确保所有对等节点处于一致且可信的状态。链可以存储在对等节点文件系统(即本地、附加存储装置、云等)上,从而高效地支持区块链工作负荷的仅附加性质。
在一些实施例中,不可变分类账的当前状态可以表示被包括在链交易日志中的所有关键字的最新值。因为当前状态表示通道已知的最近的键值,所以它有时被称为世界状态。链码调用针对分类账的当前状态数据执行交易。为了使这些链码交互作用有效,可将键的最新值存储在状态数据库中。在一些实施例中,状态数据库可以仅仅是链的交易日志中的索引视图,因此可以在任何时间从链中重新生成。在对等节点启动时,并且在交易被接受之前,状态数据库可以自动恢复(或者如果需要的话,可以生成)。
区块链架构
图5A示出了与一些实施例一致的区块链结构配置500。这些实施例中的区块链架构500可以包括某些区块链元件,例如,一组区块链节点502。该组区块链节点502又可以包括一个或多个成员节点504-510(这四个节点仅通过示例来描述)。这些成员节点504-510可以参与多个活动,诸如区块链交易添加和确认过程(共识)。会员节点504-510中的一个或多个可以基于背书策略来认可交易,并且可以为架构500中的所有区块链节点提供排序服务。成员节点504-510可以发起区块链认证并设法写入存储在区块链层516中的区块链不可变分类账,区块链不可变分类账的副本也可以存储在基础物理基础设施514上。
在一些实施例中,区块链架构500可以包括一个或多个应用524,其链接到应用编程接口(API)522以访问和执行存储的程序/应用代码520(例如,链代码、智能合同等)。所存储的程序/应用代码520进而可以根据参与者所寻求的定制配置来创建,并且可以维护其自身的状态、控制其自身的资产以及接收外部信息。所存储的程序/应用代码520可以被部署为交易,并且经由附加到分布式分类账而被安装在所有区块链节点504-510上。
区块链基础或平台512可以包括各种层的区块链数据、服务(例如,密码信任服务、虚拟执行环境等)以及可用于接收和存储新的交易并提供对试图访问数据条目的审计者的访问的基础物理计算机基础设施。区块链层516可以展示提供对处理程序代码和使用物理基础结构514所需的虚拟执行环境的访问的接口。密码信任服务518可用于验证诸如资产交换交易之类的交易并保持信息私密。
图5A的区块链架构配置可以通过由区块链平台512暴露的一个或多个接口和由区块链平台512提供的服务来处理和执行程序/应用代码520。程序/应用代码520可以控制区块链资产。例如,代码520可以存储和传送数据,并且可以由成员节点504-510以智能合同和具有服从其执行的条件或服从其执行的其他代码元素的相关联的链码的形式来执行。作为非限制性示例,可以创建智能合同以执行提醒、更新和/或服从改变、更新等的其他通知。智能合同本身可以用于识别与分类账的授权和访问要求以及使用相关联的规则。例如,文档属性信息526可以由被包括在区块链层516中的一个或多个处理实体(例如,虚拟机)处理。结果528可以包括多个链接的共享文档。物理基础设施514可用于检索本文所描述的任何数据或信息。
在一些实施例中,智能合同可以经由高级应用和编程语言来创建,并且然后被写入区块链中的区块。智能合同可以包括向区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合同代码的执行,智能代码合同可以响应于与智能合同相关联的条件被满足而被执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。在一些实施例中,由智能合同执行引起的对区块链分类账的修改可以通过一个或多个共识协议在区块链对等的整个分布式网络中自动复制。
智能合同可以以键-值对的格式将数据写入区块链。在一些实施例中,智能合同代码还可以读取存储在区块链中的值,并在应用操作中使用它们。这些实施例中,智能合同代码然后可以将各种逻辑操作的输出写入区块链。在一些实施例中,智能合同代码可以用于在虚拟机或其他计算平台中创建临时数据结构。在这些实施例中,被写入区块链的数据可以是公共的或者可以被加密并维护为私有的。智能合同所使用/生成的临时数据可由所提供的执行环境保持在存储器中,然后一旦识别出区块链所需的数据就可以被删除。
在一些实施例中,链码可以包括具有附加特征的智能合同的代码解释。在一些实施例中,链码可以实施为部署在计算网络上的程序代码,其中链码在共识过程期间由链式验证器一起执行并确认。链码可以接收哈希,并且可以从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希与从存储的标识符模板数据创建的哈希相匹配,则链码可以向所请求的服务发送授权密钥。链码可以向区块链写入与密码细节相关联的数据。
图5B示出了根据一些实施例的区块链的节点之间的区块链交易流550的示例。这些实施例中的交易流可以包括由应用客户端节点560发送给背书对等节点581的交易提议591。背书对等体581可以验证客户端签名并执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合),以及在链码中写入的键/值的集合(写入集合)。然后,如果被认可,则提议响应592连同背书签名一起发送回客户端560。
作为响应,客户端560可以将背书汇集到交易有效负荷593中,并将其广播到排序服务节点584。排序服务节点584随后可以将所排序的交易作为区块递送到通道上的所有对等体581-583。在提交到区块链之前,每个对等体581-583可以确认交易。例如,在一些实施例中,对等体可以检查背书策略以确保指定对等体的正确分配已对结果进行签名并对照交易有效载荷593认证了签名。
继续参考图5B,在一些实施例中,客户端节点560可以通过构建请求并将其发送到可以充当背书者的对等节点581来发起交易591。客户端560可以包括利用支持软件开发工具包(SDK)的应用,该应用可以利用可用的API来生成交易提议。反过来,交易提议可以是调用链码函数的请求,以便可以将数据读取和/或写入分布式分类账(即,写入资产的新的键值对)。SDK可以用作填补以将交易提议封装为适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲区),并采用客户端的密码凭证来产生交易提议的唯一签名。
作为响应,背书的对等节点581可以验证:(a)交易提议形成良好;(b)过去还没有提交交易(重放攻击保护);(c)签名有效;以及(d)提交者(在该示例实施例中,客户560)被正确地授权在该通道上执行所提议的操作。背书对等节点581可以将交易建议输入作为所调用的链码函数的自变量。然后,可对当前状态数据库执行链码以产生交易结果,包括响应值、读取集合和写入集合。在一些实施例中,在此时不对分类账进行更新。相反,值的集合连同背书对等节点581的签名一起可作为提议响应592被传递回客户端560的SDK,该SDK解析应用要消费的有效载荷。
作为响应,客户端560的应用可以检查/验证背书对等体的签名,并可以比较提议响应以确定提议响应是否相同。如果链码仅查询分类账,则应用可以检查查询响应并且通常将不向排序服务584提交交易。如果客户端应用意图将交易提交给排序服务584以更新分类账,则应用可以确定指定的背书策略在提交之前是否已经被满足(即,交易所必需的所有对等节点是否对交易进行了背书)。这里,客户端可以仅包括交易的多方中的一方。在这种情况下,每个客户可以具有自己的背书节点,并且每个背书节点将需要背书该交易。该架构使得即使应用选择不检查响应或以其他方式转发未背书的交易,背书策略仍将由对等体实施并在提交确认阶段得到支持。
在成功检查之后,在操作594中,客户端560可以将背书汇集到交易中,并且可以在交易消息内将交易提议和响应广播到排序服务584。交易可以包含读取/写入集合、背书对等体的签名以及通道ID。排序服务584不需要检查交易的全部内容以便执行其操作;相反,排序服务584可以简单地从网络中的所有通道接收交易,按通道按时间顺序对它们进行排序,并且创建每个通道的交易区块。
可以在通道上将交易的区块从排序服务584递送到所有对等节点581-583。可以确认区块内的交易以确保满足任何背书策略,并且确保自从由交易执行生成读取集合以来,不存在对读取集合变量的分类账状态的改变。区块中的交易可以被标记为有效或无效。此外,在操作595中,每个对等节点581-583可以将区块附加到通道的链,并且针对每个有效交易,写入集合被提交到当前状态数据库。事件可以被发出以向客户端应用通知该交易(调用)已经被不可变地附加到链以及通知该交易是有效还是无效。
有权限的区块链
图6A示出了与一些实施例一致的有权限的区块链网络的示例,其特征在于分布式、去中心化对等架构。在该示例中,区块链用户602可以发起对有权限的区块链604的交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等发出。网络可以提供对调节器606(诸如审计者)的访问。区块链网络运营商608管理成员权限,诸如将调节器606注册为“审计者”并且将区块链用户602注册为“客户端”。审计者可以被限制为仅查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
在一些实施例中,区块链开发者610可以编写链码和客户端应用。在这些实施例中,区块链开发者610可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源612的凭证,开发者610可以使用带外连接来访问数据。在该示例中,区块链用户602可以通过对等节点614连接到有权限的区块链604。在进行任何交易之前,对等节点614可以从管理用户角色和权限的证书管理机构616来获取用户的登记和交易证书。在一些实施例中,区块链用户必须拥有这些数字凭证以便在有权限的区块链604上交易。在其他实施例中,区块链用户可以使用其他技术进行认证,诸如经由分布式信任链。同时,可能需要尝试利用链码的用户验证他们在传统数据源612上的凭证。链码可以使用通过传统处理平台618到该数据的带外连接来确认用户的授权。
图6B示出了与一些实施例一致的有权限的区块链网络的另一示例,其特征在于分布式、去中心化对等架构。例如,区块链用户622可以向有权限的区块链614提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等发出。网络可以提供对调节器626(诸如,审计者)的访问。区块链网络运营商628管理成员权限,诸如将调节器626登记为“审计者”并将区块链用户622登记为“客户端”。审计者可以被限制为仅查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
在这些实施例中,区块链开发者631可以编写链码和客户端应用。区块链开发者631可通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源632的凭证,开发者631可以使用带外连接来访问数据。在该示例中,区块链用户622通过对等节点634连接到网络。在进行任何交易之前,对等节点634从证书管理机构636获取用户的登记和交易证书。在一些实施例中,区块链接用户必须拥有这些数字证书,以便在有权限的区块链624上交易。在其他实施例中,区块链用户可使用其他技术来认证,诸如经由分布式信任链。同时,尝试利用链码的用户可以被要求验证他们在传统数据源632上的证书。链码可以使用通过传统处理平台618到该数据的带外连接来确认用户的授权。
图6C示出了与一些实施例一致的包括被配置为执行各种操作的物理基础设施611的示例系统。参考图6C,物理基础设施611包括模块688和模块689。模块619包括区块链620和可以执行被包括在任何示例实施例中的任何操作步骤678(在模块688中)的智能合同630(其可以驻留在区块链620上)。步骤/操作678可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合同630和/或区块链620写入或读取的输出或写入信息。物理基础设施611、模块688和模块689可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块688和模块689可以是相同的模块。
图6D示出了与一些实施例一致的被配置为执行各种操作的另一示例系统。参考图6D,系统包括模块692和模块694。模块694包括区块链620和可以执行被包括在任何示例实施例中的任何操作步骤678(在模块692中)的智能合同630(其可以驻留在区块链620上)。步骤/操作678可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合同630和/或区块链620写入或读取的输出或写入信息。物理模块692和模块694可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块692和模块694可以是相同的模块。
图6E示出了与一些实施例一致的被配置为在合同订立方之间利用智能合同配置的示例性系统和被配置为在区块链620上实施智能合同条款的中介服务器。参考图6E,该配置可以表示通信会话、资产转移会话、或者由智能合同630驱动的过程或例程,其明确地标识一个或多个用户设备652和/或656。智能合同执行的执行、操作和结果可以由服务器654管理。智能合同630的内容可能需要由实体652和656中的一个或多个实体进行的数字签名,这些实体是智能合同交易的各方。智能合同执行的结果可以作为区块链交易被写入区块链620。智能合同630驻留在区块链620上,其可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6F展示了与一些实施例一致的包括区块链的系统660。参考图6D的示例,应用程序编程接口(API)网关662提供了用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是通过将一个或多个实体652和656连接到区块链对等体(即,服务器654)在区块链上执行交易(调用、查询等)的公共接口。在这里,服务器654是保持世界状态的副本和分类账的区块链网络对等体组件,允许客户端652和656查询世界状态的数据并将交易提交到区块链网络,在区块链网络中,根据智能合约630和背书策略,背书对等体将运行智能合约630。
通道创建
图7A和7B(统称为图7)说明了与一些实施例一致的在区块链网络中创建通道的一个方法700。在操作710,区块链管理员向TOS网关GA发送通道创建交易消息(tx)。在操作720,TOS网关GA可以通过向共享消息队列450发布通道初始化消息(“CHAN INIT BEGIN”)来做出响应。在操作730,分别与组织B和C相关联的TOS网关GB、GC可以从总排序服务TOS接收该消息。在操作732,作为响应,每个接收TOS网关GB、GC可以生成一对随机的临时私钥和对应公钥PB、PC,然后在操作734,可以将公钥PB、PC发布到共享消息队列450。
接下来,在操作740,组织A的TOS网关GA可以生成随机的对称密钥K,在操作742,可以将生成的密钥K分割成“t”个份额(在此示例中为三个份额,区块链中的每个TOS网关GA、GB、GC一个份额)。然后,TOS网关GA可以将密钥份额分配给其他TOS网关。这可以包括在操作744加密其他网关的分割的密钥PB(KB)、PC(KC)等,以及在操作746发布产生的密码文本。在操作750,每个其他TOS网关GB、GC等可以解密其密钥份额(KB、KC等),并且在操作752,将解密的密钥份额连同其对称密钥H(K)的部分存储在其本地持久性存储中。或者,正如将在下文中详细描述的那样,每个TOS网关GA、GB、GC可以从对称密钥生成自己的密钥份额。
在操作760,每个其他TOS网关GB、GC可以发布CHAN INIT END消息,然后可以忘记(即,删除)其临时私钥。在操作762,TOS网关GA、GB、GC可以将它们的密钥分割KA、KB、KC存储在它们自己的持久性存储装置上,并在操作764可以发布K(tx)。这样,所公布的交易(tx)可以是通道交易的创建。前面的操作可以建立对交易进行加密的加密密钥。在一些实施例中,该密钥可以被加密以防止TOS看到其内容,因为它可能包含敏感信息,诸如谁是通道中的各方等等。
对称密钥推导
在一些实施例中,加密密钥可以用作密钥导出算法的种子,该算法确定性地每若干消息改变密钥:
fSHA256(K||X||i)}X∈{”A”,”B”,”C”}
其中“i”是可以周期性递增的计数器,诸如在预定数量的消息(例如232个消息、296个消息)、每周、每月、每季度等之后。根据所使用的字段,份额又可以均匀随机分布。使用该系统的一个优点是各种TOS网关GA、GB等可以不使用相同的计数器值并且不必协调如何初始化计数器。另一优点是,该系统可以自动轮换区块链成员之间的密钥份额的顺序(例如,TOS网关GN可以在第一计数器周期期间具有第一密钥份额,并且在第二计数器周期期间具有第五密钥份额等)
对称密钥恢复
在一些实施例中,通道的对称密钥K将不被写入非易失性存储器(例如,磁盘),而是仅被保存在易失性存储器(例如,随机存取存储器)中。图8示出了与一些实施例一致的由TOS网关GA进行对称密钥恢复的一种方法800。为了对从总排序服务获得的消息进行解密或加密,TOS网关GA可以通过从远程TOS网关GB、GC等获取足够的密钥份额来重构秘密,或者仅从先前重构秘密的另一TOS网关GB、GC等获取秘密。在一些实施例中,TOS网关在不知道其他网关的份额的情况下不能计算其自己的份额,因为它缺乏足够的信息。
为了从另一TOS网关获得对称密钥,TOS网关GA可以首先以循环方式联系TOS网关GB、GC等,并在操作810向它们请求对称密钥。如果没有其他TOS网关GB、GC等具有对称密钥,则TOS网关GA将开始使用“t-1”个TOS网关GB、GC等的密钥份额KB、KC等来重构对称密钥,其中“t”可以由区块链网络的管理员基于网络的安全需要来选择。
然而,在一些实施例中,TOS网关可能不共享任何对等体到对等IP的连接。相反,它们可以通过共享消息队列450进行通信,首先在操作820-836经由共享消息队列发起/运行临时密钥对建立协议,以建立将用于加密K和/或其份额的交换的对称加密密钥。更具体地,TOS网关GA可以首先在操作820处生成临时私钥α及其公共对应物Pα,并向共享消息队列发布密钥交换消息(它可以是未加密的。一般来说,在一些实施例中,密钥交换协议被设计为在不安全的介质上工作以建立对称加密密钥。然而,一些密钥交换实施例也可以使用加密的),并在操作822将包含新的临时公钥(象征性地,{KEX_GB,Pα})的另一TOS网关(例如,TOS网关GB)定向到共享消息队列450上。如果TOS网关GA想要恢复原始的随机对称密钥K,它也可以在操作822处向消息附上密钥请求(“KEY”);同样地,如果TOS网关GA想要获得密钥份额,它也可以在操作822处附上密钥共享请求(“SHR”)。
作为对密钥交换消息的响应,在操作830,TOS网关GB可以生成临时私钥β及其公共对应物Pβ。然后,在操作832,TOS网关GB可以根据β和PA计算出临时对称密钥(KEXAB)。然后,TOS网关GB可以(使用KEXAB)加密对称密钥(即,{Pβ,KEXAB(K)})并将其发布到共享消息队列以响应来自TOS网关GA的“KEY”请求,或者可以在操作834处加密TOS网关GB的密钥份额(即,{Pβ,KEXAB(KB)}并将其发布到共享消息队列以响应来自TOS网关GA的“SHR”请求。
在操作840,TOS网关GB可以忘记临时私钥β,也就是说,它可以从其易失性存储器中删除临时私钥,从不将其存储在其非易失性存储器中。TOS网关GA可以解密原始的随机对称密钥K,或者使用操作850中的密钥片段KA、KB等重建K。然后,在操作855,TOS网关GA还可以忘记其临时私钥α。以此方式,即使实体获得了对共享消息队列450的访问,原始的随机对称密钥K仍然受到保护。
团体成员扩展
图9是说明与一些实施例一致的在区块链中扩展成员的一种方法900的流程图。在该实施例中,每当新成员/组织“D”加入通道时,其TOS网关GD可以获得共享密钥K和其自己的密钥份额KD。TOS网关GD在操作910开始,使用参考图8描述的协议与“t”个现有的通道成员A、B、C等联系,以重构当前的对称密钥K并将其(仅)存储在其易失性存储器中,其中“t”是由管理员基于其安全配置文件为区块链选择的数字。然后,在操作920,新TOS网关GD可以使用上述方法计算其自己的唯一密钥份额KD,即与所有其他密钥份额KA、KB、KC等不同的密钥份额,并且可以在操作930将KD存储在其持久性存储装置中。或者,其他TOS网关之一可以计算密钥共享KD并将其与共享对称密钥一起传输。
同样,当在通道配置中检测到新成员D时,所有现有的TOS网关GA、GB、GC等可以与新TOS网关GD进行临时密钥对建立会话,之后,新的TOS网关GD获得K和KD。
团体成员移除
当成员被区块链成员A、B、C和/或区块链IT管理员从通道中移除时,总排序服务TOS可以轮换加密密钥K,使得被移除的成员不再能够解密共享消息队列中的消息450。图10A和图10B(统称为图10)示出了与一些实施例一致的轮换密钥的一种这样的方法1000。在该说明性示例中,仅出于说明性目的,假设组织A和B想要从通道中移除组织C,在操作1010,区块链管理员将通道配置交易(tx)发送到TOS网关GA,在操作1 020,TOS网关GA可以通过将通道重新配置(“CHAN RECONFA A B BEGIN”)消息tx发布到总排序服务TOS来作出响应。
在操作1030,TOS网关GB可以接收通道重新配置消息,并且可通过生成随机的临时私钥β和对应公钥Pβ来进行响应。然后,在操作1035,TOS网关GB可以向总排序服务TOS发布公钥Pβ。
TOS网关GA可以通过在操作1040生成新的随机对称密钥K1、在操作1042将其分割成n份(其中n等于成员的剩余数量,在这种情况下为二)来进行响应。然后,在操作1045,TOS网关GA可以使用其他TOS网关GB临时公钥(例如,对于GB:Pβ(K1 B),Pβ(K1)和K1(tx))来加密密钥份额,并且在操作1047将它们发布到总排序服务TOS。即,一些实施例可以首先改变密钥,然后使除被移除的组织之外的所有组织学习新密钥。然而,这些实施例可能仍然需要向区块链本身应用重新配置,因此这些实施例可以用新密钥加密重新配置交易,然后发送它。或者,TOS网关GB可以使用新的对称密钥K1、使用上述方法来计算其自己的密钥份额。
在操作1050,TOS网关GB可以对其密钥份额K1 B、新对称密钥K1和tx进行解密。然后,在操作1052,TOS网关GB可以确认组织C确实从通道移除了,并且如果是,则在操作1054,将K1 B存储在其持久性存储装置中,并且在操作1056向总排序服务TOS发布通道重新配置结束(“CHAN RECONF AB END”)消息。
团体成员重新配置
为了支持重新添加被移除的组织和/或重新配置通道(例如,通道创建),每个TOS网关GA、GB等可以根据具有连续成员的区块范围来存储密钥份KA、KB等。在这种情况下,如果通道的所有当前和未来成员确认持久保存它们的密钥份额,则可以在区块范围中使用先前的密钥份额。类似地,被装载的任何新组织将需要学习过去的对称密钥。
不可抵赖性和完整性保证
一些实施例可以支持不可抵赖性并且提供完整性保证。在总排序服务TOS表现不正确或发生故障的情况下,这些实施例可能是希望的,并且因此,各种TOS网关GA、GB等以不同的顺序接收消息。类似地,在一个成员组织A、B等错误地断言总排序服务TOS以与它们接收顺序不同的顺序发送它们的消息的情况下,这些实施例可能是希望的。
为了能够在这种事件确实发生的情况下检测到这种事件,或者反驳不正确的主张,在一些实施例中,每个TOS网关可以周期性地(例如,每B个区块或T个时间)发布消息,该消息可以包含:(i)用于消息的区块范围[i,j];以及(ii)Merkle根(例如,所有交易的所有哈希中的作为区块链网络中的区块的一部分的哈希),其中索引为[i,j]的区块是它的叶。在TOS网关GA、GB等检测到它已经从大多数其他网络成员分叉的情况下,TOS网关可能停止操作并且在服务API调用时返回特殊错误。
区块处理
图1lA示出了与一些实施例一致的将新数据区块1130添加到分布式分类账1120的过程1100,并且图11B示出了与一些实施例一致的区块链的用于新数据区块1130的内容。新数据区块1130可以包含文档链接数据。
参考图1lA,客户端(未示出)可以向区块链节点1111、1112和/或1113提交交易。客户端可以是从任何源接收的指令以在区块链1122上制定活动。作为示例,客户端可以是代表请求者(诸如,设备、人)的行动的应用或者提议对区块链的交易的实体。多个区块链对等体(例如,区块链节点1111、1112和1113)可以维护区块链网络的状态和分布式分类账1120的副本。在区块链网络中可以存在不同类型的区块链节点/对等体,包括对模拟和背书由客户端提议的交易的背书对等体,以及对验证背书、确认交易并将交易提交给分布式分类账1120的提交对等体。在一些实施例中,区块链节点1111、1112和1113可以执行背书者节点、提交者节点或这两者的角色。
分布式分类账1120可以包括以区块存储不可改变的有序记录的区块链,以及维护区块链1122的当前状态的状态数据库1124(当前世界状态)。每个通道可以存在一个分布式分类账1120,并且每个对等体针对其作为成员的每个通道维护其自己的分布式分类账1120的副本。区块链1122可以是交易日志,其被构造为哈希链接的区块,其中每个区块包含N个交易的序列。区块可以包括诸如图11B中所示的各种组件。可以通过在当前区块的区块头部内添加前面区块的头部的哈希值来生成区块的链接(图11A中的箭头所示)。这样,区块链1122上的所有交易可被排序并被加密地链接在一起,从而在不破坏哈希链接的情况下防止篡改区块链数据。此外,由于链接,区块链1122中的最新区块表示在其之前到来的每个交易。区块链1122可以存储在支持仅附加的区块链工作负载的对等体文件系统(本地或附加的存储装置)上。
区块链1122和分布式账本1120的当前状态可以存储在状态数据库1124中。这里,当前状态数据代表了曾经被包括在区块链1122的链交易日志中的所有密钥的最新值。链码调用针对状态数据库1124中的当前状态执行交易。为了使这些链码互动更有效,所有密钥的最新值可以存储在状态数据库1124中。状态数据库1124可以包括对区块链1122的交易日志的索引视图,因此它可以在任何时候从链上重新生成。状态数据库1124可以在对等体启动时、在交易被接受之前自动得到恢复(或在需要时生成)。
背书节点接收来自客户端的交易,并基于模拟结果来背书交易。背书节点保持模拟交易提议的智能合约。当背书节点背书交易时,背书节点会创建交易背书,其是从背书节点到客户端应用的签名的响应,指示对模拟交易的背书。背书交易的方法取决于可以在链码中指定的背书策略。背书策略的示例是“大多数背书对等体必须背书交易”。不同通道可以具有不同背书策略。背书后的交易由客户端应用转发给排序服务1110。
排序服务1110接受背书后的交易,将其排序到区块中,并将区块递送给提交对等体。例如,当达到交易阈值、计时器超时或其他条件时,排序服务1110可以启动新区块。在图11A的示例中,区块链节点1112是已经接收了新数据新数据区块1130用于存储在区块链1122上的提交对等体。区块链中的第一个区块可以称为创世区块,它包括关于区块链、其成员、存储在其中的数据等信息。
排序服务1110可以由排序节点的集群组成。在一些实施例中,排序服务1110可以不处理交易、智能合约或维护共享分类账。相反,在这些实施例中的排序服务1110可以接受背书后的交易,并指定这些交易被提交到分布分类账1120的顺序。区块链网络的架构可以被设计成使得“排序”的具体方式(例如,Solo、Kafka、BFT等)成为一个可插入的组件。
在一些实施例中,交易可以以一致的顺序写入分布式分类账1120。在这些实施例中,交易的顺序可以被建立,以确保对状态数据库1124的更新在提交到网络时是有效的。与加密货币区块链系统(例如,比特币等)不同的是,在该系统中,排序是通过解决密码学难题或挖矿来实现的,在本示例中,分布式账本1120的各方可以选择最适合该网络的排序机制。
在一些实施例中,当排序服务1110初始化新数据区块1130时,新数据区块1130可以被广播给提交对等体(例如,区块链节点1111、1112和1113)。作为响应,每个提交对等体可以通过检查以确保读取集合和写入集合仍然与状态数据库1124中的当前世界状态相匹配来确认新数据区块1130中的交易。具体而言,提交对等体可以确定当背书者模拟交易时存在的读取数据是否与状态数据库1124中的当前世界状态相同。当提交对等体确认交易时,该交易可以写入分布式分类账1120上的区块链1122,并且状态数据库1124可以被更新为来自读取写入集合的写入数据。在一些实施例中,如果交易失败(例如,如果提交对等体发现读取写入集合与状态数据库1124中的当前世界状态不匹配),被排序到区块中的交易可能仍然被包括在该区块中,但被标记为无效,并且状态数据库1124未更新。
参考图11B,在一些实施例中,存储在分布式分类账1120的区块链1122上的新数据区块1130(也被称为数据区块)可以包括多个数据段,例如区块头部1140、区块数据1150和区块元数据1160。应该理解的是,图11B中所示的各种描绘的区块及其内容,例如新数据区块1130及其内容,仅仅是示例,而不是为了限制示例实施例的范围。新数据区块1130可以在区块数据1150内存储N个交易的交易信息(例如,1、10、100、200、1000、2000、3000等)。新数据区块1130还可以在数据头部1140内包括与前面的数据区块的链接(例如,在图11A中的数据块1122上)。特别是,区块头部1140可以包括前面的区块头部的哈希。区块头部1140还可以包括唯一的区块编号、新数据区块1130的区块数据1150的哈希等。新数据区块1130的区块编号可以是唯一的,并以各种顺序分配,例如从零开始的递增/顺序排序。
区块数据1150可以存储在新数据区块1130内记录的每个交易的交易信息。例如,交易数据可以包括以下一项或多项:交易类型、版本、时间戳、分布式分类账1120的通道ID、交易ID、纪元、有效载荷可见性、链码路径(deploy tx)、链码名称、链码版本、输入(链码和功能)、诸如公钥和证书的客户端(创建者)身份、客户端签名、背书者身份、背书者签名、提议的哈希、链码事件、响应状态、名称空间、读取集合(交易读取的密钥和版本的列表等)、写入集合(键值列表)、开始键、结束键、键的列表、默克尔树查询摘要等等。可以为N个交易中的每一个交易存储交易数据。
在一些实施例中,区块数据1150还可以存储新数据1162,该数据为区块链1122中的被哈希链接的区块的链添加附加信息。附加信息可以包括本文描述或描绘的一个或多个步骤、特征、过程和/或动作。因此,新数据1162可以存储在分布式分类账1120上的不可变的区块日志中。存储这种新数据1162的一些好处反映在本文公开和描述的各种实施例中。虽然在图11B中,新数据1162被描绘在区块数据1150中,但在一些实施例中,它也可以位于区块头部1140或区元数据1160中。新数据1162也可以包括用于链接组织内的文档的文档组合键。
区块元数据1160可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括:区块创建时的签名、对最后配置区块的引用、识别区块内有效和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移量等。签名、最后配置块和排序者元数据可以由排序服务1110添加。同时,区块的提交者(诸如区块链节点1112)可以基于背书策略、读取/写入集合的验证等添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据1150中的交易数量的字节数组以及识别交易是否有效/无效的确认码。
图11C说明了与一些实施例一致的数字内容的区块链1170的实施例。数字内容可以包括一个或多个文件和相关联的信息。这些文件可以包括交易数据、媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。一些区块链实施例中的不可变、仅附加的方面可能是可取的以作为保护数字内容的完整性、有效性和真实性的保障,使其适合于用于可接受性规则应用的法律程序、或考虑到证据的或数字信息的呈现和使用以其他方式有意义的其他设置。在这种情况下,数字内容可以称为数字证据。
在这些实施例中,区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链中并从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储参考信息(例如,头部、值等)的哈希值。然后,哈希值和相关联的数字内容可以一起被加密。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的哈希值可以作为参考前面的区块的基础。这可以说明如下:
在一个实施例中,数字内容可以不被包括在区块链中。例如,区块链可以在没有任何数字内容的情况下存储每个区块的内容的加密后的哈希。数字内容可以与原始文件的哈希值相关联地存储在另一存储区域或内存地址。其他存储区域可以是用于存储区块链的同一存储设备,也可以是不同的存储区域,甚至是单独的关系数据库。每个区块的数字内容可以通过获取或查询感兴趣的区块的哈希值来引用或访问,然后在存储区域查找该哈希值,该哈希值与实际数字内容对应地存储。这个操作可以由例如数据库守门员来执行。这可以说明如下:
在图7C的示例性实施例中,区块链1170包括以有序序列加密链接的若干区块11781,11782,...1178N,其中N≥1。用于链接区块11781,11782,...1178N的加密可以是一些有密钥或无密钥的哈希函数中的任何一种。在一个实施例中,区块11781,11782,...1178N受制于基于区块中信息的输入产生n位字母数字输出(其中n为256或其他数字)的哈希函数。这种哈希函数的示例包括但不限于:SHA型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于nonce的算法和非抗冲突PRF算法。在另一实施例中,区块11781,11782,...1178N可以通过不同于哈希函数的函数进行加密链接。为了说明的目的,下面的描述是参照哈希函数来进行的,例如SHA-2。
区块链中的每个区块区块11781,11782,...1178N可以包括一个头部、文件版本和值。作为区块链中哈希的结果,头部和值对于每个区块可能是不同的。在一个实施例中,该值可以包括在头部中。如下面更详细的描述,文件版本可以是原始文件,也可以是原始文件的不同版本。
区块链中的第一区块11781被称为创世区块并且可以包括头部11721、原始文件11741和初始值11761。用于创世区块以及所有后续区块的哈希方案可能有所不同。例如,第一区块11781中的所有信息可以一次性被哈希,或者第一个区块11781中的每个或部分信息可以被单独哈希,然后再对被单独哈希的部分执行哈希。
头部11721可以包括一个或多个初始参数,例如,可以包括版本号、时间戳、nonce、根信息、难度等级、共识协议、持续时间、媒体格式、来源、描述性关键字和/或与原始文件11741和/或区块链相关的其他信息。11721的头部可以自动生成(例如,由区块链网络管理软件)或由区块链参与者手动生成。与区块链中其他区块11782至1178N中的头部不同,创世区块中的头部11721可能不会引用先前的区块,仅仅是因为没有先前的区块。
创世区块中的原始文件11741可以是,例如,由设备捕获的数据,在其被纳入区块链之前,其可能经过处理,也可能没有经过处理。原始文件11741可以通过系统的接口从设备、媒体源或节点接收。原始文件11741可以与元数据相关联,该元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件11741相关联地包括在第一区块11781中。
创世区块中的值11761可以是基于原始文件11741的一个或多个独特的属性生成的初始值。在一个实施例中,一个或多个独特的属性可以包括原始文件11741的哈希值、原始文件11741的元数据以及与该文件相关联的其他信息。在一个实施例中,初始值11761可以基于以下唯一的属性:
1)原始文件的用SHA-2计算的哈希值
2)发起设备的ID
3)原始文件的起始时间戳
4)原始文件的初始存储位置
5)当前控制原始文件和相关联的元数据的软件的区块链网络成员ID
区块链中的其他区块11782至1178N也有头部、文件和值。然而,与第一区块的头部11721不同,其他区块中的每个头部11722至1172N都包括紧邻的前面区块的哈希值。紧邻的前面区块的哈希值可以只是前面区块的头部的哈希值,也可以是整个前面区块的哈希值。通过将前面区块的哈希值包括在剩余的每个区块中,可以基于逐个区块执行从第N区块到创世区块(和相关联的原始文件)的追溯,如箭头1180所示,以建立可审计和不可变的监管链。
其他区块中的每个头部11722至1172N也可以包括其他信息,例如,版本号、时间戳、nonce、根信息、难度等级、共识协议和/或与相应文件和/或区块链总体上相关的其他参数或信息。
其他区块中的文件11742至1174N可以等于原始文件或者是创世区块中原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可以因区块而异。例如,处理可能涉及对前面区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中获取信息或向文件添加或附加信息。
附加地或替换地,处理可能只涉及从前面区块复制文件,改变文件的存储位置,从一个或多个前面区块分析文件,将文件从一个存储或内存位置移动到另一存储或内存位置,或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如,附加、包括或以其他方式关联与文件相关联的各种分析、统计或其他信息。
其他区块中的11762至1176N中的每个区块的值都是唯一的值,并且由于所进行的处理而全部不同。例如,任何一区块中的值都对应于前面区块中的值的更新版本。该更新反映在该值被分配到的区块的哈希中。因此,区块的值提供了在区块中执行的处理的指示,也允许通过区块链追溯到原始文件。这种跟踪确认了整个区块链中文件的监管链。
例如,考虑到为了保护文件中显示的人的身份,前面区块中的文件的部分被编辑、屏蔽或像素化。在这种情况下,包括被编辑的文件的区块将包括与被编辑的文件相关联的元数据,例如,如何执行编辑,谁执行了编辑,发生编辑的时间戳等。元数据可以被哈希以形成值。由于该区块的元数据与前面区块中被哈希已形成值的信息不同,因此这些值是彼此不同的并且在解密时可以恢复。
在一个实施例中,当发生以下任何一个或多个情况时,前面区块的值可以被更新(例如,计算新哈希值)以形成当前区块的值。在这个示例的实施中,新哈希值可以通过哈希下面提到的全部或部分信息来计算。
a)新的用SHA-2计算出的哈希值,如果文件以任何方式被处理(例如,如果文件被编辑、复制、改变、访问或采取其他一些行动)。
b)文件的新存储位置
c)与该文件相关联地标识的新元数据
d)文件的访问或控制从一个区块链参与者转移到另一区块链参与者
图11D说明了与一些实施例一致的区块的实施例,其可以代表区块链1190中的区块的结构。该区块,Blocki,可以包括头部1172i、文件1174i和值1176i。
头部1172i可以包括前面区块Blocki-1的哈希值和额外的参考信息,例如,它可以是在本文讨论的任何类型的信息(例如,包括参考、特征、参数等的头部信息)。在一些实施例中,除了创世区块,所有区块都可以参考前面区块的哈希。前面区块的哈希值可以只是前面区块中的头部的哈希,也可以是前面的区块中的全部或部分信息的哈希,包括文件和元数据。
文件1174i可以包括多个数据,诸如顺序的数据1、数据2、...、数据N。这些数据被标记为元数据1、元数据2、...、元数据N,这些数据描述了与数据相关联的内容和/或特征。例如,每个数据的元数据可以包括:指示数据的时间戳的信息、处理数据、指示数据中描绘的人或其他内容的关键词和/或可能有助于建立整个文件的有效性和内容的其他特征,特别是其作为数字证据的使用,例如,与下面讨论的实施例有关的描述。除了元数据之外,每个数据都可以用参考REF1、REF2、...、REFN来标记以前的数据,以防止篡改、文件中的空白以及通过文件的顺序参考。
一旦元数据被分配给数据(例如,通过智能合约),元数据在没有改变哈希值的情况下就不能被改变,在一些实施例中,这很容易被识别为无效。因此,这些实施例中的元数据创建了可被区块链中的参与者访问使用的信息的数据日志。
在一些实施例中,值1176i可以是哈希值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定的区块Blocki,区块的值可以被更新以反映对该区块执行过的处理,例如,新哈希值、新存储位置、相关联的文件的新元数据、控制或访问的转移、标识符、或其他动作或信息的添加。尽管每个区块中的值显示为与文件和头部的数据的元数据分开,但在另一个实施例中,该值可以部分或全部基于该元数据。
在一些实施例中,一旦区块链1170形成,在任何时间点,就可以通过在区块链中查询跨区块的值的交易历史来获得文件的不可改变的保管链。这种查询或跟踪程序可以从解密当前包含最多的区块(例如,最后一个(第N个)区块)的值开始,然后继续解密其他区块的值,直到达到创世区块并恢复原始文件。解密可能涉及解密与每个区块相关联的头部和文件以及元数据,也是如此。
解密可以基于每个区块中发生的加密类型来执行。这可能涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,区块链参与者或网络中的处理器可以使用预先确定的算法生成公钥和私钥对。公钥和私钥可以通过某种数学关系相互关联。公钥可以公开地分发以作为从其他用户信息接收消息的地址,例如IP地址或家庭地址。私钥可以保密并可用于对发送给其他区块链参与者的信息进行数字签名。签名又可以包括在消息中,以便收件人可以使用发件人的公钥进行验证。这样,收件人可以确信,只有发件人可以发送这个消息。
在一些实施例中,生成密钥对可以类似于在区块链上创建账户,但不必在任何地方实际注册。在这些实施例中,在区块链上执行的每一笔交易都可以由发送者使用他们的私钥进行数字签名。这个签名可以帮助确保只有账户的所有者可以跟踪和处理(如果在智能合约确定的权限内)区块链的文件。
图12A和图12B说明了可纳入本文和在本文使用的区块链用例的其他示例。特别是,图12A说明了存储机器学习(人工智能)数据的区块链1210的示例1200。机器学习通常依靠大量的历史数据(或训练数据)来建立预测模型,以便对新数据进行准确预测。机器学习软件(例如,神经网络等)通常可以在数百万条记录中进行筛选,以发掘出非直观的模式。
在图12A的示例中,主机平台1220构建和部署用于对资产1230进行预测性监测的机器学习模型。这里,主机平台1220可以是云平台、工业服务器、网络服务器、个人计算机、用户设备等。资产1230可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、石油和天然气设备、船、船舶、车辆等。作为另示例,资产1230可以是非有形资产,诸如股票、货币、数字硬币、保险等。
区块链1210可用于显著改善机器学习模型的训练过程1202和基于训练的机器学习模型的预测过程1204。例如,在1202中,历史数据可以由资产1230自己(或通过未显示的中介物)存储在区块链1210上,而不是需要数据科学家/工程师或其他用户来收集数据。这可能会显著减少主机平台1220在执行预测模型训练时需要的收集时间。例如,使用智能合约,数据可以直接和可靠地从其来源地直接传输到区块链1210。通过使用区块链1210确保所收集数据的安全性和所有权,智能合约可以直接将数据从资产发送到使用数据建立机器学习模型的个人。这允许在资产1230之间共享数据。
所收集的数据可以基于共识机制存储在区块链1210中。共识机制可以拉入(有权限的节点)以确保被记录的数据是经过验证的和准确的。所记录的数据可以是有时间戳的、加密签名的和不可改变的。因此,它是可审计的、透明的和安全的。在某些情况下(如供应链、医疗保健、物流等),添加直接写入区块链的IoT设备可以增加被记录的数据的频率和准确性。
此外,在所收集的数据上训练机器学习模型可能需要主机平台1220进行多轮完善和测试。每一轮可以基于附加的数据或以前没有考虑的数据,以帮助扩大机器学习模型的知识。在1202年,不同的训练和测试步骤(以及与之相关联的数据)可以由主机平台1220存储在区块链1210上。机器学习模型的每个细化(例如,变量、权重等的改变)可以存储在区块链1210上。这提供了关于模型如何被训练以及什么数据被用来训练模型的可验证的证明。此外,当主机平台1220实现了最终的训练模型时,产生的模型可以存储在区块链1210上。
在模型被训练之后,它可以被部署到现场环境中,在那里它可以基于最终训练的机器学习模型的执行情况做出预测/决定。例如,在1204中,机器学习模型可用于诸如飞机、风力涡轮机、医疗保健机之类的资产的基于条件的维护(CBM)。在该示例中,从资产1230反馈的数据可以输入机器学习模型并用于进行诸如故障事件、错误代码等的事件预测。在主机平台1220处执行机器学习模型做出的确定可以存储在区块链1210上,以提供可审计/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产1230的部分的未来故障/失效,并创建警报或通知以更换该部分。这一决定背后的数据可以由主机平台1220存储在区块链1210上。在一个实施例中,本文描述和/或描绘的功能和/或动作可以在区块链1210上发生或与之相关。
区块链的新交易可以被聚集到新区块中并被添加到现有的哈希值中。然后,这可能被加密以为新区块创建新哈希。当交易被加密时,这可能会被添加到下一交易列表中,以此类推。其结果是其中每个区块都包含前面所有区块的哈希值的区块链。存储这些区块的计算机定期比较其哈希值,以确保它们都是一致的。任何不一致的计算机会丢弃导致问题的记录。这种方法有利于确保区块链的防篡改性,但它并不完美。
操纵该系统的一个方法是,一个不诚实的用户可以改变对他们有利的交易列表,但是要让哈希值保持不变。这可以通过暴力手段来实现,换句话说,就是改变记录、对结果进行加密、然后看哈希值是否相同。如果不是,就一次又一次地尝试,直到找到匹配的哈希。区块链的安全性是基于这样的信念:普通计算机只能在完全不切实际的时间尺度(比如宇宙的年龄)上进行这种蛮力攻击。相比之下,量子计算机对于某些类型的问题要快得多(快1000倍),因此,构成了更大的威胁。
图12B说明了量子安全区块链1252的示例1250,其实施了量子密钥分配(QKD)以防止量子计算攻击。在这个示例中,区块链用户可以使用QKD来验证对方的身份。这可能会使用诸如光子之类的量子粒子发送信息,在不破坏它们的情况下,窃听者无法复制。通过这种方式,通过区块链的发送者和接收者可以确定对方的身份。
在图12B的示例中,存在四个用户1254、1256、1258和1260。每对用户之间可以共享一个秘密密钥1262(即,QKD)。因为在该示例中有四个节点,存在六对节点,因此使用六个不同的秘密密钥1262,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对用户可以通过使用诸如光子之类的量子粒子发送信息来创建QKD,这些粒子在不破坏的情况下是无法被窃听者复制的。通过这种方式,一对用户可以确定彼此的身份。
区块链1252的操作可以基于两个程序(i)交易的创建,和(ii)构建聚集新交易的区块。新交易的创建可以类似于传统的区块链网络。每个交易可以包含关于发送方、接收方、创建时间、要转移的金额(或价值)、证明发送方有资金用于操作的参考交易列表等信息。然后,该交易记录被发送到所有其他节点,在那里它被输入到一个未确认的交易池中。在这里,两方(即1254-1260中的一对用户)可以通过提供他们的共享秘钥1262(QKD)来验证该交易。这个量子签名可以附加到每笔交易上,使其难以被篡改。每个节点相对于区块链1252的本地副本检查他们的条目,以验证每个交易有足够的资金。然而,这些交易还没有被确认。
与其在区块上执行传统的挖矿过程,不如使用广播协议以去中心化的方式来创建区块。在一个预定的时间段(例如,秒、分钟、小时等),网络可以将广播协议应用于任何未确认的交易,从而实现关于交易的正确版本的拜占庭协议(共识)。例如,每个节点可能拥有私人价值(该特定节点的交易数据)。在第一轮中,节点互相发送他们的私有价值。在随后的几轮中,节点将他们在前一轮中从其他节点接收到的信息进行交流。在这里,诚实的节点能够在新区块内创建一套完整的交易。这个新区块可以被添加到区块链1252中。在一个实施例中,本文描述和/或描绘的特征和/或动作可以发生在区块链1252上或与之相关。
计算机程序产品
本发明可以是集成的任何可能的技术细节级别的系统、方法和/或计算机程序产品。计算机程序产品可以包括具有计算机可读程序指令的计算机可读存储介质(或多个存储介质),以使处理器执行本发明的各方面。
计算机可读存储介质可以是一种有形设备,它可以保留并存储指令,供指令执行设备使用。计算机可读存储介质可以是,例如,但不限于,电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备,或上述的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)、记忆棒、软盘、机械编码装置,如打孔卡或在凹槽中的凸起结构,上面记录有指令,以及上述的任何适当组合。本文所用的计算机可读存储介质不应理解为是短暂的信号本身,如无线电波或其他自由传播的电磁波,通过波导或其他传输介质传播的电磁波(例如,通过光缆的光脉冲),或通过电线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到各自的计算/处理设备,或者经由网络下载到外部计算机或外部存储设备,例如,互联网、局域网、广域网和/或无线网络。该网络可以包括铜质传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络中接收计算机可读程序指令,并将计算机可读程序指令转发到各计算/处理设备内的计算机可读存储介质中存储。
用于执行本发明操作的计算机可读程序指令可以是汇编器指令、指令集架构(ISA)指令、机器指令、依赖机器的指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的编程语言,如Smalltalk、C++或类似语言,以及程序性编程语言,诸如“C”编程语言或类似编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为一个独立的软件包,部分在用户的计算机上执行,部分在远程计算机上执行或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者连接到外部计算机(例如,通过互联网使用互联网服务提供者)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令,以使电子电路个性化,从而执行本发明的各个方面。
本文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图来描述本发明的各方面。可以理解的是,流程图说明和/或框图中的每个框,以及流程图说明和/或框图中的框的组合,可以通过计算机可读程序指令实现。
这些计算机可读程序指令可以提供给计算机的处理器,或其他可编程数据处理装置,以产生机器,从而经由计算机或其他可编程数据处理装置的处理器执行的指令,创造出实施流程图和/或框图的一个或多个框中规定的功能/行为的手段。这些计算机可读程序指令也可以存储在计算机可读存储介质中,该介质可以指导计算机、可编程数据处理装置和/或其他装置以特定方式运行,这样,具有存储在其中的指令的计算机可读存储介质包括制品,该制品中包括实施流程图和/或框图框中指定的功能/行为的各方面的指令。
计算机可读程序指令也可以加载到计算机、其他可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其他可编程装置或其他设备上执行,以产生计算机实施的过程,从而使在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中指定的功能/行为。
图中的流程图和框图说明了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施例的结构、功能和操作。在这方面,流程图或框图中的每个框可以代表指令的模块、段或部分,它包括一个或多个用于实施指定逻辑功能的可执行指令。在一些替代性的实施例中,框中指出的功能可以不按图中指出的顺序出现。例如,连续显示的两个框实际上可以作为一个步骤完成,同时执行,基本上同时执行,以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图说明中的每个框,以及框图和/或流程图说明中的框的组合,可以由基于特殊用途的硬件系统来实施,该系统执行指定的功能或行为,或执行特殊用途硬件和计算机指令的组合。
综述
本文参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图来描述本发明的各方面。可以理解的是,流程图说明和/或框图中的每个框以及流程图说明和/或框图中的框的组合,都可以通过计算机可读程序指令实现。此外,图中的流程图和框图说明了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的结构、功能和操作。在这方面,流程图或框图中的每个框可以代表一个模块、段或部分指令,它包括一个或多个用于实施指定逻辑功能的可执行指令。在一些替代性的实施例中,框中指出的功能可以不按图中指出的顺序出现。例如,连续显示的两个框实际上可能会同时执行,或者根据功能不同,框有时会以相反的顺序执行。此外,可以通过执行指定的功能或操作或执行特殊硬件和计算机指令的组合来实现框图和/或流程图中的每个框,以及框图和/或流程图中的框的组合的特殊硬件系统。
本说明中使用的任何特定的程序命名法只是为了方便,因此本发明不应局限于只在这种命名法所确定和/或暗示的任何特定应用中使用。因此,例如,为实施本发明的实施例而执行的例程,无论是作为操作系统的一部分还是作为特定应用、组件、程序、模块、对象或指令序列来实施,都可以被称为“程序”、“应用”、“服务器”或其他有意义的命名法。事实上,在不偏离本发明范围的情况下,可以使用其他替代的硬件和/或软件环境。
因此,希望本文所描述的实施例在所有方面都被视为说明性的,而不是限制性的,并且在确定本发明的范围时应参考所附的权利要求。
Claims (20)
1.一种用于在区块链网络中建立共识的计算机实施的方法,包括:
为区块链网络中的组织提供第一总排序服务TOS网关,其中,所述TOS网关具有对共享消息队列的读取/写入访问权,所述共享消息队列使得消息对于所述区块链网络中的每个其他TOS网关可用;
在第一TOS网关处产生对称密钥;
分割所述对称密钥以生成多个密钥份额;以及
将所述多个密钥份额中的至少一个分发到所述区块链网络中的第二TOS网关。
2.根据权利要求1所述的计算机实施的方法,其中所述对称密钥仅为所述区块链网络中的多个TOS网关所知。
3.根据权利要求1所述的计算机实施的方法,还包括:
将所述多个密钥份额中的至少一个存储在持久性存储器中;以及
仅在易失性存储器中存储所述对称密钥。
4.根据权利要求1所述的计算机实施的方法,还包括:
在所述第一TOS网关处接收交易有效载荷;
使用所述对称密钥加密交易;以及
将加密后的交易发布到共享消息队列。
5.根据权利要求4所述的计算机实施的方法,还包括:
形成与所述交易相关联的一个或多个区块;以及
用区块链密钥对所述一个或多个区块进行自主签名。
6.根据权利要求5所述的计算机实施的方法,其中管理所述共享消息队列的实体不能读取所述交易有效载荷。
7.根据权利要求5所述的计算机实施的方法,还包括将签名后的一个或多个区块附加到与所述区块链网络相关联的区块链。
8.根据权利要求1所述的计算机实施的方法,还包括恢复所述对称密钥,包括:
从区块链网络中的第二网关请求所述密钥份额中的一个密钥份额;以及
使用所述密钥份额中的所述一个密钥份额来重构所述对称密钥。
9.根据权利要求8所述的计算机实施的方法,其中,从所述第二网关请求所述密钥份额中的所述一个密钥份额包括:
在所述第一TOS网关处生成临时密钥对,其中所述临时密钥对包括临时私钥和临时公共对应物;
将所述临时公共对应物发布到共享队列;
经由所述共享队列从所述第二TOS网关接收临时对称密钥,其中所述临时对称密钥是部分地使用所述第一TOS网关的所述临时公共对应物生成的;
经由所述共享队列从所述第二TOS网关接收所述密钥份额中的所述一个密钥份额,其中所述密钥份额中的所述一个密钥份额使用所述临时对称密钥来加密;
使用所述临时对称密钥来解密所述密钥份额中的所述一个密钥份额;以及
忘记所述临时密钥对。
10.根据权利要求1所述的计算机实施的方法,还包括在所述第一TOS网关处经由所述共享队列从所述第二TOS网关接收对所述对称密钥的请求;并且作为响应:
从所述第二TOS网关接收临时公共对应物;
生成临时密钥对,其中所述临时密钥对包括所述第一TOS网关的临时私钥和临时公共对应物;
生成临时对称密钥;
使用来自所述第二TOS网关的所述临时公共对应物来加密所述临时对称密钥;
使用所述临时对称密钥来加密共享密钥;以及
将加密后的共享密钥发布到共享队列。
11.根据权利要求9所述的计算机实施的方法,其中,所述第二TOS网关是所述区块链网络中的新TOS网关。
12.根据权利要求1所述的计算机实施的方法,还包括轮换所述对称密钥,包括:
在所述第一TOS网关处接收通道重新配置消息;
在所述第一TOS网关处产生临时密钥对,其中所述临时密钥对包括临时私钥和临时公共对应物;
将所述临时公共对应物发布到所述共享队列;
经由所述共享队列从所述第二TOS网关接收密钥裂片,其中所述密钥裂片是使用所述临时公共对应物来加密的;以及
使用所述临时私钥来解密所述密钥裂片。
13.根据权利要求12所述的计算机实施的方法,其中所述通道重新配置消息响应于TOS网关移除动作。
14.一种用于机密的排序服务的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储介质,以及共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括:
为区块链网络中的每个组织运行总排序服务网关,其中每个总排序服务网关具有对共享消息队列的读取/写入访问权,所述共享消息队列将消息分发到每个组织;
识别所述组织内的一组组织;以及
生成包括所述一组组织的通道,其中所述一组组织自主地协作。
15.根据权利要求14所述的计算机程序产品,还包括用于以下操作的程序指令:
生成仅为所述一组组织所知的对称密钥;
将所述对称密钥分割成与所述一组组织中的多个组织相关联的相应份额;以及
存储所述份额而不存储所述对称密钥作为整体。
16.根据权利要求15所述的计算机程序产品,还包括用于以下操作的程序指令:
由所述一组组织中的至少一个组织的总排序服务网关接收交易;
用对称密钥加密交易;
形成与所述交易相关联的一个或多个区块;
使用相应的份额自主地对所述一个或多个区块进行签名;以及
向所述一组组织广播签名后的一个或多个区块。
17.根据权利要求16所述的计算机程序产品,其中所述一组组织中的每个组织的每个总排序服务网关知道与所述一组组织中的其他组织相关联的一个或多个证书。
18.一种用于区块链网络的总排序服务,包括:
多个总排序服务TOS网关,每个TOS网关与区块链网络中的多个成员组织中的一个成员组织相关联,其中所述多个TOS网关每个包括可操作地连接到存储器的处理器,所述存储器包含程序指令,使得当在所述处理器上执行所述程序指令时执行以下操作:
在所述多个TOS网关中的第一TOS网关处产生对称密钥;
将所述对称密钥分割成多个密钥份额;以及
将所述多个密钥份额中的至少一个密钥份额分发到所述区块链网络中的第二TOS网关;
共享消息队列适于将对称密钥重新分发到区块链网络中的多个TOS网关。
19.根据权利要求18所述的区块链网络,其中:
所述多个TOS网关还包括用于执行以下操作的程序指令:
接收交易有效载荷;
使用所述对称密钥加密所述交易有效载荷;以及
将加密后的交易有效载荷发布到所述共享消息队列;以及
所述共享消息队列还适于将加密后的交易有效载荷重新分发到区块链网络中的多个TOS网关,其中所述共享消息队列不能读取所述交易有效载荷。
20.根据权利要求19所述的区块链网络,其中所述多个TOS网关还包括用于以下操作的程序指令:
将所述密钥份额中的一个密钥份额存储在持久性存储器中;以及
仅在易失性存储器中存储所述对称密钥。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/035,814 | 2020-09-29 | ||
US17/035,814 US11736456B2 (en) | 2020-09-29 | 2020-09-29 | Consensus service for blockchain networks |
PCT/CN2021/106480 WO2022068318A1 (en) | 2020-09-29 | 2021-07-15 | Consensus service for blockchain networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116249999A true CN116249999A (zh) | 2023-06-09 |
Family
ID=80821877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180066600.6A Pending CN116249999A (zh) | 2020-09-29 | 2021-07-15 | 用于区块链网络的共识服务 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11736456B2 (zh) |
JP (1) | JP2023542317A (zh) |
CN (1) | CN116249999A (zh) |
DE (1) | DE112021004344T5 (zh) |
GB (1) | GB2614841B (zh) |
WO (1) | WO2022068318A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117857061A (zh) * | 2024-03-07 | 2024-04-09 | 肇庆学院 | 一种基于区块链的无线传感器网络认证方法及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220224530A1 (en) * | 2019-05-21 | 2022-07-14 | Digifiance Pte. Ltd. | System for restoring lost private key |
US11095431B2 (en) * | 2019-12-13 | 2021-08-17 | DLT Global, Inc. | Blockchain transaction manager |
US11736456B2 (en) * | 2020-09-29 | 2023-08-22 | International Business Machines Corporation | Consensus service for blockchain networks |
US20220166616A1 (en) * | 2020-11-24 | 2022-05-26 | International Business Machines Corporation | Key reclamation in blockchain network via oprf |
US20230229321A1 (en) * | 2022-01-04 | 2023-07-20 | Bank Of America Corporation | System and method for improving memory resource allocations in database blocks using blockchain |
CN117278289A (zh) * | 2023-09-28 | 2023-12-22 | 贵州大学 | 基于区块链、加密技术和博弈论的分布式位置缓存协作方法 |
CN117113199A (zh) * | 2023-10-23 | 2023-11-24 | 浙江星汉信息技术股份有限公司 | 一种基于人工智能的档案安全管理系统及方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008199206A (ja) * | 2007-02-09 | 2008-08-28 | Fuji Electric Holdings Co Ltd | 電子マネーシステム、その決済端末、プログラム |
CA2899996C (en) * | 2013-12-11 | 2020-04-14 | Intralinks, Inc. | Customizable secure data exchange environment |
WO2017015153A1 (en) * | 2015-07-17 | 2017-01-26 | Robert Bosch Gmbh | Method and system for secure key generation over an insecure shared communication medium |
CN107438061B (zh) | 2016-05-27 | 2020-03-03 | 北京京东尚科信息技术有限公司 | 一种kafka客户端鉴权的方法和装置 |
KR102017758B1 (ko) * | 2016-07-11 | 2019-10-21 | 한국전자통신연구원 | 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법 |
DE112016007301T5 (de) * | 2016-09-30 | 2019-06-19 | Intel Corporation | Technologien zur authentifizierung mehrerer vorrichtungen in einem heterogenen netzwerk |
CN106775497A (zh) | 2017-01-19 | 2017-05-31 | 郑志超 | 基于区块链的分布式存储方法及设备 |
EP3679683A4 (en) | 2017-09-08 | 2021-08-25 | Uledger, Inc. | SYSTEMS AND PROCEDURES FOR PROVIDING IMMUTABLE RECORDINGS |
US10528551B2 (en) * | 2017-09-29 | 2020-01-07 | Oracle International Corporation | System and method for providing a representational state transfer proxy service for a blockchain cloud service |
US10701046B1 (en) * | 2017-10-24 | 2020-06-30 | Verisign, Inc. | Symmetric-key infrastructure |
US10985907B2 (en) | 2018-05-16 | 2021-04-20 | International Business Machines Corporation | Identifying faults in a blockchain ordering service |
US11296864B2 (en) | 2018-05-16 | 2022-04-05 | International Business Machines Corporation | Identifying faults in a blockchain ordering service |
CN108876370B (zh) | 2018-06-12 | 2021-12-17 | 北京航空航天大学 | 一种异构多链架构下跨区块链共享开放数据的体系架构 |
US11416864B2 (en) * | 2018-09-11 | 2022-08-16 | Visa International Service Association | System, method, and computer program product for fraud management with a shared hash map |
US11736457B2 (en) * | 2018-11-13 | 2023-08-22 | Splitbyte Inc. | Systems and methods for managing data based on secret sharing |
EP3654578B1 (en) | 2018-11-16 | 2022-04-06 | SafeTech BV | Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information |
AU2018348322C1 (en) | 2018-11-27 | 2020-06-25 | Advanced New Technologies Co., Ltd. | Asymmetric key management in consortium blockchain networks |
CN109413202B (zh) | 2018-11-29 | 2021-07-09 | 北京京东尚科信息技术有限公司 | 区块链交易信息的排序系统及方法 |
CN109803004B (zh) | 2019-01-03 | 2021-06-01 | 深圳壹账通智能科技有限公司 | 区块链智能合约管理方法与装置、电子设备、存储介质 |
US11509459B2 (en) * | 2019-05-10 | 2022-11-22 | Conduent Business Services, Llc | Secure and robust decentralized ledger based data management |
US11296879B2 (en) * | 2019-10-04 | 2022-04-05 | Atakama LLC | Encrypted search |
US11082220B1 (en) * | 2019-10-17 | 2021-08-03 | EMC IP Holding Company LLC | Securing recovery data distributed amongst multiple cloud-based storage services |
US11251944B2 (en) * | 2020-02-21 | 2022-02-15 | Nutanix, Inc. | Secure storage and usage of cryptography keys |
CN111445328A (zh) | 2020-03-16 | 2020-07-24 | 西安交通大学 | 一种跨链网关交互系统和方法以及供应链数据管理方法 |
US11736456B2 (en) | 2020-09-29 | 2023-08-22 | International Business Machines Corporation | Consensus service for blockchain networks |
US11418329B1 (en) * | 2021-05-28 | 2022-08-16 | Garantir LLC | Shared secret implementation of proxied cryptographic keys |
US11538027B1 (en) * | 2021-07-07 | 2022-12-27 | Ava Labs, Inc. | Secure and trustworthy bridge for transferring assets across different networks with an updating pool of wardens |
-
2020
- 2020-09-29 US US17/035,814 patent/US11736456B2/en active Active
-
2021
- 2021-07-15 WO PCT/CN2021/106480 patent/WO2022068318A1/en active Application Filing
- 2021-07-15 CN CN202180066600.6A patent/CN116249999A/zh active Pending
- 2021-07-15 DE DE112021004344.7T patent/DE112021004344T5/de active Pending
- 2021-07-15 GB GB2305433.1A patent/GB2614841B/en active Active
- 2021-07-15 JP JP2023517291A patent/JP2023542317A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117857061A (zh) * | 2024-03-07 | 2024-04-09 | 肇庆学院 | 一种基于区块链的无线传感器网络认证方法及系统 |
CN117857061B (zh) * | 2024-03-07 | 2024-05-28 | 肇庆学院 | 一种基于区块链的无线传感器网络认证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
GB2614841A (en) | 2023-07-19 |
US20220103532A1 (en) | 2022-03-31 |
DE112021004344T5 (de) | 2023-06-15 |
JP2023542317A (ja) | 2023-10-06 |
US11736456B2 (en) | 2023-08-22 |
GB2614841B (en) | 2023-12-13 |
WO2022068318A1 (en) | 2022-04-07 |
GB202305433D0 (en) | 2023-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115210741B (zh) | 部分有序的区块链 | |
US11736456B2 (en) | Consensus service for blockchain networks | |
CN114450708B (zh) | 基于现有链码的链码推荐 | |
US11917088B2 (en) | Integrating device identity into a permissioning framework of a blockchain | |
US20210256144A1 (en) | Preservation of privacy in large datasets | |
CN114651248A (zh) | 用于经许可的区块链的随机节点选择 | |
AU2024219519A1 (en) | Low trust privileged access management | |
US11693948B2 (en) | Verifiable labels for mandatory access control | |
CN115211093A (zh) | 数据对象的有效阈值存储 | |
CN111881109B (zh) | 数据库可合并分类账 | |
US20210297264A1 (en) | Enabling consensus in distributed transaction processing systems | |
US11816069B2 (en) | Data deduplication in blockchain platforms | |
CN115004625A (zh) | 用于区块链分类账的索引结构 | |
JP2023535914A (ja) | 機密保護プロトコルを使用するサプライ・チェーン用の持続可能なトークン | |
US12072991B2 (en) | Preservation of privacy in large datasets | |
US11640392B2 (en) | Blockchain endorsement agreement | |
US20230208638A1 (en) | Future asset reclamation via blockchain | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
CN117043772A (zh) | 区块链数据分离 | |
CN116438776A (zh) | 区块链网络中通过伪随机函数的密钥回收 | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
CN117999566A (zh) | 隐私保护状态引用 | |
CN114981773A (zh) | 无冲突版本控制 | |
US20210117919A1 (en) | Last-mile deliver coordination | |
US11375009B1 (en) | Minimizing the impact of malfunctioning peers on blockchain |
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 |