CN111723355B - 数据库中的信息管理 - Google Patents
数据库中的信息管理 Download PDFInfo
- Publication number
- CN111723355B CN111723355B CN202010190306.3A CN202010190306A CN111723355B CN 111723355 B CN111723355 B CN 111723355B CN 202010190306 A CN202010190306 A CN 202010190306A CN 111723355 B CN111723355 B CN 111723355B
- Authority
- CN
- China
- Prior art keywords
- event
- blockchain
- client
- node
- identifier
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 61
- 238000013475 authorization Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 19
- 238000007726 management method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 230000004044 response Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100219315 Arabidopsis thaliana CYP83A1 gene Proteins 0.000 description 1
- 101000806846 Homo sapiens DNA-(apurinic or apyrimidinic site) endonuclease Proteins 0.000 description 1
- 101000835083 Homo sapiens Tissue factor pathway inhibitor 2 Proteins 0.000 description 1
- 101100269674 Mus musculus Alyref2 gene Proteins 0.000 description 1
- 101100140580 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) REF2 gene Proteins 0.000 description 1
- 102100026134 Tissue factor pathway inhibitor 2 Human genes 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm 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
- 230000002688 persistence Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/3242—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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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/602—Providing cryptographic facilities or services
-
- 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
- G06F21/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
-
- 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
- H04L63/101—Access control lists [ACL]
-
- 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/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)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及数据库中的信息管理。示例操作可以包括以下中的一个或多个:从节点接收事件、从事件中提取标识符、确定事件是否被授权、以及当标识符被授权时生成事件的通知,其中标识符包括事件计数器的散列值,并且其中当散列值与存储在客户端的存储区域中或耦合到客户端的事件计数器的散列值匹配时,授权标识符。
Description
技术领域
本申请通常涉及数据库存储系统,并且更具体地说,涉及数据库中的信息管理。
背景技术
集中式数据库将数据存储和维护在一个位置处的一个单个数据库(例如数据库服务器)中。这个位置通常是中央计算机,例如,台式计算机中央处理单元(centralprocessing unit,CPU)、服务器CPU、或主机计算机。存储在集中式数据库上的信息典型地可从多个不同的点访问。多个用户或客户端工作站可以在集中式数据库(例如,基于客户端/服务器配置)上同时工作。集中式数据库因为它的单一位置,易于管理、维护和控制,尤其是出于安全目的。在集中式数据库中,数据冗余被最小化,因为所有数据的单一存储位置也意味着给定的数据集只有一个主记录。
然而,集中式数据库遭受显著的缺点影响。例如,集中式数据库具有单个故障点。特别地,如果没有容错考虑,并且发生硬件故障(例如硬件、固件和/或软件故障),数据库内的所有数据都会丢失,并且所有用户的工作都会被中断。此外,集中式数据库高度依赖于网络连接性。因此,连接越慢,每次数据库访问所需的时间量就增加。另一缺点是,当集中式数据库由于单一位置而经历高流量时出现瓶颈。另外,集中式数据库提供有限的数据访问,因为数据库仅维护数据的一个副本。因此,多个设备不能在相同时间访问同一数据部分,而不造成重大问题或覆盖存储的数据的风险。另外,因为数据库存储系统具有最小到没有的数据冗余,所以被意外丢失的数据很难检索,除非通过手动操作从备份存储装置中检索。
常规地,集中式数据库受制于其不能充分保护其用户的隐私利益和存储在其中的数据的限制。由此,需要解决方案来克服这些和其它显著的缺点
发明内容
一个示例实施例提供了一种系统,该系统包括:接收器,用于接收事件;存储区域,用于存储信息;以及处理器,用于从事件中提取标识符并基于该标识符确定事件是否被授权,其中标识符包括对存储系统中传输的事件数量进行计数的事件计数器的第一散列值,并且其中信息包括第二散列值,当第一散列值对应于第二散列值时,处理器授权该事件以通知存储系统中的用户。
另一示例实施例提供了一种方法,该方法包括以下步骤中的一个或多个:从节点接收事件、从事件中提取标识符、确定事件是否被授权、以及当标识符被授权时生成事件通知,其中标识符包括事件计数器的散列值,并且其中当散列值与存储在客户端的存储区域中或耦合到客户端的事件计数器的散列值匹配时,授权标识符。
另外的示例实施例提供了一种包括指令的非暂时性计算机可读介质,当被处理器读取时,这些指令使得处理器执行以下中的一个或多个:从节点接收事件、从事件中提取标识符、确定事件是否被授权、以及当标识符被授权时生成事件通知,其中标识符包括事件计数器的散列值,并且其中当散列值与存储在客户端的存储区域中或耦合到客户端的事件计数器的散列值匹配时,授权标识符。
附图说明
图1示出了根据示例实施例的包括数据库的系统的网络图。
图2示出了根据示例实施例的与数据库一起操作的组件的网络图。
图3A示出了根据示例实施例的示例对等节点配置。
图3B示出了根据示例实施例的另外的对等节点配置。
图3C示出了事件信息表的示例。
图3D示出了过滤器的实施例。
图4示出了根据示例实施例的经许可的网络。
图5A示出了根据示例实施例的流程图。
图5B示出了根据示例实施例的另外的流程图。
图5C示出了根据示例实施例的另外的流程图。
图5D示出了根据示例实施例的另外的流程图。
图5E示出了根据示例实施例的另外的流程图。
图6A示出了根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统。
图6B示出了根据示例实施例的被配置为执行本文描述的一个或多个操作的另外的示例系统。
图6C示出了根据示例实施例的合约方之间的智能合约配置和被配置为在区块链上强制执行智能合约条款的中介服务器。
图6D示出了根据示例实施例的另一附加示例系统。
图7A示出了根据示例实施例的向数据库添加新数据的过程。
图7B示出了根据示例实施例的包括新数据的数据块的内容。
图7C示出了根据示例实施例的数字内容的区块链。
图7D示出了根据示例实施例的可以表示区块链中的块结构的块。
图8示出了支持示例实施例中的一个或多个的示例系统。
具体实施方式
将容易理解的是,如本文的附图中一般描述和示出的那样,本发明的组件可以以多种不同的配置来布置和设计。因此,如附图所示的方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并不旨在限制所要求保护的应用范围,而仅仅表示所选择的实施例。
在一个或多个实施例中,贯穿本说明书描述的当前特征、结构或特性可以以任何合适的方式组合。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其它类似语言的使用指的是结合实施例描述的特定特征、结构或特性可以包括在至少一个实施例中的事实。因此,贯穿本说明书,短语“示例实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言的出现不一定指的是同一组实施例,并且在一个或多个实施例中所描述的特征、结构或特性可以以任何合适的方式组合。
此外,虽然术语“消息”可能已经在实施例的描述中使用,但是该应用可以应用于许多类型的网络数据,诸如分组、帧、数据报等。术语“消息”还包括分组、帧、数据报及其任何等同物。另外,虽然可以在示例性实施例中描述某些类型的消息和信令,但是它们不限于某一类型的消息,并且应用不限于某一类型的信令。
事件是在区块链网络和其它类型的分散式数据库中传输的一个种类的消息。满足特定条件时,验证者可以使用智能合约的链码创建事件。例如,当新的交易块被提交给区块链时,可以创建一个种类的事件,称为基本事件。另一类型的事件(称为自定义事件)可以组成链码的一个部分或指示链码的状态。例如,自定义事件可能涉及链码已经指定用于分发到网络内部或外部的实体(例如,节点、用户、客户端等)的某些消息。
网络的事件具有不同级别的隐私、访问或限制并不少见,例如由它们的验证者和/或网络策略所确定的那样。例如,某些事件可能具有秘密状态,因为它们只能由网络节点的授权用户读取。其它事件可能具有更少的限制状态,因为它们可以被所有用户或扩展数量的用户读取。不同的链码可以用于管理具有不同状态级别的事件的创建、分发和/或访问。
根据一个或多个实施例,事件管理可以以这样的方式来执行,即保护验证者(以及具有预定(例如,高度保密)状态的用户)的隐私利益并且还增加网络的效率。在一个实施方式中,已经被授权从验证者接收事件的网络用户可以在由一个或多个对等节点维护的通知列表上注册。通知列表可以识别例如有资格接收以下中的一个或多个的用户:验证者发送的所有事件和消息、仅验证者发送的基本事件、或者仅验证者发送的自定义事件。被授权以接收自定义事件的用户可能具有秘密状态。在一个实施例中,秘密状态可以意味着用户的客户端可以包括用于解密事件的密钥信息,该密钥信息可能不被不从验证者接收事件的节点或客户端拥有。验证者可以是对等节点、客户端、用户、节点所有者或应用。
因此,示例实施例提供了方法、系统、组件、非暂时性计算机可读介质、设备和/或网络,它们以这样的方式执行数据库中的事件管理,即增加其用户隐私利益并且还通过降低节点和客户端级别处的处理开销来提高效率。
在一个或多个实施例中,可以执行事件管理,以允许用户有效地检测他们被授权以从验证者接收的事件,并且在某些情况下,当没有被验证者授权时,甚至不会被通知接收到事件。这将减轻用户执行计算方面上严格次数的解密尝试(例如,使用分配给他们的所有链码智能合约的密钥),以便确定是否授权接收所接收的事件以及对该消息的内容的访问是否是可能的。这也减轻了让用户逐个解密他们接收的所有事件以便确定这些事件是否旨在由他们接收的需要。
例如,当不能执行链码使用用户的长期加密密钥来加密事件的能力时,系统、方法、媒体、设备和/或网络实施例可能是特别有益的。例如,当链码不知道这些事件的授权用户的身份时,可能会发生这种情况。
附加地,一个或多个实施例表示通过允许客户端控制对秘密事件的访问引起的数据库的操作方面的改进。这可以通过阻止未经授权的用户以对这些用户透明的方式访问事件来实现。例如,当无法使用加密来确定授权时,可以实现这些结果。
根据这些或其它实施例,提供了一种系统、方法、介质、设备和/或网络,其允许机密链码的事件对于仅被授权解密该链码状态的用户是可读的。这可以通过将标识符并入到有加密的事件中来实现。标识符可以包括基于预定信息生成的基于散列的消息认证码(message authentication code,HMAC)。可以在接收器节点使用过滤器来防止非预期用户访问事件的内容。这些实施例在各种类型的分散式数据库中可能特别有用。
分散式数据库是分布式存储系统,包括相互通信的多个节点。区块链是分散式数据库的示例,其包括只附接(append-only)的不可变数据结构,类似于能够在相互不信任的各方之间维护记录的分布式分类帐。不可信方在这里被称为对等体或对等节点。每个对等体维护数据库记录的副本,并且在分布式对等体之间没有达成共识的情况下,任何单个对等体都不能修改数据库记录。例如,对等体可以执行共识协议来验证区块链存储交易,将存储交易分组为块,并在块上构建散列链。为了保持一致性,此过程通过根据需要对存储交易进行排序来形成分类帐。在公共的或许可较少的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链经常涉及本地加密货币,并使用基于各种协议(诸如工作量证明(Proof of Work,PoW))的共识。另一方面,经许可的区块链数据库提供了一种系统,该系统可以确保共享共同目标但彼此不完全信任的一组实体(诸如交换资金、货物、信息等的企业)之间的互动。
区块链运行任意的可编程逻辑,这些逻辑是针对分散式存储方案定制的,并且被称为“智能合约”或“链码”。在某些情况下,可能存在用于管理功能和参数的专用链码,其被称为系统链码。智能合约是可信的分布式应用,这些分布式应用利用区块链数据库的防篡改属性和节点之间的底层协议,这种协议被称为背书或背书策略。一般而言,区块链交易在被提交给区块链之前通常必须被“背书”,而未被背书的交易被忽略。典型的背书策略允许链码以背书所必需的一组对等节点的形式指定交易的背书者。当客户端将交易发送给背书策略中指定的对等方时,执行交易以验证交易。验证后,交易进入排序阶段,在该阶段中,使用共识协议来产生分组到块中的背书交易的有序序列。
节点是区块链系统的通信实体。“节点”可以在这样的意义上执行逻辑功能,即不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书者(例如,对等体)递交交易调用并向排序服务(例如,排序节点)广播交易提案的客户端或递交客户端(submitting-client)节点。另一类型的节点是对等节点,其可以接收客户递交的交易、提交交易,并维护区块链交易的分类帐的状态和副本。对等体也可以扮演背书者的角色,尽管这不是必需的。排序服务节点或排序者是为所有节点运行通信服务的节点,并且其实施交付保证,诸如在提交交易和修改区块链的世界状态时到系统中的对等节点中的每一个的广播,这是通常包括控制和设置信息的初始区块链交易的另一名称。在一个实施例中,交易可以包括根据一个或多个实施例的如本文所述的仅由节点和/或客户端/用户的子集接收的事件。在一个或多个实施例中,交易(包括事件)可以包括在附接到区块链的块中。
分类帐是区块链的所有状态转换的有序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)递交的链码调用(即,交易)产生。交易可以导致一组资产键值对作为一个或多个操作数(例如创建、更新、删除等)被提交给分类帐。分类帐包括区块链(也称为链),其用于存储块中不可变的、有序的记录。分类帐还包括维护区块链的当前状态的状态数据库。每个信道(channel)通常有一个分类帐。每个对等节点为其所属的每个信道维护分类帐的副本。
链是这样的交易日志,该交易日志被构造为散列链接的块,每个块包含一系列N个交易,其中N等于或大于1。块头部包括块交易的散列,以及前一块的头部的散列。以这样的方式,分类帐上的所有交易都可以被排序并密码地链接在一起。因此,在不破坏散列链接的情况下,不可能篡改分类帐数据。最近添加的区块链块的散列表示该最近添加的区块链块之前已经出现的链上的每个交易,这使得可能确保所有对等节点处于一致和可信的状态。该链可以存储在对等节点文件系统(即,本地装置、附加存储装置、云等)上,有效支持区块链工作负载的只附接的性质。
不可变分类帐的当前状态表示链交易日志中包含的所有键的最新值。因为当前状态表示信道已知的最新键值,所以它有时被称为世界状态。链码调用根据分类帐的当前状态数据执行交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以只是到链的交易日志中的索引视图,因此其可以随时根据链重新生成。在对等节点启动时和交易被接受之前,状态数据库可以自动恢复(或者生成,如果需要的话)。
本文描述和描绘的即时解决方案的一些好处包括以允许用户检测他们被授权访问的事件的方式在数据库中执行事件管理,而不必执行计算上严格次数的解密尝试(例如,使用分配给他们的所有链码智能合约的密钥)。另一益处是当用户没有被授权接收事件时,阻止通知用户事件已经被接收。这将在节点和客户端级别简化系统中处理事件的效率,并且这可以在不对未被授权接收事件的用户造成过度负担的情况下执行。而且,阻止事件的通知允许增强网络中的保密级别,至少对于消息的始发者的利益而言是如此。这些益处可以通过在允许事件仅被授权用户访问的事件中并入标识符(如前所述)来实现。这种特征特别地适用于在采用区块链的网络中使用。
区块链与传统数据库的不同之处在于,区块链不是中央存储装置,而是分散的、不可变且安全的存储装置,其中节点必须在变化方面进行共享以便记录在存储装置中。区块链中固有的并且有助于实施区块链的一些属性包括但不限于不可变分类帐、智能合约、安全、隐私、分散化、共识、背书、可访问性等,这些将在此进一步描述。根据各个方面,事件管理是由于标识符的使用来实施的,在一个非限制性实施方式中,该标识符可以包含适合于区块链或者其固有和唯一的信息。在一个或多个实施例中,这样的标识符可以包括事件计数器值的散列值和/或指示始发链码和/或事件的状态的一个或多个标签。如果用户被授权接收事件,那么用户的客户端将维护相同的散列值,并且这些值的匹配可以被用作用于相对于授权用户提供对事件的通知和访问的基础。
示例实施例的益处之一是,它通过仅由授权用户提高事件管理的效率,并且更特别的是事件通知和访问的效率,来提高计算系统的功能性。特别是当应用于区块链时,可以提供能够保护用户及其相关联的验证者的隐私利益的计算系统。
示例实施例提供了优于传统数据库的许多益处。例如,通过区块链,实施例提供了大大减少传统数据库中将需要的计算和处理的方式。而且,传统数据库无法提供本文描述的一个或多个实施例能够提供的保密级别。同时,传统数据库不能用于实施示例实施例,因为它们不具有区块链的对等式(peer-to-peer)连接结构,他们也不使用区块链的证书和密钥以及其它加密/解密技术来执行本文描述的事件管理。
示例实施例还改变了数据如何存储在区块链的块结构内。例如,块可以附接到提供传输给授权用户的秘密事件的记录的区块链。事件可以在预定域中包括散列的标识符,这些标识符仅允许授权用户通知和访问事件。通过将事件信息存储在区块链的数据块中,可以通过块的散列链接的链将事件记录维护在不可变分类帐中。在一些实施例中,如上所述,数据块可以通过包括标签或标识符以及事件保密级别的指示而不同于传统数据块。区块链的传统区结构没有此信息。
图1示出了根据示例实施例的系统100的逻辑图,该系统包括区块链网络中节点110的对等式连接。节点110包括第一节点N1、第二节点N2和第三节点N3。在另一实施例中,可以包括不同数量的节点。
参考图1,第一节点N1耦合到客户端120,该客户端120包括处理器122和存储处理器的智能合约的链码的存储区域124。处理器122和存储区域124可以耦合到事件源130,该事件源130例如可以是验证者。验证者可以是节点N1或提供要在网络中广播的事件的内容的另一实体的所有者。事件源130可以使用一个或多个密钥来加密事件和/或事件的交易或块。相应的密钥信息可以位于一个或多个其它节点(例如,节点N2)或者可以用于执行解密以访问事件的相关联的客户端处。不具有此密钥信息的其它节点(例如,节点N3)或它们的相关联的客户端不能执行解密,并且因此不能访问事件,至少对于验证者130而言是如此。
存储区域124中的链码可以提供信息,当与来自事件源/验证者130的信息耦合时,该信息可以用于生成事件。来自事件源130的信息可以包括例如事件的内容、密钥信息以及事件的状态级别。链码可以提供标识符、链码描述符和其它信息。在一个实施例中,可以由处理器122以下面将更详细地讨论的方式执行链码,以使用散列算法或代码来计算标识符。标识符可以用作用于确定用户是否有权访问事件的基础。
第二节点N2是与旨在从事件源130接收事件的客户端或用户相关联的节点的示例。第三节点N3是与不旨在从事件源(验证者)130接收事件的客户端或用户相关联的节点的示例,尽管它可以被注册为从网络中的其它事件源(验证者)接收事件。
在根据存储区域124中的链码操作的情况下,客户端120的处理器122可以传输事件,使得它被网络中的所有节点(例如,至少所有对等节点)接收,但是实际上只有网络中的节点、客户端或用户的子集能够访问事件的内容。这可以例如使用发布/订阅消息传送协议来实现,其中节点N1中的一个发布将由节点N2和N3接收的事件,但是只有作为订户的节点N2的客户端或用户可以访问事件内容。
在发布/订阅消息传递协议的一个实施例中,节点N2的处理器122作为消息传送管理器操作,当满足特定条件时,该消息传送管理器发布事件。例如,当验证者想要向网络中的订户发送消息时,处理器122可以发布事件。附加地或可替代地,当一个或多个节点向区块链提交新的块时,处理器122可以发布事件。在这种情况下,事件可以通知对应的订户新的块已经被提交,并且可选地可以包括描述采取了什么类型的信息或动作与新的块结合的附加信息。在一个实施例中,该事件可以包括与区块链不直接相关的信息,或者向订户传达信息但另外与区块链交易无关的信息。这些事件可以是公开的,或者是私人的。
在图1的示例中,节点N1充当传输事件的发布节点。发布节点N1可以在网络上发布事件,而无需专门针对订户。这简化了事件通知的效率和性能。当被发布时,客户端或用户基于由区块链网络中对应节点维护的通知列表接收事件的通知。每个节点处的通知列表可以被存储在例如该节点的状态数据库(例如,LevelDB、CouchDB或状态数据库的另一部分)中,或者耦合到该节点或在该节点内的另一存储区域中。在一个实施例中,通知列表可以识别这些节点的任何用户或客户端是否是生成事件的验证者的订户。如果是,接收节点自动将事件推送到订户客户端或用户。在图1的示例中,节点N2的订户(例如,客户端或用户)在由节点N2维护的通知列表中被识别,但是在节点N3的通知列表中没有识别到节点N3的客户端或用户中的任何一个。
订户可以用他们自己的对等节点进行订阅以接收事件。例如,当事件被分类为公共的时,订阅可以是自愿的,或者当事件被分类为私有的时,订阅可以是在来自验证者的许可的情况下和/或根据网络策略进行的。因此,验证者(或节点软件)不对要直接发送给特定接收者(或订户)的事件进行编程。相反,在一个实施例中,事件可以被分类成用户或主题的类别或其它类别,并被发送到消息传送管理器。现在将描述涉及通知列表的实施方式的示例。
在一个实施方式中,事件对应于被发送到网络中的节点的交易。例如,节点N1可以将事件作为交易数据传输到排序服务节点。(交易在其被发送到排序服务节点之前,可以由一个或多个其它节点背书,也可以不被背书。)排序服务节点可以基于交易数据生成交易,并且然后以特定顺序将该交易与其它交易一起包括在被提案以被添加到区块链的块内。然后,该块被传输到对等节点以便进行验证。
在一个实施例中,对等节点中的每一个处的逻辑可以将块的交易中的信息或数据与通知列表进行比较,以确定是否存在匹配,例如,以确定列表上的订户(例如,客户端或用户)是否将接收任何交易。这可以例如以本文描述的任何方式来确定,包括但不限于识别有资格接收以下中的一个或多个的用户的通知列表:由验证者发送的所有事件和消息、仅由验证者发送的基本事件、或者仅由验证者发送的自定义事件。附加地或者替换性地,可以执行比较来识别具有秘密状态的订户,例如,拥有用于解密事件的密钥信息的客户端。附加地或可替代地,对等节点处的逻辑可以将交易的信息(例如,基于事件的类别、事件的主题、一组事件、对应于由事件指示的订户的事件源或验证者信息、或本文指示的其它信息)与通知列表中的信息进行比较。当该逻辑确定块包括旨在用于列表上的订户的交易时,该逻辑可以将交易发送到对应于该订户的客户端,在那里对其进行解密、验证、过滤并将其输出到用户/订户。
在该过程期间,块可以由该节点验证、由共识协议确认,并且然后在由该节点管理的共享分类帐和其它节点的分类帐的副本中提交给区块链。可以更新与每个节点相关联的状态数据库以反映事件。可以相对于本文的其它附图,包括图3B,提供对这个过程的更具体的描述。
将这些特征与图1关联,每个节点N2和N3可以维护与该节点相关联的客户端或用户的通知列表,这些客户端或用户被注册(订阅或以其它方式授权)以从事件源130接收事件。注册用户的客户端135耦合到节点N2,并且可以包括用于允许交易(事件)被解密的一个或多个密钥。在接收事件之前,客户端135的用户可以例如向其自己的对等节点N2注册(或订阅)以从事件源130接收事件。因此,节点N2的客户端135可以通知注册用户该事件,并允许用户在接收到该事件时访问该事件。在一个实施例中,一旦执行验证以确认用户在第二节点N2的通知列表105a中,客户端135就可以允许用户访问消息的内容。
未注册用户的客户端136耦合到节点N3。因为该用户不在它自己的对等节点N3的通知列表105b上,或者没有被以其他方式授权以从事件源130接收事件,所以第三节点N3的客户端136可以丢弃该事件(例如,没有将该事件转发给客户端136),而不通知未经授权的用户该事件被接收。这可以例如使用如下所述的过滤器来实现。
在一个实施例中,在包括事件的块被验证并被提交给每个对等节点的分类帐之后,每个对等节点的逻辑可以执行将交易(事件)与通知列表进行比较的过程。如果存在匹配,则事件可以在相应的客户端处被解密和过滤,并且将其内容输出给用户。因为不对应于订户的节点上的客户端不在通知列表上,并且另外地没有解密密钥,所以非订户客户端不能访问该事件,即使它们各自的节点在发布或在区块链网络中以其他方式广播时可以接收到该事件。
图2示出了根据示例实施例的用于恢复在区块链网络中接收到的订户客户端或用户传输的事件的逻辑图138。该图可以对应于例如图1的节点N2,或者可以对应于耦合到节点N2的客户端(例如,客户端135)。在任一情况下,节点N2和N3两者有效地“监听”网络以接收事件,但是在该示例中,在这两个节点N2和N3中,只有N2和/或其伴随的客户端/用户可以访问和读取该事件。
参考图2,第一对等节点N1在网络中发送(或发布)事件(例如,作为如前所述的交易)。对等节点N2和N3两者接收到该事件,但此时将只讨论节点N2处的操作。该事件可以是不打算被网络中的所有客户端或用户读取的事件,例如,该事件可以是秘密(例如,加密的)事件或者具有某种程度限制的事件。限制可能只是出于对事件的内容不感兴趣的用户的方便,也可能是具有更高水平的安全性或隐私考虑的限制。附加地或者可替换地,事件可以在一个或多个预定条件出现时发布,例如,当节点N1向区块链提交新的块时。新的块可以与注册或订阅以接收与新的块的主题(交易)相对应的事件的客户端或用户相关或是其感兴趣的。
第一对等节点N1与验证者相关联,该验证者例如如在本文的所有实施例中那样可以是用户、客户端、管理员、第一对等节点的所有者、应用或授权事件的创建或传输的另一网络实体。如图1所示,可以根据与第一对等节点N1相关联的智能合约的链码124来创建和准备该事件用于传输。链码供应符合具有特定域的特定格式的事件信息,这些特定域使得事件能够在第二对等节点N2侧上被过滤或访问。
第二对等节点N2通过接收器耦合到客户端135。接收器可以是例如在节点N2和客户端135之间递送或以其他方式控制事件和其它信息的传输的一种类型的接口。客户端135或其用户中的一个或多个可能先前已经向网络实体注册以从验证者接收事件。(在一个实施例中,这可能已经导致客户端135接收用于解密交易或块的密钥信息,以便访问事件)。
在一个实施例中,第二节点N2可以访问通知列表105a(例如,参见图1),该通知列表指示客户端135是否被注册(或订阅)以从验证者接收事件。例如,通知列表105a可以被节点N2用来向客户端135发送事件,但是在客户端中执行的处理操作可以控制事件内容是否被客户端的用户访问,以及在某些情况下用户甚至是否被通知事件已经被接收。客户端135可以是例如计算机、工作站、移动终端、应用或区块链网络中的实体。
客户端135包括或耦合到解密逻辑140、解析器150、过滤器160、存储区域170和处理器180。解密逻辑140基于先前接收的订户密钥信息解密块中的交易。解析器150可以耦合在解密逻辑140和过滤器160之间,以从事件的域中提取信息以供过滤器使用。如果客户端135的用户不打算从验证者接收事件,则过滤器160过滤掉事件。存储区域170(例如数据库或存储器)能够被存储过滤器160用来传递或阻止事件的事件信息表。
在一个实施例中,处理器180(而不是解密逻辑140)可以执行解密,以及用于恢复事件的内容以输出给客户端135的用户的其它操作。客户端可以是从验证者接收事件的唯一预期接收方,或者可以是第二对等节点和/或网络中旨在从验证者接收事件的其它节点的多个客户端(或用户)之一。在一个实施例中,客户端的处理器可以被认为对应于图2的框150中的所有特征。
机密链码侧
生成具有秘密状态的事件的链码可以使用用于执行事件管理的事件计数器来执行操作。每当链码生成新事件或将新事件分发给在网络中注册的一个或多个相对应的客户端(或用户)以接收这样的事件时,事件计数器可以增加。在一个实施例中,链码可以基于(i)事件将被生成或分发时的计数器值和(ii)从事件的创建者(在部署时间)接收的秘密密钥来计算事件标识符。事件的创建者(例如,事件源或验证者)可以是例如区块链网络中的另一用户或客户端,或者当一个或多个条件被满足时发起事件部署的节点或其它设备。事件标识符可以用作附接的标签,并结合到事件密文中。
客户端侧
为了在区块链网络中接收消息,必须将用户(或客户端)添加到第二个对等节点,并且然后注册以从验证者接收消息。可以根据与第二对等节点或区块链网络相关联的策略将用户(或客户端)添加到该节点。该策略可能要求客户端例如从与会员服务提供商相关联的网络接收识别凭证。识别凭证可以从证书授权机构生成,该证书授权机构确定用户(或客户端)在网络中的权限。
一旦用户(或客户端)已经被添加到第二对等节点,用户(或客户端)就可以注册以从验证者接收自定义(例如,秘密)事件。注册可以例如通过将用户或客户端的识别凭证(如例如由数字证书指示的那样)添加到由第二对等节点维护的事件通知列表来执行。在一些情况下,识别凭证也可以被添加到第一对等节点和/或一个或多个其它网络实体。在一个实施例中,识别凭证可以由第二对等节点的所有者的管理员分配给用户(和/或客户端),该第二对等节点的所有者的管理员例如可能已经预先与验证者通信以接收密钥或其它信息来访问事件。事件通知列表可以识别网络中要从验证者接收自定义事件或其它类型消息的用户(和/或客户端)的子集。
如前所述,客户端可以包括或访问存储信息的存储区域,以帮助执行事件管理。在一种情况下,该信息可以包括数据库事件信息(database event information,DBevent)。数据库事件信息可以指示例如负责用于生成和发送事件以及事件的状态的链码的身份。
在一个实施例中,数据库事件信息(DBevent)可以以表的形式表达。表中的条目可以包括,例如,[链码-id、事件-秘密、下一事件-id、计数器值、(最大-事件-数量)]。标签“链码-id”指示事件的链码的身份。标签“事件-秘密”指示事件的状态(在本例中是秘密的)。标签“下一事件-id”是要由验证者的链码发送的下一事件的计数器值的基于散列的消息认证码(HMAC)。标签“计数器-值(,最大-事件-数量)”指示相对应的链码的预定的事件最大数。在一个实施例中,最大-事件-数量可以由链码重置,并在最大事件数已经被发送或接收之后被反映在表中。
事件信息表可以以各种方式排列数据库事件信息。一种方法包括将表设计为对于每个链码具有一个条目,该条目管理相对应的用户被注册来读取的自定义(秘密)事件。在一个实施例中,每个链码可以控制来自同一验证者的自定义事件的生成和分发,或者该表可以为用户被注册来读取的事件存储不同验证者的不同链码。
客户端可以使用或耦合到过滤器,该过滤器确定客户端是否有资格访问和读取网络上传输或广播的事件。这种过滤器的一个示例是布隆(bloom)过滤器。在一个实施例中,布隆过滤器可以包括二进制字符串,该二进制字符串用于确定项目是否在集合中,以及在这种情况下确定接收到的事件是否旨在由客户端的注册用户(或订户)访问。与用于确定集合成员的其它技术相比,布隆过滤器具有标称存储要求,并且产生准确和快速的结果。此外,布隆过滤器还不会产生假阴性。
在一种情况下,可以基于事件信息表中的一列的条目来形成客户端的布隆过滤器(例如,图1中的过滤器160)。例如,该表可以针对用于生成客户端的用户被注册来读取的事件的每个机密链码具有一个条目。这种表的一个示例如图3C所示。在该示例中,该表包括分别对应于控制网络上的消息生成和分发的三个机密智能合约的链码的三个条目。第一、第二和第三链码可以为相同或不同节点处的相同验证者生成事件,或者从不同节点处的不同验证者生成事件。每个链码的条目沿着表的相应行对齐,并且表的列对应于与事件相关联地发送的信息。在一个实施例中,列中的一个或多个中的信息对应于事件标识符或标签以及其它信息。
布隆过滤器可以基于表的列中的一个中的信息来构建。在一个实施例中,布隆过滤器可以基于表中识别的链码的“下一-事件-id”列中的信息来形成。“下一-事件-id”可以等于对应于由区块链网络中的链码传输的事件的计数器值的散列,例如,下一-事件-id=HMAC(事件-秘密,计数器-值)。
例如,考虑这样的情况,其中表被注册为从对应于区块链网络中的相应的验证者的三个智能合约的链码接收事件。这些验证者的链码可以存储相应计数器值X1、X2和X3,例如,第一链码过去已经向相对应的注册用户发送了X1消息,第二链码过去已经向相对应的注册用户发送了X2消息,并且第三链码过去已经向相对应的注册用户发送了X3消息。(在一些实施例中,客户端可以被注册来与用户一起或代替用户接收事件)
布隆过滤器可以在客户端表的“下一-事件-id”列中使用第一、第二和第三链码的最近计数器值加上1的散列值。如前所述,散列值可以是(HMAC)计数器值。因此,例如,如果客户端过去已经从第一链码接收到X1消息,则客户端表将对应于(X1+1)的散列的HMAC(事件_秘密_1,X1+1)存储在第一链码的“下一-事件-id”列中,因为要由第一链码传输的下一事件将具有(X1+1)的计数器值。类似地,客户端表存储HMAC(事件_秘密_1,X2+1)和HMAC(事件_秘密_1,X3+1),它们分别对应于第二和第三链码的“下一-事件-id”列中的(X2+1)和(X3+1)的散列。这些值被散列,因为要由第二和第三链码传输的下一事件将具有(X2+1)和(X3+1)的计数器值,如图3D所示。
在一个实施例中,布隆过滤器可以被构建成使得散列值仅在散列中的设置位(1)的数量总是小于或等于预定的最大计数器值(例如,如前所讨论的那样,计数器-值(,最大-事件-数量)]中的“最大-事件-数量”)的情况下才有效。
布隆过滤器的散列值(X1+1)、(X2+1)和(X3+1)是使用由第一、第二和第三链码使用的(多个)相同散列算法生成的。在操作中,接收事件的节点将事件发送到相对应的客户端的布隆过滤器。解析器(例如,图2中的解析器150)解析事件,并提取对应于“下一-事件-id”的事件的域中的散列值。然后,此散列值被发送到布隆过滤器,用于与散列值HMAC(事件_秘密_1,X1)、HMAC(事件_秘密_2,X2)和HMAC(事件_秘密_3,X3)进行比较。如果不存在匹配,则确定该事件不旨在被客户端的用户读取,因为客户端没有被注册来从验证者接收秘密事件。因此,事件被过滤掉,并且不能被用户读取。
在一个实施例中,客户端可以以对用户透明的方式过滤掉不匹配的事件,例如,未注册的用户永远不知道消息是从哪个验证者发送的,或者甚至不知道消息甚至是由验证者在网络中传输的。因此,以这种方式操作的客户端维护验证者的隐私,因为未注册的用户不仅被限制读取事件,他们甚至不知道事件是从验证者发送的。这在网络中提供了额外水平的隐私。
如果从接收到的事件中解析出的散列值与布隆过滤器的散列值之一匹配,则断定用户被注册为从验证者读取秘密事件。因此,该事件被授权以便客户端(例如,图2中的处理器180)解密,并以用户可读或可访问的形式输出。解密可以基于例如在离线通信中由验证者先前发送给客户端的私钥来执行。附加地,事件信息表(DBevent)中对应于链码的计数器值递增1,基于递增的计数器值计算新的HMAC散列值,并且新的散列值被存储在该链码的客户端表的“下一-事件-id”列中。
例如,可以通过让不同验证者的链码使用不同的散列算法和/或不同的加密密钥来提供附加的机密性。而且,因为验证者通常在不同的时间发送不同数量的消息,所以期望客户端的事件信息表中的计数器值可能全部是不同的,从而即使两个或多个验证者使用相同的散列算法的情况下也增加了另一层安全性。在一个实施例中,客户端(或其相对应的节点)可以维护关于事件标签(下一-事件-id)的分离的表。
图3A示出了根据示例实施例的区块链体系结构配置200。参考图3A,区块链体系结构200可以包括某些区块链元素,例如一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描述)。这些节点参与许多活动,诸如区块链交易添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略背书交易,并且可以为体系结构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证,并试图写入存储在区块链层216中的区块链不可变分类帐,其副本也可以存储在基础(underpinning)物理基础设施214上。区块链配置可以包括一个或多个应用224,该一个或多个应用链接到应用编程接口(application programming interface,API)222,以访问和执行存储的程序/应用代码220(例如链码、智能合约等),这些应用可以根据由参与者寻求的定制配置来创建,并且可以维护他们自己的状态、控制他们自己的资产以及接收外部信息。这可以作为交易部署,并经由附接到分布式分类帐安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如加密信任服务、虚拟执行环境等),以及基础物理计算机基础设施的各种层,该基础设施可以用于接收和存储新的交易,并向寻求访问数据条目的审计员提供访问。区块链层216可以暴露接口,该接口提供对处理程序代码和接合物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可以用于校验交易(诸如资产交换交易)并保持信息私密。
图3A的区块链体系结构配置可以由区块链平台212经由暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传送数据,并且可以由节点204-210以智能合约和相关联链码的形式来执行,同时条件或其它代码元素受其执行的影响。作为非限制性示例,可以创建智能合约来执行提醒、更新和/或受改变、更新等影响的其它通知。智能合约本身可以用于识别与授权和访问要求以及分类帐的使用相关联的规则。
例如,与事件的生成、分发、可访问性和管理相关的信息226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)来处理。该处理可以包括,但不限于,生成或维护注册的或以其他方式有资格接收系统中的各种类型的事件的客户端的通知列表;为节点设置链码要求或策略以便管理事件访问和分发、事件始发的验证者信息、以及与证书和/或密钥的授权和分发相关的信息,以使客户端能够接收事件以及与区块链交易相关的信息。
结果228可以包括用于在节点级进行的事件管理的链码、将被发送到相关节点的密钥和/或证书,以允许接收事件、区块链数据或反映与网络中的事件分发相关的块的附接的交易、以及还有用于分发到系统中的节点的区块链分类帐的副本。物理基础设施214可以用于检索本文描述的任何数据或信息。
在链代码内,可以经由高级应用和编程语言创建智能合约,并且然后将其写入区块链中的块。智能合约可以包括向区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是可以响应于与智能合约相关联的条件被满足来执行的智能合约代码的执行。智能合约的执行可以触发对数字区块链分类帐的状态的(多个)可信修改。由智能合约执行引起的对区块链分类帐的(多个)修改可以通过一个或多个共识协议在区块链对等体的分布式网络中自动复制。
智能合约可能以键值对的格式将数据写入到区块链。另外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入到区块链中。该代码可以用于在虚拟机或其它计算平台中创建临时数据结构。被写入区块链的数据可以是公开的和/或可以被加密并被作为私有的来维护。由智能合约使用/生成的临时数据由所供应的执行环境保存在存储器中,然后一旦识别出区块链所需的数据,就将其删除。
链码可以包括智能合约的、具有附加功能的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,在计算网络中,链码由链验证者在共识过程中一起执行和验证。链码接收散列,并从区块链检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符和从所存储的标识符模板数据创建的散列匹配,则链码向请求的服务发送授权密钥。链码可以写入到与加密细节相关联的区块链数据。
在图3A中,可以接收与事件的区块链交易相关的信息,以及对链码的请求和更新,用于在节点处使用以执行事件管理和其它特征,如框226所阐述的。一个功能可以是将链码连同框228中指示的其它信息输出到节点204-210中的一个或多个,这些节点可以包括例如先前讨论的节点N1、N2和N3中的一个或多个。
图3B示出了根据示例实施例的区块链的节点之间的交易流程250的示例。参考图3B,交易流程可以包括由应用客户端节点260发送到背书对等节点281的交易提案291。背书对等体281可以校验客户端签名并执行链码功能来发起交易,这可以包括从相对应的验证者生成事件。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集合)和在链码中写入的一组键/值(写入集合)。如果批准,提案响应292(例如,事件)连同背书签名一起被发送回客户端260。客户端260将背书组装成交易(事件)有效载荷293,并将其广播给排序服务节点284。排序服务节点284然后将排序的交易作为块递送到信道上的所有对等体281-283。在提交给区块链之前,每个对等体281-283可以验证交易。例如,对等体可以检查背书策略,以确保指定的对等体的正确分配已经签名了结果,并且已经针对交易有效负载293认证签名。
再次参考图3B,客户端节点260通过构建请求并将其发送到作为背书者的对等节点281来发起交易291。客户端260可以包括利用支持的软件开发工具包(softwaredevelopment kit,SDK)(诸如NODE、JAVA、PYTHON等)的应用,其利用可用API来生成交易提案。该提案是请求调用链码函数,使得可以读取数据和/或向分类帐写入数据(即,为资产写入新的键值对)。SDK可以充当垫片(shim),以将交易提案打包成适当体系结构的格式(例如,通过远程过程调用(remote procedure call,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将块附接到信道的链,并且对于每个有效交易,写入集合被提交到当前状态数据库。发出事件以通知客户端应用交易(调用)已经不可变地附接到链上,以及通知交易是经验证的还是未经验证的。
图3C示出了事件信息表350的示例,该事件信息表示出了可以基于事件信息表中一列的条目形成的客户端的布隆过滤器(例如,图1中的过滤器160)。例如,该表可以针对用于生成客户端的用户被注册来读取的事件的每个机密链码具有一个条目。在该示例中,该表包括分别对应于控制网络上的消息生成和分发的三个机密智能合约的链码的三个条目。第一、第二和第三链码可以为相同或不同节点处的相同验证者生成事件,或者从不同节点处的不同验证者生成事件。每个链码的条目沿着表的相应行对齐,并且表的列对应于与事件相关联地发送的信息。在一个实施例中,列中的一个或多个中的信息对应于事件标识符或标签以及其它信息。
布隆过滤器可以基于表的列中的一个中的信息来构建。在一个实施例中,布隆过滤器可以基于表中识别的链码的“下一-事件-id”列中的信息来形成。“下一-事件-id”可以等于对应于由区块链网络中的链码传输的事件的计数器值的散列,例如,下一-事件-id=HMAC(事件-秘密,计数器-值)。
例如,考虑这样的情况,其中表被注册为从对应于区块链网络中的相对应的验证者的三个智能合约的链码接收事件。这些验证者的链码可以存储各个计数器值X1、X2和X3,例如,第一链码过去已经向相对应的注册用户发送了X1消息,第二链码过去已经向相对应的注册用户发送了X2消息,并且第三链码过去已经向相对应的注册用户发送了X3消息。(在一些实施例中,客户端可以被注册来与用户一起或代替用户接收事件)
布隆过滤器可以在客户端表的“下一-事件-id”列中使用第一、第二和第三链码的最近计数器值加上1的散列值。如前所述,散列值可以是(HMAC)计数器值。因此,例如,如果客户端过去已经从第一链码接收到X1消息,则客户端表将对应于(X1+1)的散列的HMAC(事件_秘密_1,X1+1)存储在第一链码的“下一-事件-id”列中,因为要由第一链码传输的下一事件将具有(X1+1)的计数器值。类似地,客户端表存储HMAC(事件_秘密_1,X2+1)和HMAC(事件_秘密_1,X3+1),它们分别对应于第二和第三链码的“下一-事件-id”列中的(X2+1)和(X3+1)的散列。这些值被散列,因为由第二和第三链码传输的下一事件将具有(X2+1)和(X3+1)的计数器值,如图3D所示。
图3D示出了过滤器360的实施例。在一个实施例中,布隆过滤器可以被构建成使得散列值仅在散列中的设置位(1)的数量总是小于或等于预定的最大计数器值(例如,如前所讨论的那样,计数器-值(,最大-事件-数量)]中的“最大-事件-数量”)的情况下才有效。
布隆过滤器的散列值(X1+1)、(X2+1)和(X3+1)是使用由第一、第二和第三链码使用的(多个)相同散列算法生成的。在操作中,接收事件的节点将事件发送到相对应的客户端的布隆过滤器。解析器(例如,图2中的解析器150)解析事件,并提取对应于“下一-事件-id”的事件的域中的散列值。然后,此散列值被发送到布隆过滤器,用于与散列值HMAC(事件_秘密_1,X1)、HMAC(事件_秘密_2,X2)和HMAC(事件_秘密_3,X3)进行比较。如果不存在匹配,则确定该事件不旨在被客户端的用户读取,因为客户端没有被注册来从验证者接收秘密事件。因此,事件被过滤掉,并且不能被用户读取。
在一个实施例中,客户端可以以对用户透明的方式过滤掉不匹配的事件,例如,未注册的用户永远不知道消息是从哪个验证者发送的,或者甚至不知道消息甚至是由验证者在网络中传输的。因此,以这种方式操作的客户端维护验证者的隐私,因为未注册的用户不仅被限制读取事件,他们甚至不知道事件是从验证者发送的。这在网络中提供了额外水平的隐私。
如果从接收到的事件中解析出的散列值与布隆过滤器的散列值之一匹配,则断定用户被注册为从验证者读取秘密事件。因此,该事件被授权以便客户端(例如,图2中的处理器180)解密,并以用户可读或可访问的形式输出。解密可以基于例如在离线通信中由验证者先前发送给客户端的私钥来执行。附加地,事件信息表(DBevent)中对应于链码的计数器值递增1,基于递增的计数器值计算新的HMAC散列值,并且新的散列值被存储在该链码的客户端表的“下一-事件-id”列中。
例如,可以通过让不同验证者的链码使用不同的散列算法和/或不同的加密密钥来提供附加的机密性。而且,因为验证者通常在不同的时间发送不同数量的消息,所以期望客户端的事件信息表中的计数器值可能全部是不同的,从而即使两个或多个验证者使用相同的散列算法的情况下也增加了另一层安全性。在一个实施例中,客户端(或其相对应的节点)可以维护关于事件标签(下一-事件-id)的分离的表。
图4示出了经许可的区块链网络300的示例,其特征在于分布式、分散式对等式体系结构以及管理用户角色和许可的证书授权机构318。在该示例中,区块链用户302可以向经许可的区块链网络310递交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过REST API等来发布。可信的商业网络可以提供对监管者系统314(诸如审计员(例如,美国股票市场中的证券交易委员会))的访问。同时,节点308的区块链网络运营商系统管理成员许可,诸如将监管者系统310登记为“审计员”并且将区块链用户302登记为“客户端”。审计员被限于只查询分类帐,而客户端可以被授权以部署、调用和查询某些类型的链码。
区块链开发者系统316写入链码和客户端侧应用。区块链开发者系统316可以通过REST接口将链码直接部署到网络。为了在链码中包括来自传统数据源330的凭证,开发者系统316可以使用带外连接来访问数据。在这个示例中,区块链用户302通过对等节点312连接到区块链网络处理器332。在进行任何交易之前,对等节点312从证书授权机构318检索用户的登记和交易证书。在某些情况下,区块链用户必须拥有这些数字证书,以便在经许可的区块链网络310上进行交易。同时,试图驱动链码的用户可能需要在传统数据源330上校验他们的凭证。为了确认用户的授权,链码可以通过传统的处理平台320使用到该数据的带外连接。
图5A示出了根据示例实施例的在区块链中执行事件管理的方法的流程图500。在这个实施例中,执行事件管理以允许机密链码的事件(例如,当满足预定条件时由验证者创建的自定义事件或其它消息)仅可由被授权解密链码状态的客户端的用户读取。如上所述,这可以通过生成隐私保护事件标识符来实现,该标识符允许预期接收方(例如,授权的客户端或用户)有效地跟踪授权事件。在一个实施方式中,该方法可以以对区块链网络中的未注册用户透明的方式执行,例如,未注册用户甚至不知道或未被通知这些事件。
参考图5A,方法500可以例如参考本申请的其它附图来理解。方法500包括在501从节点接收事件。该事件可能具有某种形式的受限状态,因为它不旨在被区块链网络中的所有用户或客户端访问。该消息可以被普遍广播到区块链网络中的所有节点,但是该消息的内容可能不是所有用户和客户端可访问的,而是只有在由网络中的接收方节点访问的通知列表中注册的(例如,作为订户)那些用户可以访问的。
事件的传输可以由验证者的客户端通过相对应的节点来执行。该事件可以由网络中不同于节点的另一节点或实体(例如监管者、处理平台、证书授权机构或其它区块链设备或应用)接收。
在502,例如,通过图2中的解析器150,从事件的预定域中提取标识符。标识符可以是发起和授权事件的传输的节点或客户端处的事件计数器的散列(HMAC)值。因此,实际上,事件计数器的散列值可以提供用于控制事件生成和传输的机密链码的状态的指示。
事件计数器可以对被传输用于由通知列表上的客户端的用户接收的事件的数量进行计数。例如,当达到预定的最大计数值时,计数器可以被重置为初始值。计数器重置以及生成和传输事件的其它操作可以由传输节点的客户端的链码和来自相关联的验证者的信息来控制。接收事件的客户端节点处的链码可以控制与存储在事件信息表中的散列值相关的类似重置。在一个实施例中,从事件中提取的标识符可以包括附加信息,诸如但不限于链码-id和事件-秘密状态。
在503,执行分析以确定事件是否是授权事件。例如,当客户端、用户或其它接收实体旨在接收通知列表所指示的事件时,可以认为事件被授权。在一个实施例中,如果接收实体具有与事件相同的机密性级别(例如,与事件-秘密信息相同)、具有用于解密事件的匹配密钥信息和/或等效散列值,则可以授权事件。
在一个实施例中,为确定事件的授权而执行的分析可以包括将事件中的HMAC计数器值与由接收节点的客户端访问的事件信息表中的信息进行比较。如前所述,事件信息表的一个实施例包括由各种链码维护的HMAC事件计数器值。
在操作中,客户端的应用、链码或处理器将从接收到的事件的标识符中提取的事件计数器的HMAC值与对应于控制事件的传输的链码的下一-事件-id列条目的HMAC值进行比较。当标识符散列计数器值与表中用于相对应的链码的散列值匹配时,该事件被认为是授权的。这种比较可以例如通过前面讨论的布隆过滤器来执行。
在504,当标识符散列计数器值与表中用于相对应的链码的散列值不匹配时,事件未被授权。这意味着客户端不打算读取事件。在这种情况下,事件被丢弃,例如被删除,并且因此没有对事件信息表中的信息做出改变。在一个实施例中,事件可以以对客户端透明的方式被丢弃,例如,不向客户端提供事件曾经被接收的通知。这可以提高区块链的网络的节点处的事件管理的处理速度和效率,同时增加秘密消息的机密性。
在505,在事件被授权之后,可以例如基于客户端先前从验证者、证书授权机构或另一网络实体接收的私钥来解密事件。
在506,一旦事件被解密,可以生成该事件的通知,以通知客户端的一个或多个用户已经接收到事件以及通知发送该事件的链码(或验证者、客户端、用户或其它网络实体)。然后,事件的内容可以自动地或者响应于读取事件的内容的客户端请求而被输出,以供客户端的注册用户读取。在一个实施例中,客户端的每个用户可能被要求具有证书和密钥,并且必须在用户能够读取消息的内容之前在通知列表(客户端可以访问该通知列表)上注册。该事件可以包括例如文本、图像、视频、记录或区块链网络的旨在用于例如在通知列表中指示的客户端或用户的子集的任何其它信息。
在507,在事件被授权之后,事件信息表中的事件计数器的散列值可以被更新以对应于事件计数器的下一个值。然后,该下一计数器值可以被散列并作为新的条目存储在相对应的链码id的下一-事件-id列中。
图5B示出了在网络中调用事件的部署的方法510的实施例。该方法的一个或多个操作可以通过链码来执行,该链码控制事件生成和从一个节点的传输,以供由一个或多个其它节点处的客户端或用户访问。要访问事件的客户端或用户可以是例如在由相对应的网络节点维护的通知列表上注册来接收事件的客户端或用户。该方法可以由准备或以其它方式指定事件的内容的网络实体发起,诸如客户端、用户、验证者。
参考图5B,方法510包括,在511,生成用于加密事件的密钥KC,E。该密钥可以是例如从区块链网络的证书授权机构获得的公钥。在一个实施例中,公钥可以是随机生成的密钥。
在512,使用预定算法散列事件计数器的当前值,该预定算法对应于用于散列存储在被注册以接收事件的客户端的事件管理表中的下一-事件-id计数器值的算法。
在513,在511中生成的公钥通过链码被结合到对应于事件的消息的第一域中。
在514,散列的计数器值<C,E>通过链码被结合到事件消息的第二域中。第二域可以是例如事件消息的代码元数据域,例如当前计数器值的散列值可以包括基于散列的消息认证码(HMAC)。最初,事件计数器可以被设置为初始值(例如,0)。然后,事件计数器可以在每次链码被用于向注册的客户端或用户分发另一事件时递增。密钥和散列的计数器值可以在执行链码时被传递给链码。散列的计数器值可以对应于事件的标识符,以允许接收客户端确定对事件的访问是否被授权。(在一个或多个实施例中,术语客户端和用户可以互换使用,并且可以彼此同义)
在515,公钥和/或散列的计数器值<C,E>被添加到被授权的客户端可以读取的链接交易的一个或多个应用元数据域。在一个实施例中,散列的计数器值可以使用授权用户的加密密钥来加密。
在516,交易的机密性标志由链码设置为“开”值,并且元数据域(例如,事件消息)被加密。将机密性标志设置为“开”值指示事件具有秘密或机密状态,例如事件-秘密。与其它操作一样,链码可以执行加密。
部署事件的客户端(或验证者)可以将信息通信传送给被注册以从相对应的链码接收事件的客户端,或者通信传送给被授权以接收链码的事件的其它网络实体。例如,这可能离线发生或发生在调用链代码以部署事件的客户端和其它注册的客户端或实体之间的网络外。该信息可以包括密钥和/或将允许注册的客户端和实体解密以后的事件消息的其它数据。在一个实施例中,由链码部署的事件的事件-秘密状态可以被通信传送给注册用户和其它授权实体(如果有的话)。
链码调用
图5C示出了用于在区块链网络中生成和传输事件的链码调用的方法520的实施例。该方法包括,在521,例如从存储设备检索代码-元数据KC,E。代码-元数据可以包括在511生成的公钥。
在522,链码检索事件计数器的当前值(evctr)。
在523,链码计算事件-标签<-HMAC_KC,E(evctr)。事件-标签可以是事件计数器的当前值的散列(HMAC)值。使用预定散列算法计算散列,该算法用于在对应于注册的客户端的事件信息表的链码的下一-事件-id列中生成散列值。
在524,链码使用对称密钥加密块密码的预定操作模式来加密实际事件(例如,事件消息的内容)。操作的一个示例模式是伽罗瓦/计数器模式(Galois/Counter Mode,GCM),其是提供事件真实性(完整性)和机密性的认证加密算法。链码可以用状态密钥KS和标签在GCM模式下加密实际事件。状态密钥KS可以在用于状态加密的机密链码的部署中传递,并且标签可以是在523中讨论的“事件-标签”。
在525,链码可以更新事件计数器,例如,通过将计数器值递增1,例如,evctr=evctr+1。
在526,验证者将事件添加到自定义事件列表中,在对应于事件的分发的交易被提交(在附接的块中)到区块链网络之后,这些自定义事件将被宣布。
图5D示出了处理由区块链网络中的客户端接收的事件的方法530的实施例。在准备接收事件时,每个注册的用户的客户端可以准备对应于一个或多个预期机密事件标签的信息。此信息可以例如以数据库或表的形式存储在客户端的存储设备中或耦合到客户端。预期的机密事件标签可能包含在事件信息表(DBevent)中。如前所讨论那样,在一个或多个实施例中,客户端可以为数据库中的每个链码条目添加下一-事件-id值,以供布隆过滤器使用。
参考图5D,方法530包括,在531,客户端解析在网络的相对应的节点处接收的事件。如前所述,事件从验证者或其它客户端的节点传输。可以执行解析以从事件中的一个或多个预定域中提取事件-标签,该事件-标签例如可以包括事件的标识符。如上所讨论,标识符可以包括事件计数器的散列值,并且在一个或多个实施例中,包括传输链码的标识(“链码-id”)和事件状态(“事件-秘密”)。
在532,客户端检查从接收到的事件中提取的事件-标签是否在客户端被注册以接收的数据库DBevent中的事件中。这可以例如通过将事件-标签(例如,标识符的散列的事件计数器值)传递通过布隆过滤器来执行。布隆过滤器可以在O(1)操作中执行这个检查操作。如果接收到的事件不在数据库DBevn的事件信息表中存储的事件中,则布隆过滤器丢弃接收到的事件,并且客户端继续下一个事件。
在533,当接收到的事件没有被过滤掉时(例如,当散列的事件计数器值与表中的下一-事件-id值匹配时),事件被解密,注册用户被通知事件,并且事件的内容以注册用户可读的形式输出。
在534,客户端更新事件信息表中对应于接收到的事件的链码的散列的计数器值。更新后的表条目可以被指示为:[链码-id、事件-秘密、下一-事件-id’、计数器-值’(,最大-事件-数量”)],其中计数器-值’<-计数器-值+1并且下一-事件-id’<-HMAC(事件-秘密、计数器-值)。
事件的成功检测
在一个实施例中,可以修改图5D中的操作533,以在满足以下两个要求时成功检测接收到的事件是旨在用于用户的:(1)客户端的数据库条目中的事件-秘密与被提供给链码的秘密事件特定的密钥KC,E相匹配,以及(2)链码侧上的事件计数器(evnctr)的散列值等于客户端侧上的事件计数器的下一-事件-id的散列值。当满足这两个要求时,可以保证在两端(客户端侧和链码侧)处的计算事件-id是相同的。
延伸
在一个或多个实施例中,本文描述的操作可以在其中交易没有链接到特定链码的区块链的环境中执行。在一个或多个附加实施例中,相同的操作可以用于隐藏对应于相同链码的不同用户的通知,例如,在交易链接到特定链码的情况下。
图5E示出了根据示例实施例的生成用于在区块链中进行传输的事件的示例方法的流程图550。方法550包括,在551,从事件源(例如验证者)接收带有传输事件的请求的内容。该信息可以由耦合到区块链网络中的节点(例如,图1中的节点N1)的验证者的客户端接收。
在552,客户端的链码生成注册用户在接收事件时使用的标识符。标识符可以是例如与验证者相关联的信息的散列值。例如,此信息可以是由验证者提供来加密所请求的事件的密钥。在一个实施例中,该信息可以是另一类型的信息,诸如时间代码、内容代码、跟踪代码或根据预定时间表周期性变化并且验证者节点和注册用户的节点两者可访问的代码。事件信息表可以存储用于通知和允许对事件的访问的相同散列值。
在553,客户端的处理器基于在551和552中从验证者和链码接收的信息生成事件。事件具有用于存储标识符、链码的身份、事件的状态和/或其它信息的预定域。
在554,根据本文描述的实施例,客户端向网络的节点传输或广播事件,以供授权用户访问和读取。
图6A示出了示例系统600,该示例系统包括被配置为执行根据示例实施例的各种操作的物理基础设施610。参考图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写入或读取的输出或写入信息。物理基础设施、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。进一步,模块612和模块614可以是相同的模块。
图6C示出了根据示例实施例的合约方之间的智能合约配置和被配置为在区块链上强制执行智能合约条款的中介服务器。参考图6C,配置650可以表示由明确标识一个或多个用户设备652和/或656的智能合约630驱动的通信会话、资产转移会话或过程或程序。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要作为智能合约交易的各方的实体652和656中的一个或多个的数字签名。智能合约执行的结果可以作为区块链交易写入区块链620。智能合约630驻留在区块链620上,其可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其它链码)和数据(例如,分布式分类帐等)的公共接口)公用接口。在此示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等体(即,服务器654)来在区块链上执行交易(调用、查询等)的公共接口。这里,服务器654是区块链网络对等组件,其保存世界状态的副本和分布式分类帐,允许客户端652和656查询关于世界状态的数据,以及将交易递交到区块链网络,在区块链网络中,根据智能合约630和背书策略,背书对等体将运行智能合约630。
以上实施例可以以硬件、以由处理器执行的计算机程序、以固件或以以上的组合来实施。计算机程序可以体现在计算机可读介质上,诸如存储介质上。例如,计算机程序可以驻留在随机存取存储器(random access memory,“RAM”)、闪存、只读存储器(read-onlymemory,“ROM”)、可擦可编程只读存储器(erasable programmable read-only memory,“EPROM”)、电可擦可编程只读存储器(electrically erasable programmable read-onlymemory,“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(compact disk read-onlymemory,“CD-ROM”)或本领域已知的任何其它形式的存储介质中。
示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在替代性方案中,存储介质可以集成到处理器中。处理器和存储介质可以驻留在专用集成电路(application specific integrated circuit,“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是已经接收到新的数据块750以用于存储在区块链730上的提交对等体。
排序服务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可以将N个(例如,100、500、1000、2000、3000个等)交易的交易信息存储在块数据770中。块750还可以将到(例如,在图7A中的区块链732上的)先前块的链接包括在块头部760内。特别地,块头部760可以包括先前块的头部的散列。块头部760还可以包括唯一的块号、当前块750的块数据770的散列等。块750的块号可以是唯一的,并且从零开始以递增/有序的顺序分配。区块链中的第一块可以被称为创世块,其包括关于区块链、其成员、存储在其中的数据等的信息。
块数据770可以存储记录在块750内的每个交易的交易信息。例如,交易数据可以包括以下的类型中的一个和多个:交易、版本、时间戳、分布式分类帐730的信道ID、交易ID、时期(epoch)、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和功能)、诸如公钥和证书的客户端(创建者)标识符、客户端的签名、背书者身份、背书者签名、提案散列、链码事件、响应状态、命名空间、读取集合(交易读取的密钥和版本列表)、写入集合(键和值列表等)、开始键、结束键、键列表、默克尔树查询总结等。可以为N个交易中的每一个存储交易数据。
在一些实施例中,块数据770还可以存储数据772,该数据将附加信息添加到区块链732中的块的散列链接的链中。在一个实施例中,数据772可以是对应于或参考在网络中传输的事件的记录,如本文所述。因此,数据772可以被存储在分布式分类帐730上的不可变的块日志中。存储这样的数据772的益处中的一些被反映在本文公开和描述的各种实施例中。
块元数据780可以存储元数据的多个字段(例如,作为字节数组等)。元数据域可以包括块创建时的签名、对最后配置块的引用、标识块内的有效和无效交易的交易过滤器、对块进行排序的排序服务的最后偏移持久化等。签名、最后配置块和排序者元数据可以由排序服务710添加。同时,块的提交者(诸如区块链节点722)可以基于背书策略、读取/写入集合的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于块数据770中的交易数量的字节数组和识别交易是有效的/无效的验证码。
图7C示出了根据本文描述的实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其它形式的数字内容。区块链的不可变的、只附接的方面作为保护数字内容的完整性、有效性和真实性的保障,使其适合用于可采性规则适用的法律诉讼、或考虑证据的其它环境,或对数字信息的呈现和使用另外地感兴趣的其它环境。在这种情况下,数字内容可以被称为数字证据。
区块链可以以多种方式形成。在一个实施例中,数字内容可以包括在区块链自身中并从其进行访问。例如,区块链的每个块可以存储参考信息的散列值(例如,头部、值等)以及相关联的数字内容。散列值和相关联的数字内容然后可以一起被加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并且每个块的散列值可以用作参考先前块的基础。这可以示出如下:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密散列而没有任何数字内容。数字内容可以被存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同的存储设备,或者可以是不同的存储区域,或者甚至是分离的关系数据库。每个块的数字内容可以通过获得或查询感兴趣的块的散列值,并且然后在存储区域中查找该值来引用或访问,该散列值与实际数字内容相对应地存储。该操作可以例如由数据库网守(gatekeeper)来执行。这可以示出如下:
在图7C的示例实施例中,区块链770包括以有序序列密码地链接的多个块7781、7782……778N,其中N≥1。用于链接块7781、7782……778N的加密可以是许多密钥或非密钥散列函数中的任何一种。在一个实施例中,块7781、7782……778N受制于散列函数,该散列函数从基于块中信息的输入产生n位字母数字输出(其中n是256或另一数目)。这种散列函数的示例包括但不限于SHA型(SHA代表安全散列算法)算法、Merkle-Damgard算法、HAIFA算法、默克树算法、基于现时标志的算法(nonce-based algorithm)和非抗冲突的PRF算法。在另一实施例中,块7781、7782……778N可以通过不同于散列函数的函数进行密码地链接。为了说明的目的,下面的描述是参照散列函数(例如SHA-2)进行的。
区块链的块7781、7782……778N中的每一个都包括头部、文件的版本和值。作为区块链中进行散列的结果,头部和值对于每个块都不同。在一个实施例中,值可以包括在头部中。如下文更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链的第一块7781被称为创世块,并且包括头部7721、原始文件7741和初始值7761。用于创世块的散列方案以及实际上在所有后续块中,可能会有所不同。例如,第一块7781中的所有信息可以被散列在一起并同时散列,或者第一块7781中的信息的每个或一部分可以被分离地散列,并且然后可以执行分离散列部分的散列。
头部7721可以包括一个或多个初始参数,该一个或多个初始参数例如可以包括版本号、时间戳、现时标志(nonce)、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件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中的每一个块中的值是唯一值,并且作为所执行的处理的结果全部是不同的。例如,任何一个块中的值对应于先前块中值的更新版本。更新反映在值被分配到的块的散列中。因此,块的值提供了块中执行了什么处理的指示,并且还允许通过区块链回到原始文件的追踪。此追踪证实了整个区块链的文件监管链。
例如,考虑先前块中的文件的部分被编辑、屏蔽(blocked out)或像素化(pixelated)以保护文件中示出的个人的身份的情况。在这种情况下,包括经编辑的文件的块将包括与经编辑的文件相关联的元数据,例如,如何执行编辑、谁执行编辑、(多个)编辑发生的时间戳等。可以对元数据进行散列以形成值。因为该块的元数据不同于被散列以形成先前块中的值的信息,所以这些值彼此不同,并且可以在解密时被恢复。
在一个实施例中,当出现以下中的任何一个或多个时,可以更新先前块的值(例如,所计算的新的散列值),以形成当前块的值。在该示例实施例中,可以通过散列下面提到的信息中的全部或部分来计算新的散列值。
a)在文件已经以任何方式处理过(例如,如果文件被编辑、复制、更改、访问或采取了一些其它动作)的情况下的新的SHA-2计算的散列值
b)文件的新的存储位置
c)与文件相关联的新的元数据
d)将文件的访问或控制从一个区块链参与者转移到另一区块链参与者
图7D示出了根据一个实施例的可以表示区块链790中的块的结构的块的实施例。块Blocki包括头部772i、文件774i和值776i。
头部772i包括先先前块Blocki-1的散列值和附加参考信息,该附加参考信息例如可以是在本文讨论的任何类型的信息(例如,包括参考、特征、参数等的头部信息)。所有块引用先前块的散列,当然,除了创世块。先前块的散列值可以仅仅是先前块中的头部的散列,或者是先前块中包括文件和元数据的信息中的全部或部分的散列。
文件774i依次包括多个数据,诸如数据1、数据2、…、数据N。数据用描述内容和/或与数据相关联的特征的元数据Metadata 1、Metadata 2、…、Metadata N来标记。例如,每个数据的元数据可以包括用于指示数据的时间戳、用于处理数据的信息、用于指示数据中描绘的个人或其它内容的关键字、和/或可能有助于整体上建立文件的有效性和内容的其它特征(并且特别是其使用数字证据)的信息,例如,如结合下面讨论的实施例所描述的那样。除了元数据之外,每个数据可以用对先前的数据的引用REF1、REF2、……、REFN来标记,以防止篡改、文件中的间隙以及通过文件的有序引用。
一旦元数据被分配给数据(例如,通过智能合约),元数据就不能在没有散列改变的情况下被变更,该散列改变可以被容易地被识别为无效。因此,元数据创建了信息的数据日志,该信息的数据日志可以被访问以供区块链中的参与者使用。
值776i是散列值或基于前面讨论的任何类型的信息计算的其它值。例如,对于任何给定的块Blocki,该块的值可以被更新以反映对该块执行的处理,例如,新的散列值、新的存储位置、相关联文件的新的元数据、控制或访问的转移、标识符或要添加的其它动作或信息。尽管每个块中的值被示为与文件和头部的数据的元数据分离,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成区块链770,在任何时间点,就可以通过向区块链查询跨块的值的交易历史来获得文件的不可变的监管链。该查询或跟踪过程可以从解密最近包含的块(例如,最后(第N)个块)的值开始,并且然后继续解密其它块的值,直到到达创世块并且恢复原始文件。解密还可以包括在每个块处解密头部和文件以及相关联的元数据。
解密是基于每个块中发生的加密的类型来执行的。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用不对称加密时,区块链参与者或网络中的处理器可以使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可以被公开地分发以用作用于从其它用户接收消息的地址,例如,IP地址或起始地址(home address)。私钥是保密的,并且用于对发送给其它区块链参与者的消息进行数字签名。签名包含在消息中,使得接收方可以使用发送方的公钥进行校验。这样,接收方可以确定只有发送方可以发送此消息。
生成密钥对可能类似于在区块链上创建帐户,但实际上不需要在任何地方注册。此外,在区块链上执行的每个交易由发送方使用其私钥进行数字签名。该签名确保只有帐户的所有者才能跟踪和处理(如果在智能合约确定的许可范围内的情况下)区块链的文件。
图8不旨在对本文描述的应用的实施例的使用范围或功能性提出任何限制。无论如何,计算节点800能够实施和/或执行上文阐述的任何功能性。
在计算节点800中,存在计算机系统/服务器802,其可与许多其它通用或专用计算系统环境或配置一起操作。适用于与计算机系统/服务器802一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
计算机系统/服务器802可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等等。计算机系统/服务器802可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图8所示,云计算节点800中的计算机系统/服务器802以通用计算设备的形式表现。计算机系统/服务器802的组件可以包括但不限于:一个或者多个处理器或者处理单元804,系统存储器806,连接不同系统组件(包括系统存储器806和处理单元804)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微信道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器802典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器802访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。在一个实施例中,系统存储器806实现其它附图的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机系统/服务器802可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统814可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块818的程序/实用工具816,可以存储在例如存储器806中,这样的程序模块818包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块818通常执行本申请所描述的实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或结合软件和硬件各方面的实施例的形式,这些方面在这里通常全部被称为“电路”、“模块”或“系统”。另外,本申请的各方面可以采取实现在其上实现有计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。
计算机系统/服务器802也可以与一个或多个外部设备820(例如键盘、指向设备、显示器822等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器802交互的设备通信,和/或与使得该计算机系统/服务器802能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口824进行。并且,计算机系统/服务器802还可以通过网络适配器826与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器826通过总线与计算机系统/服务器802的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器802使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
虽然系统、方法和非暂时性计算机可读介质中的至少一个的示例实施例已经在附图中示出并在前面的详细描述中描述,但是应当理解的是,本申请不限于所公开的实施例,而是能够进行如所附权利要求所阐述和限定的多种重新排列、修改和替换。例如,各种附图的系统的功能可以由本文描述的模块或组件中的一个或多个或者以分布式体系结构来执行,并且可以包括发射器、接收器或者两者的对。例如,由各个模块执行的功能性的全部或部分可以由这些模块中的一个或多个来执行。进一步,本文描述的功能可以在模块或组件内部或外部在不同时间并且与不同事件相关地执行。并且,在各个模块之间发送的信息可以经由以下中的至少一个在模块之间发送:数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多个协议。并且,由任何模块发送或接收的消息可以直接地和/或经由其它模块中的一个或多个发送或接收。
本领域技术人员将会理解,“系统”可以被实现为个人计算机、服务器、控制台、个人数字助理(personal digital assistant,PDA)、蜂窝电话、平板计算设备、智能手机或任何其它合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并非旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式实施。
应该注意的是,本说明书中描述的系统特征中的一些已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实施为硬件电路,该硬件电路包括定制的超大规模集成电路(very large-scale integration,VLSI)或门阵列、现成的半导体,诸如逻辑芯片、晶体管或其它分立元件。模块也可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地在软件中实施,以便由各种类型的处理器执行。可执行代码的识别单元可以例如包括计算机指令的一个或多个物理或逻辑块,这些物理或逻辑块可以例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时包括该模块并实现该模块的所述目的。进一步,模块可以被存储在计算机可读介质上,该介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其它这样的介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、不同的程序之间以及跨几个存储器设备分布。类似地,操作数据在本文可以在模块中被识别和示出,并且可以以任何合适的形式来实现,并且可以组织在任何合适类型的数据结构中。操作数据可以作为单个数据集收集,或者可以分布在不同的位置上,包括不同的存储设备上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
很容易理解的是,如本文附图中一般描述和示出的,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述并不旨在限制所要求保护的应用的范围,而仅仅表示了所选择的应用实施例。
本领域普通技术人员将容易理解,以上可以用呈不同顺序的步骤和/或用处于不同于所公开的那些配置的配置的硬件元件来实践。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说,某些修改、变化和替代结构将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解的是,所描述的实施例仅是说明性的,并且当考虑到其等同物和修改(例如,协议、硬件设备、软件平台等)的所有范围时,本申请的范围仅由所附权利要求来限定。
Claims (19)
1.一种用于信息管理的系统,包括:
处理器,用于:
从事件源中的链码经由与所述系统相关联的接收器接收事件;以及存储区域,用于:
存储与所述链码相关联的先前事件的先前计数值,以及
存储标识所述事件的状态的秘密,
其中,所述处理器进一步用于:
从所述事件中提取标识符,其中所述标识符包括对已经从所述事件源经由所述链码传输的事件数量进行计数的事件计数器的值的第一散列,
基于下列条件将所述事件标识为授权事件:
所述标识符匹配所述先前计数值的第二散列,
所述标识符中的设置位的数目小于或等于用于所述链码的预定最大计数值,以及
所述秘密匹配对所述事件加密的密钥。
2.根据权利要求1所述的系统,其中所述第一散列和所述第二散列包括基于散列的消息认证码。
3.根据权利要求1所述的系统,其中所述处理器进一步用于:在所述标识符被授权之后,更新所述第二散列以对应于所述事件计数器的下一个值。
4.根据权利要求1所述的系统,其中所述处理器进一步用于:当所述标识符未被授权时,丢弃所述事件。
5.根据权利要求4所述的系统,其中所述处理器将丢弃所述事件,而不向用户通知所述事件已经被接收到。
6.根据权利要求1所述的系统,其中所述系统包括区块链网络。
7.根据权利要求6所述的系统,其中所述标识符提供用于生成所述事件的机密链码的状态的指示。
8.一种用于信息管理的方法,包括:
从存储系统中的节点接收事件,所述节点存储与所述节点中的链码相关联的先前事件的先前计数值,并存储标识所述事件的状态的秘密;
从所述事件中提取标识符,其中所述标识符包括对已经从所述节点经由链码传输的事件数量进行计数的事件计数器的值的第一散列;
基于下列操作将所述事件标识为授权事件:
使所述标识符匹配所述先前事件的所述先前计数值的第二散列,确认所述标识符中的设置位的数目小于或等于用于所述链码的预定最大计数值,以及
使所述秘密匹配对所述事件加密的密钥;以及
生成所述授权事件的通知。
9.根据权利要求8所述的方法,其中所述事件计数器存储通过所述存储系统中的节点传输的机密状态的事件数量。
10.根据权利要求8所述的方法,还包括:
在所述标识符被授权之后,更新所述第二散列以对应于所述事件计数器的下一个值。
11.根据权利要求8所述的方法,还包括:
当所述标识符未被授权时丢弃所述事件。
12.根据权利要求11所述的方法,其中所述事件被丢弃,而不通知用户所述事件已经被接收到。
13.根据权利要求8所述的方法,其中将所述事件标识为授权事件进一步包括:由布隆过滤器对所述事件进行过滤。
14.根据权利要求8所述的方法,其中所述标识符提供用于生成所述事件的机密链码的状态的指示。
15.根据权利要求8所述的方法,还包括:
在所述标识符被授权之后,用私钥解密所述事件以允许客户端的用户对所述事件的内容的访问。
16.根据权利要求8所述的方法,其中所述第一散列包括基于散列的消息认证码。
17.一种存储指令的非暂时性计算机可读介质,所述指令当被处理器读取时,使得所述处理器执行根据权利要求8-16中任一项所述的方法。
18.一种计算机系统,包括:
处理器;
耦合到所述处理器的计算机可读存储介质,所述计算机可读存储介质具有指令,当所述指令由所述处理器执行时实施根据权利要求8-16中任意一项所述的方法。
19.一种系统,所述系统包括分别用于执行根据权利要求8-16中任意一项所述的方法的各个步骤的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/361,648 US11777712B2 (en) | 2019-03-22 | 2019-03-22 | Information management in a database |
US16/361,648 | 2019-03-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723355A CN111723355A (zh) | 2020-09-29 |
CN111723355B true CN111723355B (zh) | 2024-03-26 |
Family
ID=72515003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010190306.3A Active CN111723355B (zh) | 2019-03-22 | 2020-03-18 | 数据库中的信息管理 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11777712B2 (zh) |
CN (1) | CN111723355B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10764315B1 (en) * | 2019-05-08 | 2020-09-01 | Capital One Services, Llc | Virtual private cloud flow log event fingerprinting and aggregation |
US11138328B2 (en) * | 2019-05-30 | 2021-10-05 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US20220329409A1 (en) * | 2019-06-05 | 2022-10-13 | Mastercard International Incorporated | Event management in distributed computing system |
US11880383B2 (en) * | 2019-07-15 | 2024-01-23 | Sap Se | Federated data management between partner systems |
US11144668B2 (en) * | 2019-08-15 | 2021-10-12 | International Business Machines Corporation | Cognitively hiding sensitive content on a computing device |
US20210099312A1 (en) * | 2019-09-27 | 2021-04-01 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
US11606426B1 (en) * | 2019-10-23 | 2023-03-14 | Architecture Technology Corporation | Database access gateway through distributed network nodes |
US11138159B1 (en) * | 2020-02-03 | 2021-10-05 | Architecture Technology Corporation | Database access gateway through distributed networks |
GB2592627A (en) * | 2020-03-04 | 2021-09-08 | Nchain Holdings Ltd | Method of generating a hash-based message authentication code |
US11646900B2 (en) * | 2020-03-18 | 2023-05-09 | International Business Machines Corporation | Subscription service for networks |
US20220006641A1 (en) * | 2020-07-03 | 2022-01-06 | Inveniam Capital Partners, Inc. | Distribution of Blockchain Validation |
PL244966B1 (pl) * | 2020-07-29 | 2024-04-08 | Dicella Spolka Z Ograniczona Odpowiedzialnoscia | Sposób i układ zabezpieczania danych, zwłaszcza danych laboratoriów biotechnologicznych |
US11341108B2 (en) * | 2020-10-20 | 2022-05-24 | Dell Products L.P. | System and method for data deduplication in a smart data accelerator interface device |
CN112100279B (zh) * | 2020-10-30 | 2021-06-29 | 中航信移动科技有限公司 | 基于区块链的数据共享系统 |
CN112016115B (zh) * | 2020-11-02 | 2021-02-05 | 中航信移动科技有限公司 | 基于区块链的事件订阅系统 |
US11949788B1 (en) * | 2020-11-21 | 2024-04-02 | CodeNotary Inc. | System and method to shorten cryptographic proofs |
CN113269565B (zh) * | 2021-05-11 | 2024-01-16 | 深圳棠人科技有限公司 | 一种防重复使用识别码的防伪识别方法、装置及电子设备 |
CN113347164B (zh) * | 2021-05-24 | 2022-11-04 | 湖南大学 | 基于区块链的分布式共识系统及方法、设备、存储介质 |
EP4356307A1 (en) * | 2021-06-13 | 2024-04-24 | Artema Labs, Inc. | Systems and methods for automated blockchain based recommendation generation, advertising and promotion |
US20230063043A1 (en) * | 2021-08-27 | 2023-03-02 | Micro Focus Llc | Management of resource access in a blockchain |
CN113852686B (zh) * | 2021-09-24 | 2023-06-02 | 成都质数斯达克科技有限公司 | 一种区块链网络通讯方法、装置、设备及可读存储介质 |
CN114070551B (zh) * | 2021-10-27 | 2024-04-09 | 中国建设银行股份有限公司 | 动态口令生成方法、授权方法、装置、设备及存储介质 |
CN114610714B (zh) * | 2022-02-17 | 2024-07-30 | 浙江数秦科技有限公司 | 基于区块链的一体化查档系统 |
CN114692123B (zh) * | 2022-03-04 | 2024-07-26 | 广东职业技术学院 | 基于虚拟现实的实验控制方法、装置及可读存储介质 |
CN116776305B (zh) * | 2023-06-15 | 2023-12-15 | 南京理工大学 | 一种面向工业场景的区块链智能合约系统的运行方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849318B2 (en) * | 2007-06-19 | 2010-12-07 | Yahoo! Inc. | Method for session security |
CN108292394A (zh) * | 2015-11-24 | 2018-07-17 | 万事达卡国际股份有限公司 | 通过使用不透明区块链进行全额结算的方法和系统 |
CN108961047A (zh) * | 2017-05-25 | 2018-12-07 | 通用汽车环球科技运作有限责任公司 | 利用区块链数据库在车辆与实体之间进行数据交易的方法和系统 |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5434919A (en) * | 1994-01-11 | 1995-07-18 | Chaum; David | Compact endorsement signature systems |
US6199121B1 (en) * | 1998-08-07 | 2001-03-06 | Oak Technology, Inc. | High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions |
US20040073617A1 (en) * | 2000-06-19 | 2004-04-15 | Milliken Walter Clark | Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail |
US20040193763A1 (en) * | 2003-03-28 | 2004-09-30 | Fujitsu Limited | Inter-bus communication interface device and data security device |
US7032097B2 (en) * | 2003-04-24 | 2006-04-18 | International Business Machines Corporation | Zero cycle penalty in selecting instructions in prefetch buffer in the event of a miss in the instruction cache |
US7409370B2 (en) * | 2003-06-30 | 2008-08-05 | Intel Corporation | Secured and selective runtime auditing services using a trusted computing device |
US7546327B2 (en) * | 2003-12-22 | 2009-06-09 | Wells Fargo Bank, N.A. | Platform independent randomness accumulator for network applications |
JP4036838B2 (ja) * | 2004-03-12 | 2008-01-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | セキュリティ装置、情報処理装置、セキュリティ装置が実行する方法、情報処理装置が実行する方法、該方法を実行させるための装置実行可能なプログラムおよびチケット・システム |
US7933840B2 (en) * | 2004-12-30 | 2011-04-26 | Topaz Systems, Inc. | Electronic signature security system |
KR100684079B1 (ko) * | 2005-06-20 | 2007-02-20 | 성균관대학교산학협력단 | Ocsp응답자의 세션 개인키의 노출에 대한 검출 시스템및 그 검출 방법 |
US10289688B2 (en) * | 2010-06-22 | 2019-05-14 | International Business Machines Corporation | Metadata access in a dispersed storage network |
US20090198619A1 (en) * | 2008-02-06 | 2009-08-06 | Motorola, Inc. | Aggregated hash-chain micropayment system |
US8005868B2 (en) * | 2008-03-07 | 2011-08-23 | International Business Machines Corporation | System and method for multiple distinct aggregate queries |
US7676501B2 (en) * | 2008-03-22 | 2010-03-09 | Wilson Kelce S | Document integrity verification |
US20090287904A1 (en) * | 2008-05-15 | 2009-11-19 | International Business Machines Corporation | System and method to enforce allowable hardware configurations |
JP5156540B2 (ja) * | 2008-08-22 | 2013-03-06 | 株式会社日立製作所 | ハッシュ値生成装置 |
JP5127670B2 (ja) * | 2008-11-04 | 2013-01-23 | 三菱電機株式会社 | フィルタ装置及びフィルタ方法及びプログラム |
US8401309B2 (en) * | 2008-12-30 | 2013-03-19 | International Business Machines Corporation | Security screening image analysis simplification through object pattern identification |
JP2010281695A (ja) * | 2009-06-04 | 2010-12-16 | Toshiba Corp | 半導体集積回路 |
US9455992B2 (en) * | 2009-06-12 | 2016-09-27 | Microsoft Technology Licensing, Llc | Trusted hardware component for distributed systems |
FI20090254A (fi) * | 2009-06-29 | 2010-12-30 | Envault Corp Oy | Menetelmä ja laitteisto tiedostopohjaisen tiedon suojaamiseen |
US20110083015A1 (en) * | 2009-10-05 | 2011-04-07 | Eidgenossiche Technische Hochschule Zurich | System and method for an electronic signature for quick and efficient data authentication |
CA2694500C (en) * | 2010-02-24 | 2015-07-07 | Diversinet Corp. | Method and system for secure communication |
CA2697687C (en) * | 2010-03-24 | 2014-02-18 | Diversinet Corp. | Method and system for secure communication using hash-based message authentication codes |
US10650373B2 (en) * | 2010-06-01 | 2020-05-12 | Ternarylogic Llc | Method and apparatus for validating a transaction between a plurality of machines |
US8745362B2 (en) * | 2010-06-25 | 2014-06-03 | International Business Machines Corporation | Operating system aware branch predictor using a dynamically reconfigurable branch history table |
WO2012024115A1 (en) * | 2010-08-16 | 2012-02-23 | Secure Exchange Solutions, Inc. | Method and system using two or more storage devices for authenticating multiple users for a single transaction |
EP2487629B1 (en) * | 2011-02-10 | 2016-11-30 | Nxp B.V. | Secure smart poster |
WO2013005505A1 (ja) * | 2011-07-05 | 2013-01-10 | 日本電気株式会社 | 暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム |
US8756582B2 (en) * | 2011-08-22 | 2014-06-17 | International Business Machines Corporation | Tracking a programs calling context using a hybrid code signature |
US20130055346A1 (en) * | 2011-08-25 | 2013-02-28 | Alcatel-Lucent Usa Inc. | Event Driven Multi-Factor Authentications For Internet Transactions |
KR101366442B1 (ko) * | 2012-06-04 | 2014-02-25 | 순천향대학교 산학협력단 | 스마트 미터와 디바이스 간 인증 방법 |
CN103580862A (zh) * | 2012-07-27 | 2014-02-12 | 中国银联股份有限公司 | 用于ic卡和安全性信息交互终端的认证方法以及ic卡和安全性信息交互终端 |
US9306794B2 (en) * | 2012-11-02 | 2016-04-05 | Brocade Communications Systems, Inc. | Algorithm for long-lived large flow identification |
GB2508343A (en) * | 2012-11-28 | 2014-06-04 | Ibm | Replacing a hash function if a second hash function is more effective |
EP2854332A1 (en) * | 2013-09-27 | 2015-04-01 | Gemalto SA | Method for securing over-the-air communication between a mobile application and a gateway |
US8930274B1 (en) * | 2013-10-30 | 2015-01-06 | Google Inc. | Securing payment transactions with rotating application transaction counters |
US9792440B1 (en) * | 2014-04-17 | 2017-10-17 | Symantec Corporation | Secure boot for vehicular systems |
US9690922B2 (en) * | 2014-07-28 | 2017-06-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device |
US10715332B2 (en) * | 2014-10-30 | 2020-07-14 | Hewlett Packard Enterprise Development Lp | Encryption for transactions in a memory fabric |
US11101978B2 (en) * | 2015-02-18 | 2021-08-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Establishing and managing identities for constrained devices |
EP3278287A4 (en) * | 2015-03-31 | 2018-08-22 | Nasdaq, Inc. | Systems and methods of blockchain transaction recordation |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
CN107851111A (zh) * | 2015-05-05 | 2018-03-27 | 识卡公司 | 使用区块链的身份管理服务 |
US10311423B2 (en) * | 2015-06-09 | 2019-06-04 | Zumigo, Inc. | System and method for transaction approval based on confirmation of proximity of mobile subscriber device to a particular location |
US20170090814A1 (en) * | 2015-09-25 | 2017-03-30 | Intel Corporation | Efficient storage and retrieval for wearable-device data |
MX2018004693A (es) * | 2015-10-17 | 2018-11-29 | Banqu Inc | Plataforma de identidad y transacciones basada en blockchain. |
US20180331832A1 (en) * | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
US10230756B2 (en) * | 2015-11-25 | 2019-03-12 | International Business Machines Corporation | Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network |
WO2017095920A1 (en) * | 2015-12-02 | 2017-06-08 | Pcms Holdings, Inc. | System and method for tamper-resistant device usage metering |
US10469262B1 (en) * | 2016-01-27 | 2019-11-05 | Verizon Patent ad Licensing Inc. | Methods and systems for network security using a cryptographic firewall |
US10142347B2 (en) | 2016-02-10 | 2018-11-27 | Bank Of America Corporation | System for centralized control of secure access to process data network |
US20170243193A1 (en) | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
US10204341B2 (en) * | 2016-05-24 | 2019-02-12 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees |
US10339327B2 (en) * | 2016-06-20 | 2019-07-02 | Intel Corporation | Technologies for securely binding a platform manifest to a platform |
US10826685B1 (en) * | 2016-06-28 | 2020-11-03 | Amazon Technologies, Inc. | Combined blockchain integrity |
US10256981B2 (en) * | 2016-09-27 | 2019-04-09 | International Business Machines Corporation | Secure logging for host security module |
US11128603B2 (en) * | 2016-09-30 | 2021-09-21 | Nec Corporation | Method and system for providing a transaction forwarding service in blockchain implementations |
GB201617913D0 (en) * | 2016-10-24 | 2016-12-07 | Trustonic Limited | Multi-stakeholder key setup for lot |
US10412581B2 (en) * | 2017-02-14 | 2019-09-10 | Ford Global Technologies, Llc | Secure session communication between a mobile device and a base station |
JP6305658B1 (ja) * | 2017-02-22 | 2018-04-04 | 三菱電機株式会社 | メッセージ認証子生成装置 |
US10762481B2 (en) * | 2017-03-21 | 2020-09-01 | The Toronto-Dominion Bank | Secure offline approval of initiated data exchanges |
US10320566B2 (en) * | 2017-04-04 | 2019-06-11 | International Business Machines Corporation | Distributed logging of application events in a blockchain |
US20210083852A1 (en) * | 2017-06-07 | 2021-03-18 | nChain Holdings Limited | Computer-implemented system and method for managing large blocks over a blockchain network |
CN110771093B (zh) * | 2017-06-20 | 2023-01-10 | 707 有限公司 | 证明数字文档存在的方法及其系统 |
US10565192B2 (en) * | 2017-08-01 | 2020-02-18 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
JP6992309B2 (ja) * | 2017-08-02 | 2022-01-13 | 株式会社豊田自動織機 | 送信装置、受信装置、及び通信方法 |
US10540297B2 (en) * | 2017-08-03 | 2020-01-21 | Arm Limited | Memory organization for security and reliability |
US10361870B2 (en) * | 2017-09-14 | 2019-07-23 | The Toronto-Dominion Bank | Management of cryptographically secure exchanges of data using permissioned distributed ledgers |
US10104077B1 (en) * | 2017-10-06 | 2018-10-16 | Xage Security, Inc. | Enabling multitenant data access on a single industrial network |
US10901907B2 (en) * | 2017-10-19 | 2021-01-26 | Samsung Electronics Co., Ltd. | System and method for identifying hot data and stream in a solid-state drive |
US11463241B2 (en) * | 2017-10-20 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | Transmitting or receiving blockchain information |
CN108108631A (zh) * | 2017-11-29 | 2018-06-01 | 晨星半导体股份有限公司 | 一种根密钥处理方法及相关装置 |
US10476847B1 (en) * | 2017-12-08 | 2019-11-12 | Symbiont.Io, Inc. | Systems, methods, and devices for implementing a smart contract on a distributed ledger technology platform |
US11188904B2 (en) * | 2017-12-15 | 2021-11-30 | Mastercard International Incorporated | Methods, system and computer program products for wireless device based authentication |
US10439812B2 (en) * | 2018-02-02 | 2019-10-08 | SquareLink, Inc. | Technologies for private key recovery in distributed ledger systems |
WO2019157503A1 (en) * | 2018-02-12 | 2019-08-15 | Massachusetts Institute Of Technology | Systems and methods for providing secure communications using a protocol engine |
US10797883B2 (en) * | 2018-02-28 | 2020-10-06 | Kyocera Document Solutions Inc. | Deploying multiple nodes for creation of blockchains for trackable actions |
US10785021B1 (en) * | 2018-02-28 | 2020-09-22 | Amazon Technologies, Inc. | User account authentication |
KR101946196B1 (ko) * | 2018-03-26 | 2019-02-08 | 그래프 블록체인 리미티드 | 프라이빗 블록체인 기반 시스템을 관제하는 관제시스템 및 관제방법 |
AU2019284778B2 (en) * | 2018-06-12 | 2024-05-16 | The Vanguard Group, Inc. | Device, method, and computer readable medium for large scale electronic processing |
US10826682B2 (en) * | 2018-07-03 | 2020-11-03 | Servicenow, Inc. | Multi-instance architecture supporting trusted blockchain-based network |
US10769299B2 (en) * | 2018-07-12 | 2020-09-08 | Capital One Services, Llc | System and method for dynamic generation of URL by smart card |
US11410136B2 (en) * | 2018-08-01 | 2022-08-09 | American Express Travel Related Services Company, Inc. | Procurement system using blockchain |
US11989208B2 (en) * | 2018-08-06 | 2024-05-21 | Inveniam Capital Partners, Inc. | Transactional sharding of blockchain transactions |
US11044095B2 (en) * | 2018-08-06 | 2021-06-22 | Factom, Inc. | Debt recordation to blockchains |
US10671308B2 (en) * | 2018-08-07 | 2020-06-02 | International Business Machines Corporation | Private and fault-tolerant storage of segmented data |
US11057187B2 (en) * | 2018-08-09 | 2021-07-06 | Guardtime Sa | Blockchain-assisted hash-based data signature system and method |
US11212294B2 (en) * | 2018-09-12 | 2021-12-28 | Grid7 LLC | Data packet security with expiring time-based hash message authentication codes (HMACs) |
DE102018122997A1 (de) * | 2018-09-19 | 2020-03-19 | Infineon Technologies Ag | Blockkettenentität, kettenexterne entität, zertifizierungsvorrichtung für blockkettenoperationen und verfahren zum durchführen einer kooperation zwischen einer blockkettenentität und einer kettenexternen entität |
US10419408B1 (en) * | 2018-09-24 | 2019-09-17 | Karamba Security | In-place authentication scheme for securing intra-vehicle communication |
US11133923B2 (en) * | 2018-10-24 | 2021-09-28 | Landis+Gyr Innovations, Inc. | Cryptographic operations using internet of things device pool |
US11568437B2 (en) * | 2018-10-31 | 2023-01-31 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing commerce rewards across tenants for commerce cloud customers utilizing blockchain |
US11171774B2 (en) * | 2018-11-28 | 2021-11-09 | Intel Corporation | System for synchronizing a cryptographic key state through a blockchain |
US11025431B2 (en) * | 2018-12-31 | 2021-06-01 | Mastercard International Incorporated | Method and system for two factor authentication for blockchain transactions |
US10817345B2 (en) * | 2019-01-25 | 2020-10-27 | Virtustream Ip Holding Company Llc | Distributed ledger for monitoring quality of services provided by cloud service providers |
US11082232B2 (en) * | 2019-06-24 | 2021-08-03 | International Business Machines Corporation | Auditably proving a usage history of an asset |
GB2587201A (en) * | 2019-09-17 | 2021-03-24 | Nchain Holdings Ltd | Multi-criteria blockchain protocol |
US11698897B2 (en) * | 2019-09-18 | 2023-07-11 | Boardwalktech, Inc | Cascading family of blockchains |
-
2019
- 2019-03-22 US US16/361,648 patent/US11777712B2/en active Active
-
2020
- 2020-03-18 CN CN202010190306.3A patent/CN111723355B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849318B2 (en) * | 2007-06-19 | 2010-12-07 | Yahoo! Inc. | Method for session security |
CN108292394A (zh) * | 2015-11-24 | 2018-07-17 | 万事达卡国际股份有限公司 | 通过使用不透明区块链进行全额结算的方法和系统 |
CN108961047A (zh) * | 2017-05-25 | 2018-12-07 | 通用汽车环球科技运作有限责任公司 | 利用区块链数据库在车辆与实体之间进行数据交易的方法和系统 |
Non-Patent Citations (2)
Title |
---|
TAM: A Tiered Authentication of Multicast Protocol for Ad-Hoc Networks;Mohamed Younis 等;《IEEE Transactions on Network and Service Management》;20111202;第9卷(第1期);第100-113页 * |
基于RBAC的统一权限管理系统分析与设计;施刚;;产业与科技论坛;20170315(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20200304289A1 (en) | 2020-09-24 |
CN111723355A (zh) | 2020-09-29 |
US11777712B2 (en) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723355B (zh) | 数据库中的信息管理 | |
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
CN111881129B (zh) | 用于数据库的索引管理 | |
CN111881099B (zh) | 数据库私有文档共享 | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
CN111796968B (zh) | 受数据库交易保证的提交 | |
CN111754343B (zh) | 隐私保护的死锁解除 | |
CN112053157B (zh) | 灵活交易验证 | |
CN110674128B (zh) | 区块链的链上治理 | |
US11146405B2 (en) | Blinded endorsement for blockchain | |
CN111753002B (zh) | 基于同意的数据管理 | |
CN111881130A (zh) | 区块链存储结构的冲突解决方案 | |
CN111831740B (zh) | 对等体的同步 | |
CN112036876B (zh) | 基于元数据的背书 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
CN112084186B (zh) | 拆分和合并存储 | |
CN111797347A (zh) | 分布在安全通道上的内容 | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
US11082215B2 (en) | Immutable broadcasting queues | |
CN112084187B (zh) | 存储的拆分和合并 | |
CN111859411B (zh) | 用于区块链网络中的区块链的方法和系统 | |
CN111831739B (zh) | 数据库复合背书 | |
CN111951004B (zh) | 用于世界状态完整性验证的方法和系统 | |
CN111951004A (zh) | 数据库世界状态完整性证实 | |
CN111831739A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |