CN111753002A - 基于同意的数据管理 - Google Patents
基于同意的数据管理 Download PDFInfo
- Publication number
- CN111753002A CN111753002A CN202010118234.1A CN202010118234A CN111753002A CN 111753002 A CN111753002 A CN 111753002A CN 202010118234 A CN202010118234 A CN 202010118234A CN 111753002 A CN111753002 A CN 111753002A
- Authority
- CN
- China
- Prior art keywords
- node
- blockchain
- data
- consent
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013523 data management Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000012795 verification Methods 0.000 claims abstract description 13
- 230000015654 memory Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Images
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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/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
-
- 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/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
基于同意的数据管理,示例操作可以包括以下操作中的一个或多个:由数据管理节点基于数据提供者DP节点的数据简档生成简档令牌,由数据管理节点从服务提供者SP节点接收交易请求以通过区块链访问来自DP节点的数据,由数据管理节点基于简档令牌获取SP节点的同意,由数据管理节点基于SP的同意生成同意令牌,以及基于对同意令牌的验证来允许SP节点访问DP节点的数据。
Description
技术领域
本申请总体上涉及数据库存储系统,更具体地,涉及基于同意的数据管理。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理单元(CPU)、服务器CPU或大型计算机。通常可从多个不同点访问存储在集中式数据库上的信息。例如,基于客户端/服务器配置,多个用户或客户端工作站可以在集中式数据库上同时工作。集中式数据库由于其单个位置而易于管理、维护和控制,特别是出于安全的目的。在集中式数据库内,由于所有数据的单个存储位置也意味着给定数据集仅具有一个主要记录,因此使数据冗余最小化。
然而,集中式数据库存在显著缺陷。例如,集中式数据库具有单个故障点。特别地,如果没有容错性考虑并且发生故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据都丢失并且所有用户的工作都中断。此外,集中式数据库高度依赖于网络连接。结果,连接越慢,每个数据库访问所需要的时间量就增加。另一个缺陷是当集中式数据库由于单个位置而遇到高流量时就出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供了对数据的有限访问。结果,多个设备无法在不造成显著问题或覆盖已存储数据的风险的情况下同时访问同一数据。此外,由于数据库存储系统几乎没有数据冗余,因此,除了通过从备份存储中手动操作来恢复以外,很难恢复意外丢失的数据。
因此,所需要的是克服这些缺陷和局限性的基于区块链的解决方案。许可区块链(permissioned blockchain)中的数据管理涉及在区块链上记录私有数据资产。比特币的诞生始于涉及匿名公钥以在区块链中实现隐私的构思。然而,仍然可以追踪活动和学习模式。近来,已提出在区块链上使用零知识证明作为避免可追踪性的方式。这些技术允许以去中心化(decentralized)的方式应用可验证的证明,而无需与验证者共享私有信息。然而,对于区块链中基于同意的数据管理,并未实现零知识证明。
基于同意的数据管理是这样的重复出现的区块链模式,其涵盖了涉及隐私问题的关键用例,例如,了解你的客户简档(profile)、医疗记录、金融服务/交易等。区块链使信任去中心化,但是隐私问题使其面临对需要混淆的数据达成共识的挑战。
因此,期望具有用于区块链网络中的基于同意的数据管理的方法和系统。
发明内容
一个示例实施例提供了一种包括处理器和存储器的系统,其中,处理器被配置为执行以下操作中的一个或多个:基于数据提供者DP节点的数据简档生成简档令牌,从服务提供者SP节点接收交易请求以通过区块链访问来自DP节点的数据,基于简档令牌获取SP节点的同意,基于SP节点的同意生成同意令牌,以及基于对同意令牌的验证来允许SP节点访问DP节点的数据。
另一示例实施例提供了一种方法,所述方法包括以下操作中的一个或多个:由数据管理节点基于数据提供者DP节点的数据简档生成简档令牌,由数据管理节点从服务提供者SP节点接收交易请求以通过区块链访问来自DP节点的数据,由数据管理节点基于简档令牌获取SP节点的同意,由数据管理节点基于SP节点的同意生成同意令牌,以及基于对同意令牌的验证来允许SP节点访问DP节点的数据。
另一示例实施例提供了一种包括指令的非暂态计算机可读介质,当指令被处理器读取时使处理器执行以下操作中的一个或多个:基于数据提供者DP节点的数据简档生成简档令牌,从服务提供者SP节点接收交易请求以通过区块链访问来自DP节点的数据,基于简档令牌获取SP节点的同意,基于SP节点的同意生成同意令牌,以及基于对同意令牌的验证来允许SP节点访问DP节点的数据。
附图说明
图1示出根据示例实施例的包括数据库的系统的网络图。
图2A示出根据示例实施例的示例区块链架构配置。
图2B示出根据示例实施例的区块链交易流程。
图3A示出根据示例实施例的许可网络。
图3B示出根据示例实施例的另一许可网络。
图4A示出根据示例实施例的流程图。
图4B示出根据示例实施例的另一流程图。
图5A示出根据示例实施例的被配置为执行本文中描述的一个或多个操作的示例系统。
图5B示出根据示例实施例的被配置为执行本文中描述的一个或多个操作的另一示例系统。
图5C示出根据示例实施例的被配置为采用智能合约的又一示例系统。
图5D示出根据示例实施例的被配置为采用区块链的再一示例系统。
图6A示出根据示例实施例的用于将新区块添加到分布式账本的处理。
图6B示出根据示例实施例的新数据区块的内容。
图6C示出根据示例实施例的用于数字内容的区块链。
图6D示出根据示例实施例的可以表示区块链中的区块结构的区块。
图7示出支持一个或多个示例实施例的示例系统。
具体实施方式
将会容易理解,如本文中的附图中一般性地描述和示出的那样,实例组件可以以多种不同的配置来布置和设计。因此,如附图中表示的方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选择的实施例。
在整个说明书中描述的实例特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合该实施例描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,在整个说明书中,短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部是指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。
另外,尽管可能在实施例的描述中已使用术语“消息”,但是本申请可以应用于多种类型的网络和数据。此外,尽管可以在示例性实施例中描绘某些类型的连接、消息和信令,但是本申请不限于某个类型的连接、消息和信令。
示例实施例提供了方法、系统、组件、非暂态计算机可读介质、设备和/或网络,它们提供了区块链网络中的基于同意的数据管理。
在一个实施例中,本申请采用作为分布式存储系统的去中心化数据库(例如,区块链),其包括彼此通信的多个节点。去中心化数据库包括仅追加的不可变数据结构,该仅追加的不可变数据结构类似于能够在相互不信任的各方之间维护记录的分布式账本。不信任的各方在本文中被称为对等方(peer)或对等节点。每个对等方维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有单个对等方可以修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储交易,将存储交易分组为区块,并且在这些区块上构建哈希链。为了保持一致性,在需要时,该处理通过对存储交易进行排序来形成账本。在各种实施例中,可以使用许可的和/或无需许可的区块链。在公共或无需许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本机加密货币,并且使用基于各种协议(例如工作量证明(PoW))的共识。另一方面,许可区块链数据库在一组共享共同目标但彼此并不完全信任的实体之间提供安全的交互,例如交换资金、商品、信息等的业务。
本申请可以采用如下区块链,该区块链操作针对去中心化存储方案量身定制并且被称为“智能合约”或“链码”的任意可编程逻辑。在一些情况下,可存在用于管理功能和参数的专用链码,其被称为系统链码。本申请可以进一步采用作为受信任分布式应用的智能合约,所述受信任分布式应用利用区块链数据库的防篡改属性和节点之间的基础协议(其被称为背书或背书策略)。与该应用相关联的区块链交易可以在提交到区块链之前被“背书”,而未被背书的交易被忽略。背书策略允许链码以由背书所需要的一组对等节点的形式指定交易的背书者(endorser)。当客户端将交易发送到背书策略中指定的对等方时,执行交易以验证交易。在验证之后,交易进入排序阶段,在该排序阶段中,使用共识协议来生成被分组为区块的背书交易的经排序的序列。
本申请可以采用作为区块链系统的通信实体的节点。在不同类型的多个节点可以在同一物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,例如客户端或提交客户端节点,其向背书者(例如,对等方)提交交易调用,并且将交易提案(proposal)广播到排序服务(例如,排序节点)。另一类型节点是对等节点,其可以接收客户端提交的交易,提交交易并且维护区块链交易的账本的状态和副本。尽管不是要求的,但是对等方也可以充当背书者的角色。排序服务节点或排序者是这样的节点,该节点运行用于所有节点的通信服务并且实现递送保证,例如在提交交易和修改区块链的世界状态时向系统中的每个对等节点的广播,这是通常包括控制和设定信息的初始区块链交易的另一个名称。
本申请可以采用账本,该账本是区块链的所有状态转换的有序防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(例如对等节点)可以维护账本的副本。交易可以导致一组资产键值对,这一组资产键值对被提交到账本作为一个或多个操作数,例如创建、更新、删除等。账本包括用来将不可变的有序记录存储在区块中的区块链(也被称为链)。账本还包括维护区块链的当前状态的状态数据库。
本申请可以采用作为交易日志的链,该链被构造为哈希链接的区块,并且每个区块包含N个交易的序列,其中N等于或大于1。区块头包括区块的交易的哈希,以及前一区块的头的哈希。以这种方式,账本上的所有交易可以被序列化并且被加密地链接在一起。因此,不可能在不破坏哈希链接的情况下篡改账本数据。最近添加的区块链区块的哈希表示链上的在其发生之前的每个交易,从而可以确保所有对等节点处于一致且受信任的状态。该链可以存储在对等节点文件系统(即,本地、附连存储、云等)上,从而有效地支持区块链工作负载的仅追加性质。
不可变账本的当前状态表示链交易日志中包括的所有键的最新值。由于当前状态表示通道已知的最新键值,因此它有时被称为世界状态。链码调用针对账本的当前状态数据执行交易。为了使这些链码交互高效,可以将键的最新值存储在状态数据库中。状态数据库可以仅仅是链的交易日志的索引视图,因此它可以随时从链中重新生成。状态数据库可以在对等节点启动时以及在交易被接受之前自动恢复(或根据需要生成)。
本文中描述和描绘的实例解决方案的一些益处包括用于区块链网络中的基于同意的数据管理的方法和系统。示例性实施例通过扩展数据库的特征(例如不可变性、数字签名以及作为真相的单一来源),解决了时间和信任的问题。示例性实施例提供了用于基于区块链的网络中的基于同意的数据管理的解决方案。根据资产类型和基于智能合约管理资产的规则,区块链网络可能是同质的。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是去中心化的不可变且安全的存储,其中节点必须共享对存储中的记录的更改。区块链固有的且有助于实现区块链的一些属性包括但不限于本文中将进一步描述的不可变账本、智能合约、安全性、隐私性、去中心化、共识、背书、可访问性等。根据各个方面,由于区块链固有且独特的不可变可追责性、安全性、隐私性、允许去中心化、智能合约的可用性、背书和可访问性,实现了用于区块链网络中的基于同意的数据管理的系统。特别地,区块链账本数据是不可变的,并且提供了用于区块链网络中的基于同意的数据管理的有效方法。此外,在区块链中使用加密提供了安全性并且建立了信任。智能合约管理资产的状态以完成生命周期。示例区块链是许可去中心化的。因此,每个终端用户可以具有其自己的账本副本以进行访问。多个组织(和对等方)可以加入区块链网络。关键组织可以充当背书对等方,以验证智能合约的执行结果、读取集和写入集。换句话说,区块链的固有特征提供了用于基于同意的数据管理的方法的有效实现。
示例实施例的益处之一是,它通过实现用于基于区块链的系统中的基于同意的数据管理的方法来改善计算系统的功能。通过本文中描述的区块链系统,计算系统可以通过提供对诸如分布式账本、对等方、加密技术、MSP、事件处理等能力的访问,执行用于区块链网络中的基于同意的数据管理的功能。此外,区块链使得能够建立业务网络,并且使任何用户或组织参与其中。因此,区块链不仅仅是数据库。区块链具有创建用户和在场(on-board)/离场(off-board)组织的业务网络以按照智能合约的形式协作和执行服务处理的能力。
示例实施例提供了优于传统数据库的众多益处。例如,通过区块链,实施例提供了区块链固有的且独特的不可变可追责性、安全性、隐私性、允许去中心化、智能合约的可用性、背书和可访问性。
同时,传统数据库不能用来实现示例实施例,因为它没有使所有各方都参与业务网络,它没有创建受信任的协作并且没有提供数字资产的有效存储。传统数据库没有提供防篡改存储,并且没有提供对所存储的数字资产的保护。因此,无法在传统数据库中实现所提出的用于区块链网络中的基于同意的数据管理的方法。
同时,如果使用传统数据库来实现示例实施例,则示例实施例将遭受不必要的缺陷,例如搜索能力、缺乏安全性和缓慢的交易速度。另外,用于区块链网络中的基于同意的数据管理的自动化方法将根本不可能。
因此,示例实施例提供了对于区块链网络中的数据管理技术/领域中的问题的具体解决方案。
示例实施例还改变了可以如何在区块链的区块结构内存储数据。例如,数字资产数据可以安全地存储在数据区块的特定部分内(即,头、数据段或元数据内)。通过将数字资产数据存储在区块链的数据区块内,可以通过区块的哈希链接链将数字资产数据追加到不可变的区块链账本。在一些实施例中,数据区块可以通过使与数字资产相关联的个人数据不与资产一起存储在区块链的传统区块结构内而不同于传统数据区块。通过移除与数字资产相关联的个人数据,区块链可以基于不可变可追责性和安全性提供匿名性的好处。
根据示例性实施例,系统和方法使用协议来并入用于区块链中的基于同意的数据管理的零知识证明。使用零知识证明技术将参与者的身份保密。零知识证明仅允许区块链上具有可验证同意记录的数据交易。示例性实施例使得在密码上难以追踪同意记录并且将同意记录与数据交易相连接。在一个实施例中,可以提供同意撤销。
根据示例性实施例,可以如下地实现使用基于零知识的方法来实现隐私。数据提供者DP的数据简档被建模为简档令牌,而服务提供者SP的同意被建模为同意令牌。令牌可以包含对秘密和随机性的承诺(commitment)以及经加密的秘密。如果在承诺中完全隐藏DP和SP的身份、对称加密密钥和数据字段,则保证了没有可追踪性的完全隐私。
为了允许DP与多个SP共享数据字段DF,这多个SP不知道它们从同一DP接收到同意这一事实,则DP可以选择对称密钥K并且可以在K下加密DF。然后,通过在SP的公钥下对K进行加密,将K分发给SP。以这种方式,可以允许SP读取DF并且在需要时修改DF。在该方法中,SP撤销要求旋转密钥K,以避免SP仍然可以使用他知道的密钥来解密可能在未来提交的经加密的数据字段。当DP选择另一个密钥时,需要将该新密钥分发给仍然同意的所有SP。此外,DP必须在新密钥下重新加密他的所有DF。
简档令牌(PTK)可以包含以下各项:
1、对DP地址、数据字段和对称密钥的承诺:
Com=Commit(addrDP;PK;DF1....DFn;K;snPTK;r1),
其中,snCTK是在花费时间时为避免重复花费而使用的承诺的序列号,以及r1是用来实现隐藏的某种随机性并且它是解承诺(decomittment)的一部分。
2、包含(部分)解承诺(以便花费令牌)和数据字段的密文:
ctx=Enc(K;(addrDP;PK;snPTK;r1);s);
{ctxi=Enc(K;DFi;si)}
当创建PTK时,需要零知识证明(ZKP)来伴随PTK。要在这种情况下证明的陈述确保:
1、证明者知道Com的解承诺;
2、证明者是拥有者;
3、已使用K来加密部分解承诺和数据字段;
4、Com中包含已加密的内容(这是为确保承诺和密文相一致所需要的)。
同意令牌(CTK)包含以下各项:
1、对DP地址、SP地址和对称密钥的承诺:
Com=Commit(addrDP;PK;addrSP;PK;K;snCTK;r2),
其中,snCTK是在花费时间时为避免重复花费而使用的承诺的序列号,以及r2是用来实现隐藏的某种随机性并且它是解承诺的一部分。
2、包含(部分)解承诺(以便花费令牌)的密文:
ctx=Enc(addrSP;PK;(addrDP;PK;K;snCTK;r2);s)
可以仅由DP通过花费DP自己的PTK来创建CTK。创建需要伴随有ZKP。要在这种情况下证明的陈述确保:
1、证明者知道PTK的解承诺;
2、证明者是PTK的拥有者;
3、PTK是现有的简档令牌;
4、证明者知道CTK的解承诺;
5、K和addrDP;PK在PTK和CTK中是相同的;
6、已使用addrSP;PK来加密部分CTK的解承诺;
7、Com中包含ctx中已加密的内容(这是为确保承诺和密文相一致所需要的)。
8、创建新的简档令牌PTKnew,以及除了新的序列号和新的随机性之外,PTKnew携带与PTK相同的信息,证明者需要证明这些知识。
注意,在以上描述中,SP可以在没有通知的情况下接收同意。为了避免这样的情形,可以按以下方式修改协议:
1、DP应该通过消息m=(addrDP;PK;addrSP;PK)从SP获得签名σ。这可以离链(off-chain)完成;
2、DP在Com中包括σ;
3、DP在ZK中证明他通过m知道由SP产生的有效签名。
也可以使用PTK来修改DF。特别地,DF可以由拥有该DF的数据提供者来修改,或者由接收到同意的服务提供者来修改。DP可以通过简单地花费PTK并且创建包含DF0(新数据字段)的新简档令牌PTKnew来修改DP的DF之一。
该花费操作需要伴随有ZKP。要在这种情况下证明的陈述确保:
1、证明者知道PTK的解承诺;
2、证明者拥有PTK;
3、PTK是现有的简档令牌;
4、已使用PTK中的K来加密PTKnew中的部分解承诺和数据字段;
5、在PTK和PTKnew中已承诺的唯一不同之处是新数据字段。
只有SP接收到同意,SP才可以修改PTK中的DF。为此,SP需要花费他的CTK和与CTK相关联的PTK。在这样做时,SP创建新的简档令牌PTKnew和新的同意令牌CTKnew。该花费操作需要伴随有ZKP。要在这种情况下证明的陈述确保:
1、证明者知道CTK的解承诺;
2、证明者拥有CTK作为与CTK相关联的数据提供者;
3、CTK是现有的同意令牌;
4、证明者知道PTK的解承诺;
5、PTK是现有的简档令牌;
6、PTK和CTK参考相同的对称密钥K和数据提供者;
7、已使用K来加密PTKnew中的部分解承诺和数据字段。
撤销CTK的处理涉及将要由给出同意的DP采取的以下动作:
1、挂起她已发出的所有CTK。该操作可以如下地执行:DP通过用随机公钥替换每个CTK中的addrSP;PK来替换该addrSP;PK。为此,DP花费CTK。该操作伴随有ZKP。要在这种情况下证明的陈述确保:
(a)证明者知道CTK的解承诺;
(b)证明者拥有CTK作为与CTK相关联的数据提供者;和
(c)CTK是现有的同意令牌。
2、更改PTK中的对称密钥,并且在新对称密钥下重新加密所有数据字段。该操作可以如下地执行:DP用密钥K0替换PTK中的密钥K。为此,DP花费PTK并创建包含K0的新简档令牌PTKnew。该操作伴随有ZKP。要在这种情况下证明的陈述确保:
(a)证明者知道PTK的解承诺;
(b)证明者拥有PTK;
(c)PTK是现有的简档令牌;
(d)已使用K0来加密PTKnew中的部分解承诺和数据字段;
(e)在PTKnew的承诺中包含已加密的内容;
(f)在PTK和PTKnew中已承诺的唯一不同之处是新密钥。
3、对DP希望保持同意的所有服务提供者重新激活同意令牌。该操作类似于发出同意令牌的操作。主要区别在于,同意令牌已经存在,并且可以简单地对该同意令牌进行更新以反映与简档令牌中的新密钥的关联。
注意,DP的责任是不错过由未被撤销的SP所拥有的同意令牌的重新激活。上述过程也可以用来仅旋转对称密钥。在这种情况下,将重新激活所有相关联的同意令牌。
图1示出根据示例实施例的用于区块链网络中的基于同意的数据管理的逻辑网络图。
参考图1,示例网络100包括连接到DP节点105和SP节点107的数据管理节点102。数据管理节点102可以连接到区块链106,该区块链106具有用于存储交易110的账本108。尽管该示例仅详细描述了一个数据管理节点102,但是多个这样的节点可以连接到区块链106。应该理解,在不偏离本文中所公开的数据管理节点102的范围的情况下,数据管理节点102可以包括附加组件,并且本文中描述的一些组件可以被移除和/或修改。数据管理节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,该处理器104可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或其他硬件设备。尽管描绘了单个处理器104,但是应该理解,在不偏离数据管理节点102系统的范围的情况下,数据管理节点102可以包括多个处理器、多个核等。
数据管理节点102还可以包括非暂态计算机可读介质112,该非暂态计算机可读介质112上可以存储可由处理器104执行的机器可读指令。机器可读指令的示例被示为114-122,并且在下面进一步讨论。非暂态计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁性、光学或其他物理存储设备。例如,非暂态计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其他类型的存储设备。
处理器104可取得、解码和执行机器可读指令114,以基于数据提供者DP节点105的数据简档生成简档令牌。处理器104可取得、解码和执行机器可读指令116,以从服务提供者SP节点107接收交易请求,以通过区块链106访问来自DP节点105的数据。区块链106网络可以被配置为使用一个或多个智能合约,所述一个或多个智能合约管理多个参与节点的交易。处理器104可以取得、解码和执行机器可读指令118,以基于简档令牌获取SP节点107的同意。处理器104可以取得、解码和执行机器可读指令120,以基于SP节点107的同意生成同意令牌。处理器104可以取得、解码和执行机器可读指令122,以基于对同意令牌的验证来允许SP节点107访问DP节点105的数据。因此,提供了基于同意的数据访问。
图2A示出根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式示出)。这些节点参与许多活动,诸如区块链交易添加和验证处理(共识)。区块链节点204-210中的一个或多个可以基于背书策略对交易进行背书,并且可以提供用于架构200中的所有区块链节点的排序服务。区块链节点可以发起区块链认证并且想要写入存储在区块链层216中的区块链不可变账本,该区块链不可变账本的副本也可以存储在基础的物理基础设施214上。区块链配置可以包括一个或多个应用224,所述一个或多个应用224链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合约等),所述程序/应用代码220可以根据由参与者想要的定制配置来创建,以及可以维持它们自己的状态、控制它们自己的资产并且接收外部信息。这可以被部署为交易并且经由追加到分布式账本而安装在所有区块链节点204-210上。
区块链基台或平台212可以包括各层区块链数据、服务(例如,加密信任服务、虚拟执行环境等)、以及基础的物理计算机基础设施,该物理计算机基础设施可以用来接收和存储新交易,并且提供对正想要访问数据条目的审计者的访问。区块链层216可以暴露如下接口,该接口提供对处理程序代码并且接合物理基础设施214所需要的虚拟执行环境的访问。加密信任服务218可以用来验证诸如资产交换交易之类的交易并且保持信息私有。
图2A的区块链架构配置可以经由由区块链平台212暴露的一个或多个接口以及由区块链平台212提供的服务来处理和执行程序/应用代码220。代码220可控制区块链资产。例如,代码220可以存储和传输数据,并且可以按照具有经受其执行的条件或其他代码元素的智能合约和相关联的链码的形式由节点204-210来执行。作为非限制性示例,可以创建智能合约以执行经受改变、更新等的提醒、更新和/或其他通知。智能合约本身可以用来识别与账本的使用以及访问要求和授权相关联的规则。例如,同意信息226可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)来处理。结果228可以包括反映可验证同意记录的数据区块。物理基础设施214可以用来检索本文中描述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,然后被写入区块链中的区块。智能合约可以包括利用区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,该智能合约代码可以响应于与智能合约相关联的条件得到满足而执行。智能合约的执行可以触发对数字区块链账本的状态的受信任的修改。由智能合约执行引起的对区块链账本的修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中自动复制。
智能合约可以按照键值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并且在应用操作中使用它们。智能合约代码可以将各种逻辑运算的输出写入到区块链中。该代码可以用来在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的,和/或可以被加密并且被保持为私有的。由智能合约使用/生成的临时数据通过所供应的执行环境保存在存储器中,然后一旦区块链所需要的数据被识别,就删除该临时数据。
链码可以包括智能合约的代码解释,并具有附加特征。如本文中所述,链码可以是部署在计算网络上的程序代码,在计算网络中,由链码验证器在共识处理期间一起执行和验证链码。链码接收哈希,并且从区块链中检索与通过使用先前存储的特征提取器而创建的数据模板相关联的哈希。如果哈希标识符的哈希和从存储的标识符模板数据创建的哈希相匹配,则链码将授权密钥发送到所请求的服务。链码可以写入与加密详细信息相关联的区块链数据。
图2B示出根据示例实施例的在区块链的节点之间的区块链交易流程250的示例。参考图2B,交易流程可以包括由应用客户端节点260将交易提案291发送到背书对等节点281。背书对等方281可以验证客户端签名并且执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集)、以及在链码中写入的键/值的集合(写入集)。如果被批准,则将提案响应292与背书签名一起发送回到客户端260。客户端260将背书组装成交易有效载荷293,并且将交易有效载荷293广播到排序服务节点284。排序服务节点284然后将经排序的交易作为区块递送到通道上的所有对等方281-283。在递交到区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略,以确保指定的对等方的正确分配已经对结果进行了签名并且针对交易有效负载293验证了签名。
再次参考图2B,客户端节点260通过构造请求并且将请求发送到作为背书者的对等节点281来发起交易291。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,该应用采用可用的API来生成交易提案。该提案是调用链码功能的请求,使得数据可以被读取和/或被写入账本(即,写入用于资产的新键值对)。SDK可以充当“垫片(shim)”,以将交易提案打包为适当架构格式(例如,通过远程过程调用(RPC)的协议缓冲区),并且采用客户端的加密凭证来产生用于交易提案的唯一签名。
作为响应,背书对等节点281可以验证(a)交易提案被良好地形成,(b)交易在过去尚未被提交过(重放攻击保护),(c)签名有效,以及(d)提交者(在此示例中为客户端260)被适当授权在该通道上执行所提议的操作。背书对等节点281可以将交易提案输入作为所调用的链码功能的参数。然后针对当前状态数据库执行链码,以产生交易结果,该交易结果包括响应值、读取集和写入集。然而,此时尚未对账本进行任何更新。在292中,将值的集合与背书对等节点281的签名一起作为提案响应292传送回到客户端260的SDK,其解析要供应用来消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等方的签名,并且比较提案响应以确定提案响应是否相同。如果链码仅查询账本,则应用将检查查询响应,并且通常将不会把交易提交到排序节点服务284。如果客户端应用打算将交易提交到排序节点服务284以更新账本,则应用在提交之前确定是否已满足所指定的背书策略(即,交易所需要的所有对等节点都对交易进行背书了吗?)。在此,客户端可以仅包括交易的多方之一。在这种情况下,每个客户端可以具有其自己的背书节点,并且每个背书节点将需要对交易进行背书。该架构使得即使应用选择不检查响应或者转发未背书的交易,背书策略仍将由对等方实施并且在递交验证阶段得到维护。
在成功检查之后,在步骤293中,客户端260将背书组装成交易,并且在交易消息内向排序节点284广播交易提案和响应。交易可以包含读取/写入集、背书对等方的签名和通道ID。排序节点284不需要为了执行其操作而检查交易的全部内容,而是排序节点284可以简单地从网络中的所有通道接收交易,按通道按时间顺序对它们进行排序,并且创建每个通道的交易区块。
将交易区块从排序节点284递送到通道上的所有对等节点281-283。对区块内的交易294进行验证,以确保满足任何背书策略,并且确保自从通过交易执行而生成读取集以来,读取集变量的账本状态没有变化。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块追加到通道的链,并且对于每个有效交易,将写入集递交到当前状态数据库。事件被发出,以向客户端应用通知交易(调用)已被不可变地追加到链,以及通知交易是有效的还是无效的。
图3A示出许可区块链网络300的示例,其特征在于分布式去中心化的点对点架构。在该示例中,区块链用户302可以向许可区块链304发起交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计者之类的监管者306的访问。区块链网络运营商308管理成员许可,例如将监管者306注册为“审计者”,并且将区块链用户302注册为“客户端”。审计者可以被限制为仅查询账本,而客户端可以被授权为部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了将来自传统数据源312的凭证包括在链码中,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书颁发机构316检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书,以便在许可区块链304上进行交易。同时,尝试采用链码的用户可能被要求在传统数据源312上验证其凭证。为了确认用户的授权,链码可以通过传统处理平台318使用与该数据的带外连接。
图3B示出许可区块链网络320的另一示例,其特征在于分布式去中心化的点对点架构。在该示例中,区块链用户322可以将交易提交到许可区块链324。在该示例中,交易可以是部署、调用或查询,并且可以通过采用SDK的客户端侧应用、直接通过API等来发出。网络可以提供对诸如审计者之类的监管者326的访问。区块链网络运营商328管理成员许可,例如将监管者326注册为“审计者”,并且将区块链用户322注册为“客户端”。审计者可以被限制为仅查询账本,而客户端可以被授权为部署、调用和查询某些类型的链码。
区块链开发者330可以编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了将来自传统数据源332的凭证包括在链码中,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书颁发机构336检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可区块链324上进行交易。同时,尝试利用链码的用户可以被要求在传统数据源332上验证其凭证。为了确认用户的授权,链码可以通过传统处理平台338使用与该数据的带外连接。
图4A示出根据示例实施例的区块链网络中的基于同意的数据管理的示例方法的流程图400。参考图4A,方法400可以包括以下描述的步骤中的一个或多个。
图4A示出由数据管理节点102(参见图1)执行的示例方法的流程图。应该理解,在不偏离方法400的范围的情况下,图4A中描绘的方法400可以包括附加的操作,并且可以移除和/或修改本文中描述的一些操作。出于说明的目的,还参考图1中描绘的特征来进行方法400的描述。特别地,数据管理节点102的处理器104可以执行方法400中包括的一些或全部操作。
参考图4A,在框412处,处理器104可以基于数据提供者DP节点的数据简档生成简档令牌。在框414处,处理器104可以从服务提供者SP节点接收交易请求以通过区块链访问来自DP节点的数据。在框416处,处理器104可基于简档令牌获取SP节点的同意。在框418处,处理器104可以基于SP节点的同意生成同意令牌。在框420处,处理器104可以基于对同意令牌的验证来允许SP节点访问DP节点的数据。
图4B示出根据示例实施例的区块链网络中的基于同意的数据管理的示例方法的流程图450。参考图4B,方法450也可以包括以下步骤中的一个或多个。在框452处,处理器104可以维护可验证同意记录,以供SP节点访问来自DP节点的数据。在框454处,如果可验证同意记录存在于区块链上,则处理器104可以执行所请求的交易。可验证同意记录基于零知识证明。在框456处,处理器104可以撤销区块链上的可验证同意记录,其中从可验证同意记录无法发现同意方的身份。在框458处,处理器104可以允许SP节点访问DP节点的数据,其中无法发现DP节点的身份。在框460处,处理器104可以基于共识协议以分布式方式来验证同意令牌。
图5A示出根据示例实施例的包括被配置为执行各种操作的物理基础设施510的示例系统600。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合约530(可以驻留在区块链520上),其可以执行包括在任何示例实施例中的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或所描绘的实施例中的一个或多个,并且可以表示写入或从一个或多个智能合约530和/或区块链520读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是同一模块。
图5B示出根据示例实施例的被配置为执行各种操作的另一示例系统540。参考图5B,系统540包括模块512和模块514。模块514包括区块链520和智能合约530(可以驻留在区块链520上),其可以执行包括在任何示例实施例中的任何操作步骤508(在模块512中)。步骤/操作508可以包括所描述或所描绘的实施例中的一个或多个,并且可以表示写入或从一个或多个智能合约530和/或区块链520读取的输出或写入信息。物理基础设施510、模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是同一模块。
图5C示出根据示例实施例的被配置为在缔约方和中介服务器之间采用智能合约配置的示例系统,该中介服务器被配置为在区块链上实施智能合约条款。参考图5C,配置550可以表示由智能合约530驱动的通信会话、资产转移会话、或者处理或过程,该智能合约530明确地识别一个或多个用户设备552和/或556。服务器554可以管理智能合约执行的执行、操作和结果。智能合约530的内容可以要求由作为智能合约交易的各方的实体552和556中的一个或多个进行的数字签名。可以将智能合约执行的结果作为区块链交易写入区块链520。智能合约530驻留在区块链520上,该区块链520可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图5D示出根据示例实施例的包括区块链的系统560。参考图5D的示例,应用编程接口(API)网关562提供用于访问区块链逻辑(例如,智能合约530或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关562是用于通过将一个或多个实体552和556连接到区块链对等方(即服务器554)而在区块链上执行交易(调用、查询等)的公共接口。这里,服务器554是区块链网络对等组件,其保持世界状态的副本和分布式账本,从而允许客户端552和556查询关于世界状态的数据以及将交易提交到区块链网络中,其中取决于智能合约530和背书策略,背书对等方将运行智能合约530。
可以以硬件、由处理器执行的计算机程序、固件或以上的组合来实现以上实施例。计算机程序可以体现在诸如存储介质之类的计算机可读介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移除盘、压缩盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以耦接到处理器,使得处理器可以从存储介质读取信息,并且可以向存储介质写入信息。替选地,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。替选地,处理器和存储介质可以驻留为分立组件。
图6A示出根据示例实施例的将新区块添加到分布式账本620的处理600,而图6B示出根据示例实施例的用于区块链的新数据区块结构630的内容。参考图6A,客户端(未示出)可以将交易提交到区块链节点611、612和/或613。客户端可以执行从任何来源接收的指令以在区块链620上制定活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)提出用于区块链的交易的应用。多个区块链对等方(例如,区块链节点611、612和613)可以维护区块链网络的状态和分布式账本620的副本。在区块链网络中可以存在不同类型的区块链节点/对等方,包括背书对等方和递交对等方,该背书对等方对由客户端提出的交易进行模拟和背书,该递交对等方验证背书、验证交易并且将交易递交到分布式账本620。在该示例中,区块链节点611、612和613可以充当背书者节点、递交者节点或两者的角色。
分布式账本620包括在区块中存储不可变有序记录的区块链、以及维护区块链622的当前状态的状态数据库624(当前世界状态)。每个通道可以存在一个分布式账本620,以及每个对等方对于它们是其成员的每个通道维护其自己的分布式账本620的副本。区块链622是交易日志,其被构造为哈希链接的区块,其中每个区块包含N个交易的序列。区块可以包括诸如图6B所示的各个组成部分。区块的链接(由图6A中的箭头所示)可以通过在当前区块的区块头内添加先前区块头的哈希来生成。以这种方式,区块链622上的所有交易被序列化并且被加密地链接在一起,从而防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链622中的最新区块表示在其之前发生的每个交易。区块链622可以存储在对等文件系统(本地或附连存储)上,该对等文件系统支持仅追加的区块链工作负载。
区块链622和分布式账本620的当前状态可以存储在状态数据库624中。这里,当前状态数据表示区块链622的链交易日志中曾经包括的所有键的最新值。链码调用针对状态数据库624中的当前状态执行交易。为了使这些链码交互非常高效,所有键的最新值都存储在状态数据库624中。状态数据库624可以包括区块链622的交易日志的索引视图,因此它可以随时从链中重新生成。状态数据库624可以在交易被接受之前、在对等方启动时自动恢复(或者如果需要的话则生成)。
背书节点从客户端接收交易,并且基于模拟结果对该交易进行背书。背书节点保持对交易提案进行模拟的智能合约。当背书节点对交易进行背书时,背书节点创建交易背书,该交易背书是从背书节点到客户端应用的签名响应,从而指示模拟交易的背书。对交易进行背书的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等方必须对交易进行背书”。不同的通道可以具有不同的背书策略。客户端应用将背书的交易转发到排序服务610。
排序服务610接受背书的交易,将它们排序到区块中,并且将这些区块递送到递交对等方。例如,当已经达到交易的阈值、计时器超时或其他条件时,排序服务610可以启动新区块。在图6A的示例中,区块链节点612是递交对等方,其已经接收到新数据区块630以存储在区块链620上。区块链中的第一区块可以被称为创世区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务610可以由排序者集群组成。排序服务610不处理交易、智能合约或维护共享账本。而是,排序服务610可以接受背书的交易,并且指定将这些交易递交到分布式账本620的顺序。区块链网络的架构可以被设计为使得“排序”的特定实现方式(例如,Solo(单独)、Kafka(卡夫卡)、BFT等)成为可插拔组件。
以一致的顺序将交易写入分布式账本620。交易的顺序被建立为确保对状态数据库624的更新在其被递交到网络时是有效的。与通过求解加密难题或挖掘(mining)来进行排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式账本620的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新数据区块630时,新数据区块630可以被广播到递交对等方(例如,区块链节点611、612和613)。作为响应,每个递交对等方通过检查以确保读取集和写入集仍然与状态数据库624中的当前世界状态相匹配,验证新数据区块630内的交易。具体地,递交对等方可以确定当背书者对交易进行模拟时存在的读取数据是否与状态数据库624中的当前世界状态相同。当递交对等方验证交易时,将交易写入分布式账本620上的区块链622,并且利用来自读取写入集的写入数据来更新状态数据库624。如果交易失败,即,如果递交对等方发现读取写入集与状态数据库624中的当前世界状态不匹配,则被排序到区块中的交易仍将包括在该区块中,但是它将被标记为无效,并且状态数据库624将不被更新。
参考图6B,存储在分布式账本620的区块链622上的新数据区块630(也被称为数据区块)可以包括多个数据段,诸如区块头640、区块数据650和区块元数据660。应当理解,图6B中所示的各个描绘的区块及其内容(例如新数据区块630及其内容)仅是示例,而不是意味着限制示例实施例的范围。新数据区块630可以在区块数据650内存储N个交易(例如1、10、100、500、1000、2000、3000等)的交易信息。新数据区块630还可以在区块头640内包括与前一区块的链接(例如,在图6A中的区块链622上)。特别地,区块头640可包括前一区块头的哈希。区块头640还可以包括唯一区块号、新数据区块630的区块数据650的哈希等。新数据区块630的区块号可以是唯一的,并且可以以各种顺序分配,例如从零开始的递增/顺次的顺序。
区块数据650可以存储被记录在新数据区块630内的每个交易的交易信息。例如,交易数据可以包括以下各项中的一个或多个:交易的类型、版本、时间戳、分布式账本620的通道ID、交易ID、时代(epoch)、有效载荷可见性、链码路径(部署交易)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)身份(例如公钥和证书)、客户端的签名、背书者的身份、背书者签名、提案哈希、链码事件、响应状态、名称空间、读取集(由交易读取的键和版本的列表等)、写入集(键和值的列表等)、起始键、结束键、键列表、默克尔(Merkel)树查询摘要等。可以对于N个交易中的每个交易存储交易数据。
在一些实施例中,区块数据650还可存储新数据662,该新数据662将附加信息添加到区块链622中的区块的哈希链接链。附加信息包括本文中描述或描绘的步骤、特征、处理和/或动作中的一个或多个。因此,新数据662可以存储在分布式账本620上的区块的不可变日志中。存储这样的新数据662的一些益处反映在本文中公开和描绘的各种实施例中。尽管在图6B中,新数据662被描绘在区块数据650中,但是新数据662也可以位于区块头640或区块元数据660中。
区块元数据660可以存储多个元数据字段(例如,作为字节阵列等)。元数据字段可以包括关于区块创建的签名、对最后配置区块的引用、识别区块内的有效交易和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移持续时间等。签名、最后配置区块和排序者元数据可以由排序服务610来添加。同时,区块的递交者(例如区块链节点612)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据650中的交易数量的字节阵列和识别交易是否有效/无效的验证码。
图6C示出根据本文中描述的实施例的用于数字内容的区块链670的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变仅追加方面充当保护数字内容的完整性、有效性和真实性的保障,从而使其适用于应用证据能力规则的法律程序,或者考虑证据或对数字信息的展示和使用感兴趣的其他场合。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式来形成。在一个实施例中,数字内容可以包括在区块链本身中并且可以从区块链本身访问。例如,区块链的每个区块可以将引用信息(例如,头、值等)的哈希值与相关联的数字内容一起存储。然后可以将哈希值和相关联的数字内容一起加密。因此,可以通过解密区块链中的每个区块来访问每个区块的数字内容,并且每个区块的哈希值可以用作引用前一区块的基础。这可以被说明如下:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密哈希,而没有任何数字内容。数字内容可以与原始文件的哈希值相关联地存储在其他存储区域或存储地址中。其他存储区域可以是用来存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至可以是单独的关系数据库。可以通过如下方式来引用或访问每个区块的数字内容:获得或查询感兴趣的区块的哈希值,然后在存储区域中查找与实际数字内容相对应地存储的该值。例如,该操作可以由数据库看门人(gatekeeper)来执行。这可以被说明如下:
在图6C的示例实施例中,区块链670包括以有序序列加密地链接的多个区块6781,6782,…678N,其中N≥1。用来链接区块6781,6782,…678N的加密可以是多个键控或非键哈希函数中的任一个。在一个实施例中,区块6781,6782,…678N经受如下哈希函数,该哈希函数从基于区块中的信息的输入产生n比特字母数字输出(其中n是256或其他数字)。这样的哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、默克尔-达姆加德(Merkle-Damgard)算法、HAIFA算法、默克尔(Merkle)树算法、基于随机数的算法和非抗碰撞PRF算法。在另一实施例中,可以通过与哈希函数不同的函数来加密地链接区块6781,6782,…678N。为了说明的目的,参考诸如SHA-2之类的哈希函数进行以下描述。
区块链中的每个区块6781,6782,…678N包括头、文件版本和值。由于区块链中的哈希运算,每个区块的头和值都不同。在一个实施例中,值可以被包括在头中。如下面更详细描述的,文件版本可以是原始文件或原始文件的不同版本。
区块链中的第一区块6781称为创世区块,并且包括头6721、原始文件6741和初始值6761。用于创世区块以及实际上在所有后续区块中的哈希方案可以有所不同。例如,可以将第一区块6781中的所有信息一次哈希在一起;或者可以分别对第一区块6781中的每个信息或部分信息进行哈希,然后可以对分别哈希的部分进行哈希。
头6721可以包括一个或多个初始参数,例如,所述一个或多个初始参数可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件6741和/或区块链相关联的其他信息。头6721可以自动(例如,由区块链网络管理软件)生成,或者可以由区块链参与者手动生成。与区块链中的其他区块6782至678N中的头不同,创世区块中的头6721并不引用前一区块,仅仅是因为没有前一区块。
创世区块中的原始文件6741可以是例如由设备捕获的在将其包括在区块链中之前经过处理或未经处理的数据。通过系统的接口从设备、媒体源或节点接收原始文件6741。原始文件6741与元数据相关联,元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件6741相关联地包括在第一区块6781中。
创世区块中的值6761是基于原始文件6741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可包括原始文件6741的哈希值、原始文件6741的元数据以及与该文件相关联的其他信息。在一个实现方式中,初始值6761可以基于以下唯一属性:
1)原始文件的经SHA-2计算的哈希值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关联的元数据的软件的区块链网络成员ID
区块链中的其他区块6782至678N也具有头、文件和值。然而,与第一区块6721不同,其他区块中的头6722至672N中的每个包括紧接在前的区块的哈希值。紧接在前的区块的哈希值可以仅仅是前一区块的头的哈希,或者可以是整个前一区块的哈希值。通过在每个剩余区块中包括前一区块的哈希值,可以逐个区块地从第N区块返回到创世区块(以及相关联的原始文件)执行追踪,如由箭头680所示的那样,以建立可审计且不可变的监管链。
其他区块中的头6722至672N中的每个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或总体上与对应文件和/或区块链相关联的其他参数或信息。
例如,取决于所执行的处理的类型,其他区块中的文件6742至674N可以等于原始文件,或者可以是创世区块中的原始文件的修改版本。所执行的处理的类型可能因区块而异。处理可以包括例如对先前区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容,从文件中取走信息,或向文件添加或追加信息。
附加地或替选地,处理可以包括仅复制来自先前区块的文件,改变文件的存储位置,分析来自一个或多个先前区块的文件,将文件从一个存储或存储器位置移动到另一个存储或存储器位置,或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如追加、包括或以其他方式关联与文件相关联的各种分析、统计或其他信息。
其他区块中的每个其他区块6762至676N中的值是唯一值,并且由于所执行的处理而全都不同。例如,任何一个区块中的值对应于前一区块中的值的更新版本。该更新反映在为其分配了该值的区块的哈希中。因此,区块的值提供了对在区块中执行了什么处理的指示,并且还允许通过区块链追踪回到原始文件。该追踪确认了文件在整个区块链中的监管链。
例如,考虑以下情况:为了保护前一区块中的文件中显示的人的身份,对文件的部分进行了编辑、屏蔽或像素化。在这种情况下,包括已编辑文件的区块将包括与已编辑文件相关联的元数据,例如,如何执行编辑,谁执行编辑,进行编辑的时间戳等。可以对元数据进行哈希以形成值。由于区块的元数据与经过哈希以形成前一区块中的值的信息不同,因此这些值彼此不同并且可以在解密时恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新前一区块的值(例如,计算出新的哈希值)以形成当前区块的值。在该示例实施例中,可以通过对以下所述的信息中的全部或部分进行哈希来计算新的哈希值。
a)如果以任何方式处理了文件(例如,如果文件被编辑、复制、更改、访问或采取了某种其他动作),则新的经SHA-2计算的哈希值
b)文件的新存储位置
c)与文件相关联地识别的新元数据
d)文件的访问或控制从一个区块链参与者转移到另一个区块链参与者
图6D示出根据一个实施例的可以表示区块链690中的区块的结构的区块的实施例。区块Blocki包括头672i、文件674i和值676i。
头672i包括前一区块Blocki-1的哈希值和附加引用信息,附加引用信息例如可以是本文中讨论的任何类型的信息(例如,包括引用、特性、参数等的头信息)。当然,除创世区块外,所有区块均引用前一区块的哈希。前一区块的哈希值可以仅仅是前一区块中的头的哈希,或者是前一区块中的全部信息或部分信息(包括文件和元数据)的哈希。
文件674i依次包括多个数据,例如数据1、数据2、…、数据N。数据用元数据“元数据1”、“元数据2”、…、“元数据N”来标记,这些元数据描述与数据相关联的内容和/或特性。例如,每个数据的元数据可以包括:指示数据的时间戳的信息,处理数据,指示数据中描述的人或其他内容的关键字,和/或可以有助于建立整体文件的有效性和内容的其他特征,尤其是其使用数字证据,例如,如结合以下讨论的实施例所描述的那样。除了元数据外,每个数据还可以使用对前一数据的引用REF1,REF2,…,REFN来标记,以防止篡改、文件中的空白以及通过文件的顺序引用。
一旦将元数据分配给数据(例如,通过智能合约),就不能在不改变哈希的情况下更改元数据,这可以容易地被识别以进行无效。因此,元数据创建信息的数据日志,信息的数据日志可被区块链中的参与者访问以供使用。
值676i是哈希值或基于先前讨论的任何类型的信息而计算的其他值。例如,对于任何给定的区块Blocki,可以对该区块的值进行更新以反映对该区块执行的处理,例如,新哈希值,新存储位置,相关联文件的新元数据,控制或访问的转移,标识符,或者要添加的其他动作或信息。尽管每个区块中的值被示出为与头和文件的数据的元数据分离,但是在另一实施例中,该值可以部分地或全部地基于该元数据。
一旦形成区块链670,则在任何时间点,可以通过向区块链查询跨区块的值的交易历史来获得文件的不可变监管链。该查询或追踪过程可以开始于解密当前最近包括的区块(例如,最后(第N)区块)的值,然后继续解密其他区块的值,直到达到创世区块并且恢复原始文件。解密还可以包括解密每个区块处的头和文件以及相关联的元数据。
基于在每个区块中进行的加密的类型来执行解密。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可以被公开地分发,以用作接收来自其他用户的消息的地址,例如,IP地址或家庭地址。私钥是保密的,并且用来对发送给其他区块链参与者的消息进行数字签名。签名包括在消息中,以便接收者可以使用发送者的公钥进行验证。以这种方式,接收者可以确定只有发送者可以发送该消息。
生成密钥对可以类似于在区块链上创建帐户,但是不必实际在任何地方进行注册。此外,发送者使用其私钥对在区块链上执行的每个交易进行数字签名。该签名确保只有帐户拥有者才能追踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
图7示出支持本文中描述和/或描绘的一个或多个示例实施例的示例系统800。系统700包括计算机系统/服务器702,该计算机系统/服务器702可与许多其他通用或专用计算系统环境或配置一起操作。可适合于与计算机系统/服务器702一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统,服务器计算机系统,瘦客户端,胖客户端,手持或膝上型设备,多处理器系统,基于微处理器的系统,机顶盒,可编程消费电子产品,网络PC,小型计算机系统,大型计算机系统,以及包括任何上述系统或设备的分布式云计算环境,等等。
可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述计算机系统/服务器702。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实践计算机系统/服务器702,在分布式云计算环境中,任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图7中所示,以通用计算设备的形式示出了云计算节点700中的计算机系统/服务器702。计算机系统/服务器702的组件可以包括但不限于一个或多个处理器或处理单元704、系统存储器706以及将包括系统存储器706的各种系统组件耦接到处理器704的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器702典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器702访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
在一个实施例中,系统存储器706实现其他附图的流程图。系统存储器706可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)710和/或高速缓存存储器712。计算机系统/服务器702可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统714可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器706可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块718的程序/实用工具716,可以存储在例如存储器706中,这样的程序模块718包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块718通常执行本发明所描述的实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取以下形式:完全硬件实施例,完全软件实施例(包括固件、驻留软件、微代码等),或结合了软件和硬件方面的实施例,这些方面通常都可以在本文中被称为“电路”、“模块”或“系统”。此外,本申请的方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质上体现有计算机可读程序代码。
计算机系统/服务器702也可以与一个或多个外部设备720(例如键盘、指向设备、显示器722等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器702交互的设备通信,和/或与使得该计算机系统/服务器702能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口724进行。并且,计算机系统/服务器702还可以通过网络适配器726与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器726通过总线与计算机系统/服务器702的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器702使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管在附图中示出并且在前述详细描述中描述了系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例,但是将理解,本申请不限于所公开的实施例,而是能够进行如由以下权利要求阐述和定义的许多重新布置、修改和替换。例如,各个附图的系统的能力可以由本文中描述的模块或组件中的一个或多个或以分布式架构来执行,并且可以包括发射机、接收机或两者的对。例如,由各个模块执行的功能的全部或部分可以由这些模块中的一个或多个模块来执行。此外,本文中描述的功能可以在模块或组件内部或外部、在各个时间并且与各种事件相关地执行。此外,可以经由以下各项中的至少一个在模块之间发送在各个模块之间发送的信息:数据网络,因特网,语音网络,因特网协议网络,无线设备,有线设备,和/或经由多个协议。此外,可以直接和/或经由一个或多个其他模块来发送或接收由任何模块发送或接收的消息。
本领域的技术人员将意识到,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备、或设备的组合。将上述功能呈现为由“系统”执行并不是旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文中公开的方法、系统和装置可以以与计算技术一致的局部化和分布式形式来实现。
应当注意,在本说明书中描述的系统特征中的一些已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片、晶体管或其他分立组件之类的成品半导体。模块也可以被实现在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等可编程硬件设备中。
模块也可以至少部分地以用于由各种类型的处理器执行的软件来实现。例如,所识别的可执行代码单元可以包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或函数。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,包括该模块并且实现该模块的规定目的。此外,模块可以存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用来存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在若干不同代码段上、在不同程序之间并且在若干存储器设备上。类似地,操作数据可以在本文中在模块内被识别和示出,以及可以以任何合适的形式来体现并且可以被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
将容易理解,如本文的附图中一般性描述和示出的,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不是旨在限制所要求保护的本申请的范围,而是仅仅代表本申请的所选择的实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置中的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员明显的是,某些修改、变型和替代构造将是明显的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当考虑全部范围的等同物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求来限定。
Claims (16)
1.一种系统,包括:
数据管理节点的处理器;
存储器,在所述存储器上存储机器可读指令,所述指令在由所述处理器执行时使得所述处理器:
基于数据提供者DP节点的数据简档生成简档令牌;
从服务提供者SP节点接收交易请求以通过区块链访问来自DP节点的数据;
基于所述简档令牌获取SP节点的同意;
基于SP节点的同意生成同意令牌;以及
基于对所述同意令牌的验证来允许SP节点访问DP节点的数据。
2.根据权利要求1所述的系统,其中,所述指令还使得所述处理器维护可验证同意记录,以供SP节点访问来自DP节点的数据。
3.根据权利要求2所述的系统,其中,如果所述可验证同意记录存在于所述区块链上,则所述指令还使得所述处理器执行所请求的交易。
4.根据权利要求3所述的系统,其中,所述可验证同意记录基于零知识证明。
5.根据权利要求2所述的系统,其中,所述指令还使得所述处理器撤销所述区块链上的所述可验证同意记录,其中从所述可验证同意记录无法发现同意方的身份。
6.根据权利要求1所述的系统,其中,所述指令还使得所述处理器允许SP节点访问DP节点的数据,其中无法发现DP节点的身份。
7.根据权利要求1所述的系统,其中,所述指令还使得所述处理器基于共识协议以分布式方式验证所述同意令牌。
8.一种方法,包括:
由数据管理节点基于数据提供者DP节点的数据简档生成简档令牌;
由所述数据管理节点从服务提供者SP节点接收交易请求,以通过区块链访问来自DP节点的数据;
由所述数据管理节点基于所述简档令牌获取SP节点的同意;
由所述数据管理节点基于SP节点的同意生成同意令牌;以及
基于对所述同意令牌的验证来允许SP节点访问DP节点的数据。
9.根据权利要求8所述的方法,还包括:维护可验证同意记录,以供SP节点访问来自DP节点的数据。
10.根据权利要求9所述的方法,还包括:如果所述可验证同意记录存在于所述区块链上,则执行所请求的交易。
11.根据权利要求10所述的方法,其中,所述可验证同意记录基于零知识证明。
12.根据权利要求9所述的方法,还包括:撤销所述区块链上的所述可验证同意记录,其中从所述可验证同意记录无法发现同意方的身份。
13.根据权利要求8所述的方法,还包括:允许SP节点访问来自DP节点的数据,其中无法发现DP节点的身份。
14.根据权利要求8所述的方法,还包括:基于共识协议以分布式方式验证所述同意令牌。
15.一种包括指令的非暂态计算机可读介质,所述指令在由处理器读取时使得所述处理器执行根据权利要求8至14中任一项所述的方法。
16.一种计算机实现的设备,包括执行根据权利要求8至14中任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/364,789 | 2019-03-26 | ||
US16/364,789 US11240003B2 (en) | 2019-03-26 | 2019-03-26 | Consent-based data management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111753002A true CN111753002A (zh) | 2020-10-09 |
Family
ID=72607863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118234.1A Pending CN111753002A (zh) | 2019-03-26 | 2020-02-26 | 基于同意的数据管理 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11240003B2 (zh) |
CN (1) | CN111753002A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583593A (zh) * | 2021-02-22 | 2021-03-30 | 支付宝(杭州)信息技术有限公司 | 用户间的隐私通信方法和装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3642774B1 (en) * | 2017-06-20 | 2023-05-10 | nChain Licensing AG | System and method of multi-round token distribution using a blockchain network |
US11194919B2 (en) * | 2019-05-17 | 2021-12-07 | International Business Machines Corporation | Cognitive system for managing consent to user data |
US11983284B2 (en) * | 2021-01-19 | 2024-05-14 | Arm Cloud Technology, Inc. | Consent management methods |
CN114629684A (zh) * | 2022-02-16 | 2022-06-14 | 深圳番多拉信息科技有限公司 | 基于区块链的权限令牌处理方法、系统、装置及存储介质 |
WO2024104547A1 (en) * | 2022-11-14 | 2024-05-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Validating delegated consent |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082023A1 (en) * | 2016-09-16 | 2018-03-22 | International Business Machines Corporation | Secure Distributed Patient Consent and Information Management |
US10171992B1 (en) * | 2018-06-22 | 2019-01-01 | International Business Machines Corporation | Switching mobile service provider using blockchain |
US20190028277A1 (en) * | 2017-07-24 | 2019-01-24 | International Business Machines Corporation | Anonymous consent and data sharing on a blockchain |
CN109450910A (zh) * | 2018-11-26 | 2019-03-08 | 远光软件股份有限公司 | 基于区块链的数据共享方法、数据共享网络及电子设备 |
US20190087892A1 (en) * | 2017-09-15 | 2019-03-21 | Hitachi, Ltd. | Consent management service system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG120112A1 (en) * | 2003-08-06 | 2006-03-28 | Oneempower Pte Ltd | Transaction method and system |
US8843997B1 (en) * | 2009-01-02 | 2014-09-23 | Resilient Network Systems, Inc. | Resilient trust network services |
US10839020B2 (en) * | 2014-04-14 | 2020-11-17 | Netspective Communications Llc | Multi-source user generated electronic data integration in a blockchain-based transactional system |
US9992028B2 (en) * | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
US10790980B2 (en) * | 2017-07-14 | 2020-09-29 | International Business Machines Corporation | Establishing trust in an attribute authentication system |
US20190238316A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment |
FR3079323B1 (fr) * | 2018-03-26 | 2020-04-17 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Methode et systeme d'acces a des donnees anonymisees |
-
2019
- 2019-03-26 US US16/364,789 patent/US11240003B2/en active Active
-
2020
- 2020-02-26 CN CN202010118234.1A patent/CN111753002A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082023A1 (en) * | 2016-09-16 | 2018-03-22 | International Business Machines Corporation | Secure Distributed Patient Consent and Information Management |
US20190028277A1 (en) * | 2017-07-24 | 2019-01-24 | International Business Machines Corporation | Anonymous consent and data sharing on a blockchain |
US20190087892A1 (en) * | 2017-09-15 | 2019-03-21 | Hitachi, Ltd. | Consent management service system |
US10171992B1 (en) * | 2018-06-22 | 2019-01-01 | International Business Machines Corporation | Switching mobile service provider using blockchain |
CN109450910A (zh) * | 2018-11-26 | 2019-03-08 | 远光软件股份有限公司 | 基于区块链的数据共享方法、数据共享网络及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583593A (zh) * | 2021-02-22 | 2021-03-30 | 支付宝(杭州)信息技术有限公司 | 用户间的隐私通信方法和装置 |
CN113472807A (zh) * | 2021-02-22 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 用户间的隐私通信方法和装置 |
CN113472807B (zh) * | 2021-02-22 | 2023-03-21 | 支付宝(杭州)信息技术有限公司 | 用户间的隐私通信方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200313852A1 (en) | 2020-10-01 |
US11240003B2 (en) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
CN111144881B (zh) | 对资产转移数据的选择性访问 | |
CN111881099A (zh) | 数据库私有文档共享 | |
US11569996B2 (en) | Anonymous rating structure for database | |
CN111881129A (zh) | 用于数据库的索引管理 | |
CN112053157B (zh) | 灵活交易验证 | |
US20200379977A1 (en) | Anonymous database rating update | |
CN114365116A (zh) | 来自私有区块链的更新的链外通知 | |
US11240003B2 (en) | Consent-based data management | |
US11360946B2 (en) | Tracking data transfers | |
CN111831740B (zh) | 对等体的同步 | |
US20200151708A1 (en) | Protection of data trading | |
CN111754343A (zh) | 隐私保护的死锁解除 | |
CN111881130A (zh) | 区块链存储结构的冲突解决方案 | |
CN111796968A (zh) | 受数据库交易保证的提交 | |
CN114450708A (zh) | 基于现有链码的链码推荐 | |
US11457066B2 (en) | Splitting and merging of storages | |
CN111831739A (zh) | 数据库复合背书 | |
CN111881109A (zh) | 数据库可合并分类账 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
CN112035291A (zh) | 快照恢复 | |
CN112052474A (zh) | 蓝光拷贝服务 | |
CN115668856A (zh) | 分散式数据库中的许可事件 | |
US11082215B2 (en) | Immutable broadcasting queues | |
CN111797426B (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 |