CN115605868A - 跨网身份提供 - Google Patents

跨网身份提供 Download PDF

Info

Publication number
CN115605868A
CN115605868A CN202180034546.7A CN202180034546A CN115605868A CN 115605868 A CN115605868 A CN 115605868A CN 202180034546 A CN202180034546 A CN 202180034546A CN 115605868 A CN115605868 A CN 115605868A
Authority
CN
China
Prior art keywords
blockchain
network
iin
identity
processor
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
Application number
CN202180034546.7A
Other languages
English (en)
Inventor
P·诺瓦特尼
T·奥尔森
V·拉马克里什纳
N·高尔
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 CN115605868A publication Critical patent/CN115605868A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)

Abstract

一种示例操作包括以下中的一个或多个:由身份提供节点将区块链一连接到区块链二,由身份提供节点创建用于区块链一和区块链二的互操作身份网络(IIN)作为自主身份(SSI)网络的实例,执行智能合约以:调用IIN访问控制策略,基于所述IIN访问控制策略将所述区块链一的属性和许可映射到所述区块链二的属性和许可,并且基于所映射的属性和许可在所述区块链一和所述区块链二中生成所述IIN的有效可验证凭证(VC)。

Description

跨网身份提供
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如台式中央处理单元(CPU)、服务器CPU或大型计算机。存储在集中式数据库中的信息通常可从不同的点访问。多个用户或客户端工作站可以例如基于客户端/服务器配置同时在集中式数据库上工作。集中式数据库由于其单个位置而易于管理、维护和控制,尤其是出于安全的目的。在集中式数据库内,数据冗余被最小化,因为所有数据的单个存储位置也暗示给定数据集仅具有一个主记录。
发明内容
从第一方面来看,本发明提供了一种包括处理器和存储器的***,其中,所述处理器被配置为执行以下中的一个或多个:将区块链一连接到区块链二,创建用于区块链一和用于区块链二的互操作身份网络(IIN)作为自主身份(SSI)网络的实例,执行智能合约以:调用IIN访问控制策略,基于所述IIN访问控制策略将所述区块链一的属性和许可(permission)映射到所述区块链二的属性和许可,并且基于所映射的属性和许可在所述区块链一和所述区块链二中生成所述IIN的有效可验证凭证(VC)。
优选地,本发明提供一种***,其中SSI网络被配置为存储跨网络分散标识符(DID)。
优选地,本发明提供了一种***,其中SSI网络包括定义相关DID文档结构的IIN专用模式。
优选地,本发明提供了一种***,其中所述指令还使所述处理器执行所述智能合约以应用所述IIN访问控制策略来定义所述区块链中的被允许连接到所述区块链二并调用所述区块链二的功能的实体。
优选地,本发明提供了一种***,其中,所述指令还使处理器执行智能合约以基于SSI网络的DID来验证区块链一和区块链二中的IIN的VC。
优选地,本发明提供了一种***,其中,所述指令还使处理器使用IIN来为多个区块链网络进行跨网络身份提供。
优选地,本发明提供了一种***,其中,所述指令还使所述处理器执行所述智能合约以对照所述IIN访问控制策略来验证可验证呈现的身份和许可。
从第二方面来看,本发明提供了一种方法,所述方法包括以下中的一个或多个:由身份提供节点将区块链一连接到区块链二;由身份提供节点创建作为自主身份(SSI)网络的实例的、用于区块链一和用于区块链二的互操作身份网络(IIN),执行智能合约以:调用IIN访问控制策略,基于所述IIN访问控制策略将所述区块链一的属性和许可映射到所述区块链二的属性和许可,并且基于所映射的属性和许可在所述区块链一和所述区块链二中生成所述IIN的有效可验证凭证(VC)。
优选地,本发明提供一种方法,其中SSI网络被配置为存储跨网络分散标识符(DID)。
优选地,本发明提供一种方法,其中SSI网络包括定义相关DID文档结构的IIN特定模式。
优选地,本发明提供了一种方法,还包括执行智能合约以应用IIN访问控制策略来定义被允许连接到区块链二并调用区块链二的功能的区块链一的实体。
优选地,本发明提供了一种方法,还包括执行智能合约以基于SSI网络的DID来验证区块链一和区块链二中的IIN的VC。
优选地,本发明提供了一种方法,该方法还包括使用IIN来为多个区块链网络进行跨网络身份提供。
优选地,本发明提供了一种方法,该方法还包括:执行智能合约,以对照IIN访问控制策略来验证可验证呈现的身份和许可。
从第三方面来看,本发明提供了一种包括指令的非暂态计算机可读介质,所述指令在由处理器读取时使所述处理器执行:将区块链一连接至区块链二;创建用于所述区块链一和所述区块链二的互操作身份网络(IIN)作为自主身份(SSI)网络的实例;执行智能合约以:调用IIN访问控制策略;基于所述IIN访问控制策略,将所述区块链一的属性和许可映射到所述区块链二的属性和许可;以及基于映射的属性和许可,生成区块链一和区块链二中的IIN的有效可验证凭证(VC)。
优选地,本发明提供一种非临时性计算机可读介质,其中SSI网络被配置为存储跨网络分散标识符(DID)。
优选地,本发明提供了一种非暂态计算机可读介质,还包括指令,当所述指令被处理器读取时,使得处理器执行智能合约以应用IIN访问控制策略来定义区块链一的被允许连接到区块链二并调用区块链二的功能的实体。
优选地,本发明提供了一种非暂态计算机可读介质,还包括指令,当所述指令被处理器读取时,使得处理器执行智能合约以基于SSI网络的DID来验证区块链一和区块链二中的IIN的VC。
优选地,本发明提供了一种还包括指令的非暂态计算机可读介质,所述指令在由处理器读取时使处理器使用IIN来为多个区块链网络进行跨网络身份提供。
优选地,本发明提供了一种非暂态计算机可读介质,还包括指令,当由处理器读取时,所述指令使处理器执行智能合约以对照IIN访问控制策略来验证可验证呈现的身份和许可。
附图说明
图1示出了根据示例实施例的包括数据库的***的网络图。
图2A示出了根据示例实施例的示例区块链架构配置。
图2B示出了根据各示例实施例的区块链交易流。
图3A示出了根据示例实施例的许可网络。
图3B示出了根据示例实施例的另一许可网络。
图3C示出了根据示例实施例的无许可网络。
图4A示出了根据示例实施例的流程图。
图4B示出了根据示例实施例的另一流程图。
图5A示出了根据示例实施例的被配置为执行这里描述的一个或多个操作的示例***。
图5B示出了根据示例实施例的被配置为执行这里描述的一个或多个操作的另一示例***。
图5C示出了根据示例实施例的被配置为利用智能合约的另一示例***。
图5D示出了根据示例实施例的被配置为利用区块链的又一示例***。
图6A图示了根据示例实施例的用于将新区块添加到分布式分类账的过程。
图6B示出了根据示例实施例的新数据区块的内容。
图6C示出了根据示例实施例的数字内容的区块链。
图6D示出了根据示例性实施例的可表示区块链中的区块的结构的区块。
图7A示出了根据示例实施例的存储机器学习(人工智能)数据的示例区块链。
图7B示出了根据示例实施例的示例量子安全区块链。
图8示出了支持一个或多个示例实施例的示例***。
具体实施方式
容易理解,如在本文附图中一般性描述和说明的,本发明的部件可以以各种不同的配置来布置和设计。因此,如附图中所表示的方法、装置、非暂态计算机可读介质和***中的至少一个的实施例的以下详细描述不旨在限制如所要求保护的应用的范围,而仅仅是所选实施例的代表。
在一个或多个实施例中,可以以任何适当的方式组合或去除本说明书中描述的本特征、结构或特性。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其它类似语言的使用指的是结合实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,在整个说明书中出现的短语“示例实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言不一定全部指代同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可以用于发送信息。
另外,虽然在实施例的描述中可能已经使用了术语“消息”,但是该应用可以应用于许多类型的网络和数据。此外,虽然在示例性实施例中可以描述某些类型的连接、消息和信令,但是本申请不限于某些类型的连接、消息和信令。
示例实施例提供了在区块链网络中提供跨网络身份提供的方法、***、组件、非暂态计算机可读介质、设备和/或网络。
在一个实施例中,应用利用作为分布式存储***的分散式数据库(诸如区块链),其包括彼此通信的多个节点。分散数据库包括只附加的不可改变的数据结构,类似于能够在相互不信任的各方之间维护记录的分布式分类账。这里将非可信(untrusted)方称为对等方或对等节点。每个对等方保持数据库记录的副本,并且没有单个对等方可以在分布式对等方之间没有达成共识的情况下修改数据库记录。例如,对等方可以执行共识协议以验证区块链存储交易,将存储交易分组为区块,并在区块上构建散列链。该过程通过根据需要对存储交易进行排序以便保持一致性,从而形成分类帐。在各种实施方式中,可使用许可的和/或无许可的区块链。在公共或无许可的区块链中,任何人可以在没有特定身份的情况下参与。公共区块链可涉及本机加密货币并基于诸如工作证明(PoW)等各种协议来使用共识。另一方面,许可的区块链数据库提供了在共享共同目标但不完全信任彼此的一组实体(诸如,交换资金、商品、信息等的企业)之间的安全交互。
本申请可以利用操作任意的、可编程的逻辑的区块链,其被定制为分散存储方案并且被称为“智能合约”或“链码”。在某些情况下,可以存在用于被称为***链码的管理功能和参数的专用链码。应用还可利用作为可信分布式应用的智能合约,该应用利用区块链数据库的防篡改特性和节点之间的底层协议,这被称为背书或背书策略。与该应用相关联的区块链交易在被提交给区块链之前可被“背书”,而未被背书的交易被忽略。背书策略允许链码以一组对等节点的形式为交易指定背书者,其是背书所必需的。当客户端将交易发送到背书策略中指定的对等方时,执行交易以验证交易。在验证之后,交易进入排序阶段,在该排序阶段中使用共识协议来产生被分组成区块的背书交易的有序序列。
本申请可以利用作为区块链***的通信实体的节点。“节点”可以执行逻辑功能,其意义在于不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可包括不同类型,诸如向背书者(例如,对等方)提交交易调用并向排序服务(例如,排序节点)广播交易建议的客户端或提交客户端节点。另一种类型的节点是对等节点,其可接收客户端提交的交易、提交交易并维护区块链交易的分类账的状态和副本。对等方也可以具有背书者的角色,尽管这不是必需的。订购服务节点或订货者是为所有节点运行通信服务的节点,并且当提交交易并修改区块链世界状态时,其实现递送保证,例如广播到***中的每个对等节点,这是初始区块链交易的另一名称,其通常包括控制和设置信息。
本申请可以利用分类账,该分类账是区块链的所有状态转换的排序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)产生。每个参与方(诸如对等节点)可以维护分类账的副本。交易可以导致一组资产键-值对被提交给分类账作为一个或多个操作数,诸如创建、更新、删除等。分类账包括用于以区块存储不可改变的有序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
该应用可以利用作为交易日志的链,该交易日志被构造为散列链接的区块,并且每个区块包含N个交易的序列,其中N等于或大于一。区块标题包括区块交易的散列,以及前一区块标题的散列。以这种方式,可以对分类账上的所有交易进行排序并且将其加密地链接在一起。因此,在不破坏散列链接的情况下,不可能篡改分类账数据。最近添加的区块链区块的散列表示在其之前到来的链上的每个交易,使得可以确保所有对等节点处于一致且可信的状态。该链可被存储在对等节点文件***(即,本地、附加存储、云等)上,从而高效地支持区块链工作负荷的仅附加性质。
不可变分类账的当前状态表示包括在链交易日志中的所有键的最新值。由于当前状态表示频道已知的最近的键值,所以它有时被称为世界状态。链码调用针对分类账的当前状态数据执行交易。为了使这些链码交互作用有效,可将键的最新值存储在状态数据库中。状态数据库可以简单地是链的交易日志中的索引视图,因此可以在任何时间从链中重新生成。在对等节点启动时,并且在接受交易之前,可以自动恢复(或者如果需要的话,可以生成)状态数据库。
本文描述和描绘的本解决方案的一些益处包括用于在区块链网络中跨网络身份提供的方法和***。示例性实施例通过扩展数据库的特征,诸如不可变度、数字签名和单个真值来解决时间和信任的问题。示例性实施例提供了一种用于区块链网络中跨网络身份提供的解决方案。区块链网络可以是基于资产类型和基于智能合约来管理资产的规则的同构网络。
区块链与传统数据库的不同之处在于,区块链不是中央存储,而是分散的、不可变的和安全的存储,其中节点必须共享对存储中的记录的改变。区块链中固有的并且帮助实现区块链的一些属性包括但不限于不可改变的分类账、智能合约、安全性、隐私、分散、共识、背书、可访问性等,其在本文中被进一步描述。根据各个方面,由于对区块链固有且唯一的不可变的责任、安全性、隐私、允许的分散、智能合约的可用性、背书和可访问性,实现了用于区块链网络中的跨网络身份提供的***。具体地,区块链分类账数据是不可变的,并且提供了用于区块链网络中跨网络身份提供的有效方法。此外,区块链中加密的使用提供了安全性并建立了信任。智能合约管理资产的状态以完成生命周期。示例性区块链是许可分散的。因此,每个终端用户可以具有其自己的分类账副本以供访问。多个组织(和对等方)可以在区块链网络上装载。键组织可以用作背书对等方以验证智能合约执行结果、读取集和写入集。换言之,区块链固有特征提供了用于区块链网络中跨网络身份提供的方法的有效实现。
示例实施例的益处之一在于,其通过实现用于在区块链网络中跨网络身份提供的方法来改进计算***的功能。示例性实施例可以桥接多个网络的身份***。这提高了信任并引起透明性,而不放弃一系列互连***的隐私和机密性。通过本文描述的区块链***,计算***可通过提供对诸如分布式分类账、对等方、加密技术、MSP、事件处理等能力的访问来执行区块链网络中跨网络身份提供的功能。此外,区块链使得能够创建商业网络并使得任何用户或组织能够作为参与者。这样,区块链不仅仅是数据库。区块链具有创建用户和董事会/非董事会组织的商业网络的能力,以便以智能合约的形式合作和执行服务过程。
示例实施例提供了优于传统数据库的许多益处。例如,通过区块链,实施例提供了对于区块链固有且唯一的不可改变的责任、安全性、隐私、允许的分散、智能合约的可用性、背书和可访问性。
同时,传统数据库不能用于实现示例实施例,因为它不将所有方带入商业网络,它不创建可信协作并且不提供数字资产的高效存储。传统的数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。因此,所提出的用于区块链网络中的跨网络身份提供的方法不能在传统数据库中实现,因为跨网络身份提供是基于创建并被用于在区块链网络中使用可替代资产(ID)的DID来构建的。虽然每个区块链技术框架利用数据库来存储记录/交易数据和交易日志,但是数据库可以仅提供存储机制。示例性实施例利用区块链作为交易***,其具有不可改变的记录和坚持包括可替代资产的数字资产的交易/信任所有权的元素的能力,以及使用非可替代资产来证明身份和定义/资产所有权。数据库不足以在***中实现所有这些。
同时,如果传统的数据库被用于实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性和交易速度慢。另外,用于在区块链网络中跨网络身份提供的自动化方法将完全不可能。
集中式数据库具有单个故障点。特别地,如果没有容错考虑并且发生故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据丢失并且所有用户的工作中断。此外,集中式数据库高度依赖于网络连接性。结果,连接越慢,每次数据库访问所需的时间量增加。另外,当集中式数据库由于单个位置而经历高流量时,瓶颈的发生是可能的。此外,集中式数据库仅维护数据的一个副本。结果,多个设备不能在同一时间访问同一数据片而不产生重写所存储数据的显著问题或风险。此外,因为数据库存储***具有最小数据冗余到没有数据冗余,所以除了通过手动操作从备份存储中检索外,意外丢失的数据可能非常难以检索。
因此,需要一种可以用作跨网络身份提供的有效工具的基于区块链的解决方案。在区块链中,参与者身份通常基于凭证。然而,在跨网络环境中使用凭证可能是困难且低效的。在网络上分发密码材料可能是不安全和昂贵的。
因此,示例实施例提供了用于在区块链网络中提供的一个或多个解决方案。
示例实施例还改变数据可以如何被存储在区块链的区块结构内。例如,数字资产数据可以被安全地存储在数据区块的特定部分中(即,在首部、数据段或元数据中)。通过将数字资产数据存储在区块链的数据区块内,数字资产数据可以通过区块的散列链接链被附加到不可变的区块链分类账。在一些实施例中,数据区块可以通过使与数字资产相关联的个人数据不与资产一起存储在区块链的传统区块结构内而不同于传统数据区块。通过移除与数字资产相关联的个人数据,区块链可以基于不可变的责任和安全性来提供匿名的益处。
根据示例性实施例,提供了一种用于区块链网络中跨网络身份提供的方法和***。
在跨网络环境中,区块链网络需要互操作以进行资产和信息交换。这需要可信任的跨网络操作,而这又涉及跨网络身份和凭证共享。示例性实施例可以提供用于通用互操作的可扩展机制,因为手动自组织共享是低效的并且难以维护。如上所述,在网络上分发密码材料可能是困难的和不安全的。为了信任另一网络的用户,身份、信任树、属性等必须跨网络可用。这可能需要定期分发更新(即,新可信任实体、改变、CRL等)。进而,需要文件/记录的定期同步,这在现实生活的情况下可能是不可行的。网络运营商/利益相关者需要对这种信息的共享进行细粒度的控制。
示例性实施例可以提供可联系性,即,利用凭证来保护跨网络的隐私。在一个实施方案中,提供了自主身份(SSI)模型。根据一个实施例,提供了跨网络身份管理的基于(DID)/SSI W3C标准的解决方案。DID/SSI关键概念如下:
DID-分散标识符,全球化唯一标识符-即,基于URN的可分辨的和可验证的;
DID基础结构模型-即由所有DID区块链、网络等组成的全局键值对数据库;
DID的值是文档;
可验证凭证(VC)-通过由发行者作出的一组明显篡改且可验证的声明来扩展所述DID;
-可验证呈现(VP)-从VC导出以呈现与特定验证器共享的特定凭证属性。VP可以包含从原始凭证(即,零知识证明)生成的数据;
可验证数据注册表-调解身份、凭证模式等的创建和验证。
超级分类账(Hyperledger)Indy-具有一组钱包和代理的专有区块链的特定实现,所述代理便于VC和VP信息的交换。
根据一个示例性实施例,可以实现使用SSI模型的跨网络互操作。提供了一种集成DID/SSI机制以在区块链网络中提供身份创建和验证的机制。在作为一个例子的超级分类账结构的环境中,它是一种新型的MSP,其允许在多个网络上使用身份和许可。网络关系实现如下。
每个区块链网络决定谁和如何通过互操作策略与其交互。可以实现网络A和远程网络B之间的身份互操作。网络A选择它信任的外部实体来发布凭证(例如,整个网络B、org_1或其他实体)。这包括关于授权/访问控制的决定。访问网络A的远程客户端(例如,网络B的客户端)担当较早的凭证持有者。网络A信任的实体(例如,网络B的org_1)充当对持有者的凭证发布者。网络A充当凭证的检验者,并通过其本地共识协议来决定是否允许远程客户端调用特定动作。根据示例性实施例,提供了一种促进上述交互的机制。跨网络身份机制可以使用互操作身份网络(IIN)体系结构。IIN可以使用SSI网络的实例来存储跨网络DID(例如,Indy、SSI结构、Sovrin等)。在W3C标准术语中,IIN提供可验证数据区。IIN可以存储用于在跨网络环境中交换凭证的DID。SSI网络可具有描述相关DID文档的结构的IIN专用模式。该模式可以包括与VC相关联的属性的一般定义(对于网络之间的属性映射是关键的)。
多个区块链/分类账/通道可以连接到任意IIN。IIN可作为私有或公共服务-例如,服务提供商、联盟或开放社区等来操作。分类帐/通道可定义IIN访问控制策略。策略可以定义允许哪些外部实体连接到和调用功能。换言之,策略可以将被信任的实体定义为凭证发布者。策略还可以定义外部到本地属性/许可的映射。策略可以存储在分类账上并且可以是所有对等方都可访问的。分类账可连接到任何数量的IIN。IIN代理节点可由网络/分类帐组件/对等方使用以与IIN交互。IIN访问控制策略可定义代理可连接哪些IIN。IIN代理可以具有访问权限,并且可以直接与IIN交互,并且可以调解其它组件对IIN的访问权限。IIN代理可从IIN检索DID或将DID存储到IIN。IIN代理可根据需要与其它代理交换凭证信息(使用IIN)。IIN代理可便利鉴权和授权所需的VP和VC信息的流动。
IIN身份提供器可由对等方和其它组件用来提供认证和授权。在一个实施例中,IIN身份提供者可被实现为Hyperledger架构中的IIN.MSP。IIN身份提供者可使用IIN代理和访问控制策略来执行认证和授权功能。IIN身份提供者可以验证身份和针对策略的可验证呈现的许可。注意,中继组件可促进IIN机制之外的跨网络环境中的消息流。
对于参与跨网络消息流的用户,IIN可验证的凭证(VC)被发给用户,以便存储在本地钱包中(例如,在客户端软件钱包中)。VC发布可以基于每个利益相关者/组织(即,通过架构中的CA)来管理。VC的发行由IIN发行策略(专用于每个机构)来管理。策略可定义IIN VC被发布给哪些身份以及哪些属性被包括。策略定义本地属性到IIN模式属性的映射。该发布可以被实现为IIN代理的自动和透明功能。例如,当网络身份被发给用户(例如,由架构CA认证)时,它可以由IIN代理自动执行。该机构还可以连同所选择的属性一起发布一个VC。VC还可以在任何其他时间由运营商/管理者等生成。VC可以由用户接收和使用。
根据一个示例性实施例,可验证的呈现发布和使用可以被实现为IIN代理的功能。在用户向远程网络发送消息之前,用户可以生成特定远程网络的可验证呈现。用户可以构造证明,并可以将证明与消息一起发送到远程网络。验证协议可以作为IIN代理的功能来实现。当网络接收到远程消息时,代理可以基于访问控制策略验证附加的证明。验证协议可以定义是否允许身份访问网络,即,由可信任的发布者发布。验证协议还可以定义身份是否具有调用所请求的功能的许可,即,将属性映射到角色/许可。例如,以本地和远程网络为目的地的消息由本地凭证和添加的VP导出证明来签署。消息可以由中继器路由到远程网络。远程网络使用IIN身份提供器(例如,IIN.MSP)和IIN代理来基于IIN访问控制策略认证和验证授权。
根据另一示例性实施例,可提供用于区块链的分布式身份管理服务。可以实现一种允许将DID/SSI作为身份和许可的源集成到跨网络区块链设置中的***。所需组件集合可包括IIN网络、IIN代理、IIN策略和IIN身份提供者,它们便于在区块链网络之间创建、交换和验证身份和许可。在区块链网络中创建有效DID/SSI-IIN VC的过程可如下实现。创建由IIN发行策略控制。创建可以包括访问控制属性的映射机制。在区块链网络中验证DID/SSI-IIN VC的过程如下。验证由IIN访问控制策略来管理。该验证确定调用特定智能合约功能的能力。验证可以基于分配给发布者的许可和VC中包括的属性。
图1示出了根据示例实施例的用于区块链网络中跨网络身份提供的逻辑网络图。
参考图1,示例网络100包括身份提供节点102。身份提供节点102可以连接到具有分类账108的区块链106,并且连接到具有分类账109的区块链107。身份提供节点可通过IIN105来连接区块链106和107。虽然该示例仅详细描述了仅一个身份提供节点102,但是多个这样的节点可以连接到区块链106和107。应当理解,身份提供节点102可包括附加组件,并且在不脱离这里公开的身份提供节点102的范围的情况下,这里描述的一些组件可被移除和/或修改。身份提供节点102可以是计算设备或服务器计算机等,并且可以包括处理器104,其可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或另一硬件设备。尽管描绘了单个处理器104,但是应当理解,身份提供节点102可以包括多个处理器、多个核心等,而不脱离身份提供节点102***的范围。注意,多个区块链可由IIN 105连接。
身份提供节点102还可以包括非暂态计算机可读介质112,其上可以存储可由处理器104执行的机器可读指令。机器可读指令的例子如114-118所示,并在下面进一步讨论。非暂态计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁、光或其他物理存储设备。例如,非暂态计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其它类型的存储设备。
处理器104可执行机器可读指令114以将区块链一106连接到区块链二107。区块链可被配置成使用管理多个参与节点的交易的一个或多个智能合约。
处理器104可执行机器可读指令116以创建用于区块链一106和区块链二107的互操作身份网络(IIN)105,作为自主身份(SSI)网络的实例。处理器104可以执行机器可读指令118以执行智能合约以:调用IIN 105访问控制策略;基于IIN 105访问控制策略,将区块链一106的属性和许可映射到区块链二107的属性和许可;以及基于映射的属性和许可,在区块链一106和区块链二107中生成IIN 105的有效可验证凭证(VC)。
图2A示出了根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可包括某些区块链元件,例如,一组区块链节点202。区块链节点202可包括一个或多个节点204-210(这四个节点仅通过示例来描述)。这些节点参与多个活动,诸如区块链交易增加和验证过程(共识)。区块链节点204和210中的一个或多个可基于背书策略背书交易,并可为架构200中的所有区块链节点提供订购服务。区块链节点可启动区块链认证并设法写入存储在区块链层216中的区块链不可变分类账,其副本也可存储在基础物理基础设施214上。区块链配置可包括一个或多个应用224,其链接到应用编程接口(API)222以访问和执行存储的程序/应用代码220(例如,链码、智能合约等),其可根据参与者所寻求的定制配置来创建,并且可维护其自己的状态、控制其自己的资产、以及接收外部信息。这可以被部署为交易,并且经由附加到分布式分类账而被安装在所有区块链节点204和210上。
区块链基础或平台212可包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各层,并加强可用于接收和存储新的交易并提供对试图访问数据条目的审核器的访问的物理计算机基础设施。区块链层216可展示提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问的接口。密码信任服务218可用于验证诸如资产交换交易等的交易并保持信息私密。
图2A的区块链架构配置可通过区块链平台212所暴露的一个或多个接口以及所提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传送数据,并且可以以智能合约和具有条件的关联链码或从属于其执行的其它代码元素的形式由节点204-210执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或从属于改变、更新等的其他通知。智能合约本身可以用于识别与分类账的授权和访问要求以及使用相关联的规则。例如,区块链一的属性和许可以及区块链二信息226的属性和许可可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)来处理(即,映射)。结果228可包括基于映射的属性和许可的区块链一和区块链二中的IIN的有效可验证凭证(VC)。
物理基础设施214可以用于检索本文所述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,并且然后被写入区块链中的区块。智能合约可以包括向区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字区块链分类账的状态的(一个或多个)可信修改。由智能合约执行引起的对区块链分类账的(一个或多个)修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中自动复制。
智能合约可以以键-值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入区块链中。该代码可用于在虚拟机或其它计算平台中创建临时数据结构。写入到区块链的数据可以是公共的和/或可以被加密并被维护为私有的。由智能合约使用/生成的临时数据由所供应的执行环境保持在存储器中,然后一旦标识了区块链所需的数据就被删除。
链码可以包括具有附加特征的智能合约的代码解释。如这里所述,链码可以是部署在计算网络上的程序代码,其中它在共识过程期间由链式验证器一起执行和验证。该链码接收散列并从区块链检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列与从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。所述链码可以向区块链写入与密码细节相关联的数据。
图2B示出了根据一示例实施例的区块链的节点之间的区块链交易流250的示例。参考图2B,交易流可包括由应用客户端节点260发送到背书对等节点281的交易建议291。背书对等方281可以验证客户端签名并执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集)以及在链码中写入的一组键/值(写入集)。如果批准,则将提议响应292连同背书签名一起发送回客户端260。客户端260将背书组装成交易有效载荷293,并将其广播到订购服务节点284。然后,订购服务节点284将订购的交易作为区块在通道上递送给所有对等方281-283。在提交到区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略以确保指定对等方的正确分配已经签署了结果并对照交易有效载荷293来认证签名。
再次参考图2B,客户端节点260通过构造请求并将其发送到作为背书者的对等节点281来启动交易291。客户端260可以包括利用支持软件开发工具包(SDK)的应用,其利用可用的API来生成交易建议。该提议是请求调用链码功能,以便可以将数据读取和/或写入到分类账(即,写入用于资产的新的键值对)。SDK可以用作填补将交易建议封装为适当的架构化格式(例如,远程过程调用(RPC)上的协议缓冲区),并采用客户端的密码凭证来产生交易建议的唯一签名。
作为响应,背书对等节点281可以验证(a)交易建议形成得很好,(b)交易在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中为客户端260)被正确授权在该通道上执行所建议的操作。背书对等节点281可以将交易建议输入作为所调用的链码函数的自变量。然后,对照当前状态数据库执行该链码,以产生包括响应值、读集合和写集合的交易结果。然而,此时不对分类账进行更新。在292,该组值连同背书对等节点281的签名一起作为提议响应292被传递回客户端260的SDK,该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可通过N接口将链码直接部署到网络。为了在链码中包括来自传统数据源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使用带外连接到该数据。
在一些实施方式中,本文的区块链可以是无许可的区块链。与需要允许加入的许可的区块链相反,任何人都可以加入无许可的区块链。例如,为了加入无许可区块链,用户可以通过提交交易并因此向分类账添加条目来创建个人地址并开始与网络交互。另外,所有各方都可以选择在***上运行节点并采用挖掘协议来帮助验证交易。
图3C示出了由包括多个节点354的无许可区块链352处理的交易的过程350。发送者356期望经由无许可区块链352向接收者358发送支付或一些其他形式的价值(例如,契约、医疗记录、合同、货物、服务、或能够被封装在数字记录中的任何其他资产)。在一个实施例中,发送方设备356和接收方设备358中的每一个可以具有提供用户界面控制和交易参数显示的数字钱包(与区块链352相关联)。作为响应,交易在整个区块链352中被广播到节点354。取决于区块链352的网络参数,节点基于由无许可区块链352的创建者建立的规则(其可以是预定义的或动态分配的)来验证360交易。例如,这可以包括验证所涉及各方的身份等。可以立即验证交易,或者可以将其与其它交易一起放入队列中,并且节点354基于一组网络规则来确定交易是否有效。
在结构362中,有效交易被形成为区块并用锁(散列)来密封。该过程可以通过挖掘节点354中的节点来执行。挖掘节点可利用专用于挖掘和创建无许可区块链352的区块的附加软件。每个区块可以由使用网络商定的算法创建的散列(例如,256位的数字等)来标识。每个区块可以包括首部、指向链中前一区块首部的散列的指针或引用、以及一组有效交易。对前一区块散列的引用与安全独立区块链的创建相关联。
在区块可被添加到区块链之前,必须验证这些区块。对无许可区块链352的验证可包括作为从区块的首部导出的谜题的解的工作证明(PoW)。尽管在图3C的示例中未示出,但是用于验证区块的另一过程是标桩证明。与工作证明不同,其中算法奖励解决数学问题的挖掘器,利用标桩证明,根据其财富,也被定义为“标桩”,以确定性方式选择新区块的创建者。然后,由所选择/挑选的节点执行类似的证明。
通过挖掘364,节点试图通过对一个变量进行递增改变来求解该区块,直到该解满足网络范围的目标。这创建了PoW,从而确保正确的应答。换句话说,潜在的解决方案必须证明在解决问题时计算资源被耗尽。在某些类型的无许可区块链中,挖掘器可因正确挖掘区块而被奖励值(例如,硬币等)。
这里,除了区块链之外,PoW过程使得区块链的修改极其困难,因为攻击者必须修改所有后续区块以便接受一个区块的修改。此外,随着新的区块被开采,修改区块的难度增加,并且后续区块的数量增加。通过分发366,成功验证的区块通过无许可区块链352分布,并且所有节点354将区块添加到多数链,其是无许可区块链352的可审计分类账。此外,由发送者356提交的交易中的值被存放或以其他方式转移到接收者设备358的数字钱包。
图4A示出了根据示例实施例的区块链网络中跨网络身份提供的示例方法的流程图400。参考图4A,方法400可包括下面描述的一个或多个步骤。
图4A示出了由身份提供节点102(参见图1)执行的示例方法的流程图。应当理解,图4A中描绘的方法400可以包括附加操作,并且其中描述的一些操作可以被移除和/或修改,而不脱离方法400的范围。为了说明的目的,还参考图1中描绘的特征来进行方法400的描述。具体地,身份提供节点102的处理器104可以执行方法400中包括的一些或所有操作。
参考图4A,在框412,处理器104可将区块链一连接到区块链二。在框414,处理器104可为区块链一和区块链二创建互操作身份网络(IIN)作为自主身份(SSI)网络的实例。在框416,处理器104可以执行智能合约以:调用IIN访问控制策略;基于所述IIN访问控制策略,将所述区块链一的属性和许可映射到所述区块链二的属性和许可;以及基于映射的属性和许可,生成区块链一和区块链二中的IIN的有效可验证凭证(VC)。
图4B示出了根据示例实施例的示例方法的流程图450。参考图4B,方法450还可以包括以下步骤中的一个或多个。在框452处,处理器104可执行智能合约以应用IIN访问控制策略来定义被允许连接到区块链二并调用区块链二的功能的区块链一的实体。在框454,处理器104可执行智能合约,以基于SSI网络的DID来验证区块链一和区块链二中的IIN的VC。在框456,处理器104可使用IIN来为多个区块链网络进行跨网络身份提供。在框458,处理器104可以执行智能合约以对照IIN访问控制策略来验证可验证呈现的身份和许可。注意,SSI网络可以被配置为存储跨网络分散标识符(DID)。SSI网络可以具有定义相关DID文档的结构的IIN特定模式。
图5A示出了根据示例实施例的包括被配置成执行各种操作的物理基础结构510的示例***500。参考图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写入或读取的输出或写入信息。模块512和模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5C图示了根据示例实施例的被配置成利用契约方之间的智能合约配置和被配置成在区块链上实施智能合约条款的中介服务器的示例***。参考图5C,配置550可以表示由明确地标识一个或多个用户设备552和/或556的智能合约530驱动的通信会话、资产转移会话或过程或规程。智能合约执行的执行、操作和结果可以由服务器554管理。智能合约530的内容可能需要由作为智能合约交易各方的实体552和556中的一个或多个进行数字签名。智能合约执行的结果可作为区块链交易被写入区块链520。智能合约530驻留在区块链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的内容。新数据区块结构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是已经接收到用于存储在区块链620上的新数据区块630的提交对等方。区块链中的第一区块可以被称为起源区块,起源区块包括关于区块链、其成员、存储在其中的数据等的信息。
订购服务610可以是订购者的集群的组成部分。订购服务610不处理交易、智能合约或维护共享分类账。相反,订购服务610可以接受背书的交易,并且指定将这些交易提交给分布式分类账620的顺序。区块链网络的架构可被设计成使得“排序”的特定实现(例如,Solo、Kafka、BFT等)变为可插式组件。
以一致的顺序将交易写入分布式分类账620。建立交易的顺序以确保当将对状态数据库624的更新提交给网络时它们是有效的。与通过密码谜题的求解或挖掘来进行排序的加密货币区块链***(例如Bitcoin等)不同,在该示例中,分布式分类账620的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新数据区块630时,新数据区块630可被广播到提交对等方(例如,区块链节点611、612和613)。作为响应,每个提交对等方通过检查以确保读集合和写集合仍然匹配状态数据库624中的当前世界状态来确认新数据区块630内的交易。具体地,提交对等方可以确定在背书者模拟交易时存在的读取数据是否与状态数据库624中的当前世界状态相同。当提交对等方确认交易时,交易被写入分布式分类账620上的区块链622,并且用来自读写集的写数据更新状态数据库624。如果交易失败,即,如果提交对等方发现读-写集合不匹配状态数据库624中的当前世界状态,则排序成区块的交易将仍然包括在该区块中,但是它将被标记为无效,并且状态数据库624将不被更新。
参考图6B,存储在分布式分类账620的区块链622上的新数据区块630(也被称为数据区块)可以包括多个数据段,诸如区块首部640、区块数据650和区块元数据660。应当理解,各种所示的区块及其内容,诸如新数据区块630及其内容。图6B中所示的仅是示例,并不意味着限制示例实施例的范围。新数据区块630可以在区块数据650内存储N个交易(例如1、10、100、500、1000、2000、3000等)的交易信息。新数据区块630还可包括到区块首部640内的(例如,图6A中的区块链622上的)先前区块的链接。特别地,区块首部640可以包括前一区块首部的散列。区块标题640还可以包括唯一的区块号、新数据区块630的区块数据650的散列等。新数据区块630的区块号可以是唯一的,并且以各种顺序分配,例如从零开始的递增/依次顺序。
区块数据650可以存储记录在新数据区块630中的每个交易的交易信息。例如,交易数据可以包括交易类型、版本、时间戳、分布式分类账620的通道ID、交易ID、时期、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和函数)、诸如公钥和凭证的客户端(创建者)标识、客户端的签名、背书者的标识、背书者签名、建议散列、链码事件、响应状态、命名空间、读取集合(由交易读取的键和版本的列表等)、写入集合(键和值的列表等)、开始键、结束键、键的列表、马尔科夫树查询摘要等中的一个或多个。可以为N个交易中的每一个存储交易数据。
在一些实施例中,区块数据650还可以存储新数据662,其将附加信息添加到区块链622中的区块的散列链接的链中。附加信息包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据662可以被存储在分布式分类账620上的区块的不可变日志中。存储此新数据662的益处中的一些反映于本文所揭示和描绘的各种实施例中。尽管在图6B中,新数据662被描绘在区块数据650中,但是也可以位于区块首部640或区块元数据660中。新数据662可包括区块链一和二的属性和许可的映射。
区块元数据660可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括区块创建上的签名、对最后配置区块的引用、标识区块内的有效和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移量持久保存等等。签名、最后配置区块和订购者元数据可以由订购服务610添加。同时,区块的提交者(诸如区块链节点612)可基于背书策略、读/写集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据650中的交易数量的字节数组和标识交易是有效还是无效的验证码。
图6C示出了根据本文描述的实施例的用于数字内容的区块链670的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面用作保护数字内容的完整性、有效性和真实性的安全措施,使其适合用于法律程序,其中应用了容许性规则或考虑证据的其它设置,或者其中数字信息的呈现和使用是另外感兴趣的。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储引用信息的散列值(例如,首部、值等)。然后,可以一起加密散列值和相关联的数字内容。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的散列值可以用作引用前一区块的基础。
这可以说明如下:
Figure BDA0003937797120000181
Figure BDA0003937797120000191
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密散列而没有任何数字内容。数字内容可以存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可以通过获得或查询感兴趣的区块的散列值,然后在存储区域中查找具有与实际数字内容相对应地存储的值,来引用或访问每个区块的数字内容。例如,可以由数据库看门人来执行该操作。这可以如下说明:
Figure BDA0003937797120000192
在图6C的示例实施例中,区块链670包括以有序序列密码链接的多个区块6781、6782、…678N,其中N≥1。用于链接区块6781、6782、…678N的加密可以是多个密钥或非密钥散列函数中的任何一个。在一个实施例中,区块6781、6782、…678N经受散列函数,该散列函数从基于区块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种散列函数的例子包括但不限于SHA型(SHA代表安全散列算法)算法、Merkle-Damagard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非抗冲突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中的区块的结构的区块的实施例。区块i,Blocki,包括首部672i、文件674i和值676i
首部672i包括先前区块i-1的散列值和附加引用信息,该附加引用信息例如可以是本文所讨论的任何类型的信息(例如,包括引用、特性、参数等的首部信息)。所有区块引用前一区块的散列,当然除了起源区块之外。前一区块的散列值可以仅仅是前一区块中的首部的散列,或者是前一区块中的全部或部分信息的散列,包括文件和元数据。
文件674i包括多个数据,例如顺序的数据1、数据2、…、数据N。数据被标记有描述与数据相关联的内容和/或特性的元数据1、元数据2、…、元数据N。例如,每个数据的元数据可以包括指示数据的时间戳、处理数据、指示数据中描绘的人或其他内容的关键词和/或可以有助于建立文件作为整体的有效性和内容的其他特征,并且特别是其使用数字证据的信息,例如,如结合下文讨论的实施例所描述的。除了元数据之外,每个数据可以用对先前数据的引用REF1、REF2、…、REFN来标记,以防止文件中的篡改、间隙以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合约),元数据在散列没有改变的情况下不能被更改,这可以容易地被标识以用于无效。因此,元数据创建了可以被访问以供区块链中的参与者使用的信息的数据日志。
值676i是基于先前讨论的任何类型的信息计算的散列值或其他值。例如,对于任何给定区块Blocki,可以更新该区块的值以反映针对该区块执行的处理,例如,新的散列值、新的存储位置、关联文件的新的元数据、控制或访问的转移、标识符、或要添加的其他动作或信息。尽管每个区块中的值被示为与文件和首部的数据的元数据分开,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成了区块链670,在任何时间点,通过向区块链查询跨区块的值的交易历史,可以获得文件的不可改变的监管链。该查询或跟踪过程可以开始于解密最当前包括的区块(例如,最后一个(Nth)区块)的值,然后继续解密其他区块的值,直到到达起源区块并且恢复原始文件。解密也可涉及解密每个区块中的首部和文件以及相关联的元数据。
基于在每个区块中发生的加密类型来执行解密。这可以涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,区块链参与者或网络中的处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系彼此相关联。公共密钥可以被公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥保持秘密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,以便接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可以发送该消息。
生成密钥对可类似于在区块链上创建帐户,但不必实际上在任何地方注册。而且,在区块链上执行的每个交易由发送者使用其私钥来数字地签名。该签名确保只有账户的所有者能够跟踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
图7A和7B示出了本文可结合和使用的区块链的使用情况的另外的示例。具体地,图7A示出了存储机器学习(人工智能)数据的区块链710的示例700。机器学习依赖于大量的历史数据(或训练数据)来构建用于对新数据进行准确预测的预测模型。机器学习软件(例如,神经网络等)通常可以筛选数百万条记录以找出非直观模式。
在图7A的示例中,主机平台720建立和部署用于资产730的预测监控的机器学***台720可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产730可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机械和设备、石油和天然气设备、船、舰、车辆等。作为另一个例子,资产730可以是非有形资产,例如股票、货币、数字硬币、保险等。
区块链710可以用于显著改进机器学***台720在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可直接且可靠地从其起源地直接传递到区块链710。通过使用区块链710来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到使用该数据来构建机器学习模型的个体。这允许在资产730之间共享数据。
所收集的数据可以基于共识机制被存储在区块链710中。共识机制拉入(许可节点)以确保正被记录的数据被验证和是准确的。记录的数据被加上时间戳、被密码签名并且是不可变的。因此,它是可审计的、透明的和安全的。在某些情况下(即,供应链、保健、物流等),添加直接写入区块链的IoT设备可以增加被记录的数据的频率和准确性。
此外,在所收集的数据上训练机器学***台720进行若干轮细化和测试。每轮可以基于附加数据或先前未被考虑的数据以帮助扩展机器学***台720存储在区块链710上。机器学***台720已经实现最终训练的模型时,所得模型可被存储在区块链710上。
在已经训练了模型之后,可以将其部署到现场环境,在现场环境中,可以基于最终训练的机器学***台720处执行机器学***台720存储在区块链710上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链710上或相对于其发生。
针对区块链的新交易可被一起聚集到新的区块中并被添加到现有的散列值。然后,对其进行加密,以创建用于新区块的新散列。当对交易进行加密时,将其添加到下一个交易列表,等等。结果是每个都包含所有在前区块的散列值的一连串区块。存储这些区块的计算机定期比较它们的散列值以确保它们都一致。任何不同意的计算机都丢弃引起问题的记录。这种方法对于确保区块链的防篡改是有益的,但它不是完美的。
游戏该***的一种方式是不诚实的用户改变他们喜爱的交易列表,但是保持散列不变。这可以通过强力来完成,换句话说,通过改变记录、加密结果、以及查看散列值是否相同来完成。如果不是,则反复地尝试直到找到匹配的散列。区块链的安全性基于这样的信念,即普通计算机仅能在完全不切实际的时间尺度上,诸如宇宙年龄上执行这种强力攻击。相反,量子计算机快得多(快1000倍),因此造成大得多的威胁。
图7B示出了实施量子密钥分发(QKD)以防止量子计算攻击的量子安全区块链752的示例750。在该示例中,区块链用户可使用QKD验证彼此的身份。这使用诸如光子的量子光子发送信息,窃听者在不破坏量子光子的情况下不能复制该量子粒子。这样,发送者和接收者通过区块链可以确信彼此的身份。
在图7B的示例中,存在四个用户754、756、758和760。每对用户可以在他们自己之间共享秘密密钥762(即,QKD)。由于在该实例中有四个节点,因此存在六对节点,并且因此使用了六个不同的密钥762,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用诸如光子的量子粒子发送信息来创建QKD,窃听者在不破坏QKD的情况下不能复制QKD。这样,一对用户可以确信彼此的身份。
区块链752的操作基于两个过程:(i)交易的创建,以及(ii)聚集新交易的区块的构造。可以类似于传统的区块链网络创建新的交易。每个交易可以包含关于发送者、接收者、创建时间、要转移的金额(或值)、证明发送者具有用于操作的资金的引用交易的列表等的信息。然后,将该交易记录发送到所有其它节点,在所有其它节点中,该交易记录被输入未确认交易池。这里,两方(即,754-760之中的一对用户)通过提供他们的共享秘密密钥762(QKD)来认证交易。该量子签名可以被附加到每个交易,使得极难篡改它。每个节点检查其关于区块链752的本地副本的条目,以验证每个交易具有足够的资金。然而,交易还没有被确认。
不是对区块执行传统的挖掘过程,而是可以使用广播协议以分散的方式创建区块。在预定时间段(例如,几秒、几分钟、几小时等)内,网络可以将广播协议应用于任何未确认的交易,从而实现关于交易的正确版本的拜占庭协定(共识)。例如,每个节点可以拥有私有值(该特定节点的交易数据)。在第一轮中,节点向彼此发送它们的私有值。在随后的轮次中,节点传送它们在前一轮次中从其它节点接收的信息。这里,诚实节点能够在新的区块内创建完整的交易集。该新区块可以被添加到区块链752。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链752上或相对于区块链752发生。
图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 (20)

1.一种***,包括:
处理器;
存储器,在所述存储器上存储有机器可读指令,所述机器可读指令在由所述处理器执行时使所述处理器:
将区块链一连接到区块链二;
创建用于所述区块链一和所述区块链二的互操作身份网络(IIN)作为自主身份(SSI)网络的实例;
执行智能合约以:
调用IIN访问控制策略;
基于所述IIN访问控制策略,将所述区块链一的属性和许可映射到所述区块链二的属性和许可;以及
基于所映射的属性和许可,在所述区块链一和所述区块链二中生成所述IIN的有效可验证凭证(VC)。
2.根据权利要求1所述的***,其中所述SSI网络被配置以存储跨网络分散式识别符(DID)。
3.根据权利要求1所述的***,其中所述SSI网络包括定义相关DID文档的结构的IIN特定模式。
4.根据权利要求1所述的***,其中,所述指令进一步使所述处理器执行所述智能合约以应用所述IIN访问控制策略来定义被允许连接到所述区块链二并调用所述区块链二的功能的所述区块链一的实体。
5.根据权利要求1所述的***,其中,所述指令进一步使所述处理器执行所述智能合约以基于所述SSI网络的DID来验证所述区块链一和所述区块链二中的IIN的VC。
6.根据权利要求1所述的***,其中,所述指令还使所述处理器使用所述IIN来为多个区块链网络进行跨网络身份提供。
7.根据权利要求1所述的***,其中,所述指令还使得所述处理器执行所述智能合约以对照所述IIN访问控制策略来验证可验证呈现的身份和许可。
8.一种方法,包括:
由身份提供节点将区块链一连接到区块链二;
由身份提供节点创建用于所述区块链一和所述区块链二的互操作身份网络(IIN)作为自主身份(SSI)网络的实例;
执行智能合约以:
调用IIN访问控制策略;
基于所述IIN访问控制策略,将所述区块链一的属性和许可映射到所述区块链二的属性和许可;以及
基于所映射的属性和许可,在所述区块链一和所述区块链二中生成所述IIN的有效可验证凭证(VC)。
9.根据权利要求8所述的方法,其中所述SSI网络被配置以存储跨网络分散式识别符(DID)。
10.根据权利要求8所述的方法,其中所述SSI网络包括定义相关DID文档的结构的IIN特定模式。
11.根据权利要求8所述的方法,还包括执行所述智能合约以应用所述IIN访问控制策略来定义被允许连接到所述区块链二并调用所述区块链二的功能的所述区块链一的实体。
12.根据权利要求8所述的方法,还包括执行所述智能合约以基于所述SSI网络的DID来验证所述区块链一和所述区块链二中的IIN的VC。
13.根据权利要求8所述的方法,还包括使用所述IIN来为多个区块链网络进行跨网络身份提供。
14.根据权利要求8所述的方法,还包括执行所述智能合约以对照所述IIN访问控制策略来验证可验证呈现的身份和许可。
15.一种包括指令的非暂态计算机可读介质,所述指令在由处理器读取时使所述处理器执行:
将区块链一连接到区块链二;
创建用于所述区块链一和所述区块链二的互操作身份网络(IIN)作为自主身份(SSI)网络的实例;
执行智能合约以:
调用IIN访问控制策略;
基于所述IIN访问控制策略,将所述区块链一的属性和许可映射到所述区块链二的属性和许可;以及
基于所映射的属性和许可,在所述区块链一和所述区块链二中生成所述IIN的有效可验证凭证(VC)。
16.根据权利要求15所述的非暂态计算机可读介质,其中所述SSI网络被配置以存储跨网络分散式识别符(DID)。
17.根据权利要求15所述的非暂态计算机可读介质,还包括指令,所述指令在由所述处理器读取时,使所述处理器执行所述智能合约以应用所述IIN访问控制策略来定义被允许连接到所述区块链二并调用所述区块链二的功能的所述区块链一的实体。
18.根据权利要求15所述的非暂态计算机可读介质,还包括指令,所述指令在由所述处理器读取时使所述处理器执行所述智能合约以基于所述SSI网络的DID来验证所述区块链一和所述区块链二中的IIN的VC。
19.根据权利要求15所述的非暂态计算机可读介质,还包括指令,所述指令在由所述处理器读取时使所述处理器使用所述IIN来为多个区块链网络进行跨网络身份提供。
20.根据权利要求15所述的非暂态计算机可读媒体,其进一步包括指令,所述指令在由所述处理器读取时致使所述处理器执行所述智能合约以对照所述IIN接入控制策略来验证可验证呈现的身份和许可。
CN202180034546.7A 2020-05-13 2021-05-10 跨网身份提供 Pending CN115605868A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/930,515 US11184395B1 (en) 2020-05-13 2020-05-13 Cross-network identity provisioning
US15/930,515 2020-05-13
PCT/IB2021/053945 WO2021229404A1 (en) 2020-05-13 2021-05-10 Cross-network identity provisioning

Publications (1)

Publication Number Publication Date
CN115605868A true CN115605868A (zh) 2023-01-13

Family

ID=78512057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180034546.7A Pending CN115605868A (zh) 2020-05-13 2021-05-10 跨网身份提供

Country Status (10)

Country Link
US (1) US11184395B1 (zh)
JP (1) JP2023524715A (zh)
KR (1) KR20220160100A (zh)
CN (1) CN115605868A (zh)
AU (1) AU2021273375B2 (zh)
CA (1) CA3175619A1 (zh)
DE (1) DE112021001671T5 (zh)
GB (1) GB2610534A (zh)
IL (1) IL296867A (zh)
WO (1) WO2021229404A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210314293A1 (en) * 2020-04-02 2021-10-07 Hewlett Packard Enterprise Development Lp Method and system for using tunnel extensible authentication protocol (teap) for self-sovereign identity based authentication
CN114499896B (zh) * 2022-04-13 2022-07-01 飞天诚信科技股份有限公司 一种基于区块链的实名认证方法及***
US20230370273A1 (en) * 2022-05-10 2023-11-16 Microsoft Technology Licensing, Llc Bootstrapping a code transparency system
CN115529136B (zh) * 2022-08-16 2024-02-23 云南师范大学 一种基于属性访问控制的面向物联网轻量级区块链设计方法
CN115941693B (zh) * 2023-03-10 2023-05-05 中国信息通信研究院 链群接入区块链的方法、装置、设备和介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10756906B2 (en) * 2013-10-01 2020-08-25 Kalman Csaba Toth Architecture and methods for self-sovereign digital identity
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US11182851B2 (en) 2016-10-20 2021-11-23 International Business Machines Corporation Inter-ledger messaging in a blockchain
CN106447309A (zh) 2016-11-13 2017-02-22 杭州复杂美科技有限公司 源链侧链跨链交易
US11538031B2 (en) 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
CN107453896B (zh) 2017-06-27 2020-08-04 创新先进技术有限公司 多重区块链网络数据处理方法、装置及服务器
CN113204532A (zh) 2017-10-04 2021-08-03 邓白氏公司 跨全异的不可变分布式账本网络进行身份解析的***和方法
US11757650B2 (en) 2018-02-01 2023-09-12 Intel Corporation Distributed self sovereign identities for network function virtualization
TWI663865B (zh) 2018-07-09 2019-06-21 現代財富控股有限公司 基於跨鏈架構的身分識別管理系統及其方法
WO2019072281A2 (en) 2018-11-27 2019-04-18 Alibaba Group Holding Limited ASYMMETRICAL KEY MANAGEMENT IN CONSORTIUM BLOCK CHAIN NETWORKS
CN112003703B (zh) * 2019-06-28 2023-08-22 创新先进技术有限公司 一种跨链发送可认证消息的方法和装置
CN110599342B (zh) 2019-09-23 2021-08-06 腾讯科技(深圳)有限公司 基于区块链的身份信息的授权方法及装置

Also Published As

Publication number Publication date
AU2021273375B2 (en) 2024-01-04
JP2023524715A (ja) 2023-06-13
DE112021001671T5 (de) 2023-02-02
US20210360031A1 (en) 2021-11-18
KR20220160100A (ko) 2022-12-05
GB2610534A (en) 2023-03-08
GB202218468D0 (en) 2023-01-25
IL296867A (en) 2022-11-01
AU2021273375A1 (en) 2022-11-10
US11184395B1 (en) 2021-11-23
CA3175619A1 (en) 2021-11-18
WO2021229404A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
CN114128214B (zh) 用于配置区块链的安全层
US20200379977A1 (en) Anonymous database rating update
AU2021254870B2 (en) Faster view change for blockchain
AU2021273375B2 (en) Cross-network identity provisioning
CN112241919A (zh) 具有数据流控制的多域区块链网络
WO2022179502A1 (en) Blockchain network identity management using ssi
US11455403B2 (en) Privacy-preserving document sharing
CN114450708A (zh) 基于现有链码的链码推荐
US20210224405A1 (en) Privacy-preserving document sharing
US11683185B2 (en) Entity certification management
US11310311B2 (en) Media obfuscation
CN114981773A (zh) 无冲突版本控制
US11222292B2 (en) Data linkage across multiple participants
US11526467B2 (en) Document storage and verification
CA3175619C (en) Cross-network identity provisioning
US11856109B2 (en) Entity certification management
US11556517B2 (en) Blockchain maintenance
US11379594B2 (en) Media obfuscation
US12019585B2 (en) Document storage and verification
US11570152B2 (en) Data linkage across multiple participants
US20210314398A1 (en) Preservation of channel metadata
US20210232539A1 (en) Document storage and verification

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