CN111797159A - 数据库中的信息管理和访问控制 - Google Patents
数据库中的信息管理和访问控制 Download PDFInfo
- Publication number
- CN111797159A CN111797159A CN202010271263.1A CN202010271263A CN111797159A CN 111797159 A CN111797159 A CN 111797159A CN 202010271263 A CN202010271263 A CN 202010271263A CN 111797159 A CN111797159 A CN 111797159A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- network
- subset
- peer nodes
- sub
- 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
- 238000012795 verification Methods 0.000 claims abstract description 97
- 230000004044 response Effects 0.000 claims abstract description 47
- 238000013475 authorization Methods 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 55
- 239000000463 material Substances 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 57
- 230000015654 memory Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- 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
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及数据库中的信息管理和访问控制。示例操作可以包括以下中的一项或多项:接收用以在包括第一区块链的网络中创建第二区块链的请求;向网络中的一个或多个验证对等节点发送消息,该一个或多个验证对等节点对应于网络中有权访问第一区块链的验证对等节点的子集,该消息请求针对第二区块链的授权;分析来自验证对等节点的子集的对消息的响应;以及基于经分析的响应,授权第二区块链的创建。
Description
技术领域
本申请总体上涉及数据库存储系统,并且更具体地涉及数据库中的信息管理和访问控制。
背景技术
集中式数据库在一个位置处的一个单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理单元(CPU)、服务器CPU或大型计算机。被存储在集中式数据库中的信息通常是从多个不同点可访问的。例如,基于客户端/服务器配置,多个用户或客户端工作站可以同时工作在集中式数据库上。由于其在单个位置,集中式数据库易于管理、维护和控制,特别是出于安全目的。在集中式数据库中,由于所有数据在单个存储地点,所以数据冗余被最小化,这也意味着给定的一组数据仅具有一个主记录。
然而,集中式数据库遭受重大缺陷。例如,集中式数据库具有单个故障点。特别地,如果没有容错性考虑并且发生硬件故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据都将丢失,并且所有用户的工作都被中断。此外,集中式数据库高度依赖于网络连接性。因此,连接越慢,每次数据库访问所需的时间就会增加。另一缺点是,当集中式数据库经历高业务时,由于单个位置而出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供对数据的有限访问。因此,多个设备无法在不产生严重问题或覆写被存储的数据的风险的情况下同时访问相同片数据。此外,由于数据库存储系统的数据冗余很小甚至没有,因此,除了通过手动操作从备份存储装置中取回之外,很难取回意外丢失的数据。
发明内容
一个示例实施例提供了一种系统,该系统包括:第一接口,用以访问针对区块链网络中的第一区块链的分类账,第一区块链用以包括或引用第一数据,该第一数据将被多个验证对等节点访问;第二接口,用以访问针对区块链网络中的第二区块链的分类账,第二区块链包括或引用第二数据,该第二数据将被多个验证对等节点的有权访问第一区块链的子集访问;以及处理器,用以执行以下中的一项或多项:基于来自子集中的验证对等节点中的一个验证对等节点的消息来创建第二区块链,该消息包括标识多个验证对等节点的子集的信息,其中处理器将向所述验证对等节点的子集发送一个或多个密钥,该一个或多个密钥用以允许子集中的验证对等节点访问第二区块链中的第二数据或传输信息以将区块追加到第二区块链。
另一示例实施例提供了一种方法,该方法包括以下中的一项或多项:接收用以在包括第一区块链的网络中创建第二区块链的请求;向网络中的一个或多个验证对等节点发送消息,该一个或多个验证对等节点对应于网络中有权访问第一区块链的验证对等节点的子集,该消息请求针对第二区块链的授权;分析来自所述验证对等节点的子集的对消息的响应;以及基于经分析的响应,授权第二区块链的创建。
另一示例实施例提供了一种包括指令的非瞬态计算机可读介质,该指令在被处理器读取时,使处理器执行以下中的一项或多项:接收用以在包括第一区块链的网络中创建第二区块链的请求;向网络中的一个或多个验证对等节点发送消息,该一个或多个验证对等节点对应于网络中有权访问第一区块链的验证对等节点的子集,该消息请求针对第二区块链的授权;分析来自所述验证对等节点的子集的对消息的响应;以及基于经分析的响应,授权第二区块链的创建。
附图说明
图1A图示了根据示例实施例的包括数据库的系统的网络图。
图1B图示了根据示例实施例的与数据库一起操作的组件的网络图。
图2A图示了根据示例实施例的示例对等节点配置。
图2B图示了根据示例实施例的另一对等节点配置。
图3图示了根据示例实施例的许可网络。
图4图示了根据示例实施例的系统消息收发图。
图5A图示了根据示例实施例的流程图。
图5B图示了根据示例实施例的另一流程图。
图5C图示了根据示例实施例的另一流程图。
图5D图示了根据示例实施例的另一流程图。
图5E图示了根据示例实施例的另一流程图。
图5F图示了根据示例实施例的另一流程图。
图6A图示了根据示例实施例的被配置为执行本文所述的一个或多个操作的示例系统。
图6B图示了根据示例实施例的被配置为执行本文所述的一个或多个操作的另一示例系统。
图6C图示了根据示例实施例的在合约方之间的智能合约配置以及被配置为在区块链上强制实施智能合约条款的中介服务器。
图6D图示了根据示例实施例的另外的附加示例系统。
图7A图示了根据示例实施例的新数据被添加到数据库的过程。
图7B图示了根据示例实施例的包括新数据的数据块的内容。
图8图示了支持一个或多个示例实施例的示例系统。
具体实施方式
将容易地理解,如本文的附图中一般性描述和图示的,可以以各种不同的配置来布置和设计本组件。因此,如附图中所表示的,以下对方法、装置、非瞬态计算机可读介质和系统中的一个或多个的实施例的详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是表示所选实施例。
在整个说明书中描述的本特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中。因此,在整个说明书中,短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部是指相同组实施例,并且在一个或多个实施例中,可以以任何合适的方式组合所描述的特征、结构或特性。
另外,尽管在实施例的描述中可能已经使用术语“消息”,但是本申请可以被应用于许多类型的网络数据,诸如分组、帧、数据报等。术语“消息”也包括分组、帧、数据报及其任何等同形式。此外,尽管在示例性实施例中可以描绘某些类型的消息和信令,但是其不限于特定类型的消息,并且本申请不限于特定类型的信令。
示例实施例提供了方法、系统、组件、非瞬态计算机可读介质、设备和/或网络,其接收请求以在包括第一区块链的网络中创建第二区块链,然后向网络中的一个或多个验证对等节点发送请求授权创建第二区块链的消息。一个或多个验证对等节点对应于有权访问第一区块链的、网络的验证对等节点的子集。分析对消息的响应,并基于响应授权第二区块链的创建。
分散式数据库是分布式存储系统,其包括彼此通信的多个节点。区块链是分散式数据库的示例,其包括类似于分布式分类账的仅追加的不可变数据结构,该分布式分类账能够维护互不可信的各方之间的记录。不可信的各方在本文中被称为对等方或对等节点。每个对等方都维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有任何单个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储事务,将存储事务归组为区块,并在这些块上构建哈希链。为了一致性,此过程在必要时通过对存储事务进行排序来形成分类账。在公共或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链常常涉及本机加密货币,并使用基于诸如工作证明(PoW)之类的各种协议的共识。另一方面,许可区块链数据库提供一个系统,该系统可以确保共享共同目标但彼此之间并不完全信任的实体群组之间的交互动作,诸如交换资金、商品、信息等等的商务。
区块链操作针对分散式存储方案而被定制的并被称为“智能合约”或“链码”的任意可编程逻辑。在一些情况下,可能存在用于管理功能和参数的专用链码,其被称为系统链码。智能合约是可信的分布式应用,其利用了区块链数据库的防篡改属性以及节点之间的底层协定,其被称为背书或背书策略。通常,区块链事务在被递交给区块链之前通常必须被“背书”,而未被背书的事务将被忽略。典型的背书策略允许链码以背书所需的一组对等节点的形式指定针对事务的背书方。当客户端将事务发送给背书策略中指定的对等方时,该事务被执行以验证该事务。在验证之后,事务进入排序阶段,在该阶段中,使用共识协议来产生被归组为区块的被背书的事务的已排序序列。
节点是区块链系统的通信实体。在不同类型的多个节点可以在相同物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中被归组,并与以各种方式对其进行控制的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交客户端节点,其向背书方(例如,对等方)提交事务调用,并且将事务提议广播到排序服务(例如,排序节点)。另一类型的节点是对等节点,其可以接收客户端提交的事务,递交事务并维护区块链事务分类账的状态和副本。尽管不是必需的,但对等方也可以充当背书方的角色。排序服务节点或排序方是为所有节点运行通信服务的节点,并且其实现递送保证,诸如在递交事务和修改区块链的世界状态时向系统中的每个对等节点广播,世界状态是针对初始区块链事务的另一名称,其通常包括控制和设置信息。
分类账是区块链所有状态转变的有序的抗篡改记录。状态转变可以由参与方(例如,客户端节点、排序节点、背书方节点、对等节点等)提交的链码调用(即,事务)引起。事务可以导致一组资产密钥值对作为诸如创建、更新、删除等的一个或多个操作数而被递交到分类账。分类账包括区块链(也被称为链),其被用于将不可变的、有序的记录存储在区块中。分类账还包括状态数据库,其维护区块链的当前状态。每个信道通常有一个分类账。每个对等节点都为其作为成员的每个信道维护分类账的副本。
链是事务日志,其被构造为哈希链接的区块,并且每个区块包含N个事务的序列,其中N等于或大于一。区块报头包括该区块的事务的哈希,以及前一区块的报头的哈希。以这种方式,分类账上的所有事务都可以被排序并密码链接在一起。因此,在不破坏哈希链接的情况下不可能篡改分类账数据。最近添加的区块链区块的哈希表示链上在其之前发生的每个事务,从而可以确保所有对等节点处于一致且可信的状态。该链可以被存储在对等节点文件系统(即本地、附接的存储装置、云等)上,从而高效地支持区块链工作负载的仅追加性质。
不可变分类账的当前状态表示链事务日志中包括的所有密钥的最新值。因为当前状态表示信道已知的最新密钥值,所以有时将其称为世界状态。链码调用针对分类账的当前状态数据执行事务。为了使这些链码交互高效,可以将密钥的最新值存储在状态数据库中。状态数据库可以只是链的事务日志中的索引视图,因此可以随时从链中重新生成之。状态数据库可以在对等节点启动后以及在事务被接受之前自动恢复(或根据需要被生成)。
在许多区块链网络中,验证对等节点由不同的实体共同拥有,该不同的实体有时被称为区块链利益相关方。这些网络的一些用户可以被指派给一个利益相关方,而其他用户可以被指派给一个或多个其他利益相关方。利益相关方及其用户具有不同的利益、需求、隐私问题或安全级别的情况并不少见。然而,在这样的单个区块链网络中的所有用户都具有完全的权限来访问被存储在区块链中或由区块链引用的所有数据。
在一些情况下,为了尝试满足缩放性问题并满足利益相关方的利益和需求,可以对区块链网络进行分区。但是,必须注意不要丢失对网络被分区成多少部分的跟踪。同样,为了尝试控制数据访问,可以使用复杂的智能合约。但是,事实证明智能合约时常不能满足此目的,并且对效率有不利影响。
本文描述和描绘的本解决方案的一些益处涉及:通过向单个区块链(或区块链网络)提供触发在相同网络中创建一个或多个其他区块链的能力,为先前存在的空白提供了一种新的解决方案。单个(或根)区块链可以引用与所有利益相关方、验证对等节点和区块链网络用户相关并可由其访问的数据。每个被创建的(或子)区块链可以引用仅与利益相关方、验证对等节点以及被指派给该子区块链的用户相关或仅可由其访问的数据。根区块链中存储或引用的数据可以与区块链网络中的一个或多个子区块链中存储或引用的数据相关或无关。子区块链的智能合约和策略可以与根区块链的智能合约和策略相似或不同。通过使用单个区块链来触发子区块链的创建,可以充分保护根区块链网络的利益相关方和用户的不同利益、需求、隐私问题或安全级别。
区块链与常规数据库的不同之处在于,区块链不是中央存储装置,而是分散式、不可变和安全的存储装置,其中节点必须共享对存储装置中记录的更改。区块链中固有的、有助于实现区块链的一些属性包括但不限于:不可变分类账、智能合约、安全性、隐私、分散化、共识、背书、可访问性等,本文将对其进一步描述。根据各个方面并且根据本文描述的一个或多个实施例,单个区块链(或区块链网络)通过身份管理或第一区块链的事务来触发在相同网络中创建一个或多个第二区块链。例如,可以根据相对于被指派给第二区块链的验证节点的子集而执行的一个或多个预定协议来执行身份管理。可以与一个或多个智能合约或策略信息中体现的需求相关联地执行使用第一区块链的事务来创建第二区块链。
示例实施例的益处之一在于,其通过提高区块链网络的能力来提高计算系统的功能性。通过本文所述的区块链系统,计算系统可以管理相同网络中的多个区块链,并且同时限制或以其他方式控制用户对至少一些区块链及其对应数据的访问。这用于保护拥有节点并可能具有隐私或其他考虑的利益相关方的利益。通过共享分类账的概念,区块链系统还提供了一种高效且安全地将信息散播到网络中的不同用户子集的方式。
示例实施例提供了优于常规数据库的众多益处。例如,通过区块链,实施例提供了在包括第一(或根)区块链的现有网络中创建一个或多个第二区块链的方式。由于第二区块链的用户/节点表示第一区块链的用户的子集,因此可以在相同区块链网络内高效且安全地控制对不同数据的访问级别。
同时,常规数据库不能被用来实现示例实施例,因为常规数据库不包括共享相同网络中的多个区块链的分类账的副本的节点。因此,示例实施例提供了针对信息管理和控制领域中的问题的特定解决方案。
图1A图示了区块链网络100的实施例的逻辑图,该区块链网络100包括处理器105、第一接口110和第二接口115。处理器105管理包括如下或与如下相关的网络的操作:区块链创建、将区块追加到区块链、分类账管理、密钥材料访问和分发、信任证实、请求、消息收发、验证、共识、以及其他操作。为了执行这些操作,处理器105可以包括或耦合到以下中的一项或多项:身份管理基础设施、证书颁发机构、处理平台、监管方、管理员、一个或多个应用、智能合约和策略信息。应用、智能合约和策略信息被存储在处理器110中的或耦合到处理器110的一个或多个存储区域中。
第一接口110允许网络处理器访问第一区块链130的分类账以及存储被包括在第一区块链中或由第一区块链引用的数据的任何存储区域。分类账(或第一区块链)的副本被分发以存储在网络节点120的对等连接中或由其进行访问,网络节点120的对等连接可以包括但不限于验证对等节点和非验证对等节点。节点本身可以是任何类型的活动设备或软件。示例包括维护或以其他方式通过网络地址访问的工作站、计算机、移动终端、应用或其他设备或软件。第一接口可以是特定层的通信协议、信号线、端口连接或允许数据传输的任何其他类型的信号路径。
第二接口115允许网络处理器访问第二区块链140的分类账以及存储被包括在第二区块链中的或由第二区块链引用的数据的任何存储区域。第二区块链140与第一区块链在相同网络中,但是,例如,第二区块链140可以仅由第一区块链130的节点120的子集管理并且仅由其访问。分类账(或第二区块链)的副本被分发用于仅存储在子集中的网络节点120中或仅由其访问。类似于第一接口110,第二接口115可以是特定层的通信协议、信号线、端口连接或允许数据传输的任何其他类型的信号路径。在一个实施例中,第一接口和第二接口可以是相同的接口。在另一实施例中,第一接口和第二接口可以彼此不同。
第一区块链130和第二区块链140在许多方面是不同的。例如,第一和第二区块链可以例如取决于第一和第二区块链的用户的利益、需求、隐私问题或安全级别来存储或引用不同的数据或不同类型的数据。在一个实施例中,被存储在第二区块链140中或由第二区块链140引用的数据可以与被存储在第一区块链130中或由第一区块链130引用的数据相关,例如,第二区块链的数据可以是相对于第一区块链140的数据的更特定版本或附加数据。在另一实施例中,第一和第二区块链的数据可以是不相关的。被存储在第一和第二区块链中的数据类型、被指派给第二区块链的节点的身份、可以访问区块链的用户、以及其他许可和管理操作可以部分地由拥有节点的利益相关方的利益和策略来确定。特定的管理操作和策略例如可以被并入到智能合约中,该智能合约与区块链相关地引导或控制处理器105和/或节点120的操作。
图1B图示了图1A中的区块链网络100的逻辑图160,其中,更详细地描绘了第一和第二区块链的示例。参考图1B,所有验证对等节点120可以访问第一区块链130。因此,在一些实施例中,第一区块链可以被称为网络的根区块链。然而,仅验证对等节点120的子集150可以访问第二区块链140。因此,在一些实施例中,第二区块链可以被称为子区块链。
为了说明的目的,网络中仅示出了四个验证对等节点VP1-VP4,并且这些节点中仅两个节点VP1和VP3位于与第二区块链140相对应的节点子集中。在另一实施例中,不同数目的验证对等节点120可以被包括在网络和/或子集中。区块链网络可以包括其他节点,但这些节点可能无法执行与验证对等节点相同的操作。
每个验证对等节点120可以由不同的利益相关方拥有,或者相同利益相关方可以拥有多于一个验证对等节点。同样,可以将不同的用户子集指派给利益相关方,或者可以将一个或多个用户共同指派给利益相关方的不同子集。因为利益相关方拥有验证节点,所以区块链网络的用户通过验证对等节点VP1-VP4中的对应验证对等节点访问根区块链130。用户子集的示例被示为与对等节点120相关联。
在区块链网络100中,可以使用相同的处理资源和身份管理基础设施来创建根和子区块链。在另一实施例中,不同的处理资源和/或身份管理基础设施可以创建区块链。在这种情况下,可以使用不同的策略和/或智能合约来创建和管理区块链。下面更详细地解释如何创建子区块链130的示例。
图1B中示出了网络100仅包括一个子区块链。在其他实施例中,区块链网络100可以包括被指派给网络中的验证对等节点VP1-VP4的不同子集的两个或多个子区块链。不同子集中的验证对等节点可以全部不同,或者一个或多个可以在子集中被共同共享。因为被指派给(多个)子区块链的验证对等节点本身是整个根区块链网络100的一部分,所以子集150中的每个验证对等节点可以存储、维护或以其他方式访问根区块链的分类账及其对应的子区块链的分类账。智能合约可以被验证对等节点读取和执行,以查询、向区块链追加区块或以其他方式从区块链访问数据。
不同的子区块链及其对应的验证对等节点可以例如由区块链网络100中用户的不同的利益、需求、隐私问题或安全级别来确定。作为增加的保护级别,可以采用不同的密钥加密方案来访问被存储在每个子区块链中或由每个子区块链引用的数据,并且这些方案可以不同于被用来访问网络中的根区块链130的密钥加密。用于子区块链140的密钥材料可以例如由根区块链130、网络处理器、证书颁发机构和/或另一网络实体传递给验证对等节点(在本例中是VP1和VP3)。区块链网络100及其处理器、存储、管理和/或其他结构特征可以执行下面详细讨论的方法实施例的操作。
在一个实施例中,处理器105基于来自验证对等节点的子集中的验证对等节点120的消息来创建第二区块链140。该消息可以包括标识多个验证对等节点的子集150的信息。如将更详细解释的,处理器110可以将一个或多个密钥发送到验证对等节点的子集150。允许子集中的验证对等节点VP1和VP3访问第二区块链140的数据的一个或多个密钥或者子集中的验证对等节点VP1和VP3可以传输信息以将区块附加到第二区块链140。
图2A图示了根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,区块链节点202的群组。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式而被描绘)。这些节点参与了许多活动,诸如区块链事务添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来对事务进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证并试图写入到存储在区块链层216中的区块链不可变分类账,其副本也可以被存储在基础的物理基础设施214上。区块链配置可以包括一个或多个应用224,其被链接到应用程序编程接口(API)222以访问和执行被存储的程序/应用代码220(例如,链码,智能合约等),其可以根据参与方寻求的定制配置而被创建,并且可以维护其自己的状态,控制其自己的资产并接收外部信息。这可以被部署为事务,并经由追加到分布式分类账中而被安装在所有区块链节点204-210上。
区块链基或平台212可以包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各个层,以及可以被用来接收和存储新事务并提供对正在寻求访问数据条目的审核方的访问的基础物理计算机基础设施。区块链层216可以暴露接口,该接口提供对处理程序代码和使用物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可以被用来证实诸如资产交换事务之类的事务并保持信息私有。
图2A的区块链架构配置可以经由区块链平台212暴露的一个或多个接口以及提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传送数据,并且可以由节点204-210以智能合约和与条件关联的链码或由受到其执行的其他代码元素的形式而被执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或其他受到更改、更新等的通知。智能合约本身可以被用来标识与分类账的使用和授权及访问需求相关联的规则。
例如,信息226可以包括与网络中的多个子区块链相关联的信息和数据。例如,信息226可以包括:针对在网络中创建子区块链的请求、来自验证对等节点的对应子集的针对创建子区块链的授权、标识每个子集中的验证对等节点的信息、对包括有关如何创建子区块链的指令在内的一个或多个智能合约的引用、针对子区块链的密钥材料以及针对子区块链的分类账。另外,信息226可以包括:在创建(多个)子区块链之后来自针对根区块链和子区块链的验证对等节点的事务请求。信息226和关联的事务以及智能合约可以由区块链层216中包括的一个或多个处理实体(例如虚拟机)处理。
该处理的结果228可以包括响应于创建新的子区块链的请求而生成的消息。消息可以被发送到验证对等节点,以被指派给请求授权的新的子区块链。信息228还可以包括密钥材料(例如,被用于在新的子区块链中传输消息和提交事务的一个或多个公共或私有密钥)。密钥材料可以被包括在要被发送到验证对等节点的证书内,或者可以与证书分开发送。信息228可以包括来自与根区块链或一个或多个子区块链相关联的智能合约的执行的结果,包括对这些区块链的数据或分类账的访问。物理基础设施214可以被利用来取回本文描述的任何数据或信息。
在链码内,可以经由高级别应用和编程语言来创建智能合约,然后将其写入区块链中的区块。智能合约可以包括可执行代码,用区块链(例如,区块链对等方的分布式网络)对该可执行代码注册、存储和/或复制。事务是可以响应于与智能合约相关联的条件被满足而被执行的智能合约代码的执行。智能合约的执行可以触发对数字区块链分类账的状态的(多个)可信修改。由智能合约执行引起的对区块链分类账的(多个)修改可以通过一个或多个共识协议而在整个区块链对等方的分布式网络中被自动复制。
智能合约可以以密钥值对的格式将数据写入到区块链。此外,智能合约代码可以读取存储在区块链中的值,并将其使用在应用操作中。智能合约代码可以将各种逻辑操作的输出写入到区块链中。该代码可以被用来在虚拟机或其他计算平台中创建临时数据结构。被写入到区块链的数据可以是公共的和/或可以被加密并维护为私有。智能合约使用/生成的临时数据由提供的执行环境保存在存储器中,一旦区块链所需的数据被标识,就将其删除。
链码可以包括具有附加特征的智能合约的代码解释。如本文所述,链码可以是被部署在计算网络上的程序代码,其中,其由链验证方在共识过程中一起执行并验证。链码接收哈希,并从区块链中取回与使用先前存储的特征提取器所创建的数据模板相关联的哈希。如果哈希标识符的哈希与从所存储的标识符模板数据所创建的哈希相匹配,那么链码将授权密钥发送给被请求的服务。链码可以将与密码细节相关联的数据写入到区块链。
在图2A中,可以作为信息226的一部分从验证对等节点接收创建新的子区块链的请求。作为响应,一个功能可以是执行包括关于如何创建新的子区块链的指令或协议在内的智能合约。另一功能可以是将请求发送到身份管理基础设施,以生成用于创建新的子区块链的消息和信息。在下面阐述的实施例中讨论了其他示例。一旦请求或其他信息被处理,与新的子区块链的创建相关联的消息、证书、密钥材料和其他信息就可以被包括在被发送给验证对等节点204-210中的一个或多个验证对等节点的信息228中。
图2B图示了根据示例实施例的在区块链的节点之间的事务流250的示例。参考图2B,事务流可以包括由应用客户端节点260发送到背书对等节点281的事务提议291。背书对等方281可以证实客户端签名并执行链码功能以发起事务。输出可以包括:链码结果,在链码中读取的一组密钥/值版本(读取集)以及在链码中写入的一组密钥/值(写入集)。如果被批准,则提议响应292与背书签名一起被发送回客户端260。客户端260将背书组装成事务有效负载293,并将其广播到排序服务节点284。然后,排序服务节点284将排序的事务作为区块递送给信道上的所有对等方281-283。在递交给区块链之前,每个对等方281-283可以验证事务。例如,对等方可以检查背书策略,以确保正确分配的指定对等方已经对结果进行了签名并针对事务有效负载293认证了签名。
再次参考图2B,客户端节点260通过构造请求并将其发送给作为背书方的对等节点281来发起事务291。客户端260可以包括利用诸如NODE、JAVA、PYTHON等等之类的被支持的软件开发套件(SDK)的应用,该应用利用了可用API来生成事务提议。该提议是调用链码功能的请求,使得可以读取数据和/或将数据写入分类账(即,为资产写入新的密钥值对)。SDK可以充当填充件(shim)将事务提议封装为适当的架构格式(例如,远程过程调遣(RPC)上的协议缓冲器),并采取客户端的加密凭证为事务提议产生唯一的签名。
作为响应,背书对等节点281可以证实(a)事务提议被良好地格式化,(b)事务过去尚未被提交过(重放攻击保护),(c)签名有效,并且(d)提交方(在此示例中为客户端260)已被正确授权在该信道上执行提议的操作。背书对等节点281可以将事务提议输入作为所调用的链码功能的参量。然后针对当前状态数据库执行链码以产生包括响应值、读取集和写入集在内的事务结果。但是,此时尚未对分类账进行任何更新。在292中,将值的集合以及背书对等节点281的签名作为提议响应292传递回客户端260的SDK,其解析有效负载以供应用使用。
作为响应,客户端260的应用核查/证实背书对等方签名,并比较提议响应以确定提议响应是否相同。如果链码仅查询分类账,则应用将核查查询响应,并且通常不将事务提交至排序节点服务284。如果客户端应用打算将事务提交至排序节点服务284以更新分类账,则应用在提交之前确定指定的背书策略是否已被履行(即,该事务所需的所有对等节点是否都对该事务进行了背书)。在此,客户端可以仅包括事务的多方之一。在这种情况下,每个客户端可以具有其自己的背书节点,并且每个背书节点将需要对事务进行背书。该架构使得:即使应用选择不核查响应或以其他方式转发未背书的事务,背书策略仍将由对等方强制实施并在递交验证阶段被支持。
在成功核查之后,在步骤293中,客户端260将背书组装成事务,并将事务消息内的事务提议和响应广播到排序节点284。事务可以包含读取/写入集、背书对等签名和信道ID。排序节点284不需要为了执行其操作而核查事务的全部内容,相反,排序节点284可以只从网络中的所有信道接收事务,按信道按时间顺序对其进行排序,并按信道创建每个事务的区块。
事务的区块从排序节点284被递送到信道上的所有对等节点281-283。区块内的事务294被验证,以确保任何背书策略被履行,并确保自事务执行生成读取集以来,针对读取集变量的分类账状态没有变化。区块中的事务被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块追加到信道的链上,并且对于每个有效事务,将写入集递交给当前状态数据库。事件被发出,以通知客户端应用:事务(调用)已被不可变地追加到链上,并通知事务是通过验证的还是未通过验证的。
图3图示了许可区块链网络300的示例,其特征在于分布式的、分散式的对等架构以及管理用户角色和许可的证书颁发机构318。在该示例中,区块链用户302可以将事务提交至许可区块链网络310。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧的应用、直接通过REST API等而被发布。可信的业务网络可以提供对一个或多个监管方系统314的访问,诸如审核方(例如,美国股票市场中的证券事务委员会)。同时,节点308的区块链网络运营方系统管理成员许可,诸如将监管方系统314登记为“审核方”,并且将区块链用户302登记为“客户端”。审核方可能只限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。根据一个或多个实施例,术语用户和客户端可以互换使用,后一个术语例如对应于人、工作站、计算机、终端、移动设备、应用或其他实体。
区块链开发方系统316编写链码和客户端侧应用。区块链开发方系统316可以通过REST接口将链码直接部署到网络。为了在链码中包括来自常规数据源330的凭证,开发方系统316可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点312连接到区块链网络处理器332。在进行任何事务之前,对等节点312从证书颁发机构318取回用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书才能在许可区块链网络310上进行事务处理。同时,尝试驱动链码的用户可能被要求在常规数据源330上证实其凭证。为了确认用户的授权,链码可以使用通过常规处理平台320与此数据的带内连接。
图4图示了根据一个或多个示例实施例的在触发子区块链的创建时可以发生在根区块链网络的处理资源与验证对等节点之间的消息收发的系统图400。
在这些示例实施例中,消息收发发生在客户端(用户)410、如图1A中所示的验证对等节点VP1-VP4 420和身份管理基础设施(或身份管理器)430之间以及之中,身份管理基础设施(或身份管理器)430例如可以包括根区块链处理器、证书颁发机构和根据智能合约和/或网络策略操作的各种其他管理特征中的一项或多项,如下面的示例实施例中所描述的。
参考图4,最初,用户确定要在区块链网络100中创建新的子区块链。例如,这可以通过作为与该用户被指派给的验证对等节点的其他用户和/或网络中一个或多个其他验证对等节点的用户达成协定的结果来实现。新的子区块链的动机可能是例如将对数据的访问限制为仅仅根区块链中的某些用户,其被命名为新链中的用户。
因此,在412处,用户(例如,通过客户端应用、终端或工作站)生成用于创建新的子区块链的请求。包括该请求的消息413通过用户被指派给的验证对等节点VP1而被发送到区块链网络的身份管理基础设施430。
身份管理基础设施430接收消息413,并在416处取回用户包括在消息中的信息。该信息包括例如要被指派给新的子区块链的区块链网络中的验证对等节点的身份(例如,标识符)。该信息还可以可选地包括由用户获得的、用于对被指派给新的子区块链的验证对等方之间的通信进行加密的密钥信息。密钥信息可以不同于在根区块链网络中使用的密钥信息,并且例如可以是将用于加密和解密的公共密钥-私有密钥对中的公共密钥。
在418处,身份管理基础设施处理在消息中被取回的信息,并为子区块链发布证书。然后消息419被发送到区块链网络中请求授权创建新的子区块链的所有验证对等节点VP1-VP4。在一个实施例中,消息419可以仅被发送到预定的验证对等节点,其例如在网络中具有比其他验证对等节点更高的优先级。
在421处,身份管理基础设施430从验证对等节点接收授权或拒绝创建新的子区块链的答复消息。例如,授权或拒绝的决策可以由指派给验证对等节点的用户做出并通过对应的客户端应用而被传达。
在422处,当已经从验证对等节点接收到预定数目的授权时,身份管理基础设施430授权创建新的区块链,这例如可以以类似于如本文所述创建根区块链110的方式被执行。
在424处,身份管理基础设施将私有(或秘密)密钥传输到新创建的子区块链的验证对等节点。私有密钥可能全都互不相同,并且可以与(多个)公共密钥一起使用以加密和解密与区块链网络的通信,例如查询或访问子区块链并提交事务以将新区块追加到子区块链。
图5A图示了根据示例实施例的使用根(或第一)区块链网络来触发一个或多个子(或第二)区块链的创建的方法的流程图500。根区块链由包括多个验证对等节点的根区块链网络管理,例如,如参考图1至图4所描述的。
每个验证对等节点可以由一个或多个实体(或区块链利益相关方)拥有,并且根区块链网络中的用户被指派给一个或多个利益相关方。因此,为每个子区块链指明验证对等节点也可以有效地指示被指派给每个子区块链的用户。
根区块链网络可以是许可网络,例如,根区块链网络中仅仅一些对等节点验证和执行事务,参与共识,并执行其他管理操作。其他对等节点可以不被许可执行这些操作,例如这由根区块链网络的一个或多个策略、协议和/或智能合约所确定。
参考图5A,方法500可以最初包括:在501处,提供包括第一区块链的区块链网络。第一区块链可以存储或引用第一数据。如果第一区块链引用第一数据,则第一数据可以被存储在例如数据源330(例如,图3)中或另一存储区域中。第一数据可以包括例如网络的验证对等节点感兴趣的任何类型的数据,例如由一个或多个智能合约所定义的。在一个实施例中,第一区块链还可以存储与在区块链网络中创建的一个或多个第二区块链相关的数据和信息。
在502处,接收在包括第一区块链的区块链网络中创建第二区块链的请求。该请求可以由区块链网络的客户端发送,并且可以通过验证对等节点之一而被(区块链网络处理器、身份管理基础设施、证书颁发机构、处理平台或其他处理资源)接收。如前所指出,根据一个或多个实施例,第一区块链可以被称为根区块链,而第二区块链可以是子区块链,如前所述。客户端可以是被包括在区块链网络中或连接到区块链网络的用户、节点、应用、计算机、工作站、移动终端或服务器。根据一个或多个实施例,“用户”和“客户端”可以互换使用。
在503处,例如,根据智能合约中的指令,区块链网络处理器或其他管理应用或网络设备可以发送消息,该消息请求区块链网络中的验证对等节点授权创建被请求的子区块链。验证对等节点表示区块链网络中的所有验证对等节点的子集,例如是在502中的创建请求中所指示的指派给子区块链的节点。例如,可以在502的请求中标识验证对等节点。相同的请求可以包括其他信息,包括但不限于密钥信息。
在504处,分析来自在503中被发送了请求的验证对等节点的子集的响应,以确定是否应当创建子区块链。可以例如通过针对子区块链定义的智能合约或策略来确定对响应进行分析的条件,针对子区块链的智能合约或策略可以与针对根区块链的智能合约不同或可以与之相同。例如,可以将授权创建子区块链的有利响应的数目与预定数目进行比较,并且可以基于比较的结果做出是否创建子区块链的决策。在其他实施例中,出于确定是否要创建子区块链的目的,可以使用不同的准则来分析来自验证对等节点的子集的响应。
在505处,当504中的准则被满足时,区块链网络处理器或其他管理应用或网络设备可以创建子区块链。可以基于针对子区块链定义的智能合约中的指令来创建子区块链,该指令例如可以被包括在502的请求中或由502的请求来引用。子区块链可以参考第二数据,第二数据例如可以与根区块链的第一数据相关或无关,但其对子区块链的验证对等节点的子集及其相关用户具有显著意义。
在506处,区块链处理器或其他管理应用或网络设备可以将密钥材料分发给被指派给子区块链的验证对等节点的子集。密钥材料可以是用于加密与子区块链相关联的信息、事务、数据等的公共密钥-私有密钥对中的一个或二者。在一个实施例中,在创建子区块链之前,可以将用于子区块链的公共密钥(在证书内或证书外)分发给验证对等节点的子集,并且在创建子区块链之后,可以将不同的相应私有(或秘密)密钥分发给验证对等节点的子集中的相应验证对等节点。
图5B图示了使用根区块链网络来触发一个或多个子区块链的创建的方法510的另一实施例的流程图。该实施例可以例如是图5A的方法的更具体的实现并且可以参考图4而被理解。
参考图5B,方法510可以最初包括:在511处,接收在包括根区块链的网络中创建子区块链的请求。可以通过区块链网络的验证对等节点从用户接收该请求。网络的身份管理基础设施(或身份管理器)可以接收并处理该请求。身份管理基础设施可以与PKI(公共密钥基础设施)相似,其中一个或多个证书颁发机构(CA)颁发用户的公共密钥。在证书颁发之后,用户接收到“客户端”证书,其可以被用来组装区块链事务。在一个实施例中,身份管理基础设施可以被增强以允许控制链的创建。
该请求可以包括允许创建子区块链的各种类型的信息。该信息例如可以标识区块链网络中要指派给子区块链的验证对等节点。可以例如通过包括预指派的标识符的元数据来标识验证对等节点。该信息还可以指示每个标识符对等节点的状态,例如,节点是活动的还是关闭的。
请求中的信息还可以包括密钥对的两个密钥中的一个或多个,以供验证对等节点用来加密和解密网络中与子区块链有关的数据和消息。密钥对可以是公共密钥-私有密钥对,并且请求中的信息可以包括例如仅公共密钥。子区块链的公共密钥可以被分发给或可以不被分发给网络中未指派给子区块链的验证对等节点。在一个实施例中,可以通过身份管理结构从请求以外的源,例如,网络处理器、证书颁发机构、管理节点、智能合约等,获得针对子区块链的密钥信息和/或节点的状态。
在512处,请求中的信息被处理以标识将被指派给第二区块链的一个或多个验证对等节点。这可以包括例如访问被用来传输请求的分组的一个或多个字段。可以例如通过区块链网络的智能合约或策略信息来定义提交请求的特定方式。要被指派给子区块链的一个或多个验证对等节点构成网络中已经可以访问根区块链的验证对等节点的子集。在一个实施例中,仅一个验证对等节点可以被指派给子区块链。在另一实施例中,多于一个但少于全部的验证对等节点可以被指派给子区块链。在这种情况下,验证对等节点可以由相同区块链利益相关方或不同利益相关方拥有。
在513处,多个验证对等节点被请求提供关于是否要创建新的子区块链的决策。验证对等节点可以是网络中的所有验证对等节点、仅被指派给子区块链的节点、未被指派给子区块链的节点、或验证对等节点的另一组合。被请求提供决策的验证对等节点可以例如通过网络策略或智能合约来定义。当被请求时,验证对等节点将其决策传输回身份管理基础设施。
在514处,身份管理基础设施基于来自一个或多个验证对等节点的决策来授权或不授权第二区块链的创建。在一个实施例中,当预定数目的验证对等节点例如通过传输确认信号来提供有利授权时,可以执行子区块链的创建。预定数目可以是全部或少于全部节点。
在515处,在子区块链的创建被授权之后,身份管理基础设施可以将不同的私有(或秘密)密钥传输到被指派给子区块链的对应的对等节点。未被指派给子区块链的网络的验证对等节点可以被排除在接收子区块链的私有密钥之外,并且因此可以不向子区块链提交事务,甚至可以不访问存储在子区块链中或由子区块链引用的信息。在一个实施例中,子区块链的节点并非如此,例如,子区块链的节点的用户可以从根区块链访问信息并向根区块链提交事务。因此,根区块链和子区块链可以为具有不同利益或访问级别的用户存储不同的数据。可以在网络实际创建子区块链之前或之后将私有密钥传输到子区块链的验证对等节点。
在516处,当子区块链被授权创建时,身份管理基础设施可以将分发策略信息和/或智能合约分发到子区块链的验证对等节点或布置该分发。智能合约或策略信息可以提供例如关于如何将事务提交给子区块链和/或如何在子区块链的对等节点之间或在子区块链的节点与区块链网络中的其他节点之间散播消息和信息的指令。
在已创建子区块链之后,身份管理基础设施可以执行许多附加操作。这些操作包括例如从子区块链列出用户事务(假设已获取正确凭证)。在一个实施例中,如果在区块链网络中已经创建了多于一个的子区块链,则也可以列出来自子区块链的用户事务。另一操作可以包括维护每个子区块链上的状态信息,例如,该链的第ni个区块的哈希,其中ni=i*k,k是整数,且k≥1,带前缀的监测区块-尺寸。
图5C图示了使用根区块链网络来触发一个或多个子区块链的创建的方法520的另一实施例。在该方法的初始操作中,在521处,客户端和验证对等节点向指明的身份管理基础设施注册。客户端可以是例如用户访问以向区块链网络提交事务和其他信息的计算机、工作站、移动终端或应用。验证对等节点执行并验证客户端提交的事务。
在522处,在客户端和验证对等节点已经被注册之后,客户端和验证对等节点获取登记证书,该登记证书将验证对等节点(及其相应用户)的身份绑定到公共密钥材料(例如,加密和签名密钥)。
在523处,在成功证明了登记证书的所有权后,向客户端给出发布匿名凭证的选项。客户端提交的事务将由对应的客户端证书签名,例如,该客户端证书可以是匿名的,也可以指示客户端身份。
在524处,在提交后,由对应客户端的验证对等节点来处理事务。该处理涉及验证客户端的签名、读取事务的内容以及执行其中的代码。验证对等节点将被正确执行的事务添加到根区块链的分类账。如前所指示,所有验证对等节点都是被认为是区块链网络的一部分。
在525处,在区块链网络中,一个或多个用户通过一个或多个客户端提交对应的消息以创建新的子区块链。此时,可能已经在网络中创建了一个或多个子区块链,或者这可能是被请求的第一子区块链。消息可以包括例如标识与新的子区块链相关联的(多个)验证对等节点的信息和指示用于新的子区块链的密钥分布的信息。
在526处,当被验证时,消息(或事务)触发新的子区块链的创建。可以如先前所述执行验证,例如,由被指派给要被创建的子区块链的预定数目的验证对等节点进行授权。
可以以两种方式触发新的子区块链的创建:(1)通过身份管理基础设施或(2)通过区块链事务。
身份管理基础设施
图5D示出了通过区块链网络的身份管理基础设施(或身份管理器)来触发子区块链的创建的方法530的实施例。在初始操作531中,区块链网络的用户(或客户端)生成请求以发布针对新的子区块链的证书。用户可以是现有用户,也可以是新添加到区块链网络的用户。在该实施例中,请求通过对应的对等节点被发送到区块链网络,在这里,其被身份管理基础设施接收。
该请求可以包括各种类型的信息。例如,该请求可以包括标识将被指派给子区块链的一个或多个客户端和/或验证对等节点的信息(例如,元数据标识符)。用户可以例如使用客户端应用在请求中指明此信息。在一种情况下,请求可以用请求方/用户的长期签名密钥来进行签名,并由验证对等节点通过网络传输。
该请求还可以包括指示要被指派给子区块链的每个验证对等节点的状态的信息。节点的状态可以是例如活动的、关闭的或其他状态。
该请求还可以包括标识要被指派给子区块链的密钥材料的信息。例如,用户可以为新的子区块链生成加密密钥对。加密密钥对可以包括公共密钥和私有(或秘密)密钥。可以在请求中将公共密钥与标识要被指派给子区块链的验证对等节点的信息一起提供给身份管理基础设施。
用户还可以为被指派给子区块链的相应对等验证节点生成或获取不同秘密密钥的密文。密文例如可以被包括在请求中。
在532处,身份管理基础设施处理请求,并基于请求中的信息为新的子区块链发布证书。在一个实施例中,链证书可以是唯一标识符、验证方的身份以及用于将加密消息发送到验证方的公共密钥。
身份管理基础设施还可以在授权创建子区块链之前执行一个或多个确认操作。例如,考虑以下情况:区块链网络的用户具有不同的信任假设,例如由证书颁发机构、策略、智能合约或与区块链网络相关联的其他信息所确定的。取决于请求新的子区块链的用户的信任假设,身份管理基础设施可以(i)在533处请求用户提供与子区块链相关联地被提交的消息的正确性的证明(例如,向子区块链的所有验证对等节点提供纯文本相等性的零知识证明)或(ii)在534处将针对子区块链的用户请求发送给所有关联的验证对等节点并向这些节点确认(被包括在请求中的)密钥材料的正确递送。
在535处,身份管理基础设施可以向网络中的验证对等节点发送请求以授权创建子区块链。在这种情况下,被包括在子区块链的规范中的所有验证对等节点可以接收授权请求,或者只有预定的(例如,较高优先级的)验证对等节点可以接收该请求。
身份管理基础设施在535中接收对被发送到验证对等节点的请求的响应。例如,如果预定数目的验证对等节点未授权创建子区块链,则在536处,子区块链没有被创建。如果预定数目的验证对等节点授权创建子区块链,则在537处,身份管理基础设施创建子区块链。预定数目可以是所有、大多数或某个其他数目的验证对等节点。在一个实施例中,预定数目的响应是最少2f+1个授权创建子区块链的肯定响应,其中f是拜占庭(byzantine)节点的数目。
在538处,一旦创建了子区块链,身份管理基础设施就可以将不同的秘密密钥(例如,与由用户生成的密文相对应并被包括在创建请求中)分发给被指派给子区块链的对应的对等节点。使用秘密密钥,节点可以关于与子区块链相关联的消息和信息执行解密。
根据一个或多个实施例,图5D的方法可以被修改或包括各种可选步骤。例如,子区块链的密钥材料信息可以不被包括在创建请求中。在这种情况下,身份管理基础设施可以为新的子区块链生成公共密钥-私有密钥对,并将对应的公共密钥添加到用于子区块链的证书中。身份管理基础设施还可以在证书中包括到子区块链的验证对等节点的一个或多个消息。消息的示例包括针对子区块链的相应验证对等节点的秘密密钥的密文。可以例如基于子区块链的验证对等节点的长期加密密钥来产生秘密密钥。将这种类型的消息包括在证书中允许验证对等节点基于其秘密密钥执行针对子区块链的解密。
在一个实施例中,在接收到针对子区块链的请求之后,身份管理基础设施可以将密钥材料分别提供给验证对等节点,例如不在证书中。在这种情况下,身份管理基础设施可以在且仅在被指派给子区块链的所有验证对等节点都已经确认正确递送了对应的密钥时才发布证书,对应的密钥例如密钥对中的一个密钥。取决于有关密钥的策略,身份管理基础设施可能会或可能不会向被指派给子区块链的用户提供秘密密钥。如果秘密密钥未被提供给用户,并且身份管理基础设施不被信任已正确执行其工作,则用户可以请求正确构建针对子区块链的证书的证明。
一旦子区块链被授权创建,就可以将证书路由到整个区块链网络的所有验证对等节点(其包括新的子区块链的验证对等节点),使得区块链网络的所有用户被通知有关该子区块链的存在。
区块链事务
图5E示出了通过根网络中的区块链事务来触发子区块链的创建的方法550的实施例。该方法包括在551处提供系统合约或策略,该系统合约或策略提供关于要如何创建新的子区块链的指令。系统合约可以例如指定被授权在区块链网络中生成新的子区块链的用户和/或管理员的集合(例如,基于这些用户的证书)以及在处理创建子区块链的请求时被使用的元数据。
在552处,从指派给根区块链网络中的验证对等节点的用户接收创建新的子区块链的请求。该请求可以包括各种类型的信息,包括但不限于对创建新的子区块链的智能合约或策略的引用。
在553处,执行请求中引用的智能合约。在一个实施例中,该请求是引用控制子区块链的创建的系统合约或策略的事务的形式,或者调用上述事务。事务或请求可以包括标识区块链网络中将被指派给子区块链并且用于验证子区块链的合约的验证对等节点的子集的信息(如请求中所指示)。事务或请求还可以包括其他信息,包括但不限于指示用于将密钥材料分发给子区块链的验证对等节点的方面的信息。
系统合约可以处理新链的生成。在一个实施例中,已授权的用户基于用于创建新链的参数,例如,唯一标识符、验证方的身份和用于将加密的消息发送到验证方的公共密钥,通过组装包括对合约的“createChain”(创建链)方法的调用的事务,来调用系统合约。
再次参考图5E,在554处,确定是否信任请求创建子区块链的用户将密钥材料传递给子区块链的验证对等节点。例如,可以通过访问与请求用户相关的证书或信任假设信息来做出此确定。如果请求用户是可信的,则在555处,用户将密钥材料(例如,公共密钥-私有密钥对的一个或两个密钥)发送到被指派给子区块链的每个验证对等节点。该对中的私有密钥对于不同的节点和/或子区块链用户可以不同。
如果不信任请求创建子区块链的用户将密钥材料传递给被指派给该子区块链的验证对等节点,则可以采取以下两种方法之一以创建要被递交的新的子区块链。
在556处,第一方法包括从被指派给子区块链的验证对等节点接收已经通过区块链网络接收到事务或请求的确认。在557处,当接收到来自指派给子区块链的预定数目的验证对等节点的响应时,子区块链可以被创建并被置于活动状态。预定数目可以是指派给子区块链的所有验证对等节点,也可以是其他数目的这些节点。
在558处,第二方法涉及证实从指派给子区块链的验证对等节点接收到的消息中的纯文本相等性的零知识证明。在一个实施例中,零知识证明可以是事务请求的一部分。一旦证实了来自验证对等节点的零知识证明,则在557处,子区块链可以在根区块链网络内被创建并被置于活动状态。
在本文描述的这些和其他实施例中,尽管创建的子区块链可以具有与根区块链不同的智能合约和策略,并且可以仅由网络验证对等节点的子集访问,但是相同的网络处理器、证书颁发机构、处理平台和其他处理资源(例如,如图1-图4中所述)可以被用来执行事务并以其他方式管理与子区块链相关的所有操作。
除了前述特征之外,控制子区块链的生成的系统合约可以指定指派给子区块链的验证对等节点如何在新的链密钥上达成一致。在一个实施例中,这以这样的方式执行:请求新的子区块链的用户不学习链秘密(解密)密钥。例如,当指派给子区块链的预定数目的验证对等节点提交对密钥材料的有效响应或贡献时,可以启用新的子区块链的激活。预定数目可以是出自例如3f+1个验证对等节点中的2f+1个验证对等节点,其中f对应于拜占庭节点的数目。
在一个或多个实施例中,区块链网络处理器可以将区块追加到网络中的第一区块链,其记录子区块链已被创建。该操作可以根据与第一区块链相关联的区块链网络的智能合约来执行。追加的区块可以存储或引用与子区块链相关的各种类型的信息。该信息例如可以标识子区块链的验证对等节点,但是可以排除针对该子区块链的密钥材料,因为网络中未被指派给子区块链的验证对等节点不被允许访问或执行与子区块链相关的任何其他转换。
根据一个示例,事务可以向指派给新的子区块链的验证对等节点通知同意链密钥的要求。在这种情况下,新链中涉及的每个VP都可以调用系统合约所公开的方法(例如,其可以通过发布事务来完成)。
可以被用来控制新的子区块链的创建的系统合约的一个示例指定以下操作。
1)createChain(cID,{VPs},{VP-msgs})(创建链),其中VP对应于指派给子区块链的验证对等节点,cID对应于子区块链的标识符,并且{VPs}/{VP-msgs}对应于负责子区块链的VP集合和被传递给其的消息(例如,加密的密钥材料)。
2)agreeChainKey(cID,VP-msg-rsp)(同意链密钥),通过该操作,VP可以提供其关于{VP-msgs}的响应VP-msg-rsp。如果子区块链VP之间需要密钥协定,则验证方(例如客户端、验证对等节点或两者)可以将其响应或贡献包括在VP-msg-rsp内。
3)commitChainKey(cID,VP-msg-cmt)(递交链密钥),通过该操作,VP可以提供其对子区块链的密钥协定的响应或贡献,从而使新密钥被建立。
在一个实施例中,createChain操作可以伴随有标示被授权创建子区块链的列表用户的调用访问控制列表。该列表可以由区块链网络的系统或智能合约来指明。agreeChainKey操作只能由对应于链cID的VP调用。例如,仅当验证方将关于子区块链的密钥材料达成一致时,才可能需要commitChainKey操作。
创建子区块链的请求的示例可以包括以下字段。与请求相对应的事务可以由请求子区块链的用户签名。
·指定要被创建的子区块链的标识符(例如,cID)的字段
·指定要被指派给子区块链的验证方(例如,区块链网络中的验证对等节点、客户端或两者)的列表的字段,例如{vi}i=1,m,其中公共加密密钥{pkvi}i=1,m
·指定去往子区块链的验证方的消息的列表的字段(可选)
·子区块链请求方的证书和签名
用于在验证方之间达成密钥协定的示例可以包括当接收到针对新的子区块链的请求时的(多个)以下操作:请求createChain(cID,{VPs},{VP-msgs})链验证方处理VP-msgs(等)。
在这种情况下可能出现两种情形。
首先,针对根区块链的策略可能要求由子区块链的创建方(例如,请求用户或验证对等节点)提供密钥。在这种情况下,到验证对等节点的消息可以包括子区块链的密钥材料(例如,公共和/或私有)密钥的密文。在一个实施例中,每个验证方可能只需要解密对应于该验证方的密文,并且如果未正确创建子区块链,则可以在VP-msg-rsp被设置为“有效”或“无效”的情况下调用“agreeChainKey”操作。在一个示例中,假设f个拜占庭节点和一个恶意创建方,则在至少3f+1个链验证对等节点的集合中请求2f+1个响应。
在一个或多个实施例中,根区块链网络的策略可能要求子区块链的验证方之间就密钥达成一致。根据一个示例,对于vi VP-msg-rsp,令其成为VP-msg-rspi可以是对其贡献的递交,例如VP-msg-rspi=Commit(contribi),其中Commit(递交)是正确隐藏和绑定的递交方案,并且其中contribi<-hash(vi,nci)。在后一表达式中,可以选择预定的哈希函数,并且nci可以是vi从正确群组中随机选取的数字。
在来自子区块链的不同验证方的2f+1个响应被注册到区块链网络之后,链验证方可以通过调用commitChainKey(cID,VP-msg-cmt)“递交”其对链密钥的响应或贡献。在此表达式中,验证方vi的VP-msg-cmt(由VP-msg-cmti标示)对应于使用对cID验证方的多-cas加密所生成的消息Mi的密文,例如VP-msg-cmti<-MultiEnc[{pkvi}i=1,m;re;Mi],其中re是在这种多-cas加密中贡献的随机性,并且Mi包含以下项:
o VP-msg-rspi的递交值的开启,
o contribi的原像,例如nci。
o在该多cas加密密文中使用的随机性re。
在接收到这些项目后,{vi}i=1...m中的每个验证方可以评估VP-msg-cmt的正确性。如果相同的消息已被传递给子区块链的所有验证方,则可以通过出现在根区块链中的frs f+1个有效“commitChainKey”响应来计算针对子区块链的密钥材料,其例如可以是与每个响应相关联的随机性的函数nci。如果在根区块链中出现预定数目(例如f+1或更多)的有效响应(假设有2f+1或更多的链验证方),则激活该链。
可以使用的一种加密类型是ElGamal加密。这是基于Diffie-Hellman密钥交换的、用于公共密钥加密的非对称密钥加密。在本申请中公开的一个或多个实施例的上下文中的ElGamal加密可以如下执行。令G为素数阶q的循环群组,其中生成器为g。G上的ElGamal加密方案如下工作。秘密解密密钥是Z_q中的随机指数x,而公共密钥是y=g^x。为了加密作为G中元素的消息m,可以在Z_q中选择随机数r并计算出密文C=(g^r,y^r*m)。为了解密密文C=(C_1,C_2),可以恢复出m=C_2/C_1^x。
根据本文公开的实施例,存在以一种模式使用ElGamal加密的若干方式,使得在解密期间恢复随机性r。一个示例是Fujisaki-Okamoto变换,其通过选择随机群组元素s、使用哈希函数H和G计算r=H(s,m)和K=G(s)并将密文计算为C=(g^r,y^r*s,Enc(K,m)),来对消息m进行加密,其中Enc是对称加密算法。
为了解密密文C=(C_1,C_2,C_3),计算值s=C_2/C_1^x,恢复m=Dec(G(s),C_3),并执行检查以确定是否C_1=g^H(s,m)。如果是,则解密器返回m;否则,其拒绝密文。
根据本文所公开的实施例,可能要求相等离散对数的证明。例如,这可以被实现如下。令g和h为群组G的两个生成器,令x为秘密指数,并且令y=g^x且z=h^x。知道x的证明方可以证明y和z关于g和h具有相等的离散对数(例如log_g(y)=log_h(z)),如下。证明方从Z_q中选择一个随机数t并将证明(c,s)计算为c=H(g^t,h^t)和s=xc+t mod q,其中H是哈希函数。为了证实关于(g,h,y,z)的证明(c,s),证实方检查c=H(g^s/y^c,h^s/z^c)。
根据一个或多个实施例,可以通过随机性恢复来执行多重加密。例如,这可以被实现如下。为了将相同的秘密密钥x发送给具有公共密钥y_1,...,y_n的多个接收方,发送方可以使用具有随机性恢复的ElGamal加密来在每个公共密钥y_1下加密x。然而,相同的随机性r可以被重新用于每个接收方。密文因此为C=(C_0=g^r,C_1,...,C_n),每个接收方i都可以通过解密(C_0,C_i)对其进行解密。在此过程中恢复了r之后,接收方i然后通过检查C_j=y_j^r*m来检查所有接收方都收到了相同的密钥x。
根据一个或多个实施例,可以通过相等离散对数的证明来执行多重加密。备选地,密钥x的发送方可以使用相等离散对数的证明来表明其向所有接收方加密了相同的密钥。例如,这可以通过以下方式来实现。发送方从Z_q中选择随机数r并计算C_0=g^r,C_1=y_1^r*x,...,C_n=y_n^r*x以及关于如下的证明(c,s):对于所有i=1,...,n-1,关于g的C_0的离散对数等于关于y_i/y_{i+1}的对数C_i/C_{i+1}。更具体地,发送方可以从Z_q中选择一个随机数t并计算c=H(g^t,(y_1/y_2)^t,...,(y_{n-1}/y_n)^t)和s=rc+t mod q。
为了解密密文C=(C_0,C_1,...,C_n,c,s),第i个接收方恢复x=C_i/C_0^{x_i}并通过检查c=H(g^s/C_0^c,(y_1/y_2)^t/(C_1/C_2)^c,...,(y_{n-1}/y_n)^t/(C_{n-1}/C_n)^c)来证实相等离散对数的证明。
图5F图示了通过根网络中的区块链事务来触发子区块链的创建的方法580的另一实施例。方法580包括在581处的操作,该操作用于接收在包括第一(或根)区块链的网络中创建第二(或子)区块链的消息或指令。该消息可以由验证对等方或不同的实体发送,不同实体例如管理员或其他管理机构、应用或设备。
在一种情况下,可以通过关于根区块链的预定动作来触发消息。例如,当特定类型的区块被追加到根区块链时(例如,通过智能合约的执行所确定的),当特定数目的区块已经被追加到根区块链时,和/或当与根区块链相关的一个或多个其他条件被执行时,该消息可以由网络处理器自动生成。该消息可以由网络处理器、身份管理基础设施或其他网络资源接收。
在582处,执行操作以将网络中的一个或多个验证对等节点标识为与子区块链相对应。验证对等节点可以对应于有权访问根区块链的网络节点的子集。验证对等节点可以由提供消息或指令以创建子区块链的相同实体来标识,或者可以由不同的实体例如基于接收到的消息或指令来进行。
在583处,执行操作以标识一个或多个智能合约或策略信息,该智能合约或策略信息将被用于控制网络处理器以创建子区块链,访问子区块链或将区块追加到子区块链,和/或执行与子区块链的管理相关的其他特征。智能合约可以与其他智能合约、策略信息、应用和/或其他与网络相关的信息和数据一起被存储在网络存储设备中。与本文所公开的所有实施例一样,用于根和子区块链的数据可以被存储在一个或多个网络存储区域中,或者甚至存储在链外存储设备中。
在584处,执行操作以证实用于子区块链的验证对等节点的凭证(例如,信任假设、证书或其他凭证)。在一些实施例中,例如当已经与对根区块链的访问相关联地证实了对等节点的凭证时,可以省略该操作。
在585处,执行操作以将不同的密钥分发给被指派给子区块链的验证对等节点的相应验证对等节点。密钥可以是例如密钥对中的一个密钥(例如,私有密钥或秘密密钥)。在这种情况下,另一(例如,公共密钥)可以已被发送到子区块链的验证对等节点,或者可以与私有密钥一起被发送。
在586处,执行操作以创建子区块链。子区块链可以存储与根区块链的数据相关或不同的数据。只有已被指派给子区块链的验证对等节点可以访问该子区块链。此时,对应节点可以根据关联的(多个)智能合约开始提交针对事务的请求。
图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上),其可以执行被包括在任何示例实施例中的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入的信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C图示了根据示例实施例的在合约方和中介服务器之间的示例智能合约配置,该中介服务器被配置为在区块链上强制实施智能合约条款。参考图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话或过程或程序,该智能合约630显式地标识一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能要求由作为智能合约事务的各方的实体652和656中的一个或多个的数字签名。智能合约执行的结果可以作为区块链事务被写入到区块链620。智能合约630驻留在区块链620上,该区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D图示了根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式分类账等)的共用接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即服务器654)来在区块链上执行事务(调用、查询等)的共用接口。在这里,服务器654是区块链网络对等组件,其保持世界状态的副本和分布式分类账,这允许客户端652和656查询有关世界状态的数据以及将事务提交到区块链网络中,其中,取决于智能合约630和背书策略,背书对等方将运行智能合约630。
以上实施例可以以硬件、以处理器执行的计算机程序、以固件或以上述的组合来实现。计算机程序可以被体现在诸如存储介质的计算机可读介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质。
示例性存储介质可以被耦合到处理器,使得处理器可以从该存储介质读取信息,并且可以向该存储介质写入信息。在备选方案中,存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在备选方案中,处理器和存储介质可作为分立组件驻留。
图7A图示了根据示例实施例的新区块被添加至分布式分类账730的过程700,并且图7B图示了根据示例实施例的用于区块链的区块750结构的内容。参考图7A,客户端(未示出)可以向区块链节点721、722和/或723提交事务。客户端可以是从任何源接收的指令以在区块链730上制定活动。作为示例,客户端可以是应用,该应用代表请求方(例如设备,个人或实体)进行动作以提议用于区块链的事务。多个区块链对等方(例如,区块链节点721、722和723)可以维护区块链网络的状态和分布式分类账730的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括对客户端提议的事务进行模拟和背书的背书对等方,以及证实背书、验证事务并递交事务到分布式分类账730的递交对等方。在此示例中,区块链节点721、722和723可以充当背书方节点、递交方节点或者二者的角色。
分布式分类账730包括以区块存储不可变的序列化记录的区块链732以及维护区块链732的当前状态的状态数据库734(当前世界状态)。每个信道可以存在一个分布式分类账730,并且每个对等方针对其为成员的每个信道维护其自己的分布式分类账730的副本。区块链732是被构造为哈希链接的区块的事务日志,其中每个区块包含N个事务的序列。区块可以包括各种组件,诸如图7B中所示。可以通过在当前区块的区块报头中添加先前区块报头的哈希来生成区块的链接(图7A中的箭头所示)。以这种方式,对区块链732上的所有事务进行排序,并将其密码链接在一起,以防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链732中的最新区块表示在其之前出现的每个事务。区块链732可以被存储在对等文件系统(本地或附接的存储装置)上,该对等文件系统支持仅追加的区块链工作负载。
分布式分类账732和区块链732的当前状态可以被存储在状态数据库734中。在这里,当前状态数据表示针对区块链732的链事务日志中曾经包括的所有密钥的最新值。链码调用针对状态数据库734中的当前状态来执行事务。为了使这些链码交互非常高效,所有密钥的最新值都被存储在状态数据库734中。状态数据库734可以包括到区块链732的事务日志中的索引视图,其因此可以在任何时间从链中被重新生成。在事务被接受之前,状态数据库734可以在对等方启动后自动得到恢复(或者在需要的情况下被生成)。
背书节点从客户端接收事务,并基于模拟结果对该事务进行背书。背书节点持有模拟事务提议的智能合约。当背书节点对事务进行背书时,背书节点创建事务背书,其是从背书节点到客户端应用的签名响应,其指示了模拟事务的背书。对事务进行背书的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等方必须对事务进行背书”。不同的信道可以具有不同的背书策略。客户端应用将已背书的事务转发到排序服务710。
排序服务710接受已背书的事务,将其排序为区块,并将这些区块递送给递交对等方。例如,当已经达到事务的阈值、计时器超时或其他条件时,排序服务710可以发起新的区块。在图7A的示例中,区块链节点722是递交对等方,其已经接收到用于存储在区块链730上的新的数据区块750。
排序服务710可以由排序方集群组成。排序服务710不处理事务、智能合约或维护共享分类账。而是,排序服务710可以接受已背书的事务并指定将那些事务递交给分布式分类账730的次序。可以设计区块链网络的架构,以使得“排序”的此类特定实现(例如,Solo、Kafka、BFT等)成为可插拔组件。
以一致的次序将事务写入到分布式分类账730。建立事务的次序以确保对状态数据库734的更新在其被递交给网络时有效。与通过解决密码难题或挖掘来发生排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式分类账730的各方可以选择最适合该网络的排序机制。
当排序服务710对新区块750进行初始化时,可以将新区块750广播给递交对等方(例如,区块链节点721、722和723)。作为响应,通过检查以确保读取集和写入集仍与状态数据库734中的当前世界状态相匹配,每个递交对等方验证新区块750内的事务。具体而言,递交对等方可以确定:当背书方模拟事务时存在的读取数据是否与状态数据库734中的当前世界状态相同。当递交对等方验证事务时,将事务写入到分布式分类账730上的区块链732,并用来自读取写入集的写入数据来更新状态数据库734。如果事务失败,也就是说,如果递交对等方发现读取写入集与状态数据库734中的当前世界状态不匹配,则被排序到区块中的事务仍将被包括在该区块中,但是其将被标记为无效,并且状态数据库734将不被更新。
参考图7B,存储在分布式分类账730的区块链732上的区块750(也被称为数据区块)可以包括多个数据段,诸如区块报头760、区块数据770和区块元数据780。应当理解,所描绘的各种区块及其内容,例如如图7B中所示的区块750及其内容,仅用于示例目的,并不意味着限制示例实施例的范围。在一些情况下,区块报头760和区块元数据780都可以小于存储事务数据的区块数据770,但是这不是必需的。区块750可以在区块数据770内存储N个事务(例如100、500、1000、2000、3000等)的事务信息。区块750还可以在区块报头760内包括到(例如,在图7A中的区块链732上的)先前区块的链接。特别地,区块报头760可以包括先前区块报头的哈希。区块报头760还可以包括唯一区块编号、当前区块750的区块数据770的哈希等等。区块750的区块编号可以是唯一的,并且以从零开始的增量/次序来进行指派。区块链中的第一区块可以被称为创世区块,其包括有关区块链、其成员、存储在其中的数据等等的信息。
区块数据770可以存储在区块750内记录的每个事务的事务信息。例如,事务数据可以包括事务的类型、版本、时间戳、分布式分类账730的信道ID、事务ID、时期、有效负载可见性、链码路径(部署TX)、链码名称、链码版本、输入(链码和函数)、客户端(创建方)身份(诸如公共密钥)和证书、客户端的签名、背书方的身份、背书方签名、提议的哈希、链码事件、响应状态、名称空间、读取集(事务读取的密钥和版本等)、写入集(密钥和值的列表等)、开始密钥、结束密钥、密钥的列表、默克尔树查询摘要等等中的一个或多个。可以针对N个事务中的每一个存储事务数据。
在一些实施例中,区块数据770还可以存储数据772,该数据772将附加信息添加到区块链732中的哈希链接的区块链。因此,数据772可以被存储在分布式分类账730上的区块的不可变日志中。在本文所公开和描绘的各种实施例中反映了存储这种数据772的一些益处。
区块元数据780可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于区块创建的签名,对上一次配置区块的引用、标识区块内有效事务和无效事务的事务过滤器、对区块进行排序的排序服务的上一次偏移持续时间等。签名、上一次配置区块和排序方元数据可以由排序服务710添加。同时,区块的递交者(诸如区块链节点722)可以基于背书策略、读取/写入集的证实等等来添加有效性/无效性信息。事务过滤器可以包括尺寸等于区块数据770中的事务数目的字节阵列和标识事务是否有效/无效的验证码。
图8并不旨在暗示对本文所述的应用的实施例的使用范围或功能性作任何限制。无论如何,计算节点800能够被实现和/或执行以上阐述的任何功能性。
在计算节点800中,存在计算机系统/服务器802,其可与许多其他通用或专用计算系统环境或配置一起操作。可能适合与计算机系统/服务器802一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或便携式设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述任何系统或设备的分布式云计算环境等等。
计算机系统/服务器802可以在由计算机系统执行的诸如程序模块之类的计算机系统可执行指令的一般上下文中来描述。一般而言,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器802,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图8中所示,以通用计算设备的形式示出了云计算节点800中的计算机系统/服务器802。计算机系统/服务器802的组件可以包括但不限于一个或多个处理器或处理单元804、系统存储器806以及将包括系统存储器806的各种系统组件耦合到处理器804的总线。
总线表示几种类型的总线结构中的任何一种或多种,包括使用各种总线架构中的任何一种的存储器总线或存储器控制器、外围总线,加速图形端口以及处理器或本地总线。作为示例而非限制,此类架构包括行业标准架构(ISA)总线、微信道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
计算机系统/服务器802通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器802可访问的任何可用介质,并且其包括易失性和非易失性介质、可移除和不可移除介质。在一个实施例中,系统存储器806实现其他附图的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机系统/服务器802可以进一步包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统814以用于读取自和写入到不可移除的非易失性磁性介质(未被示出并且通常被称为“硬盘驱动”)。尽管未被示出,但是可以提供用于读取自和写入到可移除非易失性磁盘(例如“软盘”)的磁盘驱动以及用于读取自或写入到可移动非易失性光盘(诸如CD-ROM、DVD-ROM或其他光学介质)的光盘驱动。在这种情形下,每一个都可以通过一个或多个数据介质接口连接到总线。如将在下面进一步描绘和描述的,存储器806可以包括至少一个程序产品,该程序产品具有被配置为执行本申请的各种实施例的功能的程序模块的集合(例如,至少一个)。
作为示例而非限制,具有一组(至少一个)程序模块818的程序/实用程序816可以被存储在存储器806中,操作系统、一个或多个应用程序、其他程序模块和程序数据也是如此。操作系统、一个或多个应用程序、其他程序模块以及程序数据或其某种组合中的每一个可以包括联网环境的实现。程序模块818通常执行本文所述的本申请的各种实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以被体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了软件和硬件方面的实施例的形式,这些方面通常都可以被称为本文中“电路”、“模块”或“系统”。此外,本申请的各方面可以采取在其上体现有计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
计算机系统/服务器802还可以与以下设备通信:诸如键盘、指示设备、显示器822等等之类的一个或多个外部设备820;使用户能够与计算机系统/服务器802进行交互的一个或多个设备;和/或使计算机系统/服务器802能够与一个或多个其他计算设备进行通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由I/O接口824发生。然而,计算机系统/服务器802可以经由网络适配器826与一个或多个网络通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)。如所描绘的,网络适配器826经由总线与计算机系统/服务器802的其他组件进行通信。应当理解,尽管未被示出,但是其他硬件和/或软件组件可以与计算机系统/服务器802结合使用。示例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动和数据档案存储系统等。
尽管在附图中已经图示了并且在前面的详细描述中已经描述了系统、方法和非瞬态计算机可读介质中的一个或多个的示例性实施例,但是应当理解,本申请不限于所公开的实施例,但是能够进行如所附权利要求所阐述和定义的许多重新布置、修改和替换。例如,各个附图的系统的能力可以由本文所描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或发射机与接收机对。例如,由个体模块执行的全部或部分功能性可以由这些模块中的一个或多个来执行。此外,本文所描述的功能性可以在模块或组件内部或外部、在各种时间并且与各种事件相关地执行。而且,可以经由以下中的一个或多个来在模块之间发送各种模块之间发送的信息:数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多种协议。而且,可以经由一个或多个其他模块和/或直接发送或接收由任何模块发送或接收的消息。
本领域的技术人员将意识到,“系统”可以被体现为个人计算机、服务器、控制台、个人数字助理(PDA)、小区电话、平板计算设备、智能电话或任何其他合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文所公开的方法、系统和装置可以以与计算技术相一致的局部和分布式形式来实现。
应该注意,在本说明书中描述的一些系统特征已经作为模块呈现,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成电路(VLSI)电路或门阵列、现成的半导体诸如逻辑芯片、晶体管或其他分立组件。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
模块也可以至少部分地以软件实现,以由各种类型的处理器执行。所标识的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,所述计算机指令可以例如被组织为对象、过程或函数。然而,所标识的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时包括该模块并实现该模块的所述目的。此外,模块可以被存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用来存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以被分布在若干不同的代码段时、不同的程序之间、以及跨越若干存储器设备进行分布。类似地,操作数据可以在本文中在模块内被标识和图示出,并且可以以任何合适的形式体现并且可以在任何合适的数据结构类型内组织。操作数据可以作为单个数据集而被收集,或者可以被分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号而存在。
将容易理解,如本文的附图中一般性描述和图示的,本申请的组件可以以各种不同的配置来进行布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅仅表示本申请的所选实施例。
本领域普通技术人员将容易地理解,可以以不同次序的步骤和/或以与所公开的配置不同的配置的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员显而易见的是,某些修改、变型和备选构造将是显而易见的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当对权利要求的等效物和修改(例如协议,硬件设备,软件平台等)的全部范围进行考虑时,本申请的范围仅由所附权利要求书限定。
Claims (22)
1.一种系统,包括:
第一接口,用以访问针对区块链网络中的第一区块链的分类账,所述第一区块链包括或引用第一数据,所述第一数据将被多个验证对等节点访问;
第二接口,用以访问针对所述区块链网络中的第二区块链的分类账,所述第二区块链包括或引用第二数据,所述第二数据将被所述多个验证对等节点中有权访问所述第一区块链的子集访问;以及
处理器,用以基于来自所述子集中的所述验证对等节点中的一个验证对等节点的消息来创建所述第二区块链,所述消息包括标识所述多个验证对等节点的所述子集的信息,其中所述处理器用以向所述验证对等节点的子集发送一个或多个密钥,所述一个或多个密钥用以允许所述子集中的所述验证对等节点访问所述第二区块链中的所述第二数据或传输信息以将区块追加到所述第二区块链。
2.根据权利要求1所述的系统,其中所述处理器用以在所述子集中的预定数目的所述验证对等节点授权所述第二区块链的创建时创建所述第二区块链。
3.根据权利要求1所述的系统,其中所述处理器用以基于智能合约中的指令来创建所述第二区块链。
4.根据权利要求1所述的系统,其中所述处理器用以在被发送给所述子集中的所述验证对等节点中的每个验证对等节点的证书中发送所述一个或多个密钥。
5.根据权利要求1所述的系统,其中所述处理器用以排除所述网络的不在所述子集中的验证对等节点对所述第二区块链的访问。
6.一种方法,包括:
接收用以在包括第一区块链的网络中创建第二区块链的请求;
向所述网络中的一个或多个验证对等节点发送消息,所述一个或多个验证对等节点对应于所述网络中有权访问所述第一区块链的验证对等节点的子集,所述消息请求针对所述第二区块链的授权;
分析来自所述验证对等节点的子集的对所述消息的响应;以及
基于经分析的所述响应,授权所述第二区块链的创建。
7.根据权利要求6所述的方法,其中所述请求包括标识所述网络的所述验证对等节点的子集的信息。
8.根据权利要求6所述的方法,其中所述请求包括对用于所述第二区块链的智能合约的引用。
9.根据权利要求8所述的方法,其中所述智能合约包括用以创建所述第二区块链的指令。
10.根据权利要求9所述的方法,其中所述智能合约包括用以将事务提交给所述第二区块链的指令。
11.根据权利要求6所述的方法,其中所述请求包括将由所述验证对等节点的子集使用以传输或接收用于所述第二区块链的信息或消息的密钥材料。
12.根据权利要求11所述的方法,还包括:
将不同的私有密钥传输给所述子集中的所述验证对等节点中的相应验证对等节点,
其中当所述验证对等节点的子集提交针对所述第二区块链的事务时,所述私有密钥将与所述密钥材料中的公共密钥一起被使用。
13.根据权利要求12所述的方法,还包括:
防止所述网络中不被包括在所述验证对等节点的子集中的验证对等节点对所述第二区块链的访问。
14.根据权利要求13所述的方法,其中防止访问包括:
拒绝向所述网络中不被包括在所述验证对等节点的子集中的所述验证对等节点提交密钥。
15.根据权利要求6所述的方法,还包括:
将证书传输给所述验证对等节点的子集中的每个验证对等节点,
其中所述证书包括将由所述验证对等节点的子集使用以传输或接收用于所述第二区块链的信息或消息的密钥材料。
16.根据权利要求6所述的方法,其中:
分析所述响应包括确定授权所述第二区块链的创建的所述验证对等节点的子集的数目,以及
授权所述第二区块链的创建包括:在预定数目的所述验证对等节点的子集授权所述第二区块链的创建时,创建所述第二区块链。
17.根据权利要求6所述的方法,其中:
所述第一区块链存储或引用第一数据;并且
所述第二区块链存储或引用不同于所述第一数据的第二数据。
18.一种存储指令的非瞬态计算机可读介质,所述指令在被处理器读取时使所述处理器:
接收用以在包括第一区块链的网络中创建第二区块链的请求;
向所述网络中的一个或多个验证对等节点发送消息,所述一个或多个验证对等节点对应于所述网络中有权访问所述第一区块链的验证对等节点的子集,所述消息用以请求针对所述第二区块链的授权;
分析来自所述验证对等节点的子集的对所述消息的响应;以及
基于经分析的所述响应,授权所述第二区块链的创建。
19.根据权利要求18所述的计算机可读介质,其中所述请求包括标识所述网络的所述验证对等节点的子集的信息。
20.根据权利要求18所述的计算机可读介质,其中所述请求包括对智能合约的引用,所述智能合约包括用以创建所述第二区块链的指令。
21.一种包括计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有通过其而被体现的程序指令,所述程序指令由计算设备可执行以使所述计算设备执行根据权利要求6至17中任一项所述的方法的方法步骤。
22.一种系统,包括模块,所述模块各自被配置为执行根据权利要求6至17中任一项所述的方法的每个步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/379,075 | 2019-04-09 | ||
US16/379,075 US11422981B2 (en) | 2019-04-09 | 2019-04-09 | Information management and access control in a database |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111797159A true CN111797159A (zh) | 2020-10-20 |
Family
ID=72747429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010271263.1A Pending CN111797159A (zh) | 2019-04-09 | 2020-04-08 | 数据库中的信息管理和访问控制 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11422981B2 (zh) |
CN (1) | CN111797159A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127517A (zh) * | 2021-04-22 | 2021-07-16 | 云上青海大数据产业有限公司 | 一种基于区块链大数据的存储系统 |
CN117216802A (zh) * | 2023-11-07 | 2023-12-12 | 联通(广东)产业互联网有限公司 | 数据库安全认证方法、装置、电子设备和存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11615060B2 (en) * | 2018-04-12 | 2023-03-28 | ISARA Corporation | Constructing a multiple entity root of trust |
US10721069B2 (en) | 2018-08-18 | 2020-07-21 | Eygs Llp | Methods and systems for enhancing privacy and efficiency on distributed ledger-based networks |
WO2020081727A1 (en) | 2018-10-16 | 2020-04-23 | Eluvio, Inc. | Decentralized content fabric |
US11677563B2 (en) | 2019-04-15 | 2023-06-13 | Eygs Llp | Systems, apparatus and methods for local state storage of distributed ledger data without cloning |
US11502838B2 (en) | 2019-04-15 | 2022-11-15 | Eygs Llp | Methods and systems for tracking and recovering assets stolen on distributed ledger-based networks |
US11943358B2 (en) * | 2019-04-15 | 2024-03-26 | Eygs Llp | Methods and systems for identifying anonymized participants of distributed ledger-based networks using zero-knowledge proofs |
US11349837B2 (en) * | 2019-04-30 | 2022-05-31 | At&T Intellectual Property I, L.P. | Identity vault service |
US12045289B2 (en) * | 2020-03-11 | 2024-07-23 | Cleveland State University | Secure hierarchical processing using a secure ledger |
US11556517B2 (en) * | 2020-05-17 | 2023-01-17 | International Business Machines Corporation | Blockchain maintenance |
CN111814202B (zh) * | 2020-08-31 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 一种执行智能合约的方法、区块链节点和存储介质 |
CN112231731B (zh) * | 2020-10-23 | 2023-12-15 | 中国工商银行股份有限公司 | 松散耦合的区块链交易方法和区块链节点 |
US20220141029A1 (en) * | 2020-10-29 | 2022-05-05 | Microsoft Technology Licensing, Llc | Using multi-factor and/or inherence-based authentication to selectively enable performance of an operation prior to or during release of code |
CN112733204B (zh) * | 2021-01-16 | 2023-01-20 | 阳江市链点创新科技发展有限公司 | 一种基于区块链和多重签名技术的防伪溯源方法 |
EP4405846A1 (en) * | 2021-09-24 | 2024-07-31 | The Ethical Identity Company | System and method for operating a secure database |
CN115208585B (zh) * | 2022-09-07 | 2022-11-18 | 环球数科集团有限公司 | 一种基于零知识证明的数据交互方法与系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108805703A (zh) * | 2017-04-28 | 2018-11-13 | 埃森哲环球解决方案有限公司 | 权利管理系统 |
US20180374037A1 (en) * | 2014-11-05 | 2018-12-27 | HURU Systems Ltd. | Tracking code generation, application, and verification using blockchain technology |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10340038B2 (en) | 2014-05-13 | 2019-07-02 | Nant Holdings Ip, Llc | Healthcare transaction validation via blockchain, systems and methods |
US9608829B2 (en) | 2014-07-25 | 2017-03-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
US9992028B2 (en) | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
US10475030B2 (en) | 2016-02-22 | 2019-11-12 | Bank Of America Corporation | System for implementing a distributed ledger across multiple network nodes |
US10373158B1 (en) * | 2018-02-12 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
US20190361917A1 (en) * | 2018-05-25 | 2019-11-28 | Bao Tran | Smart device |
-
2019
- 2019-04-09 US US16/379,075 patent/US11422981B2/en active Active
-
2020
- 2020-04-08 CN CN202010271263.1A patent/CN111797159A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180374037A1 (en) * | 2014-11-05 | 2018-12-27 | HURU Systems Ltd. | Tracking code generation, application, and verification using blockchain technology |
CN108805703A (zh) * | 2017-04-28 | 2018-11-13 | 埃森哲环球解决方案有限公司 | 权利管理系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127517A (zh) * | 2021-04-22 | 2021-07-16 | 云上青海大数据产业有限公司 | 一种基于区块链大数据的存储系统 |
CN117216802A (zh) * | 2023-11-07 | 2023-12-12 | 联通(广东)产业互联网有限公司 | 数据库安全认证方法、装置、电子设备和存储介质 |
CN117216802B (zh) * | 2023-11-07 | 2024-02-27 | 联通(广东)产业互联网有限公司 | 数据库安全认证方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11422981B2 (en) | 2022-08-23 |
US20200327100A1 (en) | 2020-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422981B2 (en) | Information management and access control in a database | |
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
CN111144881B (zh) | 对资产转移数据的选择性访问 | |
US11025435B2 (en) | System and method for blockchain-based cross-entity authentication | |
US11533164B2 (en) | System and method for blockchain-based cross-entity authentication | |
US11038883B2 (en) | System and method for decentralized-identifier creation | |
WO2021000419A1 (en) | System and method for blockchain-based cross-entity authentication | |
CN111753002A (zh) | 基于同意的数据管理 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
JP2024509666A (ja) | ブロックチェーンデータセグリゲーション | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
JP2023551458A (ja) | Oprfを介したブロックチェーンネットワークにおける鍵再生 | |
JP2023087665A (ja) | システム、方法、およびコンピュータプログラム製品(許可型ブロックチェーンのためのマルチ発行者匿名クレデンシャル) | |
US11343085B2 (en) | Threshold encryption for broadcast content | |
CN111881099B (zh) | 数据库私有文档共享 | |
CN112036876B (zh) | 基于元数据的背书 | |
US20230403161A1 (en) | Aggregate anonymous credentials for decentralized identity in blockchain | |
CN117999566A (zh) | 隐私保护状态引用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |