CN117043772A - 区块链数据分离 - Google Patents
区块链数据分离 Download PDFInfo
- Publication number
- CN117043772A CN117043772A CN202280021970.2A CN202280021970A CN117043772A CN 117043772 A CN117043772 A CN 117043772A CN 202280021970 A CN202280021970 A CN 202280021970A CN 117043772 A CN117043772 A CN 117043772A
- Authority
- CN
- China
- Prior art keywords
- key
- node
- blockchain
- block
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000926 separation method Methods 0.000 title description 7
- 230000008520 organization Effects 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims description 60
- 238000003860 storage Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 18
- 230000006854 communication Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 15
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 238000005065 mining Methods 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 6
- 238000013475 authorization Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003416 augmentation Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 102100032467 Transmembrane protease serine 13 Human genes 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000000765 microspectrophotometry Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 235000019799 monosodium phosphate Nutrition 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
区块链网络中的节点可以生成针对第一环的密钥,其中该密钥解锁第一数据集合,限定包括第二组织的第二节点的第二环,导出针对第二数据集合的第二密钥,其中第一密钥和第二密钥访问第二数据集合,并且将第二密钥分发到第二节点。
Description
背景技术
本公开涉及区块链网络上的操作的处理,并且更具体地涉及在区块链网络上的组织之间安全地共享数据。
区块链是密码链接记录的列表,称为区块。区块链可以用于调节对各种数据集合的访问。可以通过加密协议在区块链网络上安全地共享数据。
发明内容
本公开的实施例包括用于区块链网络中的区块链数据分离的方法,系统和计算机程序产品。
本公开的实施例包括一种方法,该方法包括:由第一环中的第一组织的第一节点生成针对第一环的第一密钥,其中第一密钥解锁第一数据集合;由第一节点限定包括第二组织的第二节点的第二环;由节点基于第一密钥来导出针对第二数据集合的第二密钥,其中第一密钥和第二密钥访问第二数据集合;以及向第二节点分发第二密钥。
本公开的附加实施例包括一种系统,系统包括存储器和与存储器通信的处理器,处理器被配置成执行操作,操作包括:由第一环中的第一组织的第一节点生成针对第一环的密钥,其中密钥解锁第一数据集合;由第一节点限定包括第二组织的第二节点的第二环;由节点基于第一密钥来导出针对第二数据集合的第二密钥,其中第一密钥和第二密钥访问第二数据集合;以及向第二节点分发第二密钥。
本公开的另外的实施例包括计算机程序产品,该计算机程序产品包括具有包含在其中的程序指令的计算机可读存储介质,该程序指令由处理器可执行以使得处理器执行方法,该方法包括:由第一环中的第一组织的第一节点生成针对第一环的密钥,由第一节点限定包括第二组织的第二节点的第二环,由节点基于第一密钥来导出针对第二数据集合的第二密钥,其中第一密钥和第二密钥访问第二数据集合,以及向第二节点分发第二密钥。
以上概述并不旨在描述本公开的每个示出的实施例或每个实现。
附图说明
包括在本公开中的附图被并入说明书中并且形成说明书的部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是对某些实施例的说明,并不限制本发明。
图1示出了根据示例实施例的包括数据库的系统的网络图。
图2A示出了根据示例实施例的示例区块链架构配置。
图2B示出了根据示例实施例的区块链事务流。
图3A示出了根据示例实施例的许可网络。
图3B示出了根据示例实施例的另一许可网络。
图3C示出了根据示例性实施例的无许可网络。
图4A示出了根据示例实施例的将新块添加到分布式分类账的过程。
图4B示出了根据示例实施例的新数据块的内容。
图4C示出了根据示例实施例的用于数字内容的区块链。
图4D示出了根据示例性实施例的可以表示区块链中的区块结构的区块。
图5示出了根据本公开的实施例的可以用于实现本文所述的方法,工具和模块以及任何相关功能中的一个或多个的示例计算机系统的高级框图。
图6示出了根据示例实施例的区块链网络中的数据集合的访问环的可视化。
图7示出了根据示例性实施例的用于区块链网络的数据分离过程的流程图。
虽然这里描述的实施例可以进行各种修改和替换形式,但是其细节已经通过附图中的示例示出并且将详细描述。然而,应当理解,所描述的特定实施例不应被认为是限制性的。相反,本发明旨在覆盖落入本公开范围内的所有修改、等同物和替换物。
具体实施方式
本公开的各方面涉及对区块链网络上的操作的处理,并且更具体地涉及在区块链网络上的组织之间安全地共享数据。
容易理解的是,如在此的附图中总体描述和示出的本组件可以以各种各样的不同配置来安排和设计。因此,如附图中所示的方法,装置,非瞬态计算机可读介质和系统中的至少一个的实施例的以下详细描述不旨在限制所要求保护的应用的范围,而仅仅是所选择的实施例的代表。
本说明书通篇描述的本特征、结构或特性可在一个或多个实施例中以任何合适的方式组合或移除。例如,贯穿本说明书的短语“示例实施例”,“一些实施例”或其他类似语言的使用是指结合该实施例描述的特定特征,结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书的短语“示例性实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不必然都指代同一组实施例,并且所描述的特征,结构或特性可以在一个或多个实施例中以任何合适的方式组合或移除。此外,在图中,元素之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。此外,附图中所示的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可以用于发送信息。
此外,虽然在实施例的描述中使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中描述了特定类型的连接、消息和信令,但是本申请不限于特定类型的连接,消息和信令。
在一些实施例中,方法、系统和/或计算机程序产品利用作为分布式存储系统的分散式数据库(例如区块链),其包括彼此通信的多个节点。分散式数据库包括只追加不可变的数据结构,类似于能够在相互不信任的各方之间维护记录的分布式分类账。非受信方在这里被称为对等体或对等节点。每个对等体维护数据库记录的副本,并且在分布式对等体之间没有达成一致的情况下,没有单个对等体可以修改数据库记录。例如,对等体可以执行一致协议以验证区块链存储事务,将存储事务分组为区块,并且在区块上构建散列链。该过程通过对存储事务订单来形成分类账,这对于一致性是必要的。
在各种实施例中,可以使用许可和/或无许可的区块链。在公共或无许可区块链中,任何人都可以参与(例如,保持匿名)而没有特定身份。公共区块链可涉及本地加密,并且使用基于诸如工作证明等各种协议的一致性。另一方面,许可区块链数据库在共享共同目标但彼此不完全信任的一组实体(例如交换资金、商品、信息等的企业)之间提供安全交互。
此外,在一些实施例中,该方法,系统和/或计算机程序产品可以利用块链,该块链操作任意的可编程逻辑,被定制为分散存储方案并且被称为“智能合约”或“链码”。在一些情况下,可以存在用于管理功能和参数的专用链码,其被称为系统链码。该方法、系统和/或计算机程序产品还可以利用作为受信分布式应用的智能合约,该智能合约利用区块链数据库的防篡改属性和节点之间的底层协议,该底层协议被称为背书或背书策略。与该应用相关联的区块链事务可以在被提交给区块链之前被“背书”,而不背书的事务被忽略。
背书策略允许链码以背书所需的对等节点集的形式为事务指定背书者。当客户端将事务发送到背书策略中指定的对等端时,执行事务以验证事务。在验证之后,事务进入订单阶段,其中一致协议用于产生分组为块的背书事务的有序序列。
在一些实施例中,方法、系统和/或计算机程序产品可以利用作为区块链系统的通信实体的节点。“节点”可以在不同类型的多个节点可以在同一物理服务器上运行的意义上执行逻辑功能。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书方(endorser,例如,对等体)提交事务调用并且向订单服务(例如,订单节点)广播事务提议的客户端或提交客户端节点。
另一种类型的节点是对等节点,其可以接收客户端提交的事务,提交该事务维护区块链事务的分类账的状态和副本。对等体还可以具有背书方的角色,尽管这不是必需的。订单服务节点或订单方是为所有节点运行通信服务的节点。在一些情况下,订单服务节点实现递送保证,诸如在提交/确认事务和修改区块链的世界状态时向系统中的对等节点中的每个对等节点广播。世界状态是通常包括控制和设置信息的初始区块链事务的另一名称。
在一些实施例中,该方法、系统和/或计算机程序产品可以利用分类账,该分类账是区块链的所有状态转变的订单的,防篡改的记录。状态转移可以由参与方(例如,客户端节点、订单节点、背书方节点、对等节点等)提交的链码调用(例如,事务)产生。每个参与方(例如,对等节点)可以维护分类账的副本。事务可导以致资产密钥-值对的集合作为一个或多个操作数被提交给分类账,诸如创建、更新、删除等。分类账包括用于存储块中的不可变的顺序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
在一些实施例中,本文描述的方法、系统和/或计算机程序产品可以利用作为事务日志的链,该事务日志被构造为散列链接块,并且每个块包含N个事务的序列,其中N等于或大于1。块报头包括块事务的散列,以及先前块报头的散列。这样,分类账上的所有事务可以被订单并且加密地链接在一起。因此,不破坏散列链接就不可能篡改分类账数据。最近添加的区块链区块的散列表示在其之前到来的链上的每个事务,使得有可能确保所有对等节点处于一致并且可信的状态。链可以被存储在对等节点文件系统(例如,本地、附加存储、云等)上,有效地支持区块链工作负载的仅附加本质。
不可变分类账的当前状态表示包括在链事务日志中的所有密钥的最新值。由于当前状态表示通道已知的最新密钥值,因此有时将其称为世界状态。链码调用对照分类账的当前状态数据执行事务。为了使这些链码交互有效,可以将密钥的最新值存储在状态数据库中。状态数据库可以仅仅是链的事务日志中的索引视图;因此它可以在任何时间从链再生。在对等节点启动时并且在事务被接受之前,可以自动地恢复(或者如果需要则生成)状态数据库。
区块链与传统数据库的不同之处在于,区块链不是中央存储器,而是分散的、不可变的和安全的存储器,其中节点可以共享对存储器中的记录的改变。区块链中固有的并且帮助实现区块链的一些属性包括但不限于不可变分类账、智能合约、安全、隐私、分散、共识、背书、可访问性等,其在本文中进一步描述。
特别地,区块链分类账数据是不可变的,并且提供了一种用于处理区块链网络中的操作的有效方法。此外,在区块链中使用加密提供了安全性并且建立了信任。智能合约管理资产的状态以完成生命周期,因此专用节点可以确保具有匿名要求的区块链操作能够安全地向区块链网络提交操作。示例区块链是许可分散的。因此,每个最终用户可以具有其自己的分类账副本以便访问。多个组织(和对等体)可以被机载在区块链网络上。密钥组织可以用作背书对等体以验证智能合约执行结果、读取集和写入集。换言之,区块链固有特征提供了在区块链网络中处理专用事务的有效实现。
示例性实施例的益处中的一个益处是它们通过实现用于处理区块链网络中的私有事务的方法来改进计算系统的功能。通过在本文描述的区块链系统,计算系统(或计算系统中的处理器)可以通过提供对诸如分布式分类账、对等体、加密技术、MSP、事件处理等能力的访问来利用区块链网络执行用于私人事务处理的功能。此外,区块链使得能够创建商业网络并且使得任何用户或组织能够在板上参与。因此,区块链不仅仅是数据库。区块链具有创建用户和板上/板外组织的网络以协作和执行智能合约形式的服务过程的能力。
同时,传统数据库对于实现示例性实施例可能不是有用的,因为传统数据库没有将所有方带到网络上,传统数据库没有创建可信协作,并且传统数据库没有提供安全并且高效地提交操作的高效方法。传统的数据库不提供防篡改存储并且不提供有保证的验证事务。因此,示例实施例提供了对区块链网络中匿名提交操作的领域/领域中的问题的具体解决方案。
图1示出了根据示例实施例的用于区块链网络中的智能数据注释的逻辑网络图100。
参考图1,示例网络100包括连接到表示文档所有者组织的其它区块链(BC)节点105的节点102。节点102可以连接到具有分类账108的区块链106,分类账108用于存储要在节点105之间共享的数据110。虽然该示例仅详细描述了一个节点102,但是多个这样的节点可以连接到区块链106。应当理解,节点102可以包括附加组件,并且可以移除和/或修改在此描述的一些组件而不脱离在此公开的节点102的范围。节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,处理器104可以是基于半导体的微处理器,中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一硬件设备。尽管描述了单个处理器104,但是应当理解,节点102可以包括多个处理器,多个核等而不脱离节点102系统的范围。分布式文件存储器150可以由处理器节点102和其它BC节点105访问。分布式文件存储器150可以用于存储在分类账108中标识的文档。
节点102还可以包括其上存储有可由处理器104执行的机器可读指令的非瞬态计算机可读介质112。机器可读指令的示例被示为114至118,并且在下面进一步讨论。非瞬态计算机可读介质112的示例可包括包含或存储可执行指令的电子、磁、光或其它物理存储设备。例如,非暂时性计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其它类型的存储设备。
处理器104可以执行机器可读指令114以生成针对隐式数据集合的密钥。如上所述,区块链分类账108可以存储要在节点105之间共享的数据110。区块链106网络可以被配置为使用管理多个参与节点的事务的一个或多个智能合约。链接到注释信息的文档可以存储在分布式文件存储器150中。处理器104可以执行机器可读指令116以生成针对附加隐式数据集合的附加密钥。处理器104可以执行机器可读指令118以分发附加密钥。
图2A示出了根据示例性实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链单元,例如区块链节点组202。区块链节点202可以包括一个或多个对等节点204至210(这四个节点仅通过示例来描述)。这些节点参与许多活动,例如区块链事务添加和验证过程(共识)。一个或多个区块链节点204至210可以基于背书策略来背书事务,并且可以为架构200中的所有区块链节点202提供订单服务。区块链节点204至210可以发起区块链认证,并且设法写入存储在区块链层216中的区块链不可变分类账,其副本也可以存储在支持物理基础设施214上。区块链配置200可以包括链接到应用编程接口(API)222以访问和执行存储的程序/应用代码220(例如,链代码,智能合同等)的一个或多个应用224,存储的程序/应用代码220可以根据参与方所寻求的定制配置来创建,并且可以维护参与方自己的状态,控制参与方自己的资产,以及接收外部信息。这可以被部署为事务,并且通过附加到分布式分类账而安装在所有区块链节点204至210上。
区块链基础或平台212可以包括不同层的区块链数据服务(例如,加密信任服务、虚拟执行环境等),以及支持可以用于接收和存储新事务并且提供对寻求访问数据条目的审计器的访问的物理计算机基础结构214。区块链层216可以暴露提供对虚拟执行环境的访问的接口,该虚拟执行环境是处理程序代码220和使用物理基础设施214所必需的。加密信任服务218可以用于验证诸如资产交换事务之类的事务并且保持信息私有。
图2A的区块链架构配置200可以经由区块链平台212所暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传送数据,并且可以由节点204至210以智能合约和具有受其执行影响的条件或其它代码元素的关联链码的形式来执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或受改变、更新等影响的其它通知。智能合约本身可以用于标识与授权和访问要求以及分类账的使用相关联的规则。例如,文档属性信息226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)来处理。该处理的结果228可以包括多个链接的共享文档。物理基础设施214可以用于取回本文所述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,然后写入到区块链中的区块。智能合约可以包括用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合约代码的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字区块链分类账的状态的(多个)受信修改。由智能合约执行引起的对区块链分类账的(多个)修改可以通过一个或多个一致协议在区块链对等方的分布式网络中自动复制。
智能合约可以以键值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入到区块链中。该代码可以用于在虚拟机或其它计算平台中创建临时数据结构。写入到区块链的数据可以是公共的和/或可以被加密并且保持为私有。由智能合约使用/生成的临时数据由所提供的执行环境保存在存储器中,然后一旦标识出区块链所需的数据就将其删除。
链码可以包括具有附加特征的智能合约的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,其中链码在一致过程期间由链验证器一起执行和验证。链码接收散列并且从区块链取回与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以写入与密码细节相关联的区块链数据。
图2B示出了根据示例实施例的区块链(例如,图1所示的区块链106)的节点之间的区块链事务流250的示例。参考图2B,将给出事务流250的一般描述,随后是更具体的示例。事务流250可以包括由应用客户端节点260发送到第一背书对等节点281的事务提案291。第一背书对等体281可以验证客户端签名并且执行链码功能以启动事务。输出可以包括链码结果,在链码中读取的键/值版本(读取集)集,以及在链码中写入的键/值(写入集)集。如果批准,建议响应292与背书签名一起被发送回客户端260。客户端260将背书组装到事务有效负载293中,并将其广播到订单服务(第四对等)节点284。订单服务节点284然后将订单的事务作为块递送到同一通道上的所有附加对等体281至283。在提交到区块链之前,每个附加对等体281至283可以验证该事务。例如,对等体281至283可以检查背书策略以确保事务提案291中指定的对等体的正确分配已对结果签名并且对照事务有效负载293认证签名。在一些实施例中,对等体中的一个或多个对等体可以是管理器节点。
事务流250的更具体描述可以用更具体的示例来理解。开始时,客户端节点260通过构造请求并且向第一对等节点281发送请求来启动事务提案291,第一对等节点281是背书方。客户端260可以包括利用所支持的软件开发包(SDK)的应用,其利用可用的API来生成事务提案。该提议是调用链码函数的请求,使得数据可以被读取和/或写入分类账(即,写入资产的新密钥值对)。SDK可以用作垫片(shim),以将事务提案封装成适当架构的格式(例如,远程过程调用(RPC)上的协议缓冲器),以产生用于事务提案的唯一签名。
作为响应,背书对等节点281可以验证(a)事务提案已经很好地形成,(b)事务在过去尚未提交(重放攻击保护),(c)签名是有效的,以及(d)提交方(在该示例中为客户端260)被适当地授权在该通道上执行所提议的操作。背书对等节点281可以将事务提案输入作为被调用的链码函数的自变量。然后对照当前状态数据库执行链码以产生包括响应值、读取集和写入集的事务结果。然而,此时不对分类账进行更新。事务结果集连同背书对等节点281的签名一起作为提议响应292被传回客户端260的SDK,客户端260的SDK解析应用要消费的有效负载。
作为响应,客户端260的应用程序检查/验证背书对等体281的签名,并且比较建议响应292以确定建议响应292是否有效。如果链码仅查询分类账,则应用程序将检查查询响应,并且通常不将事务提交给订单服务节点284。如果客户端应用想要将事务提交给订单服务节点284以更新分类账,则该应用确定在提交之前是否已经满足指定的背书策略(即,事务所需的所有对等节点是否背书事务)。这里,客户端260可以只包括事务的多方中的一方。在这种情况下,每个客户端可以具有它们自己的背书节点,并且每个背书节点可能需要背书该事务。该架构使得即使应用选择不检查响应或以其他方式转发未授权的事务,背书策略仍可由对等体实施并且在提交验证阶段被支持。
在成功检查之后,客户端260将背书组装到事务293中,并在事务消息内将事务提案和响应广播到订单节点284。事务293可以包含读取/写入集,背书对等体的签名和通道ID。订单节点284不需要为了执行其操作而检查事务的整个内容。相反,订单节点284可以简单地从网络中的所有通道接收事务,按通道按时间顺序订单它们,并且创建每个通道的事务块。
事务293的块从订单节点284传递到通道上的所有其它对等节点281至283。验证块内的事务294,以确保满足任何背书策略,并且确保读取集变量的分类账状态没有改变,因为读取集由事务执行生成。块中的事务294被标记为有效或无效。此外,在操作295中,每个对等节点281至83将该块附加到通道链,并且对于每个验证事务,将写集合提交到当前状态数据库。事件被发出以通知客户端应用程序事务(调用)293已经被不可改变地附加到链,以及通知事务293是有效的还是无效的。
图3A示出了根据示例实施例的许可的区块链网络300的示例,其特征在于分布式、分散的对等架构。在该示例中,区块链用户302可以向许可区块链304发起事务。在该示例中,事务可以是部署,调用或查询,并且可以通过利用SDK的客户端侧应用,直接通过API等来发布。网络300可以提供对诸如审计器的调节器306的访问。区块链网络运营方308管理成员许可,例如将调节器306注册为“审计器”并且将区块链用户302注册为“客户端”。审计器可以仅限于查询分类账,而客户可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端应用。区块链开发者310可以通过接口将链码直接部署到网络300。为了将来自传统数据源312的凭证包括在链码中,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314中的一个对等节点(参考节点314a至314e中的任何一个节点)连接到许可区块链304。在进行任何事务之前,对等节点314(例如,节点314a)从管理用户角色和许可的证书管理机构316取回用户302的登记和事务证书。在某些情况下,区块链用户必须拥有这些数字证书,以便处理许可的区块链304。同时,可能要求试图利用链码的用户验证他们在传统数据源312上的凭证。为了确认用户302的授权,链码可以通过传统的处理平台318使用到该数据的带外连接。
图3B示出了根据示例实施例的许可的区块链网络320的另一示例,其特征为分布式的、分散的对等架构。在该示例中,区块链用户322可以向许可的区块链324提交事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用,直接通过API等来发布。网络可以提供对诸如审计器的调节器326的访问。区块链网络运营商328管理成员许可,例如将调节器326注册为“审计器”并将区块链用户322注册为“客户端”。审计器可被限制为仅查询分类账,而客户端可以被授权部署,调用和查询某些类型的链码。
区块链开发者330写入链码和客户端应用。区块链开发者330可以通过接口将链码直接部署到网络。为了将来自传统数据源332的凭证包括在链码中,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334(指节点334a至334e中的任何一个节点)连接到网络。在进行任何事务之前,对等节点334(例如,节点334a)从证书权限机构336取回用户的登记和事务证书。在某些情况下,区块链用户必须拥有这些数字证书,以便处理许可的区块链324。同时,可能要求试图利用链码的用户验证他们在传统数据源332上的凭证。为了确认用户的授权,链码可以通过传统的处理平台338使用到该数据的带外连接。
在本公开的一些实施例中,这里的区块链可以是无许可区块链。与要求许可加入的许可区块链(例如,区块链304和324)相比,任何人都可以加入无许可区块链。例如,为了加入无许可区块链,用户可以创建个人地址并且通过提交事务开始与网络交互,并且因此向分类账添加条目。此外,所有各方都具有在系统上运行节点并采用挖掘协议来帮助验证事务的选择。
图3C示出了根据示例实施例的具有由包括多个节点354的无许可区块链352处理的事务的网络350。发送方356希望经由无许可区块链352向接收方358发送支付或某一其它形式的价值(例如,契约、医疗记录、合同、货物、服务或可封装在数字记录中的任何其它资产)。在一些实施例中,发送方设备356和接收方设备358中的每个设备可以具有提供用户界面控制和事务参数显示的数字钱包(与区块链352相关联)。作为响应,事务通过区块链352广播到节点354(参考节点354a至354e中的任何一个节点)。
根据区块链352的网络参数,节点使用验证模块360基于由无许可区块链352创建者建立的规则(其可以是预限定的或动态分配的)来验证事务。例如,这可以包括验证所涉及的各方的身份等。可以立即验证该事务,或者可以将其放置在具有其它事务的队列中,并且节点354基于网络规则集来确定该事务是否有效。
在结构362中,验证事务被形成为块并且用锁(散列)密封。该过程可以通过在节点354中挖掘节点来执行。挖掘节点可利用专门用于挖掘和创建无许可区块链352的区块的附加软件。每个块可以通过使用网络350同意的算法创建的散列(例如,256比特数等)来标识。每个块可以包括报头,指向链中前一块报头的散列的指针或引用,以及验证事务组。对先前块的散列的引用与块的安全独立链的创建相关联。
在可以将块添加到块链352之前,必须对块进行验证。对无许可区块链352的验证可以包括工作证明(PoW),它是对从区块报头导出的谜题的解决方案。尽管未在图3C的示例中示出,但用于验证块的另一过程是标桩(stake)证明。与工作证明不同,在工作证明中,算法利用标桩证明奖励解决数学问题的挖掘者,新块的创建者根据其财富以确定性方式被选择,也被限定为“标桩”。然后,由所选择/选定的节点执行类似的证明。
利用挖掘模块364,节点试图通过对一个变量进行递增改变来求解该块,直到该解满足网络范围的目标。这产生了功率,从而确保了正确的答案。换言之,潜在的解决方案必须证明在解决问题时消耗了计算资源。在一些类型的无许可区块链中,挖掘者可以被奖励以正确地挖掘区块的价值(例如硬币等)。
这里,PoW过程与块的链接一起使得对块链352的修改非常困难,因为攻击者必须修改所有后续块以便接受对一个块的修改。此外,当挖掘新块时,修改块的难度增加,并且后续块的数目增加。利用分发模块366,成功验证的块通过无许可区块链352分发,并且所有节点354将该块添加到作为无许可区块链352的可审计分类账的多数链中。此外,由发送方356提交的事务中的值被存入或以其它方式传送到接收方设备358的数字钱包。
图4A示出了根据示例实施例的执行将新块添加到分布式分类账420的过程400的区块链系统,而图4B示出根据示例实施例的用于区块链的新数据块结构430的内容。新数据块430可以包含文档链接数据。
参考图4A,在过程400中,客户端(未示出)可以向区块链节点411、412和/或413提交事务。客户端可以是从任何源接收的指令,以在区块链422上执行活动。作为示例,客户端可以是代表诸如设备、个人或实体等请求者来为区块链422提议事务的应用程序。多个区块链对等体(例如,区块链节点411、412和413)可以维护区块链网络的状态和分布式分类账420的副本。不同类型的区块链节点/对类型的区块链节点/对等体,包括对模拟和背书由客户端提出的事务的对等体进行背书,以及对验证背书,验证事务以及向分布式分类账420提交事务的对等体进行提交。在该示例中,区块链节点411、412和413中的每个节点都可以执行背书方节点、提交者节点或两者的角色。
分布式分类账420包括存储块(例如,数据块423至430)中的不可变的有序记录的区块链,以及维护区块链422的当前状态的状态数据库424(当前世界状态)。每个通道可以存在一个分布式分类账420,并且每个对等体为其成员的每个通道维护其自己的分布式分类账420的副本。区块链422是事务日志,被构造为散列链接的区块,其中每个区块包含N个事务的序列。块可以包括诸如图4B所示的各种组件。块(例如,数据块423至430)的链接(由图4A中的箭头示出)可以通过在当前块的块报头内添加先前块报头的散列来生成。这样,区块链422上的所有事务被订单并且加密地链接在一起,以防止篡改区块链数据而不破坏散列链接。此外,由于链接,区块链422中的最新区块(例如,数据区块430)表示在其之前到来的每个事务。区块链422可存储在支持仅追加区块链工作负载的对等文件系统(本地或附加存储)上。
区块链422和分布式分类账420的当前状态可以存储在状态数据库424中。这里,当前状态数据表示区块链422的链事务日志中包括的所有密钥的最新值。链码调用对照状态数据库424中的当前状态执行事务。为了使这些链码交互极其有效,将所有密钥的最新值存储在状态数据库424中。状态数据库424可以包括区块链422的事务日志中的索引视图。因此它可以在任何时间从链再生。在接受事务之前,状态数据库424可以在对等端启动时自动恢复(或如果需要生成)。
背书节点(411、412和/或413)从客户端接收事务并且基于仿真结果来背书该事务。背书节点持有模拟事务提案的智能合约。当背书节点背书事务时,该背书节点创建事务背书,该事务背书是从该背书节点到该客户应用程序的表示该模拟事务的背书的签名响应。背书事务的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等体必须背书事务。”不同的通道可以具有不同的背书策略。背书的事务由客户应用程序转发到订单服务410。
订单服务410接受背书的事务,将它们订单为块,并且将块传递给提交对等体。例如,当已经达到事务阈值,定时器超时或其它条件时,订单服务410可以启动新的块。在图4A的示例中,区块链节点412是已接收到用于存储在区块链422上的新数据区块430的提交对等体。区块链422中的第一区块423可以被称为起源区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
订单服务410可以由订单方簇组成。订单服务410不处理事务,智能合约或维护共享分类账。相反,定购服务410可以接受背书的事务并且指定将那些事务提交给分布式分类账420的顺序。可以设计区块链网络的架构,使得“订单”的特定实现(例如,Solo、Kafka、Byzantine容错等)成为可插入组件。
事务以一致的顺序写入分布式分类账420。建立事务的顺序以确保当状态数据库424的更新被提交给网络时它们是有效的。与通过解决密码难题或挖掘来进行订单的密码货币区块链系统(例如,Bitcoin等)不同,在该示例中,分布式分类账420的各方可以选择最适合该网络的订单机制。
当订单服务410初始化新数据块430时,新数据块430可以被广播到提交对等体(例如,区块链节点411、412和413)。作为响应,每个提交对等体通过检查以确保读取集和写入集仍然与状态数据库424中的当前世界状态相匹配来验证新数据块430中的事务。具体地,提交对等体可以确定当背书方模拟事务时存在的读取数据是否与状态数据库424中的当前世界状态相同。当提交对等体验证事务时,将事务写入分布式分类账420上的区块链422,并且用来自读取-写入集的写入数据来更新状态数据库424。如果事务失败,即,如果提交对等体发现读取-写入集与状态数据库424中的当前世界状态不匹配,则订单到块中的事务仍可以包括在该块中,但它可以被标记为无效,并且状态数据库424可不被更新。
参照图4B,存储在分布式分类账420的区块链422上的新数据区块430(也称为数据区块)可包括多个数据段,诸如区块报头440,区块数据450和区块元数据460。应当理解,各种所描述的块及其内容,诸如新数据块430及其内容。图4B所示的仅仅是示例,并不意味着限制示例实施例的范围。新数据块430可以在数据块450内存储N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息。新数据块430还可以包括到区块报头440内的先前块(例如,在图4A中的块链422上)的链接。特别地,块报头440可以包括先前块报头的散列。块报头440还可包括唯一块号(例如,数据块423至430),区新数据块430的块数据450的散列等。新数据块430的块号可以是唯一的,并且以各种顺序分配,例如从0开始的递增/顺序。
块数据450可以存储记录在新数据块430内的每个事务的事务信息。例如,事务数据可以包括事务类型、版本、时间戳、分布式分类账420的通道ID、事务ID、时期、有效负载可见度、链码路径(部署事务)、链码名称、链码版本、输入(链码和函数),诸如公钥和证书的客户端(创建者)标识、客户端的签名、背书方的身份、背书方签名、提议散列、链码事件、响应状态、名称空间、读取集(由事务读取的密钥和版本的列表等),写入集(密钥和值的列表等)、开始密钥、结束密钥、密钥列表、默克尔树查询概要等中的一个或多个。可以为N个事务中的每个事务存储事务数据。
在一些实施例中,块数据450还可以存储新数据462,新数据462将附加信息添加到块链422中的散列链接的块链。附加信息包括在此描述或描绘的一个或多个步骤,特征,过程和/或动作。因此,新数据462可以存储在分布式分类账420上的不可变块日志中。存储这种新数据462的一些好处反映在本文公开和描述的各种实施例中。尽管在图4B中,新数据462被描绘在块数据450中,但是它也可以位于块报头440或块元数据460中。新数据462可包括用于链接组织内的文档的文档合成键。
块元数据460可以存储多个元数据字段(例如,作为字节阵列等)。元数据字段可以包括关于块创建的签名,对最后配置块的引用,标识该块内的有效和无效事务的事务过滤器,对该块订单的订单服务的最后保留的偏移量等。签名,最后配置块和订单器元数据可以由订单服务410添加。同时,块的通信者(诸如,块链节点412)可以基于背书策略,读取/写入集的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于块数据450中的事务数目的字节数组和标识事务是否有效/无效的验证码。
图4C示出了根据本文所述的一些实施例的用于数字内容的区块链470。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其它形式的数字内容。区块链的不可变的,仅附加的方面用作保护数字内容的完整性,有效性和真实性的安全措施,使其适用于适用许可性规则的法律程序或考虑证据的其它设置,或数字信息的呈现和使用以其它方式受到关注的其它设置。在这种情况下,数字内容可以被称为数字证据。
区块链可以各种方式形成。在一些实施例中,数字内容可以包括在区块链本身中并从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储参考信息(例如,报头、值等)的散列值。然后可以一起加密散列值和相关联的数字内容。因此,可通过对区块链中的每个区块进行解密来访问每个区块的数字内容,并且每个区块的散列值可用作引用先前区块的基础。这可以说明如下:
在一些实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储没有任何数字内容的每个区块的内容的加密散列。数字内容可以与原始文件的散列值相关联地存储在另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域或者甚至是单独的关系数据库。每个块的数字内容可以通过获得或查询感兴趣的块的散列值,然后查找在存储区域中具有与实际数字内容对应地存储的值而被引用或访问。该操作可以例如由数据库闸管理者(“gatekeeper”)执行。这可以说明如下:
在图4C的示例实施例中,区块链470包括以有序序列密码链接的多个区块4781,4782,...478N,其中N≥1。用于链接块4781,4782,...478N的加密可以是任何多个键控或非键控散列函数。在一些实施例中,块4781,4782,...478N经受散列函数,该散列函数从基于块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种散列函数的示例包括但不限于SHA类型(SHA代表安全散列算法)算法,默克尔-damgard算法,HAIFA算法,默克尔树算法,基于随机数的算法,以及非防冲突伪随机函数(PRF)。在另一实施例中,块4781,4782,...,478N可以由不同于散列函数的函数加密地链接。出于说明的目的,参考散列函数(例如SHA-2)进行以下描述。
区块链中的区块4781,4782,...,478N中的每个块包括报头、文件版本和值。作为区块链中散列的结果,报头和值对于每个块是不同的。在一些实施例中,该值可以包括在报头中。如下面更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
块链中的第一块4781被称为起源块,并且包括报头4721,原始文件4741和初始值4761。用于起源块并且实际上在所有后续块中的散列方案可以变化。例如,可以一次一起散列第一块4781中的所有信息,或者可以单独散列第一块4781中的信息的部分,然后可以执行单独散列部分的散列。
第二报头4721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、现时、根信息、难度等级、一致性协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件4741和/或区块链相关联的其它信息。第一报头472可以自动地(例如,由区块链网络管理软件)或由区块链参与方手动地生成。与区块链中的其它区块4782到478N中的报头不同,生成区块4781中的报头4721不引用先前区块,仅因为不存在先前区块。
起源块中的原始文件4741例如可以是在被包括在块链中之前由具有或不具有处理的设备捕获的数据。通过系统的接口从设备、媒体源或节点接收原始文件4741。原始文件4741与元数据相关联,元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以被包括在与原始文件4741相关联的第一块4781中。
起源块中的值4761是基于原始文件4741的一个或多个唯一属性生成的初始值。在一些实施例中,一个或多个唯一属性可以包括原始文件4741的散列值,针对原始文件4741的元数据以及与该文件相关联的其它信息。在一个实现中,初始值4761可以基于以下唯一属性:
1)SHA-2为原始文件计算的散列值
2)始发设备ID
3)针对原始文件的开始时间戳
4)针对原始文件的初始存储位置
5)当前控制原始文件和相关联元数据的软件的区块链网络成员ID
区块链中的其它区块4782到478N也具有报头、文件和值。然而,与第一块的报头4721不同,其它块中的报头4722到472N中的每个报头包括前一个块的散列值。前一个块的散列值可以仅仅是前一个块的报头的散列值,或者可以是整个前一个块的散列值。通过在剩余块中的每个剩余块包括在前块的散列值,可以在逐块的基础上执行从第N块回到起源块(以及相关联的原始文件)的跟踪,如箭头480所示,以建立可审计并且不可改变的规则链。
其它块中的报头4722到472N中的每个报头还可以包括其它信息,例如,版本号、时间戳、随机数、根信息、难度等级、一致协议、和/或与相应文件和/或通常的块链相关联的其它参数或信息。
其它块中的文件4742到474N可以等于原始文件,或者可以是起源块中的原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可以在块与块之间变化。该处理可以涉及例如对在前块中的文件的任何修改,诸如重新编写信息或以其他方式改变文件的内容,从文件中提取信息或向文件添加或附加信息。
附加地或者备选地,该处理可以仅涉及从先前块复制文件、改变文件的存储位置、分析来自一个或多个先前块的文件、将文件从一个存储或存储器位置移动到另一个、或者执行相对于块链的文件和/或其相关联的元数据的动作。涉及分析文件的过程可以包括例如附加、包括或以其他方式关联各种分析、统计或与文件相关联的其他信息。
在其它块中的其它块4762到476N的每个块中的值是唯一值,并且作为所执行的处理的结果都是不同的。例如,任何一个块中的值对应于先前块中的值的更新版本。更新反映在值被分配到的块的散列中。因此,块的值提供对在块中执行什么处理的指示,并且还允许通过块链回溯到原始文件。这种跟踪在整个区块链中确认文件的尾链。
例如,考虑这样的情况,其中为了保护文件中示出的人的身、在先前块中的文件的部分被重新编写、遮挡或像素化。在这种情况下,包括已修订文件的块可包括与已修订文件相关联的元数据,例如,如何执行增补版、谁执行了增补版、(多个)增补版出现的时间戳等。元数据可以被散列以形成值。因为该块的元数据与被散列以形成先前块中的值的信息不同,所以这些值彼此不同并且可以在解密时恢复。
在一些实施例中,当以下任何一个或多个出现时,可以更新先前块的值(例如,计算新的散列值)以形成当前块的值。在该示例性实施例中,新散列值可以通过对下面提到的信息的全部或部分进行散列来计算。
a)如果文件已被以任何方式处理(例如,如果文件被重新编写、复制、更改、访问或采取了一些其他动作),则新SHA-2计算散列值
b)针对文件的新存储位置
c)标识的、与文件相关联的新元数据
d)将文件的访问或控制从一个区块链参与方转移到另一区块链参与方
图4D示出了根据一些实施例的可以表示区块链(例如,470)中的区块的结构的区块490。块(例如,块i)包含报头472i、文件474i和值476i。
报头472i包括先前块blocki-1的散列值和附加参考信息,该附加参考信息例如可以是这里讨论的任何类型的信息(例如,包括参考,特性,参数等的报头信息)。当然,除了起源块之外,所有块参考先前块的散列。先前块的散列值可以仅仅是先前块中的报头的散列或者先前块中的包括文件和元数据的信息的全部或部分的散列。
文件474i包括多个数据,诸如顺序的数据1、数据2、数据3、数据N。利用描述与数据相关联的内容和/或特征的元数据1、元数据2、元数据3、元数据N而被标记的数据。例如,针对每个数据的元数据可以包括指示针对该数据的时间戳的信息、处理该数据、指示该数据中所描绘的人或其他内容的关键字、和/或可以有助于建立作为整体的文件的有效性和内容的其他特征,并且特别是其使用数字证据,例如,如结合以下讨论的实施例所描述的。除了元数据之外,每个数据可以用参考REF 1,REF 2,……,REF N标记到先前的数据,以防止篡改、文件中的间隙、以及通过文件的顺序参考。
一旦元数据被分配给数据(例如,通过智能合约),元数据不能被改变而没有散列改变,这可以容易地被标识用于无效。因此,元数据创建可以由区块链中的参与方访问以供使用的信息的数据日志。
值476i是基于先前讨论的任何类型的信息计算的散列值或其它值。例如,对于任何给定的块,块i,可以更新该块的值以反映对该块执行的处理,例如,新的散列值、新的存储位置、相关联的文件的新的元数据、控制或访问的传送、标识符、或要添加的其它动作或信息。虽然每个块中的值被示为与文件和报头的数据的元数据分开,但是在另一实施例中,该值可以部分地或全部地基于该元数据。
一旦形成块490,在任何时间点,可以通过向块链查询跨块的值的事务历史来获得文件的不可变监管链。该查询或跟踪过程可以从解密当前最包含的块(例如,最后(第N个)块)的值开始,然后继续解密其他块的值直到到达起源块并且恢复原始文件。解密还可以涉及在每个块处解密报头和文件以及相关联的元数据。
基于在每个块中发生的加密类型来执行解密。这可以包括使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与方或处理器可以使用预定算法产生公钥和私钥对。公钥和私钥通过某种数学关系彼此相关联。公钥可以被公开分发以用作从其他用户接收消息的地址,例如IP地址或归属地址。私有密钥被保密并且用于对发送到其它区块链参与方的消息进行数字签名。签名被包括在消息中,使得接收方可以使用发送方的公钥来验证。这样,接收方可以确信只有发送方可以发送该消息。
生成密钥对可以类似于在区块链上创建账户,但实际上不必在任何地方注册。而且,在区块链上执行的每个事务由发送方使用其私钥进行数字签名。该签名确保只有账户的所有者可以跟踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
如在此更详细地讨论的,预期在此描述的方法的一些实施例的一些或所有操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
图5示出了根据本公开的实施例的示例计算机系统501的高级框图,该示例计算机系统501可以用于实现本文所述的一个或多个方法,工具和模块以及任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在一些实施例中,计算机系统501的主要组件可以包括一个或多个CPU502、存储器子系统504、终端接口512、存储接口516、I/O(输入/输出)设备接口514和网络接口518,所有这些可以直接或间接地通信耦合,用于经由存储器总线503、I/O总线508和I/O总线接口单元510的组件间通信。
计算机系统501可以包含一个或多个通用可编程中央处理单元(CPU)502A、502B、502C和502D,这里统称为CPU 502。在一些实施例中,计算机系统501可以包含相对大的系统中典型的多个处理器;然而,在其它实施例中,计算机系统501也可以是单个CPU系统。每个CPU502可以执行存储在存储器子系统504中的指令,并且可以包括一级或多级板载高速缓存。
系统存储器504可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)522或高速缓存524。计算机系统501还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统526可被提供用于从诸如硬盘驱动器的不可移动,非易失性磁介质读取和向其写入。虽然未示出,但是可以提供用于对可移动、非易失性磁盘(例如,“软盘”)进行读写的磁盘驱动器,或者用于对诸如CD-ROM,DVD-ROM或其它光学介质的可移动,非易失性光盘进行读写的光盘驱动器。此外,存储器504可以包括闪存,例如闪存棒驱动器或闪存驱动器。存储器设备可以通过一个或多个数据介质接口连接到存储器总线503。存储器504可以包括具有(例如,至少一个)程序模块集的至少一个程序产品,这些程序模块被配置成执行各种实施例的功能。
各自具有至少程序模块集530的一个或多个程序/实用程序528可以存储在存储器504中。程序/实用程序528可以包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其它程序模块和程序数据。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每个可以包括联网环境的实现。程序528和/或程序模块530通常执行各种实施例的功能或方法。
虽然存储器总线503在图5中被示为在CPU 502、存储器子系统504和I/O总线接口510之间提供直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,它们可以以任何各种形式来布置,诸如分层、星形或web配置中的点对点链路、多个分层总线、并行和冗余路径、或任何其它适当类型的配置。此外,虽然I/O总线接口510和I/O总线508被示为单个相应的单元,但是在一些实施例中,计算机系统501可以包含多个I/O总线接口单元510、多个I/O总线508或两者。此外,虽然示出了多个I/O接口单元,其将I/O总线508与运行到各种I/O设备的各种通信路径分开,但是在其他实施例中,一些或所有I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统501可以是多用户大型机计算机系统、单用户系统、或服务器计算机或具有很少或不具有直接用户接口但从其它计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统501可以实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
注意,图5旨在描绘示例性计算机系统501的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图5所示的更大或更小的复杂度,可以存在不同于图5所示的组件或除图5所示的组件之外的组件,并且这些组件的数目、类型和配置可以变化。
如在此更详细地讨论的,预期本文描述的方法的一些实施例的一些或所有操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
本发明可以是处于任何可能的集成技术细节等级的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或介质)。
计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码的设备、诸如其上记录有指令的槽中的穿孔卡片或凸起结构,以及前述的任何适当组合。本文使用的计算机可读存储介质不能被解释为瞬时信号本身,例如无线电波或其它自由传播的电磁波,通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲),或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机,网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、用于集成电路的配置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括诸如Smalltalk,C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包,部分在用户的计算机上执行,部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者连接到外部计算机(例如,通过使用互联网服务提供方的互联网)。在一些实施例中,包括例如可编程逻辑电路,现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
这里参考根据本发明实施例的方法,装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机的处理器或其他可编程数据处理设备以产生机器,使得经由计算机的处理器或其他可编程数据处理设备执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机,其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
图中的流程图和框图示出了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些可替换的实现方式中,方框中指出的功能可以不按照图中指出的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤完成,以部分或全部时间上重叠的方式并发地,基本上并发地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
已出于说明的目的呈现了对本公开的各种实施例的描述,但不旨在穷举或限于所公开的实施例。许多修改和变化对于本领域的普通技术人员将是清楚而不脱离所描述的实施例的范围。选择本文中使用的术语以最佳地解释实施例的原理,实际应用或对市场中存在的技术的技术改进,或使所属领域的技术人员能够理解本文中所揭示的实施例。
虽然已经根据特定实施例描述了本公开,但是预期其变更和修改对于本领域技术人员将变得清楚。因此,旨在将所附权利要求解释为涵盖落入本公开范围内的所有这样的改变和修改。
区块链网络是计算繁忙的环境,具有消耗资源并且由于网络间通信和复制而具有繁重的IO(输入/输出)需求的许多过程(例如,智能合约、加密、验证等)。
区块链网络中的隐私当前是通过将数据的散列放置在区块中并将散列预映像散布在带外(例如,在区块链网络之外)到合格节点来实现的。散布可以在背书期间或在提交块之前进行。限定集合的事务可以包含背书策略和散布策略。然而,在这种情况下获得私密性存在若干缺点。该系统在高扰动(churn)下不缩放。在计算时不存在或不可到达的节点需要在提交时拉取数据,这减慢了数据处理。在足够高的网络扰动下,私人数据甚至可能丢失。该方法还假定全网状连接。在某些情况下,某组织的某些对等体可能无法从各对等体到达,因此它们将依赖于在某些情况下通过广域网(WAN)从远程组织拉取数据。
在一些实施例中,提出了将私有数据集合与加密相结合的混合数据分离机制。该方法利用私有数据集合和来自分层密钥推导的对称加密的混合方法来实现区块链中的数据分离。在一些实施例中,使用隐式集合来限定对称加密密钥,然后由拥有这些加密密钥的各方来限定分层集合(本文中的环)。在示例中,用于密钥导出的机制实质上是在具有相应顺序密钥的顺序环集合中的各方之间的新颖的密钥交换协议。序列中的每个新密钥从创建分层密钥结构的先前密钥生成。例如,新密钥的谱系中的所有先前密钥可访问由新密钥加密的数据,但新密钥可不访问由先前密钥加密的数据。
数据集合可以是选择数据分区、文件组、条目列表、一个或多个文档或另一形式的数据。在一些实施例中,数据集合可以是组织专用数据集合。例如,第一组织可以具有与第二组织共享的数据集合、或者第一组织可以创建密钥,使得第二组织可以与第一组织共享数据集合。在一些实施例中,本文描述的功能由组织的节点执行。应当理解,描述为由“节点”执行的功能可以由属于该组织的多个节点执行,或者可以由该组织的单个节点执行。
在一些实施例中,密钥可以用于加密数据、解密数据或签署事务。密钥对数据进行加密,对数据进行解密和/或对事务进行签名的能力在本文中将被统称为访问数据集合。例如,在声明第一密钥和第二密钥可以用于访问第二数据集合的情况下,第一密钥或第二密钥可以用于加密针对第二数据集合的数据、解密针对第二数据集合的数据,和/或签署与第二数据集合相关的事务,如本文所描述的。
现在参考图6,示出了根据本公开的实施例的区块链网络中的数据集合的访问环的可视化600。在一些实施例中,对应于每个环的键给出对不同等级的数据或分层的隐式数据集合的访问。
隐式集合是对等体中预限定的数据的集合,对应于组织的私有数据集合。在使用或访问隐式集合之前,不需要明确限定集合。例如,隐式集合可以是“收入文档”。代替每当文档改变或被添加时限定新的集合,“收入文档”的类可以被隐式地限定,从而每当集合”收入文档有改变时不需要新的访问。分层隐式集合是单调访问结构,其限定了各种可能大小的各方子集的加密密钥。分级隐式集合具有基于授权等级的访问控制,其中审计器可以访问每个隐式集合的每个等级,并且可以给予对其它组织的不同访问。
在图6的示例中,环605中的组织620具有对称加密第一密钥(K1)(未示出),其在组织1的某对等体上生成针对该组织的隐式集合。例如,组织620的节点或管理方生成针对第一隐式集合的第一密钥。在一些实施例中,只有第一组织的节点可以访问K1,因此只有第一组织的节点可以访问数据。
在一些实施例中,组织620的管理方限定环606(例如,第二环)并且基于密钥K1导出针对第二隐式集合的对称加密密钥K2(未示出)。在一些实施例中,环606的限定可以包括标识组织和该组织的隐式数据集合。密钥K2被分配给组织625。在一些实施例中,限定环意味着指定将由密钥访问(例如,加密、解密或签名)的数据的隐式集合,并且确定哪些组织可以访问该数据。在一些实施例中,密钥K1和密钥K2两者都提供对第二隐式数据集合的访问。因此,组织620可访问具有从第一环的密钥K1导出的密钥的所有后续环(例如,环606至608)。在该示例中,只有组织620可访问K1,并且只有组织625和620可访问K2。
在一些实施例中,限定环607(例如,第三环),并且导出密钥K3(未示出)以提供对第三隐式数据集合的访问。在一些实施例中,第三密钥由第一组织的节点或第二组织的节点分发到第三组织的节点。在一些实施例中,密钥K3可以由组织620或625导出并且提供给组织630。在一些实施例中,密钥K1、密钥K2和密钥K3提供对第三隐式数据集合的访问。因此,访问密钥K1或K2的任何组织都能够访问对应于密钥K3的数据。
在一些实施例中,环608(例如,环四)被初始化,并且密钥K4(未示出)从密钥K3导出,以提供对第四隐式数据集合的访问。在一些实施例中,密钥K4可以由组织620、625和/或630导出并且提供给组织635。在一些实施例中,密钥K1、密钥K2、密钥K3和密钥K4提供对第四隐式数据集合的访问。因此,访问密钥K1、K2和/或K3的任何组织都能够访问对应于密钥K4的数据。
在一些实施例中,最终环(例如,层次结构中最后可能的环)的隐式数据集合可以由区块链网络上的任何组织访问,并且能够由作为最终密钥的前身的任何密钥访问。在一些实施例中,最后一个环可由区块链网络上的所有组织访问并且具有单个集合,其目的是加密来自订单节点的集合中的信息。
在一些实施例中,密钥K1可以用于为其它隐式数据集合生成其它环分层结构。例如,组织620可以使用密钥K1来为环609生成密钥K2B。在该示例中,K2B是新密钥,其将被用于加密第五隐式数据集并且将密钥K2B提供给除了625之外的另一组织,诸如组织630。同样,密钥K2、K3和K4不能访问由密钥K2B加密的数据,但是密钥K1可以访问由密钥K2B加密的数据。在一些实施例中,环的分层结构也可以从环609导出,类似于从上述环606导出的后续环(环607和609)。
现在参考图7,示出了根据本公开的实施例的用于区块链网络的数据分离的过程700的流程图。
过程700开始于操作702,其中为隐式的数据集合或第一环生成密钥。例如,第一组织的节点为该组织的隐式数据集合生成对称加密密钥K1。
过程700继续到操作704,其中基于第一密钥导出针对附加组织的附加数据集合的附加密钥。例如,第一组织基于第一密钥为与第二组织相关联的第二数据集合生成第二密钥。在更详细的示例中,第一组织的管理方使用示例公式来限定(例如,初始化)第二环:
i∈{2,...n}:K1i=PRFK1(i)2(equation 1)
在示例等式1中,i是附加组织(例如,组织{2,...n}),K代表密钥(例如,K1是用于具有第一组织的第一环的密钥并且K1i是用于第二环中的第二组织的密钥),并且PRF是伪随机函数。虽然针对i的示例是相当简单的,但是i可以从各种各样的数字中选择,并且仅仅是用PRF指定用于生成密钥的每个组织的方式。例如,它可以是组织的指定代码(例如,2),用于组织的随机数、或序列号。在一些实施例中,i在生成密钥之后在区块链分类账上可用。在一些实施例中,每个密钥能够解密所有后续密钥的所有隐式数据集合。例如,K1可以用于访问用K1i加密的数据。
在操作706中,将附加密钥分发到附加组织。例如,第一组织向第二组织提供第二密钥。
操作704至706可以对多个组织重复多次。
根据以上示例,可以重复操作704以导出针对第三环中的第三隐式数据集合的第三密钥,其中第三密钥从第二密钥(其基于第一密钥)而被导出。根据上面的例子,密钥可以由第二组织或第一组织导出。根据上面的等式1,来自第二环的每方(例如,第一组织和组织i)具有K1i,其中j是下一方(例如,i,j∈{2,...n})。来自组织i(对于i<j,按照环)的管理方导出针对第三组织(例如,组织j)的集合的密钥(例如,第三密钥)以被限定为:K1ij=PRFK1i(j)。
密钥K1ij与组织j的隐式数据集合相关联。虽然K1ij与组织j的隐式集合相关联,但是组织i和第一组织都可以计算密钥,因为它们具有K1ij从其导出的先前密钥(例如,K1,K1i)。类似地,K1,K1j和K1ij可以用于计算从K1ij导出的任何密钥。
Claims (20)
1.一种系统,包括:
存储器;以及
处理器,与所述存储器通信,所述处理器被配置为执行过程,所述过程包括:
由第一环中的第一组织的第一节点生成针对所述第一环的第一密钥,其中所述第一密钥解锁第一数据集合;
由所述第一节点限定包括第二组织的第二节点的第二环;
由所述第一节点基于所述第一密钥来导出针对第二数据集合的第二密钥,其中所述第一密钥和所述第二密钥访问所述第二数据集合;以及
向所述第二节点分发所述第二密钥。
2.根据权利要求1所述的系统,还包括:
限定第三环,包括第三组织的第三节点;
基于所述第二密钥来导出针对第三数据集合的第三密钥;以及
向所述第三节点分发所述第三密钥。
3.根据权利要求2所述的系统,其中所述限定第三节点和导出所述第三密钥是由所述第二节点执行的。
4.根据权利要求2所述的系统,其中所述限定第三节点和导出所述第三密钥是由所述第一节点执行的。
5.根据权利要求2所述的系统,其中所述第三密钥、所述第一密钥和所述第二密钥访问所述第三数据集合。
6.根据权利要求2所述的系统,还包括:
限定包括附加组织的附加节点的附加环;
基于所述第三密钥导出针对附加数据集合的附加密钥;以及
向所述附加节点分发所述附加密钥。
7.根据权利要求6所述的系统,其中所述限定附加环、所述导出所述附加密钥以及所述分发所述附加密钥针对多个组织的多个节点而被多次执行。
8.一种方法,包括:
由第一环中的第一组织的第一节点生成针对所述第一环的第一密钥,其中所述第一密钥解锁第一数据集合;
由所述第一节点限定包括第二组织的第二节点的第二环;
由所述第一节点基于所述第一密钥来导出针对第二数据集合的第二密钥,其中所述第一密钥和所述第二密钥访问所述第二数据集合;以及
向所述第二节点分发所述第二密钥。
9.根据权利要求8所述的方法,还包括:
限定第三环,包括第三组织的第三节点;
基于所述第二密钥来导出针对第三数据集合的第三密钥;以及
向所述第三节点分发所述第三密钥。
10.根据权利要求9所述的方法,其中所述限定第三节点和导出所述第三密钥是由所述第二节点执行的。
11.根据权利要求9所述的方法,其中所述限定第三节点和导出所述第三密钥是由所述第一节点执行的。
12.根据权利要求9所述的方法,其中所述第三密钥、所述第一密钥和所述第二密钥访问所述第三数据集合。
13.根据权利要求9所述的方法,还包括:
限定包括附加组织的附加节点的附加环;
基于所述第三密钥来导出针对附加数据集合的附加密钥;以及
向所述附加节点分发所述附加密钥。
14.根据权利要求13所述的方法,其中所述限定附加环,所述导出所述附加密钥以及所述分发所述附加密钥针对多个组织的多个节点而被多次执行。
15.一种包括计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有体现在其中的程序指令,所述程序指令由处理器可执行以使所述处理器执行方法,所述方法包括:
由第一环中的第一组织的第一节点生成针对所述第一环的第一密钥,其中所述第一密钥解锁第一数据集合;
由所述第一节点限定包括第二组织的第二节点的第二环;
由所述第一节点基于所述第一密钥来导出针对第二数据集合的第二密钥,其中所述第一密钥和所述第二密钥访问所述第二数据集合;以及
向所述第二节点分发所述第二密钥。
16.根据权利要求15所述的计算机程序产品,还包括:
限定第三环,包括第三组织的第三节点;
基于所述第二密钥来导出针对第三数据集合的第三密钥;以及
向所述第三节点分发所述第三密钥。
17.根据权利要求16所述的计算机程序产品,其中所述限定第三节点和所述导出所述第三密钥是由第二节点执行的。
18.根据权利要求16所述的计算机程序产品,其中所述限定第三节点和所述导出所述第三密钥是由第一节点执行的。
19.根据权利要求16所述的计算机程序产品,其中第三密钥、第一密钥和第二密钥访问第三数据集合。
20.根据权利要求16所述的计算机程序产品,还包括:
限定包括附加组织的附加节点的附加环;
基于所述第三密钥来导出针对附加数据集合的附加密钥;以及
向所述附加节点分发所述附加密钥。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/204,827 | 2021-03-17 | ||
US17/204,827 US12010226B2 (en) | 2021-03-17 | 2021-03-17 | Blockchain data segregation |
PCT/CN2022/077444 WO2022193920A1 (en) | 2021-03-17 | 2022-02-23 | Blockchain data segregation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117043772A true CN117043772A (zh) | 2023-11-10 |
Family
ID=83284811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280021970.2A Pending CN117043772A (zh) | 2021-03-17 | 2022-02-23 | 区块链数据分离 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12010226B2 (zh) |
JP (1) | JP2024509666A (zh) |
CN (1) | CN117043772A (zh) |
DE (1) | DE112022000906T5 (zh) |
GB (1) | GB2619665A (zh) |
WO (1) | WO2022193920A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475575B (zh) * | 2020-04-09 | 2021-08-10 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置及计算机可读存储介质 |
US20230044362A1 (en) * | 2021-08-04 | 2023-02-09 | Alarm.Com Incorporated | Decentralized home sensor network |
US20230409734A1 (en) * | 2022-05-25 | 2023-12-21 | Verizon Patent And Licensing Inc. | Systems and methods for secure aggregating and reporting of monitored data |
CN115840787B (zh) * | 2023-02-20 | 2023-05-02 | 塔比星信息技术(深圳)有限公司 | 基于区块链的供应链数据共享方法、装置、设备及介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8837718B2 (en) * | 2009-03-27 | 2014-09-16 | Microsoft Corporation | User-specified sharing of data via policy and/or inference from a hierarchical cryptographic store |
US8352741B2 (en) * | 2009-06-11 | 2013-01-08 | Microsoft Corporation | Discovery of secure network enclaves |
US11290261B2 (en) * | 2011-10-31 | 2022-03-29 | Reid Consulting Group, Inc. | System and method for securely storing and sharing information |
WO2017145049A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Consolidated blockchain-based data transfer control method and system |
US10776502B2 (en) * | 2016-06-12 | 2020-09-15 | Apple Inc. | Diversification of public keys |
CN106779704A (zh) | 2016-12-06 | 2017-05-31 | 杭州趣链科技有限公司 | 一种基于环签名的区块链匿名交易方法 |
JP2020522796A (ja) | 2017-06-01 | 2020-07-30 | シュヴェイ, インク. ディー/ビー/エー アクソーニSCHVEY, INC. d/b/a AXONI | 安全なアクセス制限を管理する分散型のプライベートにサブスペース化されたブロックチェーン・データ構造 |
CN107222482A (zh) | 2017-06-01 | 2017-09-29 | 黑龙江卓亚科技有限公司 | 一种基于复合区块链网络的数据管理系统及方法 |
CN107807984A (zh) | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
US10567168B2 (en) | 2017-11-16 | 2020-02-18 | International Business Machines Corporation | Blockchain transaction privacy enhancement through broadcast encryption |
US10958628B2 (en) | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy |
US10958417B2 (en) | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using blockchain hierarchies |
CN108111540B (zh) | 2018-01-30 | 2020-08-28 | 西安电子科技大学 | 一种云存储中支持数据共享的分层访问控制系统及方法 |
US10764039B2 (en) * | 2018-08-01 | 2020-09-01 | The Toronto-Dominion Bank | Dynamic generation and management of asymmetric cryptographic keys using distributed ledgers |
EP3605377A1 (de) | 2018-08-01 | 2020-02-05 | Siemens Aktiengesellschaft | Computerimplementiertes verfahren und system zum bereitstellen einer aus blockchains zusammengesetzten hierarchischen blockchain |
US10853353B2 (en) * | 2018-08-03 | 2020-12-01 | American Express Travel Related Services Company, Inc. | Blockchain-enabled datasets shared across different database systems |
JP6883110B2 (ja) | 2018-12-19 | 2021-06-09 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | ブロックチェーンネットワーク内でのデータ分離 |
CN110300112B (zh) | 2019-07-02 | 2022-05-10 | 石家庄铁道大学 | 区块链密钥分层管理方法 |
WO2021026611A1 (en) * | 2019-08-13 | 2021-02-18 | Db Results Pty Ltd | Secure information sharing systems and methods |
-
2021
- 2021-03-17 US US17/204,827 patent/US12010226B2/en active Active
-
2022
- 2022-02-23 DE DE112022000906.3T patent/DE112022000906T5/de active Pending
- 2022-02-23 GB GB2314809.1A patent/GB2619665A/en active Pending
- 2022-02-23 JP JP2023541790A patent/JP2024509666A/ja active Pending
- 2022-02-23 CN CN202280021970.2A patent/CN117043772A/zh active Pending
- 2022-02-23 WO PCT/CN2022/077444 patent/WO2022193920A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
DE112022000906T5 (de) | 2023-11-16 |
US20220303121A1 (en) | 2022-09-22 |
WO2022193920A1 (en) | 2022-09-22 |
JP2024509666A (ja) | 2024-03-05 |
US12010226B2 (en) | 2024-06-11 |
GB202314809D0 (en) | 2023-11-08 |
GB2619665A (en) | 2023-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
CN115211093B (zh) | 数据对象的有效阈值存储 | |
CN112241919B (zh) | 具有数据流控制的多域区块链网络 | |
CN111949651B (zh) | 追踪数据传输 | |
CN115605868A (zh) | 跨网身份提供 | |
CN111753002B (zh) | 基于同意的数据管理 | |
CN116249999A (zh) | 用于区块链网络的共识服务 | |
CN116941265A (zh) | 区块链网络身份管理使用ssi | |
US11621858B2 (en) | Anonymity mechanisms in permissioned blockchain networks | |
CN111831739B (zh) | 数据库复合背书 | |
US12010226B2 (en) | Blockchain data segregation | |
US11374755B1 (en) | Entangled token structure for blockchain networks | |
CN112084186B (zh) | 拆分和合并存储 | |
US11956360B2 (en) | Provable trade secrets on blockchain networks | |
JP7607672B2 (ja) | 分散型データベースにおける許可されたイベント処理 | |
CN117999566A (zh) | 隐私保护状态引用 | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
CN111859411B (zh) | 用于区块链网络中的区块链的方法和系统 | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
WO2023099357A1 (en) | Compressible blockchains | |
US11968307B2 (en) | Private ledger partitions in blockchain networks | |
US11632237B2 (en) | Configuration override in a blockchain network | |
CN112084187B (zh) | 存储的拆分和合并 | |
CN112052473B (zh) | 地理位置合规性 | |
CN116263834A (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 |