CN114128214A - 用于配置区块链的安全层 - Google Patents

用于配置区块链的安全层 Download PDF

Info

Publication number
CN114128214A
CN114128214A CN202080052325.8A CN202080052325A CN114128214A CN 114128214 A CN114128214 A CN 114128214A CN 202080052325 A CN202080052325 A CN 202080052325A CN 114128214 A CN114128214 A CN 114128214A
Authority
CN
China
Prior art keywords
blockchain
transaction
configuring
block
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080052325.8A
Other languages
English (en)
Other versions
CN114128214B (zh
Inventor
D·贝尔
P·贾亚钱德兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114128214A publication Critical patent/CN114128214A/zh
Application granted granted Critical
Publication of CN114128214B publication Critical patent/CN114128214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

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

Abstract

示例操作可以包括以下各项中的一项或多项:接收区块链规范信息;基于区块链规范信息生成用于区块链的一个或多个安全配置文件;在主机平台上启动区块链;以及通过基于所述一个或多个安全配置文件来配置区块链的安全设置的一个或多个模块挂接到主机平台中。

Description

用于配置区块链的安全层
技术领域
本申请总体涉及用于配置区块链网络的系统,更具体地涉及可以动态地配置托管区块链网络的主机平台以匹配区块链的安全要求的系统。
背景技术
集中式数据库将数据存储和维护位于一个位置的单个数据库(例如,数据库服务器)中。由于其位置单一,集中式数据库易于管理、维护和控制,特别是出于安全目的的管理、维护和控制。
然而,集中式数据库具有显著的缺点。例如,集中式数据库具有单一故障点。因而,如果发生硬件故障,则数据库内的所有数据都丢失,所有用户的工作都被中断。此外,集中式数据库高度依赖于网络连接。因此,连接越慢,每次数据库访问所需的时间就会增加。另一个缺点是当集中式数据库遇到高流量时会出现瓶颈。此外,集中式数据库提供对数据的有限访问,因为数据库仅维护一份数据副本。此外,因为数据库存储系统具有最小数据冗余至没有数据冗余,所以意外地丢失的数据除了通过手动操作从备份存储检索之外,很难检索。
最近,组织已经转向将区块链,作为对传统数据库的改进的存储系统。区块链提供数据冗余、无中央权限、多个访问节点等。然而,区块链网络部署是复杂的,对底层基础设施有各种安全要求,诸如隔离、数据机密性和受限访问。网络可以跨越组织边界、多个云,并且可能涉及每个组织内的混合部署。所有主要的云提供者都提供区块链部署服务,但是在管理基础设施安全方面缺乏对部署的变更(例如,当添加对等体时要开放新连接)的自动化。相反,基础设施是由人类/管理操作者进行管理和配置的。此外,基础设施规则每次变更都是独立更新的,由于手动性质,这可能是麻烦的、容易出错的、耗时的。
因此,需要一种改进区块链的配置和部署并克服这些缺点和限制的解决方案。
发明内容
一个示例性实施例提供一种系统,该系统包括:存储器,被配置为存储区块链规范信息;以及处理器,被配置为执行以下的一项或多项:从区块链规范信息生成用于区块链的一个或多个安全配置文件,在主机平台上启动区块链,以及通过一个或多个模块挂接到主机平台中和基于一个或多个安全配置文件来配置区块链的安全设置。
另一示例性实施例提供一种方法,所述方法包括以下的一项或多项:接收区块链规范信息;从区块链规范信息生成用于区块链的一个或多个安全配置文件;在主机平台上启动区块链;以及通过一个或多个模块挂接到所述主机平台中和基于所述一个或多个安全配置文件来配置所述区块链的安全设置。
进一步的示例性实施例提供一种包括指令的非瞬态计算机可读介质,所述指令在被处理器读取时使所述处理器执行以下的一项或多项:接收区块链规范信息;从所述区块链规范信息生成用于区块链的一个或多个安全配置文件;在主机平台上启动所述区块链;以及通过一个或多个模块挂接到所述主机平台中和基于所述一个或多个安全配置文件来配置所述区块链的安全设置。
从第一方面来看,本发明提供了一种计算系统,包括:存储器,配置为存储区块链规范信息;以及处理器,配置为从区块链规范信息生成用于区块链的一个或多个安全配置文件,在主机平台上启动区块链,以及通过基于所述一个或多个安全配置文件来配置区块链的安全设置的一个或多个模块挂接到所述主机平台中。
优选地,本发明提供一种计算系统,其中所述区块链规范信息包括包含关于区块链对等节点、排序者节点、区块链通道和证书认证机构的一个或多个的信息的文件。
优选地,本发明提供一种计算系统,其中处理器被配置为将区块链规范信息解析成多个子配置文件,并将所述多个子配置文件发送给配置主机平台上的所述区块链的多个模块。
优选地,本发明提供一种计算系统,其中处理器配置包括区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个的网络设置。优选地,本发明提供一种计算系统,其中所述处理器为配置区块链的文件系统、软件定义存储(SDS)、备份存储和存储协议中的一个或多个的存储设置。
优选地,本发明提供了一种计算系统,其中处理器配置区块链的应用容器和链码。
优选地,本发明提供一种计算系统,其中处理器配置包括应用栈管理和设备管理中的一个或多个的区块链的操作系统策略。
优选地,本发明提供一种计算系统,其中处理器配置包括恢复服务和云平台主机服务中的一个或多个的区块链的高可用性(HA)策略。
从第二方面来看,本发明提供一种方法,包括:接收区块链规范信息;从区块链规范信息生成用于区块链的一个或多个安全配置文件;在主机平台上启动区块链;以及通过基于所述一个或多个安全配置文件来配置区块链的安全设置的一个或多个模块挂接到主机平台中。
优选地,本发明提供一种方法,其中区块链规范信息包括包含关于区块链对等节点、排序者节点、区块链通道和证书认证机构的一个或多个的信息的文件。
优选地,本发明提供一种方法,其中,所述生成包括:将区块链规范信息解析成多个子配置文件,并将所述多个子配置文件发送给用于配置区块链的多个模块。
优选地,本发明提供一种方法,其中所述配置包括配置区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个的网络设置。
优选地,本发明提供一种方法,其中所述配置包括配置区块链的文件系统、软件定义存储(SDS)、备份存储和存储协议中的一个或多个的存储设置。
优选地,本发明提供一种方法,其中所述配置包括配置区块链的应用容器和链码。
优选地,本发明提供一种方法,其中所述配置包括配置区块链的操作系统策略,所述操作系统策略包括应用栈管理和设备管理中的一个或多个。
主机平台上启动所述区块链;以及通过基于所述一个或多个安全配置文件来配置区块链的安全设置的一个或多个模块而挂接到所述主机平台中。
优选地,本发明提供一种非瞬态计算机可读介质,其中所述区块链规范信息包括包含关于区块链对等节点、排序者节点、区块链通道和证书认证机构的信息的优选地,本发明提供一种方法,其中所述配置包括恢复服务和云平台主机服务中的一个或多个的区块链的高可用性(HA)策略
从第三方面来看,本发明提供一种包括指令的非瞬态计算机可读介质,所述指令在被处理器读取时使得处理器执行一种方法,所述方法包括:接收区块链规范信息;从区块链规范信息生成用于区块链的一个或多个安全配置文件;以及在一个或多个的文件。
优选地,本发明提供一种非瞬态计算机可读介质,其中所述生成包括将区块链规范信息解析成多个子配置文件,并且将所述多个子配置文件发送到用于配置区块链的多个模块。
优选地,本发明提供一种非瞬态计算机可读介质,其中所述配置包括配置区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个的网络设置。
附图说明
图1是示出根据示例性实施例的用于动态配置区块链的安全设置的系统的示意图。
图2A是示出根据示例性实施例的示例区块链架构配置的示意图。
图2B是示出根据示例性实施例的在节点之间的区块链交易流程的示意图。
图3A是示出根据示例性实施例的许可网络的示意图。
图3B是示出根据示例性实施例的另一个许可网络的示意图。
图3C是示出根据示例性实施例的无许可网络的示意图。
图4A是示出根据示例性实施例的区块链网络配置的示意图。
图4B是示出根据示例性实施例的安全层的架构的示意图。
图4C是示出根据示例性实施例的可由安全层生成的配置文件的示意图。
图5是示出了根据示例性实施例的动态配置区块链安全设置的方法的示意图。
图6A是示出根据示例性实施例的被配置为执行本文描述的一个或多个操作的示例系统的示意图。
图6B是示出根据示例性实施例的被配置为执行本文描述的一个或多个操作的另一个示例系统的示意图。
图6C是示出根据示例性实施例的被配置为利用智能合约的另一示例系统的示意图。
图6D是示出根据示例性实施例的被配置为利用区块链的又一示例系统的示意图。
图7A是示出根据示例性实施例的将新块添加到分布式分类账的过程的示意图。
图7B是示出根据示例性实施例的新数据块的数据内容的示意图。
图7C是示出根据示例性实施例的用于数字内容的区块链的示意图。
图7D是示出根据示例性实施例的可以表示区块链中的块的结构的块的示意图。
图8A是示出根据示例性实施例的存储机器学习(人工智能)数据的示例性区块链的示意图。
图8B是示出根据示例性实施例的示例性量子安全模区块链的示图。
图9是示出支持一个或多个示例性实施例的示例性系统的示图。
具体实施方式
将容易理解的是,如在本文的附图中大体描述和例示的那样,本发明的组件可以以各种不同的配置来布置和设计。因此,以下对如附图中表示的方法、装置、非瞬态计算机可读介质和系统中的至少一个的实施例的详细说明并不旨在限制本申请所要求保护的范围,而只是代表所选择的实施例。
在一个或多个实施例中,如贯穿本说明书所描述的本发明的特性、结构、或特征可以以任何适合的方式被组合或去除。例如,贯穿本说明书使用的短语“示例性实施例”、“一些实施例”或其他类似语言实际指的是结合实施例所描述的特定特性、结构或特征可以包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例性实施例”、“在一些实施例中”、“在其它实施例中”、或其它类似语言不一定都指同组实施例,在一个或多个实施例中,可以任何合适的方式组合或去除所描述的特性、结构、或特征。进一步,示意图中元素之间的任何连接可允许单向和/或双向的通信,即使所示的连接是单向或双向箭头。而且,附图中所示的任何装置可以是不同的装置。例如,如果所示的是移动设备发送信息,则也可用有线设备来发送该信息。
此外,尽管在实施例的描述中可能使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可能描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例性实施例提供的方法、系统、组件、非瞬态计算机可读介质、设备、和/或网络,提供用于配置区块链网络(本文中亦称区块链)的安全层。
在一个实施例中,该系统部署和配置是分布式存储系统的去中心化的数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。去中心化的数据库包括类似于能够在互不信任各方之间维护记录的分布式分类账的仅附加不可变数据结构。互不信任各方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,在分布式对等体之间没有达成共识的情况下,任何单个对等体都不能修改数据库记录。例如,对等体可以执行共识协议来验证区块链存储交易,将存储交易分组成块,并在块上建立哈希链。为了一致性,该过程根据需要通过对存储交易进行排序来形成分类账。在各种实施例中,可以使用许可区块链和/或无许可区块链。在公共或无许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本机加密货币并且使用基于诸如工作证明(PoW)的各种协议的共识。另一方面,许可区块链数据库在一组共享共同目标但不完全相互信任的实体之间提供安全的交互,诸如交换资金、商品、信息之类的业务。
区块链可以操作为去中心化的存储方案定制的任意、可编程逻辑,其被称为“智能合约”或“链码”。在一些情况下,可能存在称为系统链码的、用于管理功能和参数的专用链码。本申请能进一步利用智能合约,其是利用区块链数据库的防篡改特性和节点之间称为背书或背书策略的基础协议的可信分布式应用。与本申请相关联的区块链交易可以在向区块链提交之前进行“背书”,而未背书的交易则被忽略。背书策略允许链码为交易指定以背书所需的对等节点集合为形式的背书者。当客户端将交易发送给背书策略中指定的对等体时,将执行交易以验证交易。在验证之后,交易进入排序阶段,其中使用共识协议来生成有序的分组为块的背书交易序列。
区块链可以包括在其中配置的是区块链系统的通信实体的节点。在不同类型的多个节点可在相同物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中分组,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交-客户端节点,其向背书者(例如,对等体)提交交易调用并且向排序服务(例如,排序节点)广播交易提议。另一类型的节点是对等节点,它可以接收客户端提交的交易、提交该交易并维护区块链交易的分类账的状态和副本。对等体也可以扮演背书者的角色,尽管这不是一项要求。排序服务节点或排序者是为所有节点运行通信服务的节点,其实现交付保证,诸如在提交交易和修改区块链的世界状态时向系统中的每个对等节点进行广播,区块链的世界状态是初始区块链交易的另一个名称,其通常包括控制和设置信息。
区块链可以包括分类账,其是区块链的所有状态转换的排序的、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)可维护分类账的副本。交易可能导致一组资产键-值对被作为诸如创建、更新、删除之类的一个或多个操作数而提交到分类账。分类账包括用于按块存储不可变的有序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
(区块链的)链是被构造为哈希链接块的交易日志,并且每个块包含N个交易的序列,其中N等于或大于1。块头包括该块的交易的哈希以及前一个块的头的哈希。以这种方式,分类账上的所有交易都可以被排序并以密码方式链接在一起。因而,在不破坏哈希链接的情况下不可能篡改分类账数据。最近添加的区块链块的哈希代表链上在它之前已经出现的每个交易,从而使得可以确保所有对等节点都处于一致且可信的状态。可以将链存储在对等节点文件系统(即本地的、附加的存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态代表链交易日志中包括的所有键的最新值。由于当前状态代表通道已知的最新键值,因此有时将其称为世界状态。链调用执行针对分类账的当前状态数据的交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以只是链的交易日志的索引视图,因此可以在任何时间根据链重新生成状态数据库。状态数据库可以在对等节点启动和交易被接受之前自动恢复(或者在需要时生成)。
在本文描述的示例性实施例中,提供了能够接收区块链规范的安全层,区块链规范可以包括关于区块链网络的节点、排序者、通道、证书认证机构等的信息。安全层可以解析或以其他方式生成可以被提供给多个配置模块的多个配置文件。当区块链被发起(例如,最初)时,配置模块可以挂接到区块链运行所在的基础设施(例如,诸如云、服务器等主机平台)中,并配置区块链的不同设置。例如,网络设置、存储设置、虚拟化/容器设置、操作系统设置、高可用性设置等可以由安全层自动配置,从而免于手动执行该过程。
安全层可通过根据区块链的规范提供诸如数据隔离、机密性和访问限制之类的属性来自动化安全配置部署。在这些示例中,安全层可以动态地配置基础设施(主机平台)以匹配如由可以是输入文件的区块链规范所指出的区块链安全要求。安全层可以将区块链的规范作为输入并且生成一组基于策略的规则。这些规则可跨越区块链的不同属性,包括网络、存储、容器、OS策略和HA策略。这些策略可以在区块链网络变化时自动地和动态地适配。
区块链网络部署可能很复杂。因此,部署通常是手动过程或使用非常特定的自动化部署(诸如IBM Blockchain Platform)完成。在这两种情况下,可能无法完全地和/或正确地部署安全限制所需的一系列复杂规则。该过程非常耗时,因为每次网络中发生变化(例如,新的通道、对等体等)时都需要更新规则。每次对网络进行更新以扩充/监视改变的安全规则时,用户都需要在线。此外,仅仅由于限制所需的规则的数量,手动创建规则就可能导致出错的可能性。
本文中描述和示出的安全层的一些益处包括配置区块链网络,使得其适当地与外部世界隔离,并且网络内部适当地隔离,诸如在像通道这样的抽象中的情况。安全层还可以提供数据机密性,这是区块链系统在处理私有和敏感数据时的主要要求。安全层可以提供访问控制,通过配置区块链的复杂访问控制要求来防止对敏感信息的不必要访问。安全层还可以提供高可用性(HA),包括监控和灾难恢复,其可以在大部分部署与实时系统一起工作并且具有高估值时实现。此外,安全层可以是完全自动化的。因此,服务和安全限制的部署可以是自动化的,尤其是在存在诸如链码容器、新通道、私人集合等的动态行为者的情况下。
图1示出了根据示范性实施例的用于动态配置区块链的安全设置的系统100。参照图1,系统100包括解析器120和安全层130,其可以被托管在诸如服务器、云计算环境、数据库、用户设备之类的在平台上。系统100可以接收区块链规范110(诸如文件或其他信息),并且将区块链142部署到基础设施140上,所述基础设施140可以包括用于托管区块链142的硬件资源。尽管图1中未示出,但是作为另一个示例,基础设施140也可以包括在具有解析器120和安全层130的系统100中。
区块链规范110可以包括关于将被部署的区块链的信息。例如,区块链规范可以标识所涉及的组织、区块链对等节点(例如,通过键、网络地址等)、排序者节点(例如,通过键、网络地址等)、通道信息、证书信息等。更复杂的区块链可包括多个通道,其中,节点可能仅能访问一些通道而非所有通道。在这些环境中,每个通道可具有必须与其他通道隔离的不同排序者等。
例如,用户可以上传单个区块链规范文件110。这里,安全层130可以知道基础设施140及其组件的知识。
规范文件110可由解析器120模块解析,解析器120模块可验证区块链规范文件110中的输入配置并且为各种子模块(例如,图4B中所示的,等)生成单独的子配置,以便每个子配置包含与每个子模块相关的信息。解析器120可以标识与区块链的不同组件(包括但不限于网络、存储、docker、操作系统和HA)相关联的相关数据,生成特定于不同基础设施140组件的部署和约束规则,然后使用由底层基础设施140提供的挂钩(hook)将它们实施到基础设施140。例如,可以使用用于区块链平台的现有框架来执行网络设置,并且安全层130可以直接在基础设施140中扩充安全配置。
当配置文件被生成并且区块链142被部署在基础结构140上时,安全层可以基于由解析器120生成的子配置文件以自动方式配置或以其他方式管理区块链的不同组件的设置。这里,网络层130的不同模块可以将子配置文件转换成由区块链142和基础设施140实施的规则。此外,当上传对区块链142的改变,诸如添加新节点、改变通道等时,网络层130可以更新区块链142的配置以匹配这样的改变。
根据各种实施例,系统100可以包括使包括隔离、数据机密性和受限访问的区块链网络的安全配置自动化的区块链感知基础设施层(安全层130)。在一些实施例中,基础设施140可跨越多个云环境和/或涉及混合云部署。这里,可以为每个云处的自动化区块链感知基础设施安全管理部署安全层140。在图1的示例中,系统100可以将区块链的规范作为输入,生成一组基于策略的规则,这组基于策略的规则然后被用于部署具有所需的安全特征的区块链的每个组件。在一些实施例中,安全策略可以跨越网络、存储、容器、OS策略、和HA策略。
在一些实施例中,策略可以在区块链网络的改变时动态地和自动地适配。
图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示出根据示例性实施例的区块链网络配置400的示例。在该实例中,配置包括两个通道(通道A和通道B)、通道的安装规则、排序者和通道的隔离要求、机密性要求等。关于配置400的信息,可以在区块链规范输入文件(诸如图1中所示的区块链规范110)中描述或以其他方式标识。
在该示例中,配置400包括对等节点401、402、403、404、通道A、通道B、排序者411、排序者412、安装架421、安装架422、以及网络内部的各种配置/限制。配置的非限制性示例包括对等体(通道的一部分)不应将网络数据向外发送到不是该通道的一部分的节点,排序者内部的Kafka节点不应将数据向外发送到任何未被配置为其姊妹代理或其动物园管理员节点的节点,链码容器只能从相关联的对等体访问,通信只能通过批准的协议和端口(例如,GRPC等)进行,应允许对等体将通道的数据保存到特定的存储位置而不是其他地方,Kafka代理应当仅被允许在预定义的动物园管理员节点处保存数据,而不是在任何其他节点处保存数据,等等。
图4B示出了根据示例性实施例的安全层130的架构430A,图4C示出了根据示例性实施例的可以由安全层130生成的配置文件的视图430B。在图4B的架构中,示出了图1中所示的系统的组件,包括解析器120、安全层130和基础设施140。在该示例中,解析器120生成与网络配置、存储配置、操作系统配置、应用策略配置和高可用性策略配置相对应的多个配置文件(或子配置文件)450、460、470、480和490。这些仅是示例,应当理解,可以创建为区块链的不同组件创建不同配置文件。而且,并非所有这些文件都需要由安全层130创建或实施。相反,可以实施配置文件450-490中的一个或多个。
在该示例中,解析器120可以读取区块链规范文件110并基于被读取的数据生成多个配置文件450-490。在图4C的实例中示出了被添加到配置文件450-490中的每一个的数据类型的实例。例如,网络配置文件450可包括关于防火墙应用编程接口(API)、路由器API、软件定义联网(SDN)API、iptables、端口信息等的信息。存储配置文件460可包括关于链外和链内存储的网络附加存储(NAS)API、文件系统API、软件定义存储(SDS)API等的信息。应用策略配置文件480可包括关于Docker API、命名空间API等的信息。系统配置文件470可以包括操作系统信息,包括设备隔离API、Selinux API等。高可用性配置文件490可以包括Openstack API、Docker API、IBP API等。
再次参照图4B,解析器120验证区块链规范中包括的输入文件(输入配置),并为每个子模块生成单独的子配置,使得每个配置包含所需的部署和约束规则。安全层130根据区块链网络的需要在基础设施140中提供安全保证。安全层130将区块链规范110作为输入并使用各种模块150-190,制定和实施在区块链网络内部提供诸如机密性、隔离之类的保障所需的安全规则。安全层130在部署时进行安全配置,并根据区块链网络中的任何修改来不断地更新安全规则。这与传统的区块链部署形成对比,传统的区块链部署通常基于网络的需要手动地设置这些安全规则。进一步,当新节点加入或离开网络时,或者当新通道被创建时,安全规则可由安全层130更新。
规范文件110可包括在区块链中实施的一组组织、区块链对等体、通道、排序服务、证书认证机构等。安全层130还可以取决于可以由创建区块链网络的任何人提供的底层基础设施(例如,云API)的知识。解析器120将区块链规范文件110转换成多个配置文件450-490,安全层130的模块150-190然后用配置文件450-490来生成和实施特定于不同基础设施组件的安全规则。根据各种实施例,模块150-190可以基于区块链特定知识来构造安全限制规则。在一个实施例中,可以用策略对其进行调整以具有不同的严格程度,也称为基于策略的机制。
在图4B的示例中,不同模块包括但不限于网络模块150、存储模块160、OS策略模块170、应用策略模块180(例如,Docker等)和高可用性模块190。这些模块是安全层130的不同子组件,它们与不同基础设施组件对接,实施提供所需安全保障所需的限制规则。它们可被称为模块、子组件等。这里,模块150-190从传递各个模块所需信息的解析器120接收对应的配置文件450-490。
每个模块150-190具有内建的不同组件,这些组件可以对接和挂接到各种基础设施子组件。例如,网络模块150可以包括SDN管理器、端口管理器、防火墙管理器、路由器管理器和iptables管理器等,其各自表示不同的网络组件。不同模块150-190中的每个可确保对区块链网络内的通道和不同节点的隔离、机密性和访问控制。模块内部的每个管理组件输出某些命令,这些命令通过使用挂钩(例如,基础设施API)在基础设施上执行以实施该组件内部所需的安全规则。区块链网络是不断演变的网络,区块链网络中的对等体、通道等定期地添加或去除,其需要安全规则不断地演化,以提供相同保障水平。安全层130可以监控任何此类改变请求,将其作为输入,并更新/扩充提供相同保证所需的安全规则。存储模块160可以管理文件系统、备份存储、存储协议、应用容器等。OS策略模块170可以管理设备、应用栈等。应用策略模块180可以管理容器、命名空间等。
模块150-190中的每一个可接收配置文件作为输入,并输出将由区块链实施的一组规则。此外,在部署期间,模块可以挂接到正在启动区块链的平台中并且根据规则要求来配置区块链的设置。
图5示出了根据示例性实施例的动态配置区块链安全设置的方法500。参考图5,在510中,该方法可以包括接收区块链规范信息。例如,区块链规范信息可包括包含关于区块链对等节点、排序者节点、区块链通道、和证书认证机构的一个或多个的信息的文件。
在520中,该方法可以包括从区块链规范信息生成用于区块链的一个或多个安全配置文件。例如,所述生成可以包括将区块链规范信息解析成多个子配置文件,并且将所述多个子配置文件发送给用于配置所述区块链的多个模块。在530中,该方法可以包括在主机平台上启动区块链,并且在540中,该方法可以包括通过基于一个或多个安全配置文件来配置区块链的安全设置的一个或多个模块挂接到主机平台中。
在一些实施例中,所述配置可包括为区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个配置网络设置。在一些实施例中,所述配置可以包括为区块链的文件系统、软件定义存储(SDS)、备份存储和存储协议中的一个或多个配置存储设置。在一些实施例中,所述配置可以包括配置区块链的应用容器和链码。在一些实施例中,所述配置可以包括配置包括应用栈管理和设备管理中的一个或多个的区块链的操作系统策略。作为另一示例,所述配置可以包括配置包括恢复服务和云平台主机服务中的一个或多个的区块链的高可用性(HA)策略。
图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
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密的哈希而不带有任何数字内容。可以将数字内容存储在与原始文件的哈希值相关联的另一存储区或存储器地址中。其他存储区可以是用于存储区块链的相同存储设备,或者可以是不同的存储区或者甚至是单独的关系数据库。通过获得或查询感兴趣的块的哈希值,然后在存储区中查找与实际的数字内容对应地存储的该哈希值,可以引用或访问每个块的数字内容。该操作可以例如通过数据库守门员(database gatekeeper)来执行。这可以例示如下:
Figure BDA0003477753430000241
Figure BDA0003477753430000251
在图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所述的计算系统,其中,处理器配置包括区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个的网络设置。
5.根据权利要求1所述的计算系统,其中,处理器为区块链的文件系统、软件定义存储(SDS)、备份存储和存储协议中的一个或多个配置存储设置。
6.根据权利要求1所述的计算系统,其中,处理器配置区块链的应用容器和链码。
7.根据权利要求1所述的计算系统,其中,处理器配置区块链的操作系统策略,所述操作系统策略包括应用栈管理和设备管理中的一个或多个。
8.根据权利要求1所述的计算系统,其中,处理器配置包括恢复服务和云平台主机服务中的一个或多个的区块链的高可用性(HA)策略。
9.一种方法,包括:
接收区块链规范信息;
从区块链规范信息生成用于区块链的一个或多个安全配置文件;
在主机平台上启动区块链;以及
通过基于所述一个或多个安全配置文件配置区块链的安全设置的一个或多个模块挂接到主机平台中。
10.根据权利要求9所述的方法,其中,区块链规范信息包括包含关于区块链对等节点、排序者节点、区块链通道和证书认证机构的一个或多个的信息的文件。
11.根据权利要求9所述的方法,其中,所述生成包括将区块链规范信息解析成多个子配置文件,并且将所述多个子配置文件发送给用于配置区块链的多个模块。
12.根据权利要求9所述的方法,其中,所述配置包括配置用于区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个的网络设置。
13.根据权利要求9所述的方法,其中,所述配置包括配置用于区块链的文件系统、软件定义存储(SDS)、备份存储和存储协议中的一个或多个的存储设置。
14.根据权利要求9所述的方法,其中,所述配置包括配置所述区块链的应用容器和链码。
15.根据权利要求9所述的方法,其中,所述配置包括配置所述区块链的操作系统策略,所述操作系统策略包括应用栈管理和设备管理中的一个或多个。
16.根据权利要求9所述的方法,其中,所述配置包括配置包括恢复服务和云平台主机服务中的一个或多个的区块链的高可用性(HA)策略。
17.一种包括指令的非瞬态计算机可读介质,所述指令在由处理器读取时使所述处理器执行一种方法,所述方法包括:
接收区块链规范信息;
从区块链规范信息生成用于区块链的一个或多个安全配置文件;以及
在主机平台上启动区块链;以及
通过基于所述一个或多个安全配置文件配置区块链的安全设置的一个或多个模块挂接到主机平台中。
18.根据权利要求17所述的非瞬态计算机可读介质,其中,区块链规范信息包括包含关于区块链对等节点、排序者节点、区块链通道、和证书认证机构的一个或多个的信息的文件。
19.根据权利要求17所述的非瞬态计算机可读介质,其中,所述生成包括:将区块链规范信息解析成多个子配置文件,并且将所述多个子配置文件发送给用于配置区块链的多个模块。
20.根据权利要求17所述的非瞬态计算机可读介质,其中,所述配置包括配置用于所述区块链的防火墙、路由器、端口、软件定义网络(SDN)和管理iptables中的一个或多个的网络设置。
CN202080052325.8A 2019-07-24 2020-07-02 用于配置区块链的安全层 Active CN114128214B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/520,479 2019-07-24
US16/520,479 US20210029163A1 (en) 2019-07-24 2019-07-24 Security layer for configuring blockchain
PCT/EP2020/068694 WO2021013499A1 (en) 2019-07-24 2020-07-02 Security layer for configuring blockchain

Publications (2)

Publication Number Publication Date
CN114128214A true CN114128214A (zh) 2022-03-01
CN114128214B CN114128214B (zh) 2024-05-24

Family

ID=71515142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080052325.8A Active CN114128214B (zh) 2019-07-24 2020-07-02 用于配置区块链的安全层

Country Status (5)

Country Link
US (1) US20210029163A1 (zh)
EP (1) EP4005174A1 (zh)
JP (1) JP2022541048A (zh)
CN (1) CN114128214B (zh)
WO (1) WO2021013499A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697343A (zh) * 2022-03-08 2022-07-01 杭州锘崴信息科技有限公司 一种抗网络破坏的区块链系统及方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356367B2 (en) * 2019-11-22 2022-06-07 Red Hat, Inc. Secure preloading of serverless function sequences
CN112445865B (zh) * 2021-01-29 2021-05-18 支付宝(杭州)信息技术有限公司 自动化部署区块链网络的方法、装置及云计算平台
CN113468118B (zh) * 2021-05-11 2023-09-22 深圳前海移联科技有限公司 一种基于区块链的文件增量存储方法、装置及存储介质
CN113973003A (zh) * 2021-06-30 2022-01-25 江苏腾武信息技术有限公司 基于区块链的云集群调度存储信息的验证方法
US11829498B2 (en) 2021-08-18 2023-11-28 Bank Of America Corporation Real-time dynamic blockchain securitization platform
CN114124377B (zh) * 2021-11-19 2023-05-16 中国联合网络通信集团有限公司 一种量子密钥的传输方法、装置、系统及存储介质
US11489725B1 (en) * 2022-04-24 2022-11-01 Uab 360 It Optimized updating of a client application

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107634989A (zh) * 2017-08-25 2018-01-26 中积有限公司 一种云钱包构建方法及服务器
CN108964982A (zh) * 2018-06-13 2018-12-07 众安信息技术服务有限公司 用于实现区块链的多节点的部署的方法、装置及存储介质
CN109933338A (zh) * 2019-01-29 2019-06-25 浙江数链科技有限公司 区块链部署方法、装置、计算机设备和存储介质
WO2019120319A2 (en) * 2019-03-27 2019-06-27 Alibaba Group Holding Limited System and method for managing user interactions with a blockchain

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10657526B2 (en) * 2016-10-28 2020-05-19 International Business Machines Corporation System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
US11556521B2 (en) * 2017-09-29 2023-01-17 Oracle International Corporation System and method for providing an interface for a blockchain cloud service
US11044156B2 (en) * 2018-08-24 2021-06-22 Cisco Technology, Inc. Secure mechanism to manage network device configuration and audit with a blockchain
US11245576B2 (en) * 2018-09-07 2022-02-08 Dell Products L.P. Blockchain-based configuration profile provisioning system
US11257079B2 (en) * 2019-04-30 2022-02-22 Banco Bilbao Vizcaya Argentaria, S.A. Systems, methods, and interfaces for smart contract based exchanges via a blockchain
US11265217B2 (en) * 2019-05-30 2022-03-01 Hewlett Packard Enterprise Development Lp Distributed ledger for configuration synchronization across groups of network devices
US20210027265A1 (en) * 2019-07-24 2021-01-28 T-Mobile Usa, Inc. Content delivery systems that use blockchain to manage content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107634989A (zh) * 2017-08-25 2018-01-26 中积有限公司 一种云钱包构建方法及服务器
CN108964982A (zh) * 2018-06-13 2018-12-07 众安信息技术服务有限公司 用于实现区块链的多节点的部署的方法、装置及存储介质
CN109933338A (zh) * 2019-01-29 2019-06-25 浙江数链科技有限公司 区块链部署方法、装置、计算机设备和存储介质
WO2019120319A2 (en) * 2019-03-27 2019-06-27 Alibaba Group Holding Limited System and method for managing user interactions with a blockchain

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114697343A (zh) * 2022-03-08 2022-07-01 杭州锘崴信息科技有限公司 一种抗网络破坏的区块链系统及方法
CN114697343B (zh) * 2022-03-08 2023-10-27 杭州锘崴信息科技有限公司 一种抗网络破坏的区块链系统及方法

Also Published As

Publication number Publication date
JP2022541048A (ja) 2022-09-21
EP4005174A1 (en) 2022-06-01
WO2021013499A1 (en) 2021-01-28
US20210029163A1 (en) 2021-01-28
CN114128214B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
CN115210741B (zh) 部分有序的区块链
CN114128214B (zh) 用于配置区块链的安全层
AU2021254870B2 (en) Faster view change for blockchain
CN114365116A (zh) 来自私有区块链的更新的链外通知
US11362826B2 (en) Endorsement process for non-deterministic application
CN111881206A (zh) 用于数据块的多层图像编码
AU2021210206B2 (en) Index structure for blockchain ledger
CN115211093A (zh) 数据对象的有效阈值存储
CN112241919A (zh) 具有数据流控制的多域区块链网络
US11580098B2 (en) Multi-client transaction validation
CN111881109B (zh) 数据库可合并分类账
CN114450708A (zh) 基于现有链码的链码推荐
CN115605868A (zh) 跨网身份提供
CN115943411A (zh) 用于保护数据的噪声交易
CN112052474A (zh) 蓝光拷贝服务
CN116438776A (zh) 区块链网络中通过伪随机函数的密钥回收
US11683185B2 (en) Entity certification management
US11310311B2 (en) Media obfuscation
CN114981773A (zh) 无冲突版本控制
US11526467B2 (en) Document storage and verification
US20210248271A1 (en) Document verification
US20210311926A1 (en) Software library access and usage management
JP2023520634A (ja) 文脈完全性の維持
CN114830594A (zh) 合作伙伴的匿名化
US11645422B2 (en) Document verification

Legal Events

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