CN111859411A - 多主题设备访问授权的方法和系统 - Google Patents

多主题设备访问授权的方法和系统 Download PDF

Info

Publication number
CN111859411A
CN111859411A CN202010325659.XA CN202010325659A CN111859411A CN 111859411 A CN111859411 A CN 111859411A CN 202010325659 A CN202010325659 A CN 202010325659A CN 111859411 A CN111859411 A CN 111859411A
Authority
CN
China
Prior art keywords
blockchain
authorization
transaction
access
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010325659.XA
Other languages
English (en)
Other versions
CN111859411B (zh
Inventor
A·S·尤瑟夫
G·帕奇菲奇
D·彭达拉基斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111859411A publication Critical patent/CN111859411A/zh
Application granted granted Critical
Publication of CN111859411B publication Critical patent/CN111859411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明涉及一种多主题设备访问授权的方法和系统。示例操作可以包括以下一者或多者:将来自两个或更多个授权实体的两个或更多个授权决策接收到区块链系统中;将所述两个或更多个授权决策记录到所述区块链系统的区块链的一个或多个区块中;由所述区块链系统确定所述两个或更多个授权决策是否满足用于授权对设备或所述设备上的可识别内容中的至少一者的访问的策略;以及当所述两个或更多个授权决策满足所述策略时,授权对能够用于获得对所述设备的访问的公钥的访问。

Description

多主题设备访问授权的方法和系统
技术领域
本申请总体上涉及数据库存储系统,更具体地说,涉及多主题设备访问授权。
背景技术
中心化数据库在一个位置的单个数据库(例如,数据库服务器)中存储和维护数据。这个位置通常是中央计算机,例如桌面中央处理单元(CPU)、服务器CPU或主机。中心化数据库中存储的信息通常可以从多个不同的点访问。例如,多个用户或客户端工作站可以基于客户端/服务器配置在中心化数据库上同时工作。中心化数据库由于其单一的位置而易于管理、维护和控制,尤其适合安全的需要。在中心化数据库中,数据冗余被最小化,因为所有数据的单一存储位置也意味着给定的数据集只有一个主记录。
但是,中心化数据库存在重大缺陷。例如,中心化数据库有单一的故障点。特别地,如果没有容错考虑,并且发生故障(例如硬件、固件和/或软件故障),则数据库中的所有数据都将丢失,所有用户的工作将中断。此外,中心化数据库高度依赖于网络连接。因此,连接越慢,每次数据库访问所需的时间就越长。另一个缺点是当中心化数据库由于单一的位置而遇到高流量时,会出现瓶颈。此外,中心化数据库提供对数据的有限访问,因为数据库只维护一个数据副本。因此,多个设备无法同时访问同一数据块,而不会造成严重问题或有覆盖存储数据的风险。此外,由于数据库存储系统具有最小数据冗余、甚至无数据冗余,因此,意外丢失的数据很难检索,除非通过手动操作从备份存储中检索。
最近,解锁安全移动设备以进行刑事调查的问题是公众辩论的主题。设备制造商认为,向执法机构授予解锁任何设备以进行刑事调查的能力意味着削弱其产品的安全级别,因此使所有设备更易受到黑客的攻击。制造商认为,削弱所有设备的安全性不是所期望的,因为这将给与攻击者更多的能力。此外,从隐私的角度来看,向单个实体授予解锁所有设备的权力是不可接受的。
因此,需要一种用于克服这些重大缺点的解决方案。
发明内容
一个示例实施例提供一种系统,其包括两个或更多个授权实体和区块链系统,所述区块链系统被配置为执行以下一者或多者:从所述两个或更多个授权实体接收两个或更多个授权决策;将所述两个或更多个授权决策记录到所述区块链系统的区块链的一个或多个区块中;由所述区块链系统确定所述两个或更多个授权决策是否满足用于授权对设备或所述设备上的可识别内容中的至少一者的访问的策略;以及当所述两个或更多个授权决策满足所述策略时,授权对能够用于获得对所述设备的访问的公钥的访问。
另一个示例实施例提供一种方法,其包括以下一者或多者:将来自两个或更多个授权实体的两个或更多个授权决策接收到区块链系统中;将所述两个或更多个授权决策记录到所述区块链系统的区块链的一个或多个区块中;由所述区块链系统确定所述两个或更多个授权决策是否满足用于授权对设备或所述设备上的可识别内容中的至少一者的访问的策略;以及当所述两个或更多个授权决策满足所述策略时,授权对能够用于获得对所述设备的访问的公钥的访问。
另一个示例实施例提供一种包括指令的非瞬时性计算机可读介质,所述指令在由处理器读取时使得所述处理器执行以下一者或多者:将来自两个或更多个授权实体的两个或更多个授权决策接收到区块链系统中;将所述两个或更多个授权决策记录到所述区块链系统的区块链的一个或多个区块中;由所述区块链系统确定所述两个或更多个授权决策是否满足用于授权对设备或所述设备上的可识别内容中的至少一者的访问的策略;以及当所述两个或更多个授权决策满足所述策略时,授权对能够用于获得对所述设备的访问的公钥的访问。
附图说明
图1A示出根据示例实施例的包括区块链系统的系统的网络实体图;
图1B示出根据示例实施例的系统的实体之间的交互;
图2A示出根据示例实施例的示例对等节点配置;
图2B示出根据示例实施例的另一对等节点配置;
图3示出根据示例实施例的许可网络;
图4示出根据示例实施例的系统消息传送图;
图5A示出根据示例实施例的流程图;
图5B示出根据示例实施例的另一流程图;
图6A示出根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统;
图6B示出根据示例实施例的被配置为执行本文描述的一个或多个操作的另一示例系统;
图6C示出根据示例实施例的合约方之间的智能合约配置以及被配置为在区块链上实施智能合约条款的中介服务器;
图6D示出根据示例实施例的额外示例系统;
图7A示出根据示例实施例的将新数据添加到数据库的流程;
图7B示出根据示例实施例的包括新数据的数据区块的内容;
图7C示出区块链的另一流程;
图7D示出根据示例实施例的包括新数据的数据区块的其他内容;
图8示出支持一个或多个示例实施例的示例系统。
具体实施方式
容易理解,本文附图中一般说明和例示的组件,可以以各种不同的配置来布置和设计。因此,如附图中所示的方法、装置、非瞬时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选实施例。
贯穿说明书描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,贯穿本说明书的短语“示例性实施例”、“一些实施例”或其它类似语言的使用指的是结合该实施例描述的特定特征、结构或特性可包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例性实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言不一定都指代相同的一组实施例,所描述的特征、结构或特性在一个或多个实施例中可以以任何合适的方式被组合。
此外,尽管可以在实施例的描述中使用术语“消息”,但本申请可以应用于许多类型的网络数据,例如分组、帧、数据报等。术语“消息”还包括分组、帧、数据报以及其任何等效物。此外,尽管某些类型的消息和信令可以在示例性实施例中示出,但它们并不限于某种类型的消息,并且本申请并不限于某种类型的信令。
示例实施例提供方法、系统、组件、非瞬时性计算机可读介质、设备和/或网络,它们提供用于访问设备上的信息或内容的授权控制。
去中心化数据库是分布式存储系统,其包括彼此通信的多个节点。区块链是去中心化数据库的一个示例,去中心化数据库包括一个只可附加但不可改变的数据结构,类似于能够在不受信任的各方之间维护记录的分布式分类账(ledger)。不受信任的各方在本文中称为对等体(peers)或对等节点。每个对等体维护数据库记录的副本,在分布式对等体之间没有达成共识(consensus)的情况下,单一对等体不能修改数据库记录。例如,对等体可以执行共识协议来验证区块链存储交易,将存储交易分组为区块,并在区块上构建散列链。该过程根据需要通过对存储事务进行排序来形成分类账以便保持一致性。在公共或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本地加密货币,使用基于各种协议(诸如工作证明(PoW))的共识。另一方面,许可的区块链数据库提供了能够保护在一组有共同目标但彼此不完全信任的实体(例如交换资金、商品、信息等的企业)之间的交互的系统。
区块链操作为去中心化存储方案定制的、称为“智能合约”或“链码”(chaincode)的任意可编程逻辑。在某些情况下,可能存在用于管理功能和参数的专用链码,称为系统链码。智能合约是受信任的分布式应用程序,利用了区块链数据库的防篡改属性和节点之间称为背书(endorsement)或背书策略的基础协议。总体上,区块链交易通常必须先被“背书”(endorsed)再被提交(committed)到区块链,而未被背书的交易则不被考虑。典型的背书策略允许链码针对交易指定采取背书所需的一组对等节点的形式的背书者。当客户端将交易发送到在背书策略中指定的对等体时,该交易被执行,以验证该交易。在验证之后,交易进入排序阶段,在排序阶段,用共识协议来生成按顺序排列的一系列背书的交易,这些背书的交易被分组到区块中。
节点是区块链系统的通信实体。“节点”可以执行逻辑功能,即不同类型的多个节点可以在同一物理服务器上运行。节点在信任域中被分组,并与以各种方式控制它们的逻辑实体相关联。节点可以包括不同的类型,例如客户端或提交客户端(submitting-client)节点,其将交易调用(transaction-invocation)提交给背书者(例如对等体),并将交易建议广播给排序服务(例如排序节点)。另一种类型的节点是可以接收客户端提交的交易、提交交易并维护区块链交易分类账的状态和副本的对等节点。对等体也可以扮演背书者(endorser)的角色,尽管这不是必需的。排序服务节点或排序者(orderer)是为所有节点运行通信服务的节点,它实现交付保证,例如在提交交易和修改区块链的世界状态(worldstate)时向系统中的每个对等节点的广播,这是通常包括控制和设置信息的初始区块链交易的另一个名称。
分类账是区块链的所有状态转变的有序、防篡改的记录。状态转变可能由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)产生。交易可以导致一组资产键-值对作为一个或多个操作数被提交给分类账,例如创建、更新、删除等。分类账包括用于以块存储不可改变的有序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。每个通道通常具有一个分类账。每个对等节点针对其所属的每个通道维护分类账的副本。
链是交易日志,其结构为散列链接的区块(hash-linked block),每个区块包含一系列的N个交易,其中N等于或大于1。区块头(block header)包括该区块的交易的散列(hash),以及前一区块的头的散列。通过这种方式,分类账上的所有交易都可以按顺序排列并以加密方式链接在一起。因此,在不破坏散列链(hash links)的情况下,不可能篡改分类账数据。最近添加的区块链块的散列代表在它之前已经到达的链上的每一个交易,这使得有可能确保所有对等节点处于一致和可信状态。可以将该链存储在对等节点文件系统(即本地、附加存储、云等)上,从而高效地支持区块链工作负载的只可附加的性质。
不可改变的分类账的当前状态代表了链交易日志中包含的所有的键的最新值。当前状态表示一个通道已知的最新键值,因此有时称之为世界状态。链码调用针对分类账的当前状态数据执行交易。为了使这些链码交互有效,可以将键的最新值存储在状态数据库中。状态数据库可以只是链交易日志的索引视图,因此可以随时根据链来重新生成。状态数据库可以在对等节点启动时和接受交易之前自动恢复(或根据需要生成)。
本文描述和示出的解决方案的某些益处包括以下能力:以防止单个实体访问私有信息的方式,记录用于从多个机构访问信息的授权。授权被记录在区块链中,并且因此不可变。链码和/或智能合约可以用于处理授权,并且共识系统可以确定是否应该授予对私有信息的访问,所有这些都能够被记录在区块链中,并且然后进行审计。
区块链与传统数据库的不同之处在于,区块链不是中心存储,而是去中心化的、不可变的安全存储,其中节点必须共享对存储中的记录的更改。区块链中固有的并且有助于实现区块链的某些属性包括但不限于:不可变分类账、智能合约、安全性、隐私性、去中心化、共识、背书、可访问性等,本文对它们进行进一步描述。根据各个方面,由于区块链固有并且唯一的共识过程,实现隐私控制。具体地说,仅在需要多个授权实体之间达成共识的规则之下,才将授予对私钥的访问。这些规则可以嵌入链码和/或智能合约中,以使得特定决策不由单个实体或多个实体决定,而是由区块链的共识策略产生。
通过本文描述的区块链系统,计算系统能够执行以下功能:允许对由公钥/私钥对保护的私有数据的访问,因为仅当满足区块链的共识策略时,才释放控制对私有数据的访问的公钥,并且所有授权数据被记录在区块链中,从而使授权数据不可变。授权数据的不可变性使授权实体对其授权决策完全负责。
如上所述,有时各个机构可能对用户设备上存储和/或保护的内容感兴趣,具体地说用于增强安全性、反恐等。在本文要描述的实施例中,可以由来自多个机构的授权来保护用于解锁某个设备的决策,这些机构可以包括适当的司法和执法实体。用于收集和验证这些授权的系统也不应在任何单个实体的控制之下。
无论是存储在移动设备还是存储服务器上,用于安全或机密内容的多主题访问授权都提出类似的技术挑战。因此,在此需要并且要描述的是一种用于提供访问安全内容的去中心化的可审计授权的系统和方法,与内容在物理上位于何处无关。
本文描述一种基于区块链技术的分布式安全内容访问授权系统(SCAAS)。SCAAS实现分布式授权系统,其确保来自不同机构的所有所需授权批准被记录在不可反驳的区块链交易中,该交易充当看门者以允许设备或者唯一可标识安全内容的解锁。
在一个实施例中,在设备的初始化或敏感内容的创建阶段,生成每个设备或安全/敏感内容的唯一非对称密钥对。在初始化阶段,将该对中的第一密钥(私钥)安全地存储在托管内容的设备中。该密钥专门用于对用于取回安全内容的通信进行加密。可以使用私钥或者在内容访问时使用私钥协商的密钥来完成加密。
该对中的第二密钥被托管。它被存储在安全库中,能够由唯一ID识别。ID对于每个受保护的内容或设备而言是唯一的。通过成功完成多个机构/实体的一组预定义授权,保护对ID特定的安全库的访问,以便取回用于通信的密钥。
授权被记录在实现安全的分布式分类账的区块链系统中。每个批准是交易链中的一个区块。当获得了所有所需批准时,生成用于从安全库中取回托管密钥的触发器。触发器通过唯一ID标识该库。
系统的实现可能需要设备制造商、内容生成器、应用提供商等在设备制造时或者在内容生成时修改代码以生成私钥/公钥对,并且将私钥/公钥对的公钥传送到库。还可以使用能够在内容访问时用于接收公钥的接口对设备进行编码。
区块链系统实现跨越多个政府机构、公司以及NGO而分布。它不向参与维护(挖掘)存储在该分布式分类账中的授权交易链的不可信采矿机开放。
SCAAS实现分布式授权系统,该分布式授权系统确保来自多个机构的所有所需主题授权被记录在最终触发安全内容解锁的不可反驳的区块链交易中。该系统确保不能由单个组织做出用于解锁内容或者设备访问的决策。此外,授权交易是可审计的、永久的并且不能被改变。
尽管已提出现有技术托管系统,但这些系统假设在一个管理组织的控制之下。本系统的益处在于,它跨越多个实体而分布用于授权对安全数据(具体地说私有个人数据)的访问的责任和义务,从而使系统更少受到破坏,并且确保仅在满足策略要求的条件下才公开敏感或私有数据。
图1A示出根据示例实施例的可在授权过程中涉及的实体的实体图。参考图1A,网络100包括来自行业102、政府104以及NGO 106的可信实体,这些可信实体运行基于区块链的安全内容访问授权系统110。设备制造商108也可以做出贡献。
图1B示出根据示例实施例的用于控制对设备上的内容的访问的系统图。在系统150中,在设备制造商152初始化设备或创建敏感内容的阶段,生成每个设备或安全/敏感内容的唯一非对称密钥对。在初始化阶段,将该对中的第一密钥(私钥)安全地存储在托管内容的设备中。该密钥专门用于对用于取回安全内容的通信进行加密。可以使用私钥或者在内容访问时使用私钥协商的密钥来完成加密。
该对中的第二密钥154被托管。托管密钥154被存储在安全库156中,并且能够由唯一ID来识别。该ID对于每个受保护的内容或设备而言是唯一的。在一个实施例中,安全库可以是区块链的一个或多个区块,然而其它安全数据存储系统对于本领域的技术人员而言将显而易见。
系统150还包括区块链网络160,其可以用于生成用于访问库156内的密钥的授权。当需要对加密密钥的访问时,请求者162可以向区块链网络160提交访问请求164。访问请求164的提交调用授权过程。访问请求164可以包括访问请求的细节,包括请求的原因、与涉及的各方相关的数据、支持请求的证据等。在一个实施例中,可以在链码或智能合约过程中实现授权过程。
区块链网络的授权过程可以将访问请求分发给授权实体166,授权实体166可以包括如图1A中所示的NGO、公司、机构等。授权实体166接收请求和与请求相关联的任何数据。每个授权实体可以根据它们自己的内部策略来执行自己的授权过程,以确定是否应该许可访问授权。由每个单独授权实体实施的授权策略可以是公共的、其它实体已知的或者私有的。授权实体的特定授权策略不被认为与本公开相关。
在实施它们自己的授权策略之后,每个授权实体向区块链系统160提交授权决策,区块链系统160从多个授权实体166接收多个授权168。单独授权决策可以包括额外数据,例如任何用于支持决策的证据。这些额外数据对于随后的审计决策可能是必需的或者至少是有益的。授权决策与访问请求ID相关联地被记录到区块链的一个或多个区块中。
当接收授权时,区块链系统实施它自己的授权策略,该授权策略确定是否应该许可对设备或设备上的内容的访问。授权策略可以包括确定是否许可访问的规则。在一个实施例中,如果所有授权实体批准访问,则可以许可访问。在一个实施例中,如果阈值数量的授权实体批准访问,则可以许可访问。在一个实施例中,访问可以依赖于特定实体或者许可访问的实体的组合。还可以实现这些实施例的各种组合。区块链策略处理所接收的授权,并且实施用于批准或阻止访问的策略。策略决策与请求ID以及任何支持策略证据或数据相关联地被记录在区块链中。
如果策略确定已满足对授权和公钥释放的要求,则将授权记录到区块链中,并且向安全库156释放授权触发器170。安全库向请求者释放密钥172,请求者然后可以使用该密钥来访问设备或内容174。
图2A例示了根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅仅是举例说明)。这些节点参与许多活动,例如区块链交易添加和验证过程(共识)。一个或多个区块链节点204-210可以基于背书策略来背书(endorse)交易,并可以为架构200中的所有区块链节点提供排序(ordering)服务。区块链节点可以发起区块链验证,并寻求写入存储在区块链层216中的区块链不可变分类账,其副本也可以存储在基础物理设施214上。区块链配置可以包括一个或多个应用程序224,这些应用程序224链接到应用编程接口(API)222以访问和执行所存储的程序/应用程序代码220(例如,链码、智能合约等),这些程序/应用程序代码可以根据参与者寻求的自定义配置来创建,并可以维护它们自己的状态,控制它们自己的资产,以及接收外部信息。这可以作为交易进行部署,并通过附加到分布式分类账而安装在所有区块链节点204-210上。
区块链基础或平台212可包括区块链数据、服务(例如,加密信任服务、虚拟执行环境等)以及基础物理计算机设施的各个层,该基础设施可用于接收和存储新的交易,并为寻求访问数据条目的审核者(auditors)提供访问。区块链层216可以开放一个接口,以为处理程序代码和参与基础物理设施214提供所需的对虚拟执行环境的访问。加密信任服务218可用于验证诸如资产交换交易的交易,并将信息保密。
图2A的区块链架构配置可以通过由区块链平台212开放的一个或多个接口来处理和执行程序/应用程序代码220以及所提供的服务。代码220可以控制区块链资产。例如,代码220可以存储和传输数据,并且可以由节点204-210以智能合约的形式执行,并将链码与条件或其它受其执行约束的代码元素相关联。作为非限制性的示例,可以创建智能合约来执行提醒、更新和/或其它通知(取决于更改、更新等)。智能合约本身可用于识别与授权、访问要求和分类账使用相关联的规则。例如,可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)来处理信息226,例如来自授权实体的授权决策。结果228可以包括关于是否释放公钥的决策。物理基础架构214可以用于取回本文描述的任何数据或信息。
在链码内,智能合约可以通过高级应用程序和编程语言创建,然后写入区块链中的区块。智能合约可以包括注册、存储和/或复制到区块链(例如,区块链对等体的分布式网络)的可执行代码。交易是智能合约代码的执行,智能合约代码的执行可以响应于与智能合约相关的条件的满足而进行。智能合约的执行可以触发对数字区块链分类账的状态的可信修改。智能合约的执行所导致的对区块链分类账的修改可以通过一个或多个共识协议在区块链对等体的分布式网络中自动复制。
智能合约可以以键-值对的形式向区块链写入数据。此外,智能合约代码可以读取存储在区块链中的值,并在应用程序操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入区块链。代码可用于在虚拟机或其它计算平台中创建临时数据结构。写入区块链的数据可以是公开的和/或经过加密并作为私有数据维护的。智能合约使用/生成的临时数据由所提供的执行环境保存在内存中,一旦识别出区块链所需的数据,临时数据便被删除。
链码可以包括智能合约的代码解释并且具有附加功能。如本文所述,链码可以是部署在计算网络上的程序代码,在共识过程期间由链验证器一起执行和验证。链码接收一个散列,并从区块链中取回一个与使用先前存储的特性提取器创建的数据模板相关联的散列。如果散列标识符的散列与从存储的标识符模板数据创建的散列相匹配,则链码将向被请求的服务发送授权钥。链码可以将与加密细节相关的数据写入区块链。在图2A中,由授权实体生成的授权决策被记录到区块链中。一种功能可以是将策略应用于来自授权实体的授权,以确定是否应该释放保护设备或内容的公钥,这可以由节点204-210中的一个或多个来提供。
图2B例示根据示例实施例的区块链节点之间的交易流250的示例。参考图2B,该交易流可以包括由应用客户端节点260发送给背书对等节点281的交易建议291。背书对等节点281可以验证客户端签名并执行发起交易的链码功能。输出可包括链码结果、在链码中读取的一组键/值版本(读取集)和在链码中写入的一组键/值(写入集)。如果得到批准,则将建议响应292连同背书签名一起发送回客户端260。客户端260将背书组装成交易负载293,并将其广播到排序服务节点284。然后,排序服务节点284将排序后的交易作为区块交付到通道上的所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证该交易。例如,对等体可以检查背书策略,以确保指定对等体的正确分配已签署结果并对照交易负载293验证了签名。
再次参考图2B,客户端节点260通过构造请求并向对等节点281(背书者)发送请求来发起交易291。客户端260可以包括利用受支持的软件开发工具包(SDK)(例如NODE、JAVA、PYTHON等)的应用程序,该工具包利用可用的API来生成交易建议。交易建议是一个调用链码功能以便可以读取数据和/或将数据写入分类账(即,写入资产的新键值对)的请求。该SDK可以充当一个填充程序(shim),用于将交易建议封装成适当架构的格式(例如,远程过程调用(RPC)上的协议缓冲区),并获取客户端的加密凭据来生成交易建议的唯一性签名。
作为响应,背书对等节点281可以验证:(a)交易建议形成得很好,(b)该交易过去未曾提交(重放攻击保护),(c)签名有效,以及(d)提交方(submitter)(在该示例中为客户端260)被适当授权在该通道上执行所建议的操作。背书对等节点281可以将交易建议输入作为被调用的链码功能的参数。然后针对当前状态数据库执行链码以产生包括响应值、读取集和写入集的交易结果。但是,此时没有对分类账进行更新。在292中,将该组值与背书对等节点281的签名一起作为建议响应292传递回客户端260的SDK,其解析负载以供应用程序使用。
作为响应,客户端260的应用程序检查/验证背书对等体签名并比较建议响应以确定建议响应是否相同。如果链码仅查询了分类账,则应用程序将检查查询响应并且通常不将该交易提交给排序服务节点284。如果客户端应用程序打算将该交易提交给排序服务节点284以更新分类账,则应用程序在提交之前确定指定的背书策略是否已得到满足(即,交易所需的所有对等节点都背书该交易)。这里,客户端可以仅包括交易的多方中的一方。在这种情况下,每个客户端可以有自己的背书节点,并且每个背书节点都需要背书该交易。该架构使得即使某应用程序选择不检查响应或以其它方式转发未经背书的交易,该背书策略仍将由对等体实施并在提交验证阶段得到支持。
在成功检查之后,在步骤293中,客户端260将背书组装到交易中,并向排序节点284广播交易消息内的交易建议和响应。交易可以包含读取/写入集,背书对等体签名和通道ID。排序服务节点284不需要检查交易的整个内容来执行其操作,而是可以简单地接收来自网络中所有通道的交易,按通道按时间对它们进行排序,并按通道创建交易的区块。
将交易的区块从排序服务节点284交付到通道上的所有对等节点281-283。验证区块内的交易294以确保任何背书策略都得到满足,以及确保自读取集被交易执行生成以来,读取集变量的分类账状态没有变化。将区块中的交易标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块附加到通道的链上,并且针对每个有效交易,将写入集提交给当前状态数据库。发出一个事件,以通知客户端应用程序已经将交易(调用)不可变地附加到链上,以及通知该交易验证是有效的还是无效的。
图3示出许可区块链网络300的示例,其特征在于分布式、去中心化对等架构以及管理用户角色和权限的认证机构318。在该示例中,区块链用户302可以将交易提交到许可区块链网络310。在该示例中,交易可以是部署、调用或者查询,并且可以通过利用SDK的客户端侧应用、直接通过REST API等发出。可信业务网络可以提供对监管者系统314(例如审计者,例如美国股票市场中的证券交易委员会)的访问。同时,节点308的区块链网络操作者系统管理成员权限,例如将监管者系统310注册为“审计者”,以及将区块链用户302注册为“客户”。审计者可以仅限于查询分类账,而客户可以被授权为部署、调用以及查询某些类型的链码。
区块链开发者系统316编写链码和客户端侧应用程序。区块链开发者系统316可以通过REST接口将链码直接部署到网络。为了在链码中包括来自传统数据源330的凭证,开发者系统316可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点312连接到区块链网络处理器332。在进行任何交易之前,对等节点312从认证机构318取回用户的注册和交易证书。在某些情况下,区块链用户必须拥有这些数字证书以便在许可区块链网络310上进行交易。同时,尝试驱动链码的用户可能需要在传统数据源330上验证其凭证。为了确认用户的授权,链码可以通过传统处理平台320使用与该数据的带外连接。
图4示出根据示例实施例的用于授权释放公钥以访问设备的系统消息传送图。参考图4,系统图400包括请求者410和区块链网络412,区块链网络412包括授权节点,节点414、416是授权节点的示例。首先,请求者410向区块链网络412发送对用于设备或内容的访问密钥的访问请求420。该请求可以由网络412的被编程为接收访问请求的任何节点所接收。在各种实施例中,接收节点可以是客户端节点、对等节点或排序节点。区块链网络412可以经由授权请求422、424将访问请求分发给授权节点414、416。在一个实施例中,分发可以是区块链网络412的排序节点的责任。区块链网络412从授权节点414、416接收授权决策426、428,并且将授权决策记录到网络412的区块链中。区块链网络412确定授权是否满足用于释放访问密钥的策略要求。如果满足,则区块链网络412向库418发送密钥请求430,库418返回密钥432。区块链网络412将密钥转发到请求者434。
可以构想该消息流的变型。例如,区块链网络412可以向请求者410提供批准,以从库418本身中取回密钥。
图5A示出根据示例实施例的授权对设备的访问的示例方法的流程图500。参考图5A,方法500可以包括将来自多个实体的多个授权决策接收到区块链系统中(510)。这些授权决策与对设备或安全内容的访问的请求相关。所接收的授权决策可以包括对设备或安全内容的访问的批准或拒绝。授权决策可以被记录到区块链的一个或多个区块中(512)。由区块链系统确定多个授权是否满足用于向设备释放公钥的策略要求(514)。当多个授权满足策略时要求时,释放公钥(516)。
图5B示出根据示例实施例的使用区块链保护对设备的访问的示例方法的流程图550。在步骤552,针对设备生成私钥/公钥对。私钥被存储在设备上(步骤554),而公钥被存储在安全存储装置中(步骤556)。区块链策略可以与公钥相关联(步骤558)。区块链策略可以包括确定将如何许可用于释放密钥的授权的规则。区块链策略可以被存储在区块链系统中(步骤560)。在一个实施例中,方法550可以包括当创建设备/内容时启动区块链,并且公钥可以作为第一区块或早期区块被存储在区块链中。用于访问设备/内容的请求可以被添加为该区块链的额外区块。
区块链可以用于存储授权过程的各种数据项。这些数据项可以包括但不限于:
-授权动作,其包括授权机构ID和安全设备/内容唯一ID。
-请求机构的密钥访问请求,其包括机构ID和设备/内容ID。
-密钥访问释放动作,其包括设备/内容ID、机构ID以及可选的授权机构ID。
此外,不同的实施例可以存储额外数据项,例如:
-制造商/创建者可以在发起步骤中将用于访问设备/内容的密钥存储在区块中,而不是使用外部库。
-所取回的安全内容。
通常,数据项将被存储在区块的数据区段中。但是,可以做出其它实现特定的选择。
在一个实施例中,当从一组所识别的授权机构接收到一定数量的唯一授权时,授权交易完成并且触发安全库的解锁。
在另一个实施例中,用于完成授权交易并触发对密钥的访问的策略指定了要满足的所需授权的模式。模式可以被定义为布尔表达式。例如,模式可以指定除了机构C或D之外,还需要来自机构A和B两者的授权。简单地说,作为布尔表达式,该示例将是:A AND BAND(C OR D)。
在另一个实施例中,安全库被实现为授权交易链的第一区块的一部分。链中的第一区块由创建者/制造商创建,并且包括以加密方式存储的密钥。请求者稍后在授权交易链中创建第二区块。根据所实施的授权策略,仅在成功完成授权交易链时,SCAAS系统才对插入第一区块中的密钥进行解密。
在另一个实施例中,SCAAS系统未通过向请求者释放密钥来完成其流程,而是它自身使用密钥来取回安全内容,并且在将内容记录为同一可审计的不可反驳的授权交易链中的最终区块之后,向请求者返回该内容。
在另一个实施例中,保护托管密钥的步骤涉及以多个步骤对该密钥进行加密,由此每个步骤按顺序使用参与机构的公钥。释放托管密钥涉及相反的解密步骤,其中参与机构使用其私钥按顺序执行每个步骤。
授权可以具有到期日期,策略可以指定必须在某个时间段内接收该组授权。
可以优选的是,不同的授权实体实施不同的授权策略,以确保在许可对设备/内容密钥的访问之前考虑广泛的因素。
图6A例示了一个示例系统600,其包括一个配置为根据示例性实施例执行各种操作的基础物理设施610。参考图6A,基础物理设施610包括模块612和模块614。模块614包括区块链620和智能合约630(可以位于区块链620上),该智能合约可以执行任何示例性实施例中包含的任何操作步骤608(模块612中)。步骤/操作608可以包括所说明或描述的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。基础物理设施610、模块612和模块614可包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是同一模块。
图6B例示了一个示例系统640,其被配置得执行根据示例性实施例的各种操作。参照图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合约630(可以位于区块链620上),该智能合约可以执行任何示例性实施例中包含的任何操作步骤608(模块612中)。步骤/操作608可以包括所说明或描述的一个或多个实施例,并且可以表示从一个或多个智能合约630和/或区块链620写入或读取的输出或写入信息。基础物理设施610、模块612和模块614可包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是同一模块。
图6C示出根据示例实施例的合约方之间的示例智能合约配置以及被配置为在区块链上实施智能合约条款的中介服务器。参考图6C,配置650可以代表由智能合约630驱动的通信会话、资产转移会话或过程,其明确地标识一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可以要求由智能合约交易的参与方中的一个或多个实体652和656进行数字签名。智能合约执行的结果可以作为区块链交易写入区块链620。智能合约630驻留在区块链620上,区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D例示根据示例性实施例的包括区块链的系统660。参考图6的示例,应用程序编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其它链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等体(即,服务器654)来对区块链执行交易(调用、查询等)的公共接口。这里,服务器654是区块链网络对等组件,其保存世界状态的副本和分布式分类账,从而允许客户端652和656查询关于世界状态的数据以及将交易提交到区块链网络中,其中,取决于智能合约630和背书策略,背书对等体将运行智能合约630。
以上实施例可以以硬件、处理器执行的计算机程序、固件或以上的组合的形式来实现。计算机程序可以体现在计算机可读介质(例如存储介质)上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其它形式的存储介质中。
示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息,将信息写入存储介质。在替代性方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代性方案中,处理器和存储介质可以作为分立组件驻留。
图7A例示根据示例性实施例的将新的区块添加到分布式分类账720的过程700,图7B例示根据示例性实施例的用于区块链的新数据块结构730的内容。参考图7A,客户端(未予示出)可以向区块链节点711、712和/或713提交交易。客户端可以是从任何源接收的用以在区块链720上进行活动的指令。作为示例,客户端可以是代表请求者(如设备、人或实体)以针对区块链建议交易的应用程序。多个区块链对等体(例如,区块链节点711、12和713)可以维护区块链网络的状态和分布式分类账720的副本。区块链网络中可以存在不同类型的区块链节点/对等体,包括模拟和背书由客户端提交的交易的背书对等体,验证背书、验证交易并向分布式分类账720提交交易的提交对等体。在该示例中,区块链节点711、712和713可以执行背书者节点、提交方节点或二者的角色。
分布式分类账720包括在区块中存储不可变的顺序记录的区块链,以及维护区块链722的当前状态的状态数据库734(当前世界状态)。每个通道可以对应有一个分布式分类账720,并且每个对等体维护其所属的每个通道的分布式分类账720的自己的副本。区块链722是以散列链接的区块构造的交易日志,其中每个区块包含一系列的N个交易。区块可以包括诸如图7B中所示的各种组件。可以通过在当前区块的块头中添加先前区块的块头的散列来生成区块的链接(由图7A中的箭头示出)。以这种方式,区块链722上的所有交易被排序并加密地链接在一起,从而防止不破坏散列链接而篡改区块链数据。此外,由于链接,区块链722中的最新区块表示在其之前的每个交易。区块链722可以存储在对等文件系统(本地或附接存储装置)上,其支持只可附加的区块链工作负载。
区块链722和分布式分类账722的当前状态可以存储在状态数据库734中。这里,当前状态数据表示区块链722的链交易日志中包含的所有键的最新值。链码调用针对状态数据库734中的当前状态执行交易。为了使这些链码交互非常有效,所有键的最新值都存储在状态数据库734中。状态数据库734可以包含区块链722的交易日志的索引视图,因此可以随时根据区块链重新生成索引视图。在接受交易之前,状态数据库734可以在对等体启动时自动恢复(或根据需要生成)。
背书节点从客户端接收交易,并根据模拟结果对交易进行背书。背书节点持有模拟交易建议的智能合约。当背书节点背书某交易时,背书节点将创建一个交易背书,该背书是背书节点对客户端应用程序的签名响应,指示对模拟交易的背书。对交易进行背书的方法取决于可以在链码中规定的背书策略。背书策略的一个例子是“大多数背书等同体必须为交易背书”。不同的通道可以有不同的背书策略。背书的交易(endorsed transactions)由客户端应用程序转发给排序服务710。
排序服务710接收背书的交易,将它们排序到一个区块中,并将这些区块交付给提交对等体。例如,当达到交易阈值、计时器超时或其它条件时,排序服务710可以启动新的区块。在图7A的示例中,区块链节点712是已经接收到一个用于在区块链720上存储的新数据块730的提交对等体。区块链中的第一个区块可以称为起始区块,其中包括关于该区块链及其成员、存储在其中的数据等信息。
排序服务710可以由一组排序者组成。排序服务710不处理交易、智能合约或维护共享分类账。相反,排序服务710可以接受背书的交易,并指定将这些交易提交到分布式分类账720的顺序。可以将区块链网络的架构设计得使得“排序”的具体实现(如Solo、Kafka、BFT等)成为可插拔组件。
交易是按照一致性的顺序被写入分布式分类账720的。确立交易的顺序以确保状态数据库734的更新在提交到网络时是有效的。与通过解决加密难题或挖掘进行排序的加密货币区块链系统(如比特币等)不同的是,在本示例中,分布式分类账720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化一个新数据块730时,可以将新数据块730广播给提交对等体(例如区块链节点711、712和713)。作为响应,每个提交对等体通过确保读取集和写入集仍然与状态数据库734中的当前世界状态匹配的检查,来验证新数据块730中的交易。具体来说,提交对等体可以确定当背书者模拟交易时存在的读取数据是否与状态数据库734中的当前世界状态相同。当提交对等体确认该交易时,该交易被写入分布式分类账720上的区块链722,状态数据库734被读取-写入集中的写入数据更新。如果交易失败,即如果提交对等体发现读取-写入集与状态数据库734中的当前世界状态不匹配,则排序到区块中的交易仍将被包括在该区块中,但它将被标记为无效,并且状态数据库734将不会更新。
参考图7B,存储在分布式分类账720的区块链722上的新数据块730(也称为数据块)可以包括多个数据段,诸如块头740、块数据750和块元数据760。应该认识到,图7B中所示的各种描述的区块及其内容,例如新数据块730及其内容,仅仅为示例,并非是要限制示例性实施例的范围。新数据块730可以在块数据750中存储N(例如1、10、100、500、1000、2000、3000等)个交易的交易信息。新数据块730还可以在块头740中包括指向(例如图7B中的区块链722上的)前一区块的链接。特别地,块头740可以包括前一区块的头的散列。块头740还可以包括唯一性块号、新数据块730的块数据750的散列等。新数据块730的块号可以是唯一性的,并以各种顺序,例如以从零开始的递增/顺序的顺序,进行分配。
块数据750可以存储新数据块730中记录的每个交易的交易信息。例如,交易数据可以包括下述的一个或多个:交易类型、版本、时间戳、分布式分类账720的通道ID、交易ID、时期(epoch)、有效负载可见性、链码路径(部署交易)、链码名、链码版本、输入(链码和函数)、客户(创建者)标识—诸如公钥和证书、客户签名、背书者身份、背书者签名、建议散列、链码事件、响应状态、命名空间、读取集(交易读取的键和版本列表等)、写入集(键和值列表等)、开始键、结束键、键的列表、默克尔树(Merkel tree)查询摘要,等等。可以为N个交易中的每个交易存储交易数据。
在一些实施例中,块数据750还可以存储向区块链722中的区块的散列链接的链添加附加信息的新数据762。附加信息包括本文说明或描述的步骤、特征、过程和/或操作的一个或多个。因此,可以将新数据762存储在分布式分类账720上的不可变区块日志中。存储这种新数据762的一些益处反映在本文公开和描述的各种实施例中。
区块元数据760可以存储多个元数据字段(例如,以字节数组等形式)。元数据字段可以包括区块创建时的签名、对最后一个配置块的引用、标识区块内的有效和无效交易的交易筛选器、对该区块进行排序的排序服务的最后一个偏移量等。排序服务710可以添加签名、最后一个配置块和排序者元数据。同时,区块的提交方(如区块链节点712)可以添加基于背书策略的有效性/无效性信息、读取/写入集的验证等。交易筛选器可以包括一个大小等于块数据750中的交易个数的字节数组和一个标识交易有效还是无效的验证代码。
图7C示出用于可以根据本文描述的实施例来形成、管理和跟踪的数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关信息。这些文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其它形式的数字内容。区块链的不可改变、只可附加的特点对保护数字内容的完整性、有效性和真实性起着保障作用,使数字内容适用于其中应用了容许性规则的法律程序,或者适用于顾及证据或提交和使用数字信息很重要的其它情景。在这种情况下,数字内容可以称为数字证据。
区块链的形成方式有多种多样。在一个实施例中,可以将数字内容纳入区块链中并从区块链本身访问。例如,区块链的每个区块可以与相关的数字内容一起存储引用信息(例如块头、值等)的散列值(hash value)。然后可以将散列值和相关的数字内容一起加密。因此,可以通过解密区块链中的每个区块来访问每个区块的数字内容,每个区块的散列值可以作为引用前一个区块的基础。这可以例示如下:
块1 块2 ...块N
散列值1 散列值2 散列值N
数字内容1 数字内容2 数字内容N
在一个实施例中,数字内容可以不含在区块链中。例如,区块链可以存储每个区块的内容的加密散列,而不存储任何数字内容。可以将数字内容与原始文件的散列值相关联地存储在另一个存储区或内存地址中。另一个存储区域可以是与存储区块链的相同的存储设备,也可以是不同的存储区,甚至是单独的关系数据库。通过获取或查询感兴趣的区块的散列值,然后在存储区中查找与实际的数字内容对应存储的该散列值,可以引用或访问每个区块的数字内容。这个操作可以由例如数据库网关管理器来执行。
这可以例示如下:
Figure BDA0002462096100000221
在图7C的示例性实施例中,区块链770包括按顺序加密链接的若干区块7781、7872、...778N,其中N≥1。用于链接区块7781、7872、...778N的加密术可以是多个密钥化或非密钥化散列函数中的任何一个。在一个实施例中,区块7781、7872、...778N受制于一个散列函数,该函数从基于区块中信息的输入产生n比特的字母数字输出(其中n是256或其它数字)。这种散列函数的例子包括但不限于SHA(安全散列算法)型算法、Merkle-Damagard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非抗冲突PRF的算法。在另一个实施例中,区块7781、7872、...778N可以通过不同于散列函数的函数进行加密链接。为了便于说明,以下描述参考了一种散列函数,例如SHA-2。
区块链中的每个区块7781、7872、...、778N都包含一个头、一个文件版本和一个值。由于区块链中的散列,每个区块的头和值都不同。在一个实施例中,值可以包括在头中。如下面更详细的描述,该文件版本可以是原始文件,或者原始文件的不同版本。
区块链中的第一个区块7781被称为起始区块,包括头7721、原始文件7741和初始值7761。用于起始区块的散列方案,以及所有后续区块的散列方案,可能会有所不同。例如,第一个块7781中的所有信息可以一次散列在一起,或者可以对第一个块7781中的每个或一部分信息单独进行散列,然后对单独散列的部分进行散列。
头7721可以包括一个或多个初始参数,例如,可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、来源、描述性关键字和/或与原始文件7741和/或区块链相关的其它信息。头7721可以自动生成(例如,通过区块链网络管理软件),也可以由区块链参与者手动生成。与区块链中其它区块7782至778N中的头不同,起始区块中的头7721没有引用前一区块,这仅仅是因为没有前一区块。
例如,起始区块中的原始文件7741例如可以是设备捕获的、在将其纳入区块链之前处理或未处理的数据。原始文件7741通过系统接口从设备、媒体源或节点接收。将原始文件7741与例如可以由用户、设备和/或系统处理器手动或自动生成的元数据关联。可以将元数据与原始文件7741一起包含在第一个区块7781中。
起始区块中的值7761是基于原始文件7741的一个或多个唯一性属性生成的初始值。在一个实施例中,该一个或多个唯一性属性可以包括原始文件7741的散列值、原始文件7741的元数据以及与该文件相关的其它信息。在一个实现中,初始值7761可以基于以下唯一性属性:
1)原始文件的SHA-2计算的散列值
2)发起设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于软件目前控制原始文件和关联元数据的区块链网络成员ID
区块链中的其它区块7782到778N也具有头、文件和值。但是,与第一个区块的头7721不同的是,其它区块中的头7722到772N每个都包含前一区块的散列值。前一区块的散列值可能只是前一区块的头的散列,也可能是整个前一区块的散列值。通过将前一区块的散列值包含在其余每个区块中,可以从第N个块逐个区块地反向跟踪到起始区块(以及相关的原始文件),如箭头780所示,以建立可审核和不可变的监护链。
一般而言,其它区块中的每个头7722到772N还可以包括其它信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或与相应文件和/或区块链相关的其它参数或信息。
其它区块中的文件7742到774N可以等于原始文件,也可以是起始区块中原始文件的修改版本,具体取决于所执行的处理的类型。所执行的处理的类型可能因区块而异。例如,处理可能涉及对前一区块中的文件的任何修改,例如修订信息或以其它方式更改文件的内容、从文件中去除信息或向文件添加或附接信息。
此外,或者作为替代,处理可能仅涉及从前一区块复制文件、更改文件的存储位置、分析一个或多个在前区块中的文件、将文件从一个存储或内存位置移动到另一个存储或内存位置,或者执行相对于区块链文件和/或其关联的元数据的操作。涉及分析文件的处理可以包括(例如)附加、包括或以其它方式关联与该文件关联的各种分析、统计或其它信息。
其它区块7762到776N中的每个其它区块的值都是唯一性的值,并且由于所执行的处理而不同。例如,任何一个区块中的值对应于前一区块中的值的更新版本。更新反映在向其分配值的区块的散列中。因此,区块的值提供了区块中执行了什么处理的指示,并允许通过区块链回溯跟踪到原始文件。此跟踪确认了文件在整个区块链中的监管链。
例如,考察对前一区块中的文件的部分进行修订、分块或像素化以便保护文件中所示的人的身份的情况。在这种情况下,包括被修订文件的区块将包括与被修订文件相关联的元数据,例如修订操作的执行方式、谁执行修订操作、发生修订操作的时间戳等。可以对元数据进行散列以形成值。由于区块的元数据与前一区块中通过散列形成值的信息不同,因此这些值彼此不同,在解密时可以恢复。
在一个实施例中,当发生以下任何一个或多个情况时,可以更新前一区块的值(例如,计算出新的散列值),以形成当前区块的值。在本实施例中,新的散列值可以通过散列下面所述的全部或部分信息来计算。
a)新SHA-2计算的散列值(如果文件已以任何方式处理)(例如,如果文件已被修订、复制、更改、访问或采取了某些其它操作)
b)文件的新存储位置
c)识别的与文件关联的新元数据
d)将文件的访问或控制从一个区块链参与者转移到另一个区块链参与者
图7D例示可表示根据一个实施例的区块链790中的区块的结构的区块i的实施例。区块即Blocki包括头772i、文件774i和值776i
头772i包括前一区块Blocki-1的散列值和额外的引用信息,该信息例如可以是本文讨论的任何类型的信息(例如,包括引用、特征、参数等的头信息)。所有区块都引用前一区块的散列值,当然,起始区块除外。前一区块的散列值可以只是前一区块中头的散列,也可以是前一区块中的全部或部分信息(包括文件和元数据)的散列。
文件774i包括多个数据,如依次的Data 1、Data 2、……、Data N。这些数据用描述与数据相关的内容和/或特征的元数据Metadata1、Metadata2、……、MetadataN来标记。例如,每个数据的元数据可以包括指示数据时间戳的信息、处理数据、指示数据中描述的人员或其它内容的关键字,和/或有助于确定文件整体的有效性和内容—尤其是其作为数字证据的用途,例如如下文所讨论的实施例所述的那样—的其它特征。除了元数据之外,每个数据还可以用对前一数据的引用REF1、REF2、……、REFN来标记,以防止篡改、文件中的间隙以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合约),元数据在散列没有改变情况下就不能被更改,而散列的改变很容易被识别为无效。因此,元数据创建了可被访问以供区块链参与者使用的信息的数据日志。
值776i是基于前面讨论过的任何类型的信息计算出的散列值或其它值。例如,对于任何给定的区块Blocki,可以更新该区块的值以反映为该区块执行的处理,例如,新散列值、新存储位置、关联文件的新元数据、控制或访问的传输、标识符或要添加的其它操作或信息。尽管每个区块中的值被显示为是与文件的数据的元数据和头分离的,但是在另一个实施例中该值可以部分或全部基于元数据。
一旦区块链770形成,在任何时间点,可以通过向区块链查询跨区块的值的交易历史来获取文件的不可改变的监管链。此查询或跟踪过程可以始于解密最近被包括的区块(例如,最后一个(第N个)区块)的值,然后继续解密其它区块的值,直到到达起始区块,然后恢复原始文件。解密也可能涉及到解密每个区块上的头和文件以及相关的元数据。
解密是根据每个区块中发生的加密的类型执行的。这可能涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定的算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可以被公开分发以用作从其它用户接收消息的地址(例如IP地址或家庭地址)。私钥是保密的,用于对发送给其它区块链参与者的消息进行数字签名。签名被包括在邮件中,以便接收者可以使用发件人的公钥进行验证。这样,接收者就可以确信只有发件人才可能发送了此邮件。
生成密钥对可以类似于在区块链上创建帐户但无须实际在任何地方注册。此外,在区块链上执行的每个交易都由发送方使用其私钥进行数字签名。此签名确保只有帐户所有者才能跟踪和处理区块链的文件(如果在智能合约确定的权限范围内)。
图8并非旨在对本文描述的本申请的实施例的使用范围或功能带来任何限制。总之,计算节点800能够被实现和/或执行在上文中给出的任何功能。
在计算节点800中,具有计算机系统/服务器802,其可以与众多其它通用或专用计算系统环境或配置一起运行。适用于计算机系统/服务器802的公知计算系统、环境和/或配置示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持或笔记本设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型机计算机系统和包括上述任何系统或设备等的分布式云计算环境。
计算机系统/服务器802可在由计算机系统执行的计算机系统可执行指令(如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器802可以在分布式云计算环境中使用,其中任务由通过通信网络连接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地和远程计算机系统存储介质中。
如图8中所示,云计算节点800中的计算机系统/服务器802以通用计算设备的形式示出。计算机系统/服务器802的组件可以包括但不限于一个或多个处理器或处理单元804、系统存储器806,以及将包括系统存储器806的各种系统组件耦合到处理器804的总线。
总线代表若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围设备总线、加速图形端口、以及使用各种总线架构中的任何总线架构的处理器或本地总线。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
计算机系统/服务器802通常包括各种计算机系统可读介质。这样的媒体可以是计算机系统/服务器802可访问的任何可用媒体,包括易失性和非易失性媒体,可移动和不可移动媒体。在一个实施例中,系统存储器806实现其它附图中的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)810和/或高速缓冲存储器812。计算机系统/服务器802还可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统814用于对不可移动的非易失性磁介质(未予示出,通常称为“硬盘驱动器”)进行数据的读取和写入。尽管未予示出,但是可以提供用于读取和写入可移动的非易失性磁盘(例如,“软盘”)的磁盘驱动器,以及用于读取或写入可移动的非易失性光学器件的光盘驱动器,诸如CD-ROM、DVD-ROM或其它光学介质的盘。在这种情况下,每个都可以通过一个或多个数据媒体接口连接到总线。如下面将进一步描绘和描述的,存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置为执行本申请的各种实施例的功能。
具有一组(至少一个)程序模块818的程序/实用程序816可以作为示例而非限制地存储在存储器806中,操作系统、一个或多个应用程序、其它程序模块和程序数据也同样。操作系统、一个或多个应用程序、其它程序模块和程序数据中的每一个或它们的某种组合可以包括网络环境的实现。程序模块818通常执行如本文所述的本申请的各种实施例的功能和/或方法。
所属领域的技术人员应当理解,本申请的各方面可体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)的形式或者组合软件和硬件方面的实施例,这些实施例在这里通常可以被称为“电路”“模块”或“系统”。本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有包含在其上的计算机可读程序代码。
计算机系统/服务器802还可以与一个或多个外部设备820通信,外部设备例如是键盘、指示设备、显示器822;一个或多个使用户能够与计算机系统/服务器802交互的设备;和/或使计算机系统/服务器802能够与一个或多个其它计算设备通信的任何设备(例如,网卡,调制解调器等)。这种通信可以通过I/O接口824进行。此外,计算机系统/服务器802还可以经由网络适配器826与诸如局域网(LAN)、一般广域网(WAN)和/或公共的网络(例如因特网)的一个或多个网络通信。如图所示,网络适配器826经由总线与计算机系统/服务器802的其它组件通信。应当理解,尽管未予示出,但是其它硬件和/或软件组件可以与计算机系统/服务器802结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列,RAID系统、磁带驱动器和数据存档存储系统等。
尽管在附图中示出了系统、方法和非暂时性计算机可读介质中的至少一个的示例性实施例,并且在前面的详细描述中进行了描述,但是应该理解,本申请不限于所公开的实施例,而是能够进行如下所述的权利要求所阐述和限定的许多重新排列、修改和替换。例如,各附图的系统的功能可以由本文描述的一个或多个模块或组件或在分布式架构中执行,并且可以包括发射器、接收器或发射器-接收器对。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个执行。此外,本文描述的功能可以在不同时间并且与模块或组件内部或外部的各种事件相关地执行。此外,可以通过多个协议和/或通过以下的至少一个在模块之间发送在各个模块之间发送的信息:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备。而且,可以直接和/或经由一个或多个其它模块发送或接收由任何模块发送或接收的消息。
本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能手机或任何其它合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式实现。
应当注意,本说明书中描述的一些系统特征被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以实现为包括定制的超大规模集成(VLSI)电路或门阵列的硬件电路,诸如逻辑芯片、晶体管或其它分立元件的现成半导体。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等的可编程硬件设备中实现。
模块还可以至少部分地以软件实现,以由各种类型的处理器执行。所识别的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当逻辑上连接在一起时,这些指令包括模块并实现模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其它此类介质。
实际上,可执行代码的模块可以是单个指令或多个指令,甚至可以分布在几个不同的代码段上,不同的程序中以及若干个存储器设备上。类似地,操作数据可以在本文中在模块内被识别和示出,并且可以以任何合适的形式体现并且被组织在任何合适类型的数据结构中。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
容易理解的是,如本文附图中一般描述和例示的那样,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以以不同顺序的步骤和/或使用与所公开的配置不同的配置中的硬件元件来实现上述内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应该理解,所描述的实施例仅仅是说明性的,本申请的范围仅由所附的权利要求在考虑各种等同物和修改(例如协议、硬件设备、软件平台等)的全部范围的情况下限定。

Claims (17)

1.一种系统,包括:
两个或更多个授权实体;
区块链系统;其中,所述区块链系统被配置为:
从所述两个或更多个授权实体接收两个或更多个授权决策;
将所述两个或更多个授权决策记录到所述区块链系统的区块链的一个或多个区块中;
由所述区块链系统确定所述两个或更多个授权决策是否满足用于授权对设备或所述设备上的可识别内容中的至少一者的访问的策略;以及
当所述两个或更多个授权决策满足所述策略时,授权对能够用于获得对所述设备的访问的公钥的访问。
2.根据权利要求1所述的系统,包括:将对设备的访问请求接收到所述区块链系统中,并且将所述访问请求分发到所述两个或更多个授权实体。
3.根据权利要求2所述的方法,包括:将所述访问请求存储在所述区块链中。
4.根据权利要求1所述的系统,其中,所述区块链系统被配置为:将所述公钥接收到所述区块链系统中,并且将所述公钥存储在所述区块链的区块中。
5.根据权利要求1所述的系统,其中,策略要求需要至少两个所述授权实体授权所述公钥的释放。
6.根据权利要求1所述的系统,其中,所述策略是在所述区块链系统的链码中实现的。
7.根据权利要求1所述的系统,其中,所述区块链系统被配置为:从所述设备接收使用所述公钥取回的安全内容,并且将所述安全内容存储在所述区块链中。
8.一种方法,包括:
将来自两个或更多个授权实体的两个或更多个授权决策接收到区块链系统中;
将所述两个或更多个授权决策记录到所述区块链系统的区块链的一个或多个区块中;
由所述区块链系统确定所述两个或更多个授权决策是否满足用于授权对设备或所述设备上的可识别内容中的至少一者的访问的策略;以及
当所述两个或更多个授权决策满足所述策略时,授权对能够用于获得对所述设备的访问的公钥的访问。
9.根据权利要求8所述的方法,包括:将与设备有关的访问请求接收到所述区块链系统中,并且将所述访问请求分发到所述两个或更多个授权实体。
10.根据权利要求9所述的方法,包括:将所述访问请求存储在所述区块链中。
11.根据权利要求8所述的方法,包括:将所述公钥接收到所述区块链系统中,并且将所述公钥存储在所述区块链的区块中。
12.根据权利要求8所述的方法,其中,策略要求需要至少两个所述授权实体授权所述公钥的释放。
13.根据权利要求8所述的方法,其中,所述策略是在所述区块链系统的链码中实现的。
14.根据权利要求8所述的方法,包括:使用所述公钥从所述设备中取回安全内容,并且将所述安全内容存储在所述区块链中。
15.一种包括指令的非瞬时性计算机可读介质,所述指令在由处理器读取时使得所述处理器执行根据权利要求8至14中任一项所述的方法。
16.一种计算机系统,包括:
一个或多个处理器;
耦合到所述一个或多个处理器的计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令在由所述一个或多个处理器执行时执行根据权利要求8至14中任一项所述的方法。
17.一种系统,所述系统包括分别用于执行根据权利要求8至14中任一项所述的方法的各个步骤的模块。
CN202010325659.XA 2019-04-25 2020-04-22 用于区块链网络中的区块链的方法和系统 Active CN111859411B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/394,234 US11263333B2 (en) 2019-04-25 2019-04-25 Multi-subject device access authorization
US16/394234 2019-04-25

Publications (2)

Publication Number Publication Date
CN111859411A true CN111859411A (zh) 2020-10-30
CN111859411B CN111859411B (zh) 2024-04-26

Family

ID=72922206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010325659.XA Active CN111859411B (zh) 2019-04-25 2020-04-22 用于区块链网络中的区块链的方法和系统

Country Status (2)

Country Link
US (1) US11263333B2 (zh)
CN (1) CN111859411B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565453A (zh) * 2020-12-22 2021-03-26 内蒙古大学 一种物联网下的区块链访问控制策略模型及策略保护方案

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7163351B2 (ja) * 2020-11-05 2022-10-31 株式会社日立製作所 電子取引システム、電子取引システムのデータ秘匿化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123936A (zh) * 2017-12-13 2018-06-05 北京科技大学 一种基于区块链技术的访问控制方法及系统
US20180337771A1 (en) * 2017-05-19 2018-11-22 International Business Machines Corporation Policy enforcement via peer devices using a blockchain
CN109559117A (zh) * 2018-11-14 2019-04-02 北京科技大学 基于属性基加密的区块链合约隐私保护方法与系统
CN109559124A (zh) * 2018-12-17 2019-04-02 重庆大学 一种基于区块链的云数据安全共享方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904722B2 (en) * 1994-07-19 2011-03-08 Certco, Llc Method for securely using digital signatures in a commercial cryptographic system
US7174457B1 (en) 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
WO2000027090A2 (en) 1998-10-30 2000-05-11 Science Applications International Corporation Network protocol for secure communications
US7363495B2 (en) 2001-02-22 2008-04-22 Bea Systems, Inc. System and method for message encryption and signing in a transaction processing system
GB0221639D0 (en) * 2002-09-17 2002-10-30 Hewlett Packard Co Method and apparatus for printing
US8788842B2 (en) 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US10628578B2 (en) * 2013-03-15 2020-04-21 Imagine Communications Corp. Systems and methods for determining trust levels for computing components using blockchain
US9641338B2 (en) 2015-03-12 2017-05-02 Skuchain, Inc. Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items
WO2017004527A1 (en) 2015-07-02 2017-01-05 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US11347876B2 (en) 2015-07-31 2022-05-31 British Telecommunications Public Limited Company Access control
US10504080B2 (en) 2015-09-14 2019-12-10 OX Labs Inc. Cryptographically managingtelecommunications settlement
US20180121918A1 (en) * 2016-11-03 2018-05-03 Mastercard International Incorporated Method and system for net settlement by use of cryptographic promissory notes issued on a blockchain
US20180144342A1 (en) * 2016-11-21 2018-05-24 American Express Travel Related Services Company, Inc. Rapid checkout pre-initiation
EP3593311A4 (en) * 2017-03-08 2020-01-22 Visa International Service Association SYSTEM AND METHOD FOR FRAUD RISK ANALYSIS IN THE IOT
US20180322489A1 (en) * 2017-05-03 2018-11-08 Meredith Altenhofen System and method for restricted transaction processing
SG11202000636XA (en) * 2017-08-01 2020-02-27 Visa Int Service Ass Private data processing
US11488433B2 (en) * 2018-01-11 2022-11-01 Mastercard International Incorporated Method and system for public elections on a moderated blockchain
CN108418795B (zh) * 2018-01-30 2019-05-28 百度在线网络技术(北京)有限公司 跨区块链的数据访问方法、装置、系统及计算机可读介质
US10878429B2 (en) * 2018-03-28 2020-12-29 Konstantinos Bakalis Systems and methods for using codes and images within a blockchain
US10673626B2 (en) * 2018-03-30 2020-06-02 Spyrus, Inc. Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US20200027169A1 (en) * 2018-07-21 2020-01-23 Renato Valencia Blockchain-enabled double entry recordkeeping system and method of implementing the same
JP6873235B2 (ja) * 2018-11-27 2021-05-19 アドバンスド ニュー テクノロジーズ カンパニー リミテッド コンソーシアムブロックチェーンネットワーク内の非対称鍵管理
US11394712B2 (en) * 2019-01-18 2022-07-19 Anchor Labs, Inc. Secure account access
US10535062B1 (en) * 2019-03-20 2020-01-14 Capital One Services, Llc Using a contactless card to securely share personal data stored in a blockchain
US11387978B2 (en) * 2019-09-23 2022-07-12 Live Nation Entertainment, Inc. Systems and methods for securing access rights to resources using cryptography and the blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180337771A1 (en) * 2017-05-19 2018-11-22 International Business Machines Corporation Policy enforcement via peer devices using a blockchain
CN108123936A (zh) * 2017-12-13 2018-06-05 北京科技大学 一种基于区块链技术的访问控制方法及系统
CN109559117A (zh) * 2018-11-14 2019-04-02 北京科技大学 基于属性基加密的区块链合约隐私保护方法与系统
CN109559124A (zh) * 2018-12-17 2019-04-02 重庆大学 一种基于区块链的云数据安全共享方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565453A (zh) * 2020-12-22 2021-03-26 内蒙古大学 一种物联网下的区块链访问控制策略模型及策略保护方案

Also Published As

Publication number Publication date
CN111859411B (zh) 2024-04-26
US11263333B2 (en) 2022-03-01
US20200342132A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
CN111800268B (zh) 用于区块链背书的零知识证明
CN112053157B (zh) 灵活交易验证
CN111881129A (zh) 用于数据库的索引管理
CN111881099A (zh) 数据库私有文档共享
CN112069165A (zh) 文档编校和协调
CN111951003A (zh) 用于管理对用户数据的同意的认知系统
CN110674128B (zh) 区块链的链上治理
JP2022548168A (ja) プライベート・ブロックチェーンからの更新のチェーン外通知
US20200382301A1 (en) Anonymous rating structure for database
CN111666332B (zh) 自动演进的数据库背书策略
US11360946B2 (en) Tracking data transfers
CN112241919A (zh) 具有数据流控制的多域区块链网络
CN111796968A (zh) 受数据库交易保证的提交
CN111831739A (zh) 数据库复合背书
CN111881130A (zh) 区块链存储结构的冲突解决方案
US11240003B2 (en) Consent-based data management
JP2023513420A (ja) ブロックチェーン台帳のためのインデックス構造
CN114450708A (zh) 基于现有链码的链码推荐
CN111831740A (zh) 对等体的同步
CN115605868A (zh) 跨网身份提供
CN112052474A (zh) 蓝光拷贝服务
CN112084186A (zh) 拆分和合并存储
CN111881109A (zh) 数据库可合并分类账
CN111859411B (zh) 用于区块链网络中的区块链的方法和系统
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
GR01 Patent grant
GR01 Patent grant