CN116941265A - 区块链网络身份管理使用ssi - Google Patents

区块链网络身份管理使用ssi Download PDF

Info

Publication number
CN116941265A
CN116941265A CN202280016763.8A CN202280016763A CN116941265A CN 116941265 A CN116941265 A CN 116941265A CN 202280016763 A CN202280016763 A CN 202280016763A CN 116941265 A CN116941265 A CN 116941265A
Authority
CN
China
Prior art keywords
blockchain
verifiable
network
transaction
request
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
CN202280016763.8A
Other languages
English (en)
Inventor
P·诺沃特尼
V·拉玛克里什纳
C·高芬达拉简
D·K·贝尔
B·C·戈什
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 CN116941265A publication Critical patent/CN116941265A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

接收针对区块链网络处的存储的请求,经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与请求相关联的区块链事务,其中可验证凭证包括区块链节点的声明和创建可验证凭证的SSI网络的证明,将区块链事务和所附加的可验证凭证发送到一个或多个其他区块链节点,以及经由区块链上的数据区块存储区块链事务和所附加的可验证凭证。

Description

区块链网络身份管理使用SSI
背景技术
集中式平台在单个位置存储和维护数据。该位置通常是中央计算机,例如,云计算环境、web服务器、大型计算机等。存储在集中式平台上的信息通常可从多个不同点访问。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式平台上同时工作。集中式平台由于其单个位置而易于管理、维护和控制,尤其是出于安全的目的。在集中式平台内,数据冗余被最小化,因为所有数据的单个存储位置也暗示给定数据集仅具有一个主记录。
发明内容
一个示例性实施例提供了一种装置,所述装置包括:网络接口,被配置为接收针对区块链上的存储的请求;以及处理器,被配置为经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与所述请求相关联的区块链事务,其中所述可验证凭证包括对区块链节点的声明和创建所述可验证凭证的SSI网络的证明,并且经由所述区块链上的数据区块存储所述区块链事务和所附加的可验证凭证,其中所述处理器还被配置为控制所述网络接口以将所述区块链事务和所附加的可验证凭证发送到一个或多个其他区块链节点。
另一示例实施例提供一种方法,该方法包括接收针对区块链上的存储的请求,经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与所述请求相关联的区块链事务,其中所述可验证凭证包括对所述区块链节点的声明和创建所述可验证凭证的SSI网络的证明,将所述区块链事务和所附加的可验证凭证发送到一个或多个其他区块链节点,以及经由所述区块链上的数据区块存储所述区块链事务和所附加的可验证凭证。
又一示例实施例提供一种非暂态计算机可读介质,包括指令,所述指令在由处理器执行时使计算机执行以下一项或多项:接收针对区块链上的存储的请求,经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与所述请求相关联的区块链事务,其中所述可验证凭证包括对所述区块链节点的声明以及创建所述可验证凭证的SSI网络的证明,将所述区块链事务和所附加的可验证凭证发送到一个或多个其他区块链节点,以及经由所述区块链上的数据区块存储所述区块链事务和所附加的可验证凭证。
附图说明
图1A是示出根据示例实施例的使用自主主权身份(SSI)的区块链网络的示图。
图1B是示出根据示例实施例的可验证凭证的示图。
图1C是示出根据示例实施例的可验证凭证的进一步细节的示图。
图2A是示出根据示例实施例的示例区块链架构配置的示图。
图2B是示出根据示例实施例的节点之间的区块链事务流的图。
图3A是示出根据示例实施例的许可网络的示图。
图3B是示出根据示例实施例的另一许可网络的示图。
图3C是示出根据示例实施例的无许可网络的示图。
图4是示出根据示例实施例的发出可验证凭证的过程的示图。
图5是示出根据示例性实施例的执行与可验证凭证的区块链事务的方法的示图。
图6A是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统的示图。
图6B是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的另一示例系统的示图。
图6C是示出了根据示例实施例的被配置为利用智能合约的另一示例系统的示图。
图6D是示出根据示例实施例的被配置为利用区块链的又一示例系统的示图。
图7A是图示了根据示例实施例的、新的区块被添加到分布式分类账的过程的示图。
图7B是示出根据示例实施例的新的数据区块的数据内容的示图。
图7C是示出了根据示例实施例的用于数字内容的区块链的示图。
图7D是示出根据示例性实施例的可表示区块链中的区块的结构的区块的示图。
图8A是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的示图。
图8B是示出根据示例实施例的示例量子安全区块链的示图。
图9是示出支持一个或多个示例实施例的示例系统的示图。
具体实施方式
容易理解,如在本文附图中一般性描述和说明的,本发明的部件可以以各种不同的配置来布置和设计。因此,如附图中所表示的方法、装置、非暂态计算机可读介质和系统中的至少一个的实施例的以下详细描述不旨在限制如所要求保护的应用的范围,而仅仅是所选实施例的代表。
在一个或多个实施例中,可以以任何适当的方式组合或去除本说明书中描述的本特征、结构或特性。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用指的是结合实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,在整个说明书中出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定全部指代同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在示图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可以用于发送信息。
另外,虽然在实施例的描述中可能已经使用了术语“消息”,但是本申请可以应用于许多类型的网络和数据。此外,虽然在示例性实施例中可以描述某些类型的连接、消息和信令,但是本申请不限于某些类型的连接、消息和信令。
示例实施例提供了方法、系统、组件、非暂态计算机可读介质、设备和/或网络,其涉及经由自主主权身份(SSI)网络来管理区块链网络身份。
根据各种实施方式,每个区块链实体(例如,对等体(peer)、排序器(orderer)、背书器(endorser)、客户端、审计员(auditor)、管理员(admin)等)可以被分配唯一的分散式标识符(DID),该分散式标识符标识区块链网络内的区块链实体。可向拥有DID的区块链实体发放一个或多个可验证凭证(VC),区块链实体可使用可验证凭证来对区块链事务、消息、区块等进行签名。在一些实施例中,每个区块链实体可包括一组VC,每个VC给予区块链实体一个或多个声明。例如,声明可以是区块链对等体被授权签署特定智能合约(链码)的事务的声明。作为另一示例,区块链对等体可被授权在区块链分类账上的多个通道中的特定通道/区块链上进行事务(transact)。作为另一示例,声明可标识区块链对等体是区块链网络的背书对等体(endorsing peer)等。
每个可验证凭证可从区块链网络的SSI网络内的授权机构(例如,成员资格服务提供方(MSP)、凭证授权机构(CA)等)发布。可验证凭证可以包括“证明”,例如可验证凭证的发布者的签名。SSI网络可以维护所有分配的DID、VC等。另外,SSI网络可维持每一VC的模式信息、签署公钥的发布者的公钥等。区块链的成员可访问注册表以获得发布方的模式信息和公钥,以分别验证可验证凭证的模式和发布方的签名。以这种方式,任何区块链实体都可以在不依赖中央权限的情况下验证可验证凭证。
在一个实施例中,本申请利用作为分布式存储系统的分散数据库(例如区块链),其包括彼此通信的多个节点。分散数据库包括只附加的不可改变的数据结构,类似于能够维护相互不信任的各方之间的记录的分布式分类账。不受信任方在本文被称为对等体或对等体节点。每个对等体都维护数据库记录的副本,并且在分布式对等体之间没有达成共识的情况下,没有单个对等体可以修改数据库记录。例如,对等体可以执行一致性协议以验证区块链存储事务,将存储事务分组为区块,并在区块上构建哈希链。该过程通过根据需要对存储事务进行排序以便保持一致性,从而形成分类账。在各种实施方式中,可使用许可的和/或无许可的区块链。在公共或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可涉及本机加密货币并基于诸如工作证明(PoW)等各种协议来使用共识。另一方面,许可的区块链数据库提供了在共享共同目标但不完全信任彼此的一组实体之间的安全交互,诸如交换资金、商品、信息等的业务。
本申请可以利用操作任意的、可编程的逻辑的区块链,其被定制为分散式存储方案并且被称为“智能合约”或“链码”。在某些情况下,可以存在被称为系统链码的用于管理功能和参数的专用链码。应用还可利用作为可信分布式应用的智能合约,该智能合约利用区块链数据库的防篡改特性和节点之间的底层协定,这被称为背书或背书策略。与该应用相关联的区块链事务在被提交给区块链之前可被“背书”,而未被背书的事务被忽略。背书策略允许链码以背书所必需的对等体节点集合的形式指定事务的背书器。当客户端将事务发送到背书策略中指定的对等体时,执行事务以验证事务。在验证之后,事务进入排序阶段,在该排序阶段中使用一致性协议来产生被分组成区块的背书事务的有序序列。
本申请可以利用作为区块链系统的通信实体的节点。“节点”可以执行逻辑功能,其意义在于不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可包括不同类型,诸如客户端或提交客户端节点,其向背书器(例如,对等体)提交事务调用并且向排序服务(例如,排序节点)广播事务建议。另一种类型的节点是对等体节点,其可接收客户端提交的事务、提交事务并维护区块链事务的分类账的状态和副本。对等体也可以具有背书器的角色,尽管这不是必需的。排序服务节点或排序器是为所有节点运行通信服务的节点,并且当提交事务并修改区块链的世界状态(world state)时,其实现递送保证,例如广播到系统中的每个对等体节点,这是初始区块链事务的另一名称,其通常包括控制和设置信息。
本申请可以利用分类账,该分类账是区块链的所有状态转换的排序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书器节点、对等体节点等)提交的链码调用(即,事务)产生。每个参与方(诸如对等体节点)可以维护分类账的副本。事务可以导致一组资产键值对被提交给分类账作为一个或多个操作子(operand),诸如创建、更新、删除等。分类账包括用于以区块存储不可改变的有序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
该应用可以利用作为事务日志的链,该事务日志被构造为哈希链接的区块,并且每个区块包含N个事务的序列,其中N等于或大于1。区块头部(block header)包括块事务的哈希,以及先前区块头部的哈希。以这种方式,可以对分类账上的所有事务进行排序并且将其加密地链接在一起。因此,在不破坏哈希链接的情况下,不可能篡改分类账数据。最近添加的区块链区块的哈希表示在其之前到来的链上的每个事务,使得可以确保所有对等体节点处于一致且可信的状态。该链可被存储在对等体节点文件系统(即,本地、附加存储、云等)上,从而高效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链事务日志中的所有键的最新值。由于当前状态表示通道已知的最近的键值,所以它有时被称为世界状态。链代码调用针对分类账的当前状态数据执行事务。为了使这些链码交互作用有效,可将键的最新值存储在状态数据库中。状态数据库可以简单地是链的事务日志中的索引视图,因此可以在任何时间从链中重新生成。在对等体节点启动时,并且在接受事务之前,可以自动恢复(或者如果需要的话,可以生成)状态数据库。
使用SSI成员资格和标识的区块链网络的一些益处包括隐私、安全性和可移植性(或互操作性)。例如,使用SSI,网络参与者可以在期望的暴露级别在特定上下文中使用分散式标识符(DID)。例如,当区块链对等体签署包括在区块中的事务时,它仅使用为了签署该网络内的事务而向其发放的凭证(或凭证的一部分)。尽管该对等体的DID可以包含各种其他属性和附属关系(例如,该对等体可以属于参与多个业务网络的组织),但是在事务周期中没有暴露该信息。与审计员一样(在某一稍后日期),验证对等体只检查可验证凭证的VP(可验证表示)。
此外,例如在资产或数据项在许可分类账之间共享的跨网络交互中,也可以增强安全性。拥有SSI(例如DID和VC)的参与者(区块链对等体)可以使用依靠VC/VP和充当DID身份和存储提供方的SSI网络的直接过程来认证自身并向外部方(其自由选择其策略)例如集中实体或不同商业网络的参与者证明其属性。此外,可以改善可访问性和互操作性。如今,许可网络拥有它们自己的专有身份管理系统(用于凭证发布和存储)。这对于网络外部的各方是不可见的。通过使用SSI代替这些异类且不透明的身份管理系统,示例实施例可确保网络参与者是已知的,并且可在其网络外部证明其真实性,从而允许数据和资产跨网络边界流动(以策略控制的方式)。此外,SSI网络可以围绕未绑定到特定网络的公知身份提供方或凭证机构来构建。这使得身份和凭证在网络间交互中具有可移植性。
在示例实施例中,可验证凭证可以被发给DID持有者(依赖SSI的网络参与者)。可验证凭证可由发布者(SSI网络的成员)发布,所述发布者可为许可网络内的现有身份提供方及凭证授权机构,或其可为众所周知的外部授权机构。在网络内,发布者可以包括网络或组织(子划分)CA。在超级分类结构网络中,这些实体被称为MSP(成员资格服务提供方),其维护根CA和中间CA的链。在Corda网络中,存在网络CA的层次结构,证明门户CA,后者又证明节点CA(每个节点具有签署和批准事务的能力)。这些MSP或CA代表作为整体的网络或网络内的子部分,并且它们在网络之外发布/撤销身份和证明(诸如DID),发布者可以包括外部团体,诸如被拒绝使用的CA和证明机构,如Verisign或DMV。其他发布者可以包括选择参与许可网络的现有组织、代表包括商业网络的组织联盟的特别机构,例如供应链、食品信任网络等。还应当理解,SSI网络能够管理多个网络参与者的身份并且促进跨越网络边界的身份共享。
在示例性实施例中,可向SSI网络的参与者,例如区块链对等体或区块链客户端,发布DID。DID可以是诸如URI的唯一标识符,其标识区块链实体。例如,DID允许可验证的、分散式的数字身份。DID标识DID的控制器决定其标识的任何主体(例如,人、组织、事物、数据模型、抽象实体等)。与典型的联合标识符相反,DID已被设计成使得它们可以与集中式注册表、身份提供方、以及凭证授权机构解耦。具体地,虽然其他方可以用于帮助发现与DID相关的信息,但是该设计使得DID的控制器能够证明对其的控制而不需要来自任何其他方的许可。DID是将DID主体(DID subject)与DID文档相关联的URI,允许与该主体相关联的可信交互。
每个DID文件可以表达密码材料、验证方法或服务,其提供一组机制,使得DID控制器能够证明DID的控制。服务使能与DID主体相关的信任交互。如果DID主体是诸如数据模型的信息资源,DID文件可以包含DID主体本身。该文档可以指定用于DID、DID文档和DID方法的通用数据模型、URL格式和一组操作。DID是由三个部分组成的简单文本串,包括URI方案标识符(DID)、DID方法的标识符和DID方法专用标识符。DID可解析成DID文件。DID URL扩展了基本DID的语法以结合其他标准URI组件(路径、查询、片段),以便定位特定资源,例如DID文档内的公共密钥,或者DID文档外部可用的资源。
DID文件包含与DID相关的信息。它们通常表达与DID主体的交互相关的验证方法(例如公共密钥)和服务。DID文档可以根据特定语法串行化。DID本身是id属性的值。可以更新DID文件中存在的属性。DID方法是一种机制,通过该机制,使用特定的可验证数据注册表来创建、解析、更新和停用特定类型的DID及其相关DID文件。DID方法是使用单独的DID方法规范来定义的。在示例实施例中,DID、VC、VP等可以存储在包括可验证数据注册表的区块链分类账上。
凭证提供方(例如,发布驾驶执照的DMV、发布成绩单的大学等)可以向DID的所有者发放VC,以建立所有者的某些属性。在示例性实施例中,可验证凭证可建立持有凭证的区块链实体的属性,例如,区块链实体是背书对等体、区块链实体被授权在特定分类账上进行事务、区块链实体被授权执行/调用特定链码等。总之,DID具有比VC(其具有到期时间)更长的寿命。任何网络组件,例如区块链对等体、排序器、背书器、客户端等,在操作开始时得到DID。随后,参与者可以请求并从包括SSI网络的凭证机构获得VC。每个VC可以服务于不同的(和有限的)目的,例如签署包括在区块中的事务,或者签署与不同网络交易的资产状态。VC可以如何被使用(使用VP或可验证呈现)可以取决于策略;例如,事务提交策略要求背书对等体证明其在作为网络一部分的组织中的成员资格。
可验证凭证和可验证呈现可以用一个或多个机器可读数据格式来串行化,例如逗号分隔值(CSV)文件、可扩展标记语言(XML)文件、JavaScript对象符号(JSON)文件等。串行化和/或解串行化的过程可以是确定性的、双向的和无损的。可验证凭证或可验证呈现的任何序列化都可以在确定性过程中被变换到通用数据模型,使得所得到的可验证凭证可以以可互操作的方式被处理。序列化形式也能够从数据模型生成而不丢失数据或内容。此外,可验证呈现(VP)可以公开可验证凭证的属性,或者满足验证方所请求的导出谓词。派生谓词是布尔条件,诸如大于、小于、等于、在集合中等。
在示例实施例中,可以保证DID仅在DID提供方(或更典型地,注册表)的域内是唯一的,而不是全局的。如果许可网络或许可网络组决定信任单个DID注册表,则该设置内的对等体将具有唯一DID。否则,对等体的DID可以由元组<DID注册表,DID>唯一地全局解析。
SSI网络包括DID注册表,其维护由DID值索引的记录。此外,它可以维护VC的模式(结构)和验证关键字(Hyperledger Indy是建立在SSI概念上的这种DID注册表的一个示例)。VC可以部分地通过将其模式与存储在SSI网络注册表中的内容相匹配以及通过使用存储在注册表中的公钥来验证发布VC的发布者的数字签名(存储可以是分布式分类账本身,但其不是强制性的)来验证。但是,在声明中关于VC内DID拥有者的属性的信任一旦被确认,就简单地依赖于确认者是否信任VC发布者。
在示例性实施例中,VC本身不存储在SSI网络的DID注册表中,而是通过对等通信从发布者发布到所有者/持有者,并由所有者/持有者存储。为了验证和认证VC,接收VC的验证者可以使用DID作为唯一标识符来标识VC的DID注册表(区块链)中存储的模式和公钥。时间戳是VC的属性,它本身不存储在注册表中。但是,分类账登记表中记录的是VC发布(或VC发布事件)的事实。这种事件携带自动时间戳,其可以用于稍后的验证和审计。可以对SSI网络如何进行配置进行多种变化。在一个示例中,内部配置包括SSI网络,其覆盖在不同网络的现有身份发布者上,诸如具有凭证授权、MSP等的区块链网络。作为另一示例,SSI网络可以是与区块链网络完全分离但与不同网络的现有身份发布者松散耦合的外部网络。
图1A示出了根据示例性实施例的使用自主主身份(SSI)的区块链网络100。参照图1A,区块链网络100包括管理区块链分类账150、排序节点150和客户端102的多个区块链对等体110、120、130和140。如参照图4的示例进一步描述的,当客户端102、区块链对等体110-140和排序节点150向区块链网络100注册成员资格(例如,经由认证授权、成员资格服务提供方等)时,客户端102、区块链对等体110-140和排序节点150可接收一个或多个可验证凭证。例如,客户端102可接收VC 104,区块链对等体110、120、130和140可分别接收VC112、22、132和142,并且排序节点152可接收VC 152。
尽管在该示例中仅示出了一个VC,但是应当理解,图1A中所示的一个或多个区块链实体可以接收多个VC,并且这样的VC可以具有不同的寿命、不同的用途、不同的创建时间等。例如,区块链对等体110-140可为它们具有的并且可执行/调用的每个相应的链码接收不同/单独的VC。作为另一示例,每个区块链对等体110-140可以接收用于分类账上的每个相应分类账/通道的不同/单独VC,它们可以访问/存储在其中。
VC可以用作每个区块链实体的凭证,指示它们被授权采取它们正在采取的行动。例如,在图1A中,客户端102向区块链对等体110发送事务。此处,客户端102的VC 104可以将客户端102标识为区块链105的成员/客户端。VC 104可以由VC 104的发布者,例如CA、MSP等来签名。作为另一示例,区块链对等体110、120、130和140的VC 112、122、132和142可标识区块链对等体110-140是区块链105的成员并且具有区块链105的存储权项/链码执行功能。同时,排序节点150的VC 152可将排序节点150标识为存储在区块链150上的区块的排序器。每个区块链实体(客户端102、区块链对等体110-140和排序节点150)可将其各自的VC附加到在网络100中内部传输的消息、事务、建议、请求等以及外部实体(未示出)。
图1B是示出根据示例性实施例的区块链对等体110的可验证凭证112的基本组件的示图。参考图1B,可验证凭证112可包括数字格式的机器可读文件、代码、文档等,其包括凭证元数据160、一个或多个声明170、以及与一个或多个声明170相关联的一个或多个证明180。可验证的凭证可包括主体/持有者的标识符,诸如主体/持有者的DID、与发布机构(例如CA、MSP等)有关的信息、关于凭证类型的信息、关于凭证的特定属性的信息、关于如何导出凭证的信息、关于凭证的约束的信息(使用条款、期满条款等)。可验证的凭证可以表示与物理凭证相同的信息,除了它是机器可读格式(例如JSON、XML、CSV等)而不是人类可读形式。
可验证凭证中包括的声明170的示例是声称它们是区块链网络的成员并且它们具有在区块链网络的区块链上存储数据的能力的区块链对等体。声明170的另一类型是声称它们具有对特定链码的访问权的区块链对等体,并且它们能够基于这样的链码执行来自客户端的事务。声明170的另一类型是声称它们是区块链分类账的特定通道的成员/参与者的区块链对等体等。存在可由可验证凭证做出的许多其他声明,并且每个区块链实体可持有多个VC。此外,可以更新VC以添加新的声明、修改声明、删除声明等,并且可以由发布实体执行。
元数据160可包括描述可验证凭证112的属性的数据,例如发布者、可验证凭证的模式(例如JSON、XML、CSV等)、期满日期/时间、凭证的图像、要用于验证的公钥的标识符、撤消机制等。证明180可以包括使得凭证是防篡改的发布者的数字签名,连同签名的数据/时间、证明的目的、用于验证签名的公共密钥的标识符等。
图1C示出了根据示例实施例的声明170和可验证凭证112的证明180的进一步细节。而图1B示出可验证凭证112的基本组件,而图1C示出可验证凭证112如何在其中存储数据的模式。特别地,声明170(具有元数据160)和证明180可以被存储为单独的信息图。在该示例中,第一信息图包括互连到DID节点172(持有者的DID)的凭证ID节点171、发布方ID节点173(发布VC 112的MSP的)、凭证类型174(例如,诸如区块链对等VC、排序节点VC、客户端VC、分类账VC、链码VC等凭证的身份)以及包括创建VC 112的时间/日期的时间戳节点175。第二信息图包括:签名ID节点181,其包括可验证凭证112的发布者的签名;签名值节点182,其包括签名内容;创建者节点183,其标识公钥;时间戳节点184,其指示何时添加签名;以及签名类型节点185,其标识数字签名的类型(例如RSA、AES等)。
图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执行,以智能合约和具有条件或其他代码元素的关联链码的形式服从于其执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或服从改变、更新等的其他通知。智能合约本身可以用于标识与分类账的授权和访问要求以及使用相关联的规则。例如,智能合约(或执行智能合约的逻辑的链代码)可读取区块链数据226,其可由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理,以生成包括在复杂服务场景内的警报、确定责任等的结果228。物理基础设施214可以用于检索本文所述的任何数据或信息。
智能合约可以经由高级应用和编程语言来创建,并且然后被写入区块链中的区块。智能合约可以包括向区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合约逻辑的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字区块链分类账的状态的(一个或多个)可信修改。由智能合约执行引起的对区块链分类账的(一个或多个)修改可以通过一个或多个一致协议在整个区块链对等体的分布式网络中自动复制。
智能合约可以以键值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入区块链内的一个或多个区块中。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入到区块链的数据可以是公共的和/或可以被加密并被维护为私有的。由智能合约使用/生成的临时数据由所供应的执行环境保持在存储器中,然后一旦标识了区块链所需的数据就被删除。
链码可以包括智能合约的代码解释(例如,逻辑)。例如,链码可以包括智能合约中的逻辑的封装和可部署版本。如本文所述,链码可以是部署在计算网络上的程序代码,其中它在一致性过程期间由链式验证器一起执行和验证。链码可以接收哈希,并从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希与从所存储的标识符模板数据创建的哈希匹配,则链码向所请求的服务发送授权密钥。该链码可以向区块链写入与密码细节相关联的数据。
图2B示出了根据示例实施例的区块链的节点之间的区块链事务流250的示例。参考图2B,事务流可包括客户端节点260向背书对等体节点281发送事务建议291。背书对等体281可以验证客户端签名并执行链码功能以发起事务。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集)以及在链码中写入的一组键/值(写入集)。此处,背书对等体281可以确定是否背书该事务建议。如果批准,则将提议响应292连同背书签名一起发送回客户端260。客户端260将背书组装成事务有效负载293,并将其广播到排序服务节点284。然后,排序服务节点284将排序的事务作为区块在通道上递送给所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证该事务。例如,对等体可以检查背书策略以确保指定对等体的正确分配已经签署了结果并对照事务有效负载293来认证签名。
再次参考图2B,客户端节点通过构造请求并向作为背书器的对等体节点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。可以验证块内的数据部分以确保背书策略被满足并且确保自从读取集由事务执行生成以来不存在对读取集变量的分类账状态的改变。此外,在步骤295,每个对等体节点281-283将区块附加到通道的链,并且针对每个有效事务,写集合被提交到当前状态数据库。可以发出事件,以通知客户端应用该事务(调用)已经被不可变地附加到链,以及通知该事务是有效还是无效。
在图2B的示例中,客户端节点260和每个区块链对等体281-284可以使用可验证凭证作为签名。当事务移动通过图2B的不同步骤时,客户端节点260和区块链对等体281-284中的每一个可将它们各自的VC附接到它们已执行的步骤。在该示例中,区块链对等体281-284可以包括一组VC,其提提供与区块链对等体281-284相关联的身份和成员资格信息。例如,客户端节点260可包括具有由区块链网络的MSP发布的声明的可验证凭证,该声明将客户端标识为用于在区块链上事务的成员。作为另一示例,区块链对等体281-283可以包括将区块链对等体281-283标识为区块链的背书对等体的VC。同时,区块链对等体284可包括将区块链对等体284标识为区块链的排序节点的VC。许多其他VC也是可能的。例如,区块链上的特定通道(例如,相同分类账上的不同区块链)可能需要不同的VC以便用作客户端、对等体、背书器和排序器等。作为另一个示例,不同类型的事务和/或链码可能需要由客户端、对等体等提供的单独VC。例如,如果客户端具有标识客户端具有使用特定链码的权限的VC,则客户端可以仅提交事务以调用该链码。
图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使用带外连接到该数据。
在一些实施方式中,本文的区块链可以是无许可的区块链。与需要允许加入的许可的区块链相反,任何人都可以加入无许可的区块链。例如,为了加入无许可区块链,用户可以通过提交事务并因此向分类账添加条目来创建个人地址并开始与网络交互。另外,所有各方都可以选择在系统上运行节点并采用挖掘协议来帮助验证事务。
图3C示出了由包括多个节点354的无许可区块链352处理的事务的过程350。发送者356期望经由无许可区块链352向接收者358发送支付或一些其他形式的价值(例如,合约、医疗记录、合约、货物、服务、或能够被封装在数字记录中的任何其他资产)。在一个实施例中,发送者设备356和接收方设备358中的每一个可以具有提供用户界面控制和事务参数显示的数字钱包(与区块链352相关联)。作为响应,事务在整个区块链352中被广播到节点354。取决于区块链352的网络参数,节点基于由无许可区块链352的创建者建立的规则(其可以是预定义的或动态分配的)来验证360事务。例如,这可以包括验证所涉及各方的身份等。可以立即验证事务,或者可以将其与其他事务一起放入队列中,并且节点354基于一组网络规则来确定事务是否有效。
在结构362中,有效事务被形成为块并用锁(哈希)来密封。该过程可以通过挖掘节点354之中的节点来执行。挖掘节点可利用专用于挖掘和创建无许可区块链352区块的附加软件。每个区块可以由使用网络商定的算法创建的哈希(例如,256位的数字等)来标识。每个区块可以包括头部、指向链中先前区块头部的哈希的指针或引用、以及一组有效事务。对先前区块的哈希的引用与安全独立区块链的创建相关联。
在区块可被添加到区块链之前,必须验证这些区块。对无许可区块链352的验证可包括作为从区块的头部导出的难题的解的工作证明(PoW)。尽管在图3C的示例中未示出,但是用于验证区块的另一过程是标桩证明(proof-of-stake)。与工作证明不同,其中算法奖励解决数学问题的挖掘器,利用标桩证明,根据其财富以确定性方式选择新的区块的创建者,也被定义为“标桩”。然后,由所选择/挑选的节点执行类似的证明。
通过挖掘364,节点试图通过对一个变量进行递增改变来求解该区块,直到该解满足网络范围的目标。这创建了PoW,从而确保正确的应答。换句话说,潜在的解决方案必须证明在解决问题时计算资源被耗尽。在某些类型的无许可区块链中,挖掘器可因正确挖掘区块而被奖励价值(例如,硬币等)。
本文,除了区块链之外,PoW过程使得区块链的修改极其困难,因为攻击者必须修改所有后续区块以便接受一个区块的修改。此外,随着新的区块被挖掘,修改区块的难度增加,并且后续区块的数量增加。通过分布366,成功验证的区块通过无许可区块链352分布,并且所有节点354将区块添加到多数链,其是无许可区块链352的可审计分类账。此外,由发送者356提交的事务中的值被存放或以其他方式转移到接收者设备358的数字钱包。
图4示出了根据示例实施例的发出可验证凭证的过程400。参考图4,多个组织共享区块链分类账430(例如,一个或多个区块链、状态数据库等)。每个组织420可以具有一个或多个对等体422,其在多个组织420之间共享的区块链分类账430的区块链上执行事务。根据各种实施例,多个组织420可以与SSI网络410交互,该SSI网络可以是区块链分类账430的内部或外部网络。SSI网络410可以包括多个身份提供方412(可信源),诸如CA、MSP、管理员和其他可信实体。身份提供方412可向对等体组织420的对等体422提供DID和VC。VC和DID可以存储在SSI网络的注册表414上。在一些实施例中,注册表414可以是单独的区块链分类账,但是不限于此。
注册表414可以存储由DID标识的数据。例如,注册表414可以存储由DID值索引的记录。此外,注册表414可以维护VC的模式(结构)和验证关键字。VC可以部分地通过将其模式与注册表414中存储的内容相匹配,并通过使用发布该VC的发布者的公钥来确认数字签名来验证,其中该发布者存储在注册表414中。但是,在声明中关于VC内DID拥有者的属性的信任一旦被确认,就简单地依赖于确认者是否信任VC发布者。每个区块链对等体420可包括安装在其中的SSI代理424。SSI代理424可以是用于维护其相应组件的凭证的“钱包”、与指定的SSI网络通信、以及与属于其他网络的组件通信的附加软件。一些功能对于区块链是特定的,因为它涉及知道它们的组件在给定网络中适合的位置以及理解如何与外部区块链网络(包括SSI网络)通信。它们的功能的其他部分是DID管理所特有的,而不是区块链所特有的。
在示例实施例中,提供了可扩展发布者所做出的DID、显篡改和可验证的声明集的可扩展凭证(VC)。可验证呈现(VP)可以从VC导出,以呈现与特定验证器共享的特定凭证属性。在一些实施例中,VC可以包含从原始凭证(例如,零知识证明等)合成的数据。验证者可以与可验证数据注册表交互以获得用于验证VC的信息。注册表作为创建和验证身份、凭证模式等的介质。DID可用于标识区块链网络组件。在专用区块链网络(Fabric、Corda等)中,客户端以及所有活动组件具有身份。在Fabric中,对等体和排序器具有身份。在示例实施例中,区块链网络的所有身份由SSI身份网络管理。SSI网络促进参与区块链网络的所有身份的凭证的发布和验证。区块链网络组件映射到由SSI网络管理的身份。
身份数据(实际身份网络)可被托管在同一网络或外部网络内。该技术不需要是区块链(架构和操作选择)。然而,使用外部选项有几个优点。例如,外部网络可以充当多个网络的身份网络,充当网络间交换的网桥(或中介器)。外部网络允许跨(诸)组织或大型生态系统的统一且简化的身份管理。这种标识机制允许总体的基于外部网络的配置管理机制。在一些实施例中,组织由SSI发布者(类似于CA)表示。
在示例实施例中,发布者向他们管理的网络组件(对等体等)提供身份,网络信任模型通过在发布者(组织)之间建立信任来形成。这代表SSI网络的初始设置。SSI网络可以是动态模型,并且允许在任何时间的改变。通过扩展,由发布者发布的身份/VC被验证器信任。所有网络组件在执行验证功能时都可以执行验证器的角色。
为了执行诸如为区块链网络新配置的区块链对等体的活动组件配置,可以进行默认设置。此处,有源组件可以具有其钱包或类似机制。每个组件可以被分配由其所属的组织/发布者管理的DID。作为另一个示例,每个组件可以被分配初始密码资料。每个组件可以具有到SSI标识网络的连接配置。在初始设置/启动期间,组件使用其DID/密码材料来获得其初始VC。根据组织需要,可以根据各种分类账、智能合约、事务等的需要向组件发布多个VC或VP。发布者和网络具有身份发布策略——定义了必须使用哪种类型的凭证来签署TX/区块等。该组件可以包括SSI代理,其基于策略执行身份相关功能(在需要时获得VC/VP)。这允许动态配置和更新用于处理TX、区块等的凭证。
SSI决定论可包括挑战。VC/VP可以随时间而改变——期满、更新等。SSI网络可以被更新——撤销列表等。对于分类账的回顾性验证,VC/VP必须是可分辨的,并且与TX处理时可验证的相同。VC/VP的状态和TX条件。此处,VC/VP可具有到期时间戳。TX是网络上的协调时间戳。网络可以收敛于单个代表性时间戳。TX的时间戳必须在可针对特定网络配置的对等体的某个增量内。TX处理机制确保对于TX中使用的每个VC/VP,时间戳是有效的(期满必须晚于TX——除了其他有效性检查之外)。在事务创建期间使用的VC/VP被包括在事务中,并且被存储/附加在头部(TX或区块)中。所存储的表示可以是可验证子集(例如VC的特定VP)。在分类账中包括VC/VP和时间戳允许回顾性验证,而不管稍后的状态改变。
SSI网络的状态可以随时间而改变。为了支持分类账确认,SSI网络可以被扩展以支持回顾性查询和确认功能。SSI网络可以包含可验证的历史状态,诸如其自身的区块链/分类账(或类似)。SSI网络协议/API可以被扩展以允许时间界限验证。示例实施例可以包括时间戳作为API函数的自变量。时间戳自变量可以用于检索在所表示的时间有效的伪迹的状态。还可以存在在查询中使用的增量自变量,以允许网络之间缺乏同步。
图5示出了根据示例实施例的利用可验证凭证来执行区块链事务的方法500。作为非限制性示例,方法500可由管理区块链分类账等的区块链对等体来执行。参考图5,在510中,该方法可包括在区块链网络处接收对存储的请求。作为示例,请求可包括要对区块链执行、背书、提交等的区块链事务。作为另一示例,请求可包括要被排序并存储在要被提交给区块链的区块中的多个事务。
在520中,所述方法可包括经由区块链节点将可验证凭证作为签名附加到由自主主权身份(SSI)网络创建的区块链事务,其中所述可验证凭证包括对所述请求签名的区块链节点的声明和创建所述可验证凭证的SSI网络的证明。此处,区块链节点可执行区块链事务,例如,对照区块链的当前状态来模拟事务的一个或多个参数以生成响应。区块链节点可将VC附加到事务的执行结果,并将执行结果和附加的VC传输到另一区块链对等体、客户端、排序器等。在530中,该方法可包括将区块链事务和附加的可验证凭证传输到一个或多个其他区块链节点。此外,在540中,该方法可包括经由区块链上的数据区块来存储区块链事务和附加的可验证凭证。
在一些实施例中,可验证凭证可包括唯一地标识区块链节点的分散式标识符(DID)。在一些实施例中,所述请求可以包括执行区块链的链码的请求,并且所述可验证凭证可以在其中包括将区块链节点标识为被授权执行链码的区块链对等体的声明。在一些实施例中,可验证凭证可以包括其何时被创建的时间戳和期满值。在一些实施例中,所述方法还可以包括从SSI网络接收修改的可验证凭证,其中修改的可验证凭证包括添加到其中的新声明、新声明何时被创建的时间戳以及期满值。
在一些实施例中,所述请求可包括对多个区块链事务的排序请求,并且所述签名包括对新的区块中的多个区块链事务进行排序,并用指示区块链节点是区块链的排序节点的可验证凭证对新的区块进行签名。在一些实施例中,请求可以包括将区块添加到预定区块链分类账、分类账的通道等的请求,并且可验证凭证在其中存储声明,该声明将区块链节点标识为被授权将区块存储到预定区块链分类账的区块链对等体等。在一些实施例中,所述请求可包括从客户端接收的区块链条目,并且所述签名包括所述区块链条目的背书,其中所述可验证凭证将所述区块链节点标识为所述区块链的背书对等体。
图6A示出了根据示例实施例的包括被配置为执行各种操作的物理基础设施610的示例系统600。参考图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可以表示由明确标识一个或多个用户设备652和/或656的智能合约630驱动的通信会话、资产转移会话或过程或规程。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由作为智能合约事务各方的实体652和656中的一个或多个进行数字签名。智能合约执行的结果可以作为区块链事务被写入区块链620。智能合约630驻留在区块链620上,其可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等体(即,服务器654)来在区块链上执行事务(调用、查询等)的公共接口。此处,服务器654是区块链网络对等体组件,其保存世界状态的副本和允许客户端652和656查询关于世界状态的数据以及将事务提交到区块链网络中的分布式分类账,其中,取决于智能合约630和背书策略,背书对等体将运行智能合约630。
上述实施例可以以硬件、由处理器执行的计算机程序、固件或上述组合来实现。计算机程序可以被包含在计算机可读介质上,例如存储介质。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可耦合到处理器,使得处理器可从存储介质读取信息并向存储介质写入信息。在替代方案中,存储媒体可与处理器成一体式。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储媒体可作为离散组件而驻存。
图7A图示了根据示例实施例的新的区块被添加到分布式分类账720的过程700,并且图7B图示了根据示例实施例的用于区块链的新的数据区块结构730的内容。参照图7A,客户端(未示出)可以向区块链节点711、712和/或713提交事务。客户端可以是从任何源接收的指令,以在区块链720上制定活动。作为示例,客户端可以是代表请求者(例如设备、人或实体)行动以提议对区块链的事务的应用。多个区块链对等体(例如,区块链节点711、712和713)可维护区块链网络的状态和分布式分类账720的副本。在区块链网络中可以存在不同类型的区块链节点/对等体,包括对由客户端提出的事务进行模拟和背书的背书对等体,以及对验证背书、确认事务并将事务提交给分布式分类账720的提交对等体。在该示例中,区块链节点711、712和713可以执行背书器节点、提交者节点或两者的角色。
分布式分类账720包括以区块存储不可改变的有序记录的区块链,以及维护区块链722的当前状态的状态数据库724(当前世界状态)。每个通道可以存在一个分布式分类账720,并且每个对等体为其成员的每个通道维护其自己的分布式分类账720的副本。区块链722是事务日志,其被构造为哈希链接块,其中每个区块包含N个事务的序列。区块可以包括诸如图7B中所示的各种组件。可以通过在当前区块的区块头部内添加先前区块头部的哈希来产生块的链接(图7A中的箭头所示)。这样,区块链722上的所有事务被排序并被密码地链接在一起,从而防止篡改区块链数据而不破坏哈希链接。此外,由于链接,区块链722中的最后的区块表示在其之前到来的每个事务。区块链722可以存储在对等体文件系统(本地或附加存储)上,对等体文件系统支持仅附加区块链工作负载。
区块链722和分布式分类账722的当前状态可以被存储在状态数据库724中。此处,当前状态数据表示区块链722的链事务日志中曾经包括的所有密钥的最新值。链代码调用针对状态数据库724中的当前状态执行事务。为了使这些链码交互非常有效,所有关键字的最新值都存储在状态数据库724中。状态数据库724可以包括区块链722的事务日志中的索引视图,因此,可以在任何时间从链中重新生成索引视图。在接受事务之前,状态数据库724可以在对等启动时自动恢复(或者如果需要的话生成)。
背书节点从客户端接收事务并基于模拟结果对该事务进行背书。背书节点持有模拟事务建议的智能合约。当背书节点背书事务时,背书节点创建事务背书,该事务背书是从背书节点到客户端应用的指示所模拟的事务的背书的签名响应。背书事务的方法取决于可在链码内指定的背书策略。背书策略的一个示例是“大多数背书对等体必须对该事务进行背书”。不同的通道可以具有不同的背书策略。背书事务由客户端应用转发给排序服务710。
排序服务710接受背书的事务,将它们排序成区块,并将这些区块传递给提交对等体。例如,当达到事务的阈值、定时器超时或另一条件时,排序服务710可以发起新的区块。在图7A的示例中,区块链节点712是已经接收到用于存储在区块链720上的新的数据区块730的提交对等体。区块链中的第一区块可以被称为起源区块,起源区块包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由一组排序器组成。排序服务710不处理事务、智能合约或维护共享分类账。相反,排序服务710可以接受背书的事务并指定将这些事务提交给分布式分类账720的顺序。区块链网络的架构可被设计成使得“排序”的特定实现(例如,Solo、Kafka、BFT等)变为可插式组件。
以一致的顺序将事务写入分布式分类账720。事务的顺序被建立以确保对状态数据库724的更新在被提交给网络时是有效的。与通过密码难题的求解或挖掘来进行排序的加密货币区块链系统(例如Bitcoin等)不同,在该示例中,分布式分类账720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新的数据区块730时,新的数据区块730可被广播到提交对等体(例如,区块链节点711、712和713)。作为响应,每个提交对等体通过检查以确保读集合和写集合仍然匹配状态数据库724中的当前世界状态,来验证新的数据区块730内的事务。具体地,提交对等体可以确定在背书器模拟事务时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等体确认事务时,事务被写入分布式分类账720上的区块链722,并且用来自读写集合的写数据更新状态数据库724。如果事务失败,即,如果提交对等体发现读写集合不匹配状态数据库724中的当前世界状态,则排序成区块的事务将仍然包括在该区块中,但它将被标记为无效,并且状态数据库724将不被更新。
参考图7B,存储在分布式分类账720的区块链722上的新的数据区块730(也称为数据区块)可以包括多个数据段,诸如区块头部740、区块数据750(区块数据部分)和区块元数据760。应当理解,图7B中所示的各种所示区块及其内容,例如新的数据区块730及其内容,仅仅是示例,而不意味着限制示例实施例的范围。在常规区块中,数据段可将N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息存储在区块数据750内。
新的数据区块730可包括到区块头部740内的(例如,图7A中的区块链722上的)先前区块的链接。特别地,区块头部740可包括先前区块头部的哈希。区块头部740还可以包括唯一的区块号、新的数据区块730的区块数据750的哈希等。新的数据区块730的区块号可以是唯一的,并且以各种顺序分配,诸如从零开始的递增/顺序。
根据各种实施例,区块数据750可以存储SSI标识信息752,例如可验证凭证、DID、可验证呈现等。根据各种实施例,SSI标识信息752可以被存储在分布式分类账720上的区块的不可变日志中。在区块链上存储SSI标识信息752的一些益处反映在本文公开和描述的各种实施例中。尽管在图7B中SSI标识信息752被描绘于区块数据750中,但是在其他实施方案中,SSI标识信息752可以位于区块头部740或区块元数据760中。
区块元数据760可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括块创建上的签名、对最后配置区块的引用、标识块内的有效和无效事务的事务过滤器、对区块进行排序的排序服务的最后偏移量持久保存等等。签名、最后配置区块和排序器元数据可以由排序服务710添加。同时,区块的提交者(诸如区块链节点712)可以基于背书策略、读/写集的验证等来添加有效性/无效性信息。事务过滤器可以包括大小等于包括在区块数据750中的事务的数量的字节数组和标识事务是有效/无效的验证码。
图7C示出了根据本文所述实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面用作保护数字内容的完整性、有效性和真实性的安全措施,使其适合用于法律程序,其中应用了容许性规则或考虑了证据或数字信息的呈现和使用是另外感兴趣的其他设置。在这种情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储参考信息的哈希值(例如,头部、值等)。然后,可以一起加密哈希值和相关联的数字内容。因此,每个区块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的哈希值可以用作引用先前区块的基础。这可以如下说明:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密哈希而没有任何数字内容。数字内容可以存储在与原始文件的哈希值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可以通过获得或查询感兴趣区块的哈希值,然后在存储区域中查找具有与实际数字内容相对应地存储的值,来引用或访问每个区块的数字内容。例如,可以由数据库网守(gatekeeper)来执行该操作。这可以如下说明:
在图7C的示例实施例中,区块链770包括以有序序列密码链接的多个区块7781、7782、…778N,其中N≥1。用于链接区块7781、7782、…778N的加密可以是多个密钥或非密钥哈希函数中的任何一个。在一个实施例中,区块7781、7782、…778N服从哈希函数,该哈希函数从基于块中的信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、Merkle-Damagard算法、HAIFA算法、Merkle-tree算法、基于随机数的算法和非抗冲突PRF算法。在另一实施例中,区块7781、7782、…、778N可以通过不同于哈希函数的函数来加密链接。为了说明的目的,以下描述是参考哈希函数,例如SHA-2来进行的。
区块链中的区块7781、7782、…、778N中的每一个包括头部、文件的版本、以及值。由于区块链中的哈希,头部和值对于每个区块是不同的。在一个实施例中,该值可以被包括在头部中。如以下更详细地描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链的第一区块7781被称为起源区块(genesis block),并且包括头部7721、原始文件7741和初始值7761。用于起源区块并且实际上在所有后续区块中的哈希方案可以变化。例如,第一区块778中的所有信息可以一起并且一次被哈希,或者第一区块7781中的信息的每一个或一部分可以被单独地哈希,然后可以执行单独哈希的部分的哈希。
头部7721可包括一个或多个初始参数,其例如可包括版本号、时间戳、随机数(nonce)、根信息、难度等级、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。头部7721可自动生成(例如,通过区块链网络管理软件)或由区块链参与者手动生成。与其他区块链7782至778N中的头部不同,起源区块的头部7721不引用先前区块,仅因为不存在先前区块。
起源区块的原始文件7741可以是例如在设备被包括在区块链中之前经过或未经过处理的设备所捕获的数据。原始文件7741通过系统的接口从设备、媒体源或节点接收。原始文件7741与元数据相关联,该元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件7741相关联地被包括在第一区块7781中。
起源区块的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件7741的哈希值、原始文件7741的元数据、以及与文件相关联的其他信息。在一个实现中,初始值7761可以基于以下唯一属性:
1)SHA-2计算的原始文件的哈希值
2)发起设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关联元数据的软件的区块链网络成员ID
区块链中的其他区块7782至778N也具有头部、文件和值。然而,与第一区块7721不同,其他区块中的每个头部7722至772N包括紧接先前区块的哈希值。先前区块的哈希值可以仅仅是先前区块的头部的哈希,或者可以是整个先前区块的哈希值。通过将先前区块的哈希值包括在每个剩余区块中,可以在逐区块的基础上执行从第N区块回到起源区块(以及相关联的原始文件)的跟踪,如箭头780所示,以建立可审计且不可变的监管链。
其他区块中的每个头部7722至772N还可包括其他信息,例如版本号、时间戳、随机数、根信息、难度等级、一致性协议和/或通常与相应文件和/或区块链相关联的其他参数或信息。
其他区块中的文件7742至774N可以等于原始文件,或者可以是起源区块中原始文件的修改版本,这取决于例如所执行的处理的类型。所执行的处理的类型可在区块与区块之间变化。处理可以涉及例如对先前区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中取走信息、或向文件添加或附加信息。
附加地或替换地,处理可仅涉及从先前区块复制文件、改变文件的存储位置、从一个或多个先前区块分析文件、将文件从一个存储或存储器位置移动到另一个存储或存储器位置、或相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附加、包括或者关联各种分析、统计或与文件相关联的其他信息。
其他区块中的每个其他区块中的7762至776N中的值是唯一值,并且由于执行的处理而全部不同。例如,任何一个区块中的值对应于先前区块中的值的更新版本。更新反映在被分配值的区块的哈希中。因此,区块的值提供了在区块中执行了什么处理的指示,并且还允许追踪通过区块链回到原始文件。该跟踪确认了文件在整个区块链中的监管链。
例如,考虑其中在先前区块中的文件的部分被编辑、分块或像素化以便保护文件中所示的人的身份的情况。在这种情况下,包括编校文件区块将包括与编校文件相关联的元数据,例如,编校是如何执行的、谁执行了编校、编校发生的时间戳等。元数据可以被哈希以形成该值。因为该区块的元数据不同于被哈希以形成先前区块中的值的信息,所以这些值彼此不同并且可以在解密时被恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新先前区块的值(例如,计算的新的哈希值)以形成当前区块的值。在该示例实施例中,可以通过对下面提到的信息的全部或一部分进行哈希来计算新的哈希值。
a)如果文件已经以任何方式被处理(例如,如果文件被编校、复制、更改、访问、或采取了某一其他动作),则新的SHA-2计算的哈希值)
b)文件的新存储位置
c)与文件相关联的新的元数据被标识
d)将对文件的访问或控制从一个区块链参与者转移到另一区块链参与者
图7D示出了可表示根据一个实施例的区块链790中的区块的结构的区块的实施例。Blocki(区块i)包括头部772i、文件774i和值776i
头部772i包括先前区块Blocki-1(区块i-1)的哈希值和附加引用信息,该附加引用信息例如可以是本文所讨论的任何类型的信息(例如,包括引用、特性、参数等的头部信息)。所有区块引用先前区块的哈希,当然除了起源区块之外。先前区块的哈希值可以仅仅是先前区块中的头部的哈希,或者是先前区块中的全部或部分信息的哈希,包括文件和元数据。
文件774i包括多个数据,例如顺序的数据1、数据2、…、数据N。数据被标记有描述与数据相关联的内容和/或特性的元数据1、元数据2、…、元数据N。例如,每个数据的元数据可以包括指示数据的时间戳、处理数据、指示数据中描绘的人或其他内容的关键词和/或可以有助于建立文件作为整体的有效性和内容的其他特征,并且特别是其使用数字证据的信息,例如,如结合下文讨论的实施例所描述的。除了元数据之外,每个数据可以用对先前数据的引用REF1、REF2、…、REFN-1来标记,以防止文件中的篡改、间隙以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合约),元数据在哈希没有改变的情况下不能被更改,这可以容易地被标识以用于无效。因此,元数据创建了可以被访问以供区块链中的参与者使用的信息的数据日志。
值776i为为基于先前讨论的任何类型的信息计算的哈希值或其他值。例如,对于任何给定区块Blocki(区块i),可以更新该区块的值以反映针对该区块执行的处理,例如,新的哈希值、新的存储位置、关联文件的新的元数据、控制或访问的转移、标识符、或要添加的其他动作或信息。尽管每个区块中的值被示为与文件和头部的数据的元数据分开,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成了区块链770,在任何时间点,通过向区块链查询跨区块的值的事务历史,可以获得文件的不可改变的监管链。该查询或跟踪过程可以开始于解密最当前包括的区块(例如,最后(第N个)区块)的值,然后继续解密其他区块的值,直到到达起源区块并且恢复原始文件。解密也可涉及解密每个区块中的头部和文件以及相关联的元数据。
基于在每个区块中发生的加密类型来执行解密。这可以涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,区块链参与者或网络中的处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系彼此相关联。公共密钥可以被公开分发以用作从其他用户接收消息的地址,例如IP地址或家庭地址。私钥保持秘密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,以便接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可以发送该消息。
生成密钥对可类似于在区块链上创建账户,但不必实际上在任何地方注册。而且,在区块链上执行的每个事务由发送者使用其私钥来数字地签署。该签名确保只有账户的所有者能够跟踪和处理(如果在由智能合约确定的许可范围内)区块链的文件。
图8A和8B示出了可结合和用于本文的区块链的使用情况的另外的示例。具体地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量的历史数据(或训练数据)来构建用于对新数据进行准确预测的预测模型。机器学习软件(例如,神经网络等)通常可以筛选数百万条记录以找出非直观模式。
在图8A的示例中,主机平台820构建和部署用于资产830的预测监控的机器学习模型。本文,主机平台820可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机械和设备、油气设备、船、舰、车辆等。作为另一个示例,资产830可以是非有形资产,例如股票、货币、数字硬币、保险等。
区块链810可以用于显著地改进机器学习模型的训练过程802和基于经训练的机器学习模型的预测过程804两者。例如,在802中,历史数据可以由资产830本身(或通过介质,未示出)存储在区块链810上,而不是要求数据科学家/工程师或其他用户来收集数据。这可显著减少主机平台820在执行预测模型训练时所需的收集时间。例如,使用智能合约,数据可以直接且可靠地从其原产地直接传递到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合约可以直接将数据从资产发送到使用该数据来构建机器学习模型的个体。这允许在资产830之间共享数据。
所收集的数据可基于共识机制存储在区块链810中。一致性机制拉入(许可节点)以确保正被记录的数据被验证和准确。记录的数据是时间标记的、密码签名的和不可变的。因此,它是可审计的、透明的和安全的。在某些情况下(即,供应链、保健、物流等),添加直接写入区块链的IoT设备可以增加被记录的数据的频率和准确性。
此外,在所收集的数据上训练机器学习模型可以由主机平台820进行若干轮细化和测试。每轮可以基于附加数据或先前未被考虑以帮助扩展机器学习模型的知识的数据。在802中,不同的训练和测试步骤(以及与其相关联的数据)可由主机平台820存储在区块链810上。机器学习模型的每个细化(例如,变量、权重等的改变)可以被存储在区块链810上。这提供了模型如何被训练以及什么数据被用于训练模型的可验证的证明。此外,当主机平台820已经实现最终训练的模型时,所得模型可存储在区块链810上。
在已经训练了模型之后,可以将其部署到现场环境,在现场环境中,可以基于最终训练的机器学习模型的执行来进行预测/决策。例如,在804中,机器学习模型可以用于诸如飞机、风力涡轮机、保健机器等资产的基于条件的维护(CBM)。在该示例中,从资产830反馈的数据可以被输入机器学习模型,并且被用于进行事件预测,诸如故障事件、错误代码等。通过在主机平台820处执行机器学习模型所做出的确定可被存储在区块链810上以提供可审计/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产830的一部分的未来故障/失败,并且创建替换该部分的警报或通知。该决定背后的数据可由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于其发生。
区块链的新事务可被一起聚集到新的区块中并被添加到现有的哈希值。然后,对其进行加密,以创建用于新的区块的新哈希。当对事务进行加密时,将其添加到下一个事务列表,等等。结果是每个都包含所有先前区块的哈希值的一连串块。存储这些区块的计算机定期比较它们的哈希值以确保它们都一致。任何不同意的计算机都丢弃引起问题的记录。这种方法对于确保区块链的防篡改是有益的,但它不是完美的。
操纵该系统的一种方式是不诚实的用户改变他们喜爱的事务列表,但是保持哈希不变。这可以通过强制来完成,换句话说,通过改变记录、加密结果、以及查看哈希值是否相同来完成。如果不是,则反复地尝试直到找到匹配的哈希。区块链的安全性基于这样的信念,即普通计算机仅能在完全不切实际的时间尺度上,诸如宇宙年龄上执行这种强力攻击。相反,量子计算机快得多(快1000倍),因此造成大得多的威胁。
图8B示出了实现量子密钥分发(QKD)以防止量子计算攻击的量子安全区块链852的示例850。在该示例中,区块链用户可使用QKD验证彼此的身份。这使用诸如光子的量子粒子发送信息,窃听者在不破坏量子粒子的情况下不能复制该量子粒子。这样,发送者和接收者通过区块链可以确信彼此的身份。
在图8B的示例中,存在四个用户854、856、858和860。每对用户可以在他们之间共享密钥862(即,QKD)。由于在该示例中存在四个节点,因此存在六对节点,因此使用了六个不同的密钥862,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用诸如光子的量子粒子发送信息来创建QKD,窃听者在不破坏QKD的情况下不能复制QKD。这样,一对用户可以确信彼此的身份。
区块链852的操作基于两个过程:(i)事务的创建,以及(ii)聚集新事务的区块的构造。可以类似于传统的区块链网络创建新的事务。每个事务可以包含关于发送者、接收者、创建时间、要转移的金额(或价值)、证明发送者具有用于操作的资金的引用事务的列表等的信息。然后,将该事务记录发送到所有其他节点,在所有其他节点中,该事务记录被输入未确认事务池。此处,两方(即,854-860中的用户对)通过提供他们的共享密钥862(QKD)来认证事务。该量子签名可以被附加到每个事务,使得极难篡改它。每个节点检查其关于区块链852的本地副本的条目,以验证每个事务具有足够的资金。然而,事务还没有被确认。
不是对区块执行传统的挖掘过程,而是可以使用广播协议以分散式的方式创建块。在预定的时间段(例如,几秒、几分钟、几小时等),网络可以将广播协议应用于任何未确认的事务,从而实现关于事务的正确版本的拜占庭协定(共识)。例如,每个节点可以拥有私有值(该特定节点的事务数据)。在第一轮中,节点向彼此发送它们的私有值。在随后的轮次中,节点传送它们在先前轮次中从其他节点接收的信息。此处,诚实节点能够在新的区块内创建完整的事务集。该新的区块可被添加到区块链852。在一个实施例中,本文描述和/或描绘的特征和/或动作可在区块链852上或相对于其发生。
图9示出了支持在此描述和/或描绘的示例实施例中的一个或多个的示例系统900。系统900包括计算机系统/服务器902,其可与许多其他通用或专用计算系统环境或配置一起操作。适合与计算机系统/服务器902一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
计算机系统/服务器902可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906以及将包括系统存储器906在内的各种系统组件耦合到处理器904的总线。
总线表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或局部总线。作为示例而非限制,这些架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
计算机系统/服务器902通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器902访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器906实现其他附图的流程图。系统存储器906可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)910和/或高速缓存912。计算机系统/服务器902还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统914可被提供用于从不可移动、非易失性磁介质(未示出且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其他光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线。如下面将进一步描绘和描述的,存储器906可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该组程序模块被配置成执行本申请的各种实施例的功能。
作为示例而非限制,具有一组(至少一个)程序模块918的程序/实用程序916以及操作系统、一个或多个应用、其他程序模块和程序数据可被存储在存储器906中。操作系统、一个或多个应用、其他程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块918通常执行如本文所述的应用的各种实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以被实现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在本文可以被统称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取在其上包含计算机可读程序代码的一个或多个计算机可读介质中包含的计算机程序产品的形式。
计算机系统/服务器902还可以与一个或多个外部设备920通信,诸如键盘、定点设备、显示器922等;一个或多个设备,其使得用户能够与计算机系统/服务器902交互;和/或使计算机系统/服务器902能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由I/O接口924发生。此外,计算机系统/服务器902可以经由网络适配器926与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)之类的一个或多个网络通信。如所描绘的,网络适配器926经由总线与计算机系统/服务器902的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器902结合使用。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
尽管在附图中示出并在前述详细描述中描述了系统、方法和非瞬态计算机可读介质中的至少一个的示例性实施例,但是将理解,本申请不限于所公开的实施例,而是能够进行如所附权利要求书所阐述和定义的众多重新布置、修改和替换。例如,各附图的系统的能力可由本文描述的模块或组件中的一个或多个或以分布式架构来执行,并且可包括发射机、接收机或两者的配对。例如,由各个模块执行的所有或部分功能可以由这些模块中的一个或多个执行。此外,本文描述的功能可以在各种时间执行,并且可以与模块或组件内部或外部的各种事件相关。而且,在各种模块之间发送的信息可以经由以下中的至少一个在模块之间发送:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或经由多个协议。而且,由任何模块发送或接收的消息可以直接和/或经由一个或多个其他模块发送或接收。
本领域技术人员将理解,“系统”可以被实现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备、或设备的组合。将上述功能呈现为由“系统”执行不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地化和分布式形式来实现。
应当注意,本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为包括定制超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管或其他分立组件的现成半导体的硬件电路。模块还可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块还可以至少部分地以由各种类型的处理器执行的软件来实现。可执行代码的标识单元例如可以包括计算机指令的一个或多个物理或逻辑块,其例如可以被组织为对象、过程或函数。然而,标识模块的可执行代码不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当这些指令逻辑地结合在一起时,包括该模块并实现该模块的规定目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在若干不同的代码段上、在不同的程序之间、以及跨若干存储器设备。类似地,操作子据可以在模块内被标识和示出,并且可以以任何合适的形式被体现并且被组织在任何合适类型的数据结构内。操作子据可以被收集为单个数据集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
容易理解,如在本文附图中一般性描述和示出的,本申请的组件可以以各种不同的配置来布置和设计。因此,实施例的详细描述不是要限制所要求保护的本申请的范围,而仅仅是本申请的所选实施例的代表。
本领域的普通技术人员将容易理解,可以用不同顺序的步骤和/或用配置不同于所公开的配置的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说,某些修改、变化和替代构造将是显而易见的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是说明性的,并且当考虑到其全部范围的等同物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求来限定。

Claims (20)

1.一种装置,包括:
网络接口,被配置为接收针对区块链上的存储的请求;以及
处理器,所述处理器被配置为经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与所述请求相关联的区块链事务,其中所述可验证凭证包括所述区块链节点的声明和创建所述可验证凭证的所述SSI网络的证明,并且经由所述区块链上的数据区块存储所述区块链事务和所附加的所述可验证凭证,
其中所述处理器还被配置为控制所述网络接口以将所述区块链事务和所附加的所述可验证凭证传输到一个或多个其他区块链节点。
2.根据权利要求1所述的装置,其中所述可验证凭证还包括唯一地标识所述区块链节点的分散式标识符(DID)。
3.根据权利要求1所述的装置,其中所述请求包括经由所述区块链的智能合约来执行所述区块链事务的请求,并且所述可验证凭证包括其中的声明,所述声明将所述区块链节点标识为被授权执行所述智能合约的区块链对等体。
4.根据权利要求1所述的装置,其中所述可验证凭证包括其何时被创建的时间戳以及期满值。
5.根据权利要求1所述的装置,其中所述处理器还被配置为从所述SSI网络接收修改的可验证凭证,其中所述修改的可验证凭证包括被添加到其中的新声明、所述新声明何时被创建的时间戳以及期满值。
6.根据权利要求1所述的装置,其中所述请求包括针对多个区块链事务的排序请求,并且所述处理器被配置为在新的区块中对所述多个区块链事务进行排序,并且将可验证凭证附加到所述新的区块,所述可验证凭证指示所述区块链节点是所述区块链的排序节点。
7.根据权利要求1所述的装置,其中所述请求包括将区块添加到预定义的区块链分类账的请求,并且所述可验证凭证在其中存储声明,所述声明将所述区块链节点标识为被授权将所述区块存储到所述预定义的区块链分类账的区块链对等体。
8.根据权利要求1所述的装置,其中所述处理器还被配置为对所述区块链事务进行背书,其中所述可验证凭证将所述区块链节点标识为所述区块链的背书对等体。
9.一种方法,包括:
接收针对区块链上的存储的请求;
经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与所述请求相关联的区块链事务,其中所述可验证凭证包括所述区块链节点的声明以及创建所述可验证凭证的所述SSI网络的证明;
将所述区块链事务和所附加的所述可验证凭证传输到一个或多个其他区块链节点;以及
经由所述区块链上的数据区块存储所述区块链事务和所附加的所述可验证凭证。
10.根据权利要求9所述的方法,其中所述可验证凭证还包括唯一地标识所述区块链节点的分散式标识符(DID)。
11.根据权利要求9所述的方法,其中所述请求包括经由所述区块链的智能合约来执行所述区块链事务的请求,并且所述可验证凭证包括其中的声明,所述声明将所述区块链节点标识为被授权执行所述智能合约的区块链对等体。
12.根据权利要求9所述的方法,其中所述可验证凭证包括其何时被创建的时间戳以及期满值。
13.根据权利要求9所述的方法,还包括从所述SSI网络接收修改的可验证凭证,其中所述修改的可验证凭证包括被添加到其中的新声明、所述新声明何时被创建的时间戳以及期满值。
14.根据权利要求9所述的方法,其中所述请求包括针对多个区块链事务的排序请求,并且所述方法还包括在新的区块中对所述多个区块链事务进行排序,并且将可验证凭证附加到所述新的区块,所述可验证凭证指示所述区块链节点是所述区块链的排序节点。
15.根据权利要求9所述的方法,其中所述请求包括将区块添加到预定义的区块链分类账的请求,并且所述可验证凭证在其中存储声明,所述声明将所述区块链节点标识为被授权将所述区块存储到所述预定义的区块链分类账的区块链对等体。
16.根据权利要求9所述的方法,其中所述方法还包括对所述区块链事务进行背书,其中所述可验证凭证将所述区块链节点标识为所述区块链的背书对等体。
17.一种非暂态计算机可读介质,包括指令,所述指令在由处理器执行时使计算机执行方法,所述方法包括:
接收针对区块链上的存储的请求;
经由区块链节点将由自主主权身份(SSI)网络创建的可验证凭证附加到与所述请求相关联的区块链事务,其中所述可验证凭证包括所述区块链节点的声明以及创建所述可验证凭证的所述SSI网络的证明;
将所述区块链事务和所附加的所述可验证凭证传输到一个或多个其他区块链节点;以及
经由所述区块链上的数据区块存储所述区块链事务和所附加的所述可验证凭证。
18.根据权利要求17所述的非暂态计算机可读介质,其中所述可验证凭证还包括唯一地标识所述区块链节点的分散式标识符(DID)。
19.根据权利要求17所述的非暂态计算机可读介质,其中所述请求包括经由所述区块链的智能合约来执行所述区块链事务的请求,并且所述可验证凭证包括其中的声明,所述声明将所述区块链节点标识为被授权执行所述智能合约的区块链对等体。
20.根据权利要求17所述的非暂态计算机可读介质,其中所述可验证凭证包括其何时被创建的时间戳以及期满值。
CN202280016763.8A 2021-02-24 2022-02-22 区块链网络身份管理使用ssi Pending CN116941265A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/184,349 US20220272085A1 (en) 2021-02-24 2021-02-24 Blockchain network identity management using ssi
US17/184,349 2021-02-24
PCT/CN2022/077286 WO2022179502A1 (en) 2021-02-24 2022-02-22 Blockchain network identity management using ssi

Publications (1)

Publication Number Publication Date
CN116941265A true CN116941265A (zh) 2023-10-24

Family

ID=82901113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280016763.8A Pending CN116941265A (zh) 2021-02-24 2022-02-22 区块链网络身份管理使用ssi

Country Status (5)

Country Link
US (1) US20220272085A1 (zh)
JP (1) JP2024507908A (zh)
CN (1) CN116941265A (zh)
GB (1) GB2618957A (zh)
WO (1) WO2022179502A1 (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
CN111475575B (zh) * 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
JP2024048061A (ja) * 2022-09-27 2024-04-08 富士通株式会社 情報管理プログラム、情報管理方法、情報処理装置および情報共有システム
CN118036021A (zh) * 2022-11-02 2024-05-14 财付通支付科技有限公司 基于多区块链的数据处理方法、装置、设备以及介质
CN116707962A (zh) * 2023-06-30 2023-09-05 北京中启赛博科技有限公司 网络接入控制与检测告警方法、装置及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590840B2 (en) * 2003-09-26 2009-09-15 Randy Langer Method and system for authorizing client devices to receive secured data streams
US9923927B1 (en) * 2015-09-29 2018-03-20 Amazon Technologies, Inc. Methods and systems for enabling access control based on credential properties
US10565192B2 (en) * 2017-08-01 2020-02-18 International Business Machines Corporation Optimizing queries and other retrieve operations in a blockchain
WO2019089164A1 (en) * 2017-11-06 2019-05-09 Intel Corporation Secure device onboarding techniques
DE102019104092A1 (de) * 2019-02-19 2020-08-20 BoneBits GmbH Verfahren zum Steuern eines Hardwaresystems unter Verwendung einer Blockchain
WO2020186250A2 (en) * 2019-03-14 2020-09-17 Warner Bros. Entertainment Inc. Mobile peer-to-peer networks and related applications
US11411746B2 (en) * 2019-05-24 2022-08-09 Centrality Investments Limited Systems, methods, and storage media for permissioned delegation in a computing environment
CN111213147B (zh) * 2019-07-02 2023-10-13 创新先进技术有限公司 用于基于区块链的交叉实体认证的系统和方法
US11695543B2 (en) * 2019-08-22 2023-07-04 Myndshft Technologies, Inc. Blockchain network control system and methods
US11637687B2 (en) * 2019-12-20 2023-04-25 Intel Corporation Methods and apparatus to determine provenance for data supply chains
US20210273931A1 (en) * 2020-02-27 2021-09-02 Microsoft Technology Licensing, Llc Decentralized authentication anchored by decentralized identifiers
JP7319461B2 (ja) * 2020-03-30 2023-08-01 株式会社日立製作所 コンソーシアムブロックチェーンを用いてプライベートデータを保持する方法および装置
LU101754B1 (en) * 2020-04-28 2021-10-28 Microsoft Technology Licensing Llc Device asserted verifiable credential
LU101757B1 (en) * 2020-04-28 2021-10-28 Microsoft Technology Licensing Llc Encrypted verifiable credentials
US11489679B2 (en) * 2020-07-06 2022-11-01 Hewlett Packard Enterprise Development Lp Methods and systems for submission and validating decentralized verifiable claims in a physical world
CN112016119B (zh) * 2020-08-10 2022-02-15 四川九洲电器集团有限责任公司 一种基于区块链的自主身份管理方法
CN116472530A (zh) * 2020-11-11 2023-07-21 德国邮政股份公司 分布式账本系统

Also Published As

Publication number Publication date
GB202313631D0 (en) 2023-10-25
US20220272085A1 (en) 2022-08-25
GB2618957A (en) 2023-11-22
WO2022179502A1 (en) 2022-09-01
JP2024507908A (ja) 2024-02-21

Similar Documents

Publication Publication Date Title
US11734259B2 (en) Anonymous database rating update
US11569996B2 (en) Anonymous rating structure for database
US11349637B2 (en) Random node selection for permissioned blockchain
CN111951003A (zh) 用于管理对用户数据的同意的认知系统
CN112084256A (zh) 用于数据库的聚合机器学习验证
CN111881206A (zh) 用于数据块的多层图像编码
WO2022179502A1 (en) Blockchain network identity management using ssi
CN112084255A (zh) 机器学习应用的有效验证
CN115699054A (zh) 区块链的更快查看改变
CN112241919A (zh) 具有数据流控制的多域区块链网络
CN115211093A (zh) 数据对象的有效阈值存储
CN111881109B (zh) 数据库可合并分类账
CN115004625A (zh) 用于区块链分类账的索引结构
US20210256009A1 (en) Multi-client transaction validation
CN114450708A (zh) 基于现有链码的链码推荐
CN115605868A (zh) 跨网身份提供
US11856092B2 (en) Limiting data availability on distributed ledger
CN116438776A (zh) 区块链网络中通过伪随机函数的密钥回收
CN116361823A (zh) 用于隐私保护的区块链的选择性审计处理
WO2023046409A1 (en) Digital asset platform with hsm verification
US11416474B2 (en) Blockchain-based software library access and usage management
CN116264860A (zh) 广播内容的阈值加密
CN114128214B (zh) 用于配置区块链的安全层
US11556517B2 (en) Blockchain maintenance
CN112016118B (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