CN111448565A - 基于去中心化标识的数据授权 - Google Patents

基于去中心化标识的数据授权 Download PDF

Info

Publication number
CN111448565A
CN111448565A CN202080000570.4A CN202080000570A CN111448565A CN 111448565 A CN111448565 A CN 111448565A CN 202080000570 A CN202080000570 A CN 202080000570A CN 111448565 A CN111448565 A CN 111448565A
Authority
CN
China
Prior art keywords
blockchain
user
decentralized identity
digital activity
decentralized
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
CN202080000570.4A
Other languages
English (en)
Other versions
CN111448565B (zh
Inventor
彭玉军
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Publication of CN111448565A publication Critical patent/CN111448565A/zh
Application granted granted Critical
Publication of CN111448565B publication Critical patent/CN111448565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/363Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user
    • 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/602Providing cryptographic facilities or services
    • 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
    • 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • H04L63/101Access control lists [ACL]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本文公开了用于控制对访问用户数据的授权的方法、***和装置,包括编码在计算机存储介质上的计算机程序。方法之一包括:接收第一请求,第一请求包括第一数字活动去中心化标识(DID)和第一数字活动数据的第一哈希值,其中,第一数字活动去中心化标识与第一用户的第一去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识相关联;将第一数字活动去中心化标识及第一哈希值存储在去中心化标识区块链中的第一记录中,去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录;使用存储在去中心化标识区块链中的第一记录中的信息来控制对访问存储在第一联盟区块链中的第一数字活动数据的授权,包括基于存储在去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问第一数字活动数据。

Description

基于去中心化标识的数据授权
技术领域
本文涉及基于具有增强的安全性的去中心化标识的数据授权。
背景技术
分布式账本***(DLS),也可以被称为共识网络和/或区块链网络,使得参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的类型的示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。区块链网络可以与为用户提供服务的许多应用相关联,并且每个用户可以具有一个或多个可以用来证明用户身份的标识。这些应用可以生成与用户相关联的大量数据,例如,商业交易数据、财务数据、医疗保健数据、购物数据、娱乐活动数据、网络搜索数据、通信数据和运输活动数据。
期望允许每个用户能够控制(例如,授权或拒绝)其他用户公开(release)或访问与该用户相关联的数据。
发明内容
所描述的主题的实施例可以单独或组合地包括一个或多个特征。
例如,在一个实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:接收第一请求,所述第一请求包括第一数字活动去中心化标识(DID)和第一数字活动数据的第一哈希值,其中,所述第一数字活动去中心化标识与第一用户的第一去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识相关联;将所述第一数字活动去中心化标识及所述第一哈希值存储在去中心化标识区块链中的第一记录中,所述去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录;以及使用存储在所述去中心化标识区块链中的第一记录中的信息来控制对访问存储在所述第一联盟区块链中的第一数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问所述第一数字活动数据。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述第一请求是从与所述第一联盟区块链相关联的第一联盟区块链节点发送的。
在一些实施例中,所述方法还包括:向与所述第一用户相关联的第一应用程序发送第一消息,其中,所述第一消息包括所述第一数字活动数据的第一哈希值;接收来自所述第一应用程序的、指示所述第一哈希值是否正确的第二消息;如果所述第二消息指示所述第一哈希值是正确的,则将所述第一哈希值存储在所述第一记录中;以及如果所述第二消息指示所述第一哈希值是不正确的,则不将所述第一哈希值存储在所述第一记录中。
在一些实施例中,所述第一应用程序包括数字钱包去中心化应用程序。
在一些实施例中,所述方法还包括:通过将所述第一数字活动去中心化标识与存储在所述去中心化标识区块链中的预存储的数字活动去中心化标识进行比较,来确定所述第一数字活动去中心化标识是否有效。
在一些实施例中,所述方法还包括:接收第二请求,所述第二请求包括第一数字活动去中心化标识和第二数字活动数据的第二哈希值;将所述第二哈希值存储在所述去中心化标识区块链的第一记录中;以及使用存储在所述去中心化标识区块链中的第一记录中的信息来控制对访问存储在所述第一联盟区块链中的第二数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问所述第二数字活动数据。
在一些实施例中,所述第二请求是从所述第一联盟区块链发送的。
在一些实施例中,所述方法还包括:接收包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值的第二请求,所述第二请求来自维护第二联盟区块链的第二联盟区块链网络,其中,所述第二数字活动去中心化标识与所述第一用户的第一去中心化标识和与所述第二联盟区块链相关联的第二业务去中心化标识相关联;将所述第二数字活动去中心化标识及所述第二哈希值存储在所述去中心化标识区块链中的第一记录中;以及使用存储在所述去中心化标识区块链中的第一记录中的信息来控制对访问存储在所述第二联盟区块链中的第二数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问所述第二数字活动数据。
在一些实施例中,所述方法还包括:接收来自所述第一联盟区块链、包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值的第二请求,其中,所述第二数字活动去中心化标识与第二用户的第二去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识相关联;将所述第二数字活动去中心化标识及所述第二哈希值存储在所述去中心化标识区块链的第二记录中;以及使用存储在所述去中心化标识区块链中的第二记录中的信息来控制对访问存储在所述第一联盟区块链中的第二数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第二记录来确定是否授权另一用户访问所述第二数字活动数据。
在另一个实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:在与第一用户相关联的应用程序中,接收来自去中心化标识(DID)区块链的第一数字活动数据的第一哈希值,其中,所述第一数字活动数据存储在第一联盟区块链中;从所述第一联盟区块链获得所述第一数字活动数据;生成从所述第一联盟区块链获得的第一数字活动数据的第二哈希值;比较所述第一哈希值和所述第二哈希值;以及在确定所述第一哈希值与所述第二哈希值匹配时,向与去中心化标识区块链相关联的去中心化标识区块链节点发送指示所述第一哈希值是准确的消息。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述方法还包括:向所述第一用户提供用户接口,所述用户接口显示从所述第一联盟区块链获得的第一数字活动数据;接收来自所述第一用户的、指示所述第一数字活动数据是否正确的指示;以及从所述第一用户向所述去中心化标识区块链发送指示所述第一数字活动数据是否正确的所述指示。
在一些实施例中,所述应用程序包括数字钱包去中心化应用程序。
在另一实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,所述第一请求包括所述第一数字活动数据的第一哈希值、与所述第二用户的第一去中心化标识相关联的第一数字活动去中心化标识、和与第一联盟区块链相关联的第一业务去中心化标识,所述第一请求是从所述第一联盟区块链发送的、并在去中心化标识(DID)区块链处接收,所述去中心化标识区块链配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,并且所述第一数字活动数据是存储在所述第一联盟区块链中的;判断所述第一数字活动去中心化标识、所述第一哈希值和所述第一业务去中心化标识是否有效;以及使用对关于所述第一数字活动去中心化标识、所述第一哈希值和所述第一业务去中心化标识是否有效的确定,控制对所述第二用户访问存储在所述第一联盟区块链中的第一数字活动数据的授权。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述方法还包括:在接收所述第一请求之前,存储由所述第一联盟区块链提供的第一数字活动数据的第二哈希值,其中,确定所述第一哈希值是否有效包括,将所述第一哈希值与存储的第二哈希值进行比较,以及如果所述第一哈希值与所述存储的第二哈希值相同,则确定所述第一哈希值有效。
在一些实施例中,所述方法还包括:向与所述第一用户相关联的应用程序发送第一消息,以向所述第一用户通知关于允许所述第二用户访问所述第一数字活动数据的第一请求。
在一些实施例中,与所述第一用户相关联的应用程序包括数字钱包去中心化应用程序。
在一些实施例中,所述方法还包括:接收来自所述应用程序的、指示所述第一用户是否授权所述第二用户访问所述第一数字活动数据的第二消息,其中,控制对访问所述第一数字活动数据的授权是至少部分基于所述第二消息是否指示所述第一用户授权所述第二用户访问所述第一数字活动数据。
在一些实施例中,所述方法还包括:在确定所述第一数字活动去中心化标识、所述第一哈希值和所述第一业务去中心化标识有效之后,接收所述第二消息,所述第二消息指示所述第一用户授权所述第二用户访问所述第一数字活动数据,向所述第一联盟区块链发送第三消息,以指示所述第一用户已授权所述第二用户访问第一数字活动数据。
在一些实施例中,所述第二消息包括所述第二用户访问所述第一数字活动数据的条件。
在一些实施例中,所述条件包括时间限制条件,所述时间限制条件指定所述第二用户只能在指定的时间限制内访问所述第一数字活动数据。
在另一实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,所述第一数字活动数据被存储在第一联盟区块链中,所述第一请求是从与第一去中心化标识区块链相关联的去中心化标识(DID)区块链节点发送的,所述第一去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录,以及所述第一请求是在与所述第一用户相关联的应用程序处接收的;提供向第一用户显示所述第一请求的用户接口;接收来自所述第一用户的、关于是否授权所述第二用户访问存储在所述第一联盟区块链中的第一数字活动数据的指令;以及向所述去中心化标识区块链节点发送指示所述第一用户是否授权所述第二用户访问所述第一数字活动数据的第一消息。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述第一消息包括所述第二用户访问第一数字活动数据的条件。
在一些实施例中,所述条件包括时间限制条件,所述时间限制条件指定所述第二用户只能在指定的时间限制内访问所述第一数字活动数据。
在另一实施例中,一种计算机实现的方法包括:基于关于第二去中心化标识的信息和关于第三去中心化标识的信息来生成第一去中心化标识,其中,所述第二去中心化标识与第一用户相关联,所述第三去中心化标识与第一区块链相关联,所述第一区块链被配置为存储与所述第一用户相关联的记录;将第一组记录和所述第一去中心化标识注册在第二区块链上,其中,所述第一组记录包括与所述第一用户相关联的数据,并且所述第一组记录存储在所述第一联盟区块链中,所述第二区块链包括一个或多个区块链合约,所述一个或多个区块链合约被配置为:在执行时,执行与所述第一去中心化标识相关联的一个或多个操作,并且注册所述第一组记录包括将针对所述第一组记录中的每个记录的哈希值存储在所述第二区块链中;以及基于所述第一去中心化标识控制对访问第一组记录的授权,包括响应于接收到授予第二用户访问所述第一组记录中的特定记录的请求,确定所述请求是否包括第一去中心化标识。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述第一去中心化标识包括数字活动去中心化标识,所述第二去中心化标识包括数字身份去中心化标识,所述第三去中心化标识包括业务去中心化标识。
在一些实施例中,所述第一组记录由向所述第一用户提供服务的业务***生成或管理,并且所述业务***管理将所述记录存储在第一联盟区块链、以及管理从所述第一联盟区块链检索所述记录。
在一些实施例中,所述第一区块链包括联盟区块链。
在一些实施例中,所述第二区块链包括去中心化标识区块链,所述去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录,并且所述去中心化标识区块链包括一个或多个区块链合约,所述一个或多个区块链合约被配置为在执行时执行与所述去中心化标识相关联的一个或多个操作。
在一些实施例中,所述请求包括第一值,所述第一值表示所述特定记录的哈希值,其中,控制对访问所述第一组记录的授权包括:将所述请求中的第一值与存储在所述第二区块链中的特定记录的哈希值进行比较,以及(i)在确定所述请求中的第一值等于存储在所述第二区块链中的特定记录的哈希值后,批准授予所述第二用户访问所述特定记录的请求,或(ii)在确定所述请求中的第一值与存储在所述第二区块链中的特定记录的哈希值不同时,拒绝授予所述第二用户访问所述特定记录的请求。
在一些实施例中,所述方法还包括:向与第一用户相关联的第一应用程序发送第一消息,以使所述第一应用程序从所述第一区块链中检索所述特定记录、并呈现所述特定记录以供所述第一用户查看。
在一些实施例中,所述第一消息包括第一值,所述第一值表示所述特定记录的哈希值,所述第一消息被配置为使所述第一应用程序:计算第二值,所述第二值表示从所述第一区块链检索到的特定记录的哈希值,将所述第一值与所述第二值进行比较,以及(i)确定所述第一值等于所述第二值时,批准授予所述第二用户访问所述特定记录的请求,或(ii)确定所述第一值与所述第二值不同时,则拒绝授予所述第二用户访问所述特定记录的请求。
在另一实施例中,提供了一种用于基于去中心化标识来管理用户数据的***。所述***包括去中心化标识生成模块,被配置为生成与用户相关联的数字身份去中心化标识,其中,每个数字身份去中心化标识与所述用户之一相关联,所述去中心化标识生成模块被配置为生成与联盟区块链相关联的业务去中心化标识,所述联盟区块链被配置为存储与用户相关联的数据记录,每个业务去中心化标识与联盟区块链之一相关联,并且所述去中心化标识生成模块还配置为生成数字活动去中心化标识,每个数字活动去中心化标识与所述用户之一和所述联盟区块链之一相关联;验证模块,被配置为验证数字身份去中心化标识的有效性、所述业务去中心化标识的有效性、以及所述数字活动去中心化标识的有效性;去中心化标识区块链模块,被配置为更新去中心化标识区块链中的信息,所述去中心化标识区块链被配置为存储数字身份去中心化标识及业务去中心化标识,其中,所述去中心化标识区块链还被配置为存储存储在所述联盟区块链中的数据记录的哈希值,并且所述去中心化标识区块链包括一个或多个区块链合约,所述一个或多个区块链合约被配置为在执行时执行与所述各种去中心化标识相关联的一项或多项操作。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述验证模块被配置为验证授予第二用户访问与第一用户相关联的第一记录的第一请求的有效性,其中,所述第一记录被存储在第一联盟区块链中,以及所述验证模块被配置为确定所述第一请求是否包括与所述第一用户和所述第一联盟区块链相关联的数字活动去中心化标识。
在一些实施例中,所述第一请求包括第一值,所述第一值表示所述第一记录的哈希值,所述验证模块被配置为将所述第一值与所述第一记录中存储的哈希值进行比较,以及(i)确定所述第一值等于所述第一记录中存储的哈希值时,批准授予所述第二用户访问所述第一记录的第一请求,或(ii)确定所述第一值与所述第一记录中存储的哈希值不同时,拒绝授予所述第二用户访问所述第一记录的第一请求。
在一些实施例中,所述验证模块被配置为向与所述第一用户相关联的第一去中心化应用程序发送第一消息,以使所述第一去中心化应用程序从所述第一联盟区块链检索所述第一记录、并将所述第一记录呈现在用户接口上。
在一些实施例中,所述第一消息包括第二值,所述第二值表示所述第一记录的哈希值,并且所述第一消息被配置为使所述第一去中心化应用程序执行:从所述第一联盟区块链检索所述第一记录,计算第三值,所述第三值表示从所述第一联盟区块链检索到的第一记录的哈希值,将所述第二值与所述第三值进行比较,以及(i)确定所述第二值等于所述第三值时,批准授予所述第二用户访问所述第一记录的第一请求,或(ii)确定所述第二值与所述第三值不同时,拒绝授予所述第二用户访问所述第一记录的第一请求。
在一些实施例中,所述去中心化标识生成模块被配置为基于关于与对应用户相关联的数字身份去中心化标识的信息和关于与对应联盟区块链相关联的业务去中心化标识的信息来生成每个数字活动去中心化标识。
在一些实施例中,所述去中心化标识区块链模块被配置为将每个哈希值与关联于对应用户的对应数字身份去中心化标识链接(link),其中,所述哈希值是从与所述对应用户相关联的对应数据记录中计算出来的。
在一些实施例中,所述***还包括第一业务***,所述第一业务***生成和/或管理与所述第一用户相关联并存储在第一联盟区块链中的数据记录,其中,所述第一业务***提供用户接口以使所述第一用户能够与所述第一业务***进行交互,并且所述第一业务***管理将所述数据记录存储在第一联盟区块链、以及管理从所述第一联盟区块链检索所述数据记录。
在一些实施例中,所述***还包括去中心化应用程序,所述去中心化应用程序在第一用户的设备上执行,并且被配置为与所述去中心化标识生成模块交互以获得所述第一用户去中心化标识。
在一些实施例中,所述去中心化应用程序被配置为与所述去中心化标识生成模块交互,以获得数字活动去中心化标识,所述数字活动去中心化标识与存储与所述第一用户相关联的数据记录的第一联盟区块链相关联。
在一些实施例中,所述去中心化应用程序被配置为,在接收到指示所述***已接收到授予第二用户访问与所述第一用户相关联的第一记录的第一请求的消息时,所述第一记录被存储在第一联盟区块链中,以从所述第一联盟区块链检索所述第一记录,并将所述第一记录显示在用户接口上。
在另一实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:接收对第一数字活动去中心化标识的第一请求,其中,所述第一请求是从与所述第一用户相关联的第一应用程序发送的,所述第一请求包括与关联于所述第一用户的第一用户去中心化标识(DID)及与维护第一区块链的第一区块链网络相关联的第一业务去中心化标识有关的信息;生成所述第一数字活动去中心化标识;将所述第一数字活动去中心化标识提供给第一应用程序;将与所述第一用户去中心化标识及所述第一数字活动去中心化标识有关的信息存储在第一去中心化标识区块链中的第一记录中,所述第一去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录;以及使用存储在所述第一去中心化标识区块链中的第一记录中的信息,控制对访问与所述第一用户相关联并存储在所述第一区块链中的数据的授权。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述第一区块链网络包括第一联盟区块链网络,所述第一区块链包括第一联盟区块链。
在一些实施例中,所述方法包括:将关于与所述第一联盟区块链网络相关联的第一业务去中心化标识的信息存储在所述第一去中心化标识区块链中的第一记录中。
在一些实施例中,所述方法还包括:接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括与所述第一用户的第一用户去中心化标识和与维护第二联盟区块链的第二联盟区块链网络相关联的第二业务去中心化标识有关的信息;生成所述第二数字活动去中心化标识;将所述第二数字活动去中心化标识提供给所述第一应用程序;将关于所述第二数字活动去中心化标识的信息存储在所述第一去中心化标识区块链中的第一记录中;以及使用所述第一去中心化标识区块链中的第一记录中的信息,来控制对与所述第一用户相关联并存储在所述第二联盟区块链中的记录的授权。
在一些实施例中,所述方法包括:将关于与所述第二联盟区块链相关联的第二业务去中心化标识的信息存储在所述第一去中心化标识区块链中的第一记录中。
在一些实施例中,所述方法还包括:接收针对多个数字活动去中心化标识的多个请求,其中,所述多个请求中的每个请求包括与所述第一用户的第一用户去中心化标识和与特定联盟区块链相关联的特定业务去中心化标识有关的信息;生成多个数字活动去中心化标识,其中,所述多个数字活动去中心化标识中的每个数字活动去中心化标识对应于所述业务去中心化标识之一;将所述数字活动去中心化标识存储在所述第一去中心化标识区块链中的第一记录中;以及使用所述第一去中心化标识区块链中的第一记录中的信息,来控制对与所述第一用户相关联、并存储在联盟区块链中的记录的授权。
在一些实施例中,所述方法还包括:将关于与所述多个数字活动去中心化标识相对应的业务去中心化标识的信息存储在第一去中心化标识区块链中的第一记录中。
在一些实施例中,与所述第一用户相关联的第一应用程序包括与所述第一用户相关联的数字钱包去中心化应用程序。
在一些实施例中,所述第一请求是在第一去中心化标识区块链网络的第一区块链节点处接收,并且在所述第一区块链节点处生成第一数字活动去中心化标识。
在一些实施例中,生成所述第一数字活动去中心化标识,包括:在所述第一去中心化标识区块链网络的第一区块链节点处执行智能合约,其中,所述智能合约被配置为基于包括在所述第一请求中的信息来生成所述第一数字活动去中心化标识。
在一些实施例中,将与所述第一用户的第一用户去中心化标识及所述第一数字活动去中心化标识有关的信息存储在所述第一去中心化标识区块链中的第一记录中,包括:在所述第一去中心化标识区块链网络的第一区块链节点处执行智能合约以存储所述信息。
在一些实施例中,所述方法还包括:在接收对第一数字活动去中心化标识的第一请求之前,接收用于获得所述第一用户去中心化标识的第二请求,其中,所述第二请求是从与所述第一用户相关联的第一应用程序发送的;基于所述第二请求,获得第一身份认证证明;基于所述第一身份认证证明,验证所述第一用户的身份;生成所述第一用户的第一用户去中心化标识;将所述第一用户的第一用户去中心化标识提供给与所述第一用户相关联的第一应用程序;以及将所述第一身份认证证明存储在所述第一去中心化标识区块链的第一记录中。
在一些实施例中,所述方法还包括:在接收所述第一请求之前,接收用于获得所述第一业务去中心化标识的第二请求,其中,所述第二请求是从所述第一联盟区块链网络的节点发送的;生成所述第一业务去中心化标识;以及将所述第一业务去中心化标识提供给所述第一联盟区块链网络的节点。
在一些实施例中,与所述第一用户相关联并存储在所述第一联盟区块链中的数据包括以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在一些实施例中,所述方法还包括:接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求是从与第二用户相关联的第二应用程序发送的,所述第二请求包括与所述第二用户的第二去中心化标识和与所述第一联盟区块链相关联的第一业务去中心化标识有关的信息;生成所述第二数字活动去中心化标识;将所述第二数字活动去中心化标识提供给所述第二应用程序;将与所述第二用户的第二去中心化标识及所述第二数字活动去中心化标识有关的信息存储在所述第一去中心化标识区块链中的第二记录中;以及至少部分地基于所述第一去中心化标识区块链中的第二记录中的信息,来控制对与所述第二用户相关联并存储在所述第一联盟区块链中的记录的授权。
在一些实施例中,所述方法还包括:接收对数字活动去中心化标识的多个请求,其中,所述多个请求中的每个请求包括与多个用户之一的特定去中心化标识和与所述第一联盟区块链网络相关联的第一业务去中心化标识有关的信息;生成所述多个数字活动去中心化标识,所述多个数字活动去中心化标识中的每个对应于所述多个用户之一;将关于所述多个数字活动去中心化标识中的每个的信息存储到与相应用户相关联的相应记录中;以及至少部分地基于所述记录中的信息,控制对与每个所述用户相关联并存储在所述第一联盟区块链中的记录的授权。
在一些实施例中,控制对所述记录的授权包括能够使所述第一用户授权第二用户访问与所述第一用户相关联、并存储在所述第一联盟区块链中的一个或多个记录。
在另一实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:接收对第一数字活动去中心化标识的第一请求,其中,所述第一请求包括与关联于所述第一用户的第一用户去中心化标识和与维护第一区块链的第一区块链网络相关联的第一业务去中心化标识有关的信息;生成所述第一数字活动去中心化标识;将与所述第一数字活动去中心化标识及所述第一用户去中心化标识有关的信息存储在所述第一去中心化标识区块链的第一记录中;接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括与所述第一用户去中心化标识和与维护第二区块链的第二区块链网络相关联的第二业务去中心化标识有关的信息;生成第二数字活动去中心化标识;将关于所述第二数字活动去中心化标识的信息存储在所述第一记录中;接收对第三数字活动去中心化标识的第三请求,其中,所述第三请求包括与关联于第二用户的第二用户去中心化标识和与所述第一区块链相关联的第一业务去中心化标识有关的信息;生成所述第三数字活动去中心化标识;将与所述第三数字活动去中心化标识及所述第二用户去中心化标识有关的信息存储在所述第一去中心化标识区块链的第二记录中;至少部分地基于所述第一记录中的信息,控制对与所述第一用户相关联并存储在所述第一区块链中的记录的授权;至少部分地基于所述第一记录中的信息,控制对与所述第一用户相关联、并存储在所述第二区块链中的记录的授权;至少部分地基于所述第二记录中的信息,控制对与所述第二用户相关联、并存储在所述第一区块链中的记录的授权。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述第一区块链网络包括第一联盟区块链网络,所述第一区块链包括第一联盟区块链,所述第二区块链网络包括第二联盟区块链网络,所述第二区块链包括第二联盟区块链。
在一些实施例中,与所述第一用户相关联并存储在所述第一联盟区块链中的记录包括以下第一至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录,其中,与所述第一用户相关联并存储在所述第二联盟区块链中的记录包括以下第二至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在另一个实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:接收对数字活动去中心化标识(DID)的多组一个或多个请求,其中,每个数字活动去中心化标识与用户的去中心化标识和与联盟区块链相关联的业务去中心化标识相关联,每组一个或多个请求包括与用户的对应去中心化标识和与一个或多个联盟区块链相关联的一个或多个业务去中心化标识有关的信息,不同组的一个或多个请求包括与不同用户的不同去中心化标识有关的信息;响应于对数字活动去中心化标识的多组一个或多个请求,生成所述数字活动去中心化标识,其中,每个数字活动去中心化标识与特定用户的特定去中心化标识相关联,并且还与特定业务去中心化标识相关联,与同一组一个或多个请求相关联的不同数字活动去中心化标识与用户的相同去中心化标识相关联,并与不同的业务去中心化标识相关联,并且与不同组的一个或多个请求相关联的不同数字活动去中心化标识与不同用户的不同去中心化标识相关联;将与所述数字活动去中心化标识及所述用户的去中心化标识有关的数据存储在第一去中心化标识区块链中的多个记录中,其中,每个记录存储与用户之一相关联的数据;至少部分地基于存储在所述第一去中心化标识区块链中的记录,控制对访问与所述用户相关联并存储在所述联盟区块链中的数据的授权。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,与所述用户相关联并存储在所述联盟区块链中的数据包括以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在另一实施例中,提供了一种计算机实现的用于控制对访问数据的授权的方法。所述方法包括:向与去中心化标识区块链相关联的去中心化标识区块链节点发送对第一数字活动去中心化标识的第一请求,所述去中心化标识区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,其中,所述第一请求包括与第一用户相关联的第一去中心化标识,并且所述第一请求还包括与维护第一区块链的第一区块链网络相关联的第一业务去中心化标识;接收来自所述去中心化标识区块链节点的所述第一数字活动去中心化标识;使用所述第一数字活动去中心化标识,控制对访问与所述第一用户相关联并存储在所述第一区块链中的数据的授权。
在一些实施例中,可以使用***、方法或计算机程序或者***、方法和计算机程序的任意组合来实现这些一般和特定方面。前述和其他描述的实施例可以各自可选地包括以下一个或多个方面:
在一些实施例中,所述第一区块链网络包括第一联盟区块链网络,所述第一区块链包括第一联盟区块链。
在一些实施例中,所述方法还包括:向去中心化标识区块链节点发送对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括与所述第一用户相关联的第一去中心化标识,并且所述第二请求还包括与维护第二联盟区块链的第二联盟区块链网络相关联的第二业务去中心化标识;接收来自所述去中心化标识区块链节点的所述第二数字活动去中心化标识;以及使用所述第二数字活动去中心化标识,控制对访问与所述第一用户相关联并存储在所述第二联盟区块链中的数据的授权。
应当理解的是,根据本文的方法可包括本文描述的方面和特征的任何组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任何组合。
在附图和以下描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显现。
附图说明
图1是示出可用于执行本文实施例的环境的示例的示图。
图2是示出根据本文实施例的架构的示例的示图。
图3是用户可以通过业务***访问由业务实体提供的服务的环境的示例的图。
图4是用户可以通过使用经由网络与业务实体的计算机服务器交互的终端设备来访问业务实体提供的服务的环境的示例的图。
图5是用户申请数字身份去中心化标识的处理示例的图。
图6是联盟区块链加入或在数据去中心化标识(DID)区块链网络中注册的处理的示例的图。
图7是用于请求和获得联盟区块链数字活动标识的处理的示例的图。
图8是示出用户与在联盟区块链中存储用户的数据的业务实体进行交互的图。
图9是用户确认存储在联盟区块链中的记录的准确性的处理的示例的流程图。
图10A至图10C是示出存储在联盟区块链和数据去中心化标识区块链中的记录的示例的图。
图11是允许第一用户授权第二用户访问与第一用户相关联的数字活动数据的处理的示例的流程图。
图12至图15描绘了可以根据本文实施例执行的用于管理对访问数据的授权的处理的示例。
图16至图19描绘了根据本文的实施例的装置的模块的示例。
图20至图23描绘了可以根据本文实施例执行的用于管理对访问数据的授权的处理的示例。
图24至图27描绘了根据本文的实施例的装置的模块的示例。
图28是示出数据授权平台的图。
图29是在线服务平台的图。
图30示出了与数据去中心化标识区块链相关联的网络环境的示例。
图31示出了用于实现区块链交易的框架。
图32示出了与用于管理去中心化标识和可验证声明(verifiable claims)的***或平台相关联的环境。
图33示出了与用于管理去中心化标识和可验证声明的基于区块链的***相关联的架构。
图34示出了与用于实现与去中心化标识和可验证声明相关联的功能的各种示例的***或平台相关联的网络环境。
图35和图36示出了用于生成去中心化标识的方法。
图37示出了用于使用去中心化标识认证服务来认证去中心化标识的方法。
图38示出了用于使用身份管理应用来认证去中心化标识的方法。
在各个附图中相同的附图标记和名称表示相似的元件。
具体实施方式
本文描述了允许用户通过使用与用户相关联的去中心化身份来管理对数据的访问的技术,其中数据是由基于区块链的应用生成的。这些技术通常涉及使用数据去中心化标识(DID)区块链来存储包括与用户相关联的数据的记录,其中,所述记录还包括用户的去中心化标识和与数字数据相关联的联盟区块链的去中心化标识。例如,该记录可以存储与服务提供商向用户提供的服务有关的数据,其中,所述服务提供商将数据存储在联盟区块链中。数据去中心化标识区块链包括智能合约,所述智能合约用于验证联盟区块链是否已获得用户授权以共享包含与用户相关联的数据的记录。这些技术可确保遵守相关的数据隐私法,例如欧洲的《通用数据保护条例》(GDPR)。例如,对于医疗保健相关的数据,该技术可以能够遵守《健康保险携带和责任法案》(HIPAA)规则。
例如,第一用户可以是将商品存储在仓库中的商品的进出口商,并且仓单的记录被存储在仓库联盟区块链中。第一用户通过仓库提供的业务***(例如,用户门户)与仓库进行交互,但是第一用户不能直接访问仓库联盟区块链,甚至可能不知道仓库联盟区块链。本文中描述的***可以允许第一用户管理其他用户对访问存储在仓库联盟区块链中的记录的授权。例如,第一用户可能希望从银行获得贷款,并使用特定的商品装运作为抵押。第一用户可以使用本文中描述的***来授权银行,在第一用户施加的某些条件下,查看包括与该特定商品装运相关联的仓单的记录。
例如,第一用户可以是第一医院的患者,并且包括与第一用户相关联的医疗保健数据的医疗记录被存储在医院联盟区块链中。第一用户通过第一医院提供的业务***(例如,用户门户)与第一医院进行交互,但是第一用户不能直接访问医院联盟区块链,甚至可能不知道医院联盟区块链。本文中描述的***可以允许第一用户管理其他用户对访问存储在医院联盟区块链中的医疗记录的授权。例如,第一用户可能希望参加由大学教授进行的医学研究。第一用户可以使用本文中描述的***来授权大学教授,在第一用户施加的某些条件下,查看第一用户希望与大学教授共享的某些医疗记录。
例如,第一用户可以具有银行的储蓄和支票账号,并且包括与第一用户相关联的财务数据的记录被存储在银行联盟区块链中。第一用户通过银行提供的业务***(例如,用户门户)与银行进行交互,但是第一用户不能直接访问银行联盟区块链,甚至可能不知道银行联盟区块链。本文中描述的***可以允许第一用户管理其他用户对访问存储在银行联盟区块链中的记录的授权。例如,第一用户可能希望从房东租赁公寓。第一用户可以使用本文中描述的***来授权房东,在第一用户施加的某些条件下,查看第一用户希望与房东共享的某些财务记录。
例如,该***可以允许位于不同司法管辖区的用户(例如,中国的第一用户、美国的第二用户和欧洲的第三用户)以安全的方式共享存储在区块链网络中的数据,其中,即使用户不能直接访问区块链网络,每个用户也可以控制共享哪些数据。该***可以以遵守本地数据保护法律的方式处理对用户数据的访问。
本文中描述的技术产生若干技术效果。提供具有增强的安全性特征的***,以使第一用户能够与第二用户安全地共享数据,其中,数据被存储在由业务实体控制的联盟区块链中。多层验证可增强用户数据的安全性,包括验证声称拥有能授权共享数据的权限的实体是正确的实体、验证试图获得数据访问权的实体是正确的实体、以及验证要与第二用户共享的数据是正确的数据。***分配与属于特定用户、并存储在特定联盟区块链中的数据相关联的唯一去中心化标识。该技术将与去中心化标识相关联的安全特征与区块链技术的可靠性相结合,以增强在多个用户之间共享数据的安全性。
在一些示例中,用户数据存储在由服务提供商控制的联盟区块链中,并且最终用户可能无法访问。为了使第一用户能够验证第一用户打算与其他用户共享的数据记录的正确性,通过将数据记录的哈希值存储在可供第一用户访问的单独的区块链(去中心化标识区块链)中来注册第一用户打算共享的每个数据记录。通过仅将哈希值(而不是整个数据记录)存储在单独的区块链中,需要存储在单独的区块链中的数据量很小,并且仍然可以用于验证实际数据的正确性。稍后,当第一用户希望授权其他用户访问数据记录时,将从服务提供商控制的联盟区块链中检索实际数据记录,并将检索到的数据记录的哈希值与存储的哈希值进行比较,以验证检索到的数据记录是否正确。第一用户可以访问许多服务提供商的服务,并且第一用户的数据记录可以存储在由许多不同服务提供商控制的许多联盟区块链中。在一些示例中,与第一用户相关联的所有数据记录被注册在单个区块链中(即,第一用户打算与他人共享的所有数据记录的哈希值被存储在单个区块链中),这使得第一用户跟踪哪些数据记录可用于共享、并管理其他用户对访问数据记录的授权变得容易。如果需要,哈希值也可以注册在第一用户可访问的两个或多个区块链中。
唯一数字活动去中心化标识与存储在特定联盟区块链中的特定用户的数据记录相关联。唯一数字活动去中心化标识与特定用户的唯一去中心化标识和与特定联盟区块链相关联的唯一业务去中心化标识相关联,或是它们的函数。当特定联盟区块链发送请求以注册存储在特定联盟区块链中的数据记录,以使该数据记录的哈希值可以被存储在去中心化标识区块链中时,该请求包括唯一数字活动去中心化标识和该数据记录的哈希值。该***验证该数字活动去中心化标识的有效性、特定用户的去中心化标识的有效性以及与特定联盟区块链相关联的去中心化标识的有效性。每个去中心化标识都可以使用万维网联盟(W3C)指定的协议进行验证。例如,每个去中心化标识具有关联的去中心化标识文档,该文档可以包括(i)加密材料集,例如公钥,可用于认证或与去中心化标识主题交互;(ii)加密协议集,用于与去中心化标识主题交互,例如认证和能力委派;(iii)可选的JSON-LD签名,以验证去中心化标识文档的完整性。此外,可验证声明可能允许不同实体之间进行授权、背书和确认。使用相应的加密材料、加密协议和JSON-LD签名验证去中心化标识可增强整个***的安全性,确保在去中心化标识区块链中注册的哈希值对应于确实属于正确用户并存储在正确的联盟区块链中的数据记录。
当特定联盟区块链发送请求以授权第二用户访问属于第一用户、并存储在特定联盟区块链中的数据记录时,该请求包括第二用户的去中心化标识、该数据记录的哈希值、以及与该数据记录相关联的唯一数字活动去中心化标识(其与第一用户的去中心化标识和该特定联盟区块链的去中心化标识相关联)。***验证第二用户的去中心化标识的有效性、数字活动去中心化标识的有效性、第一用户的去中心化标识的有效性、特定联盟区块链的去中心化标识的有效性以及该数据记录的哈希值的正确性。这确保了,被共享的数据记录确实属于正确的用户(即,第一用户)、与正确的实体(即,第二用户)共享、从正确的联盟区块链中检索,并且数据记录的内容是正确的。
为本文的实施例提供进一步的背景,如上所述,分布式账本***(DLS),其也可以称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地且不可篡改地进行交易和存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文使用的“区块链”一般指代DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenated)。此处理沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。可通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文参***区块链网络更详细地描述了本文的实施例。然而,可以预期,本文的实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与实体间是私有的。在联盟区块链网络中,共识处理由可被称为共识节点的授权的节点集控制,一个或多个共识节点由相应的实体(例如,金融机构、保险公司)操作。例如,由10个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,全局区块链被提供为跨所有节点复制的区块链。也就是说,对于全局区块链,所有共识节点处于完全共识状态。为了达成共识(例如,同意将区块添加到区块链),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(PBFT)共识,下面将进一步详细描述。
图1是示出了可用于执行本文实施例的环境100的示例的示图。在一些示例中,环境100使得实体能够参与至联盟区块链网络102中。环境100包括计算***106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端***。在一些示例中,可以通过有线和/或无线通信链路访问网络110。在一些示例中,网络110使得能够与联盟区块链网络102通信以及能够在联盟区块链网络102内通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算***106、108可以是云计算***(未示出)的节点,或者每个计算***106、108可以是单独的云计算***,其包括通过网络互连并用作分布式处理***的多个计算机。
在所描绘的示例中,计算***106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算设备。计算设备的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算***106、108承载一个或多个由计算机实施的服务,用于与联盟区块链网络102进行交互。例如,计算***106可以承载第一实体(例如,用户A)的由计算机实施的、例如交易管理***的服务,例如,第一实体使用该交易管理***管理其与一个或多个其他实体(例如,其他用户)的交易。计算***108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理***的服务,例如,第二实体使用该交易管理***管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),并且计算***106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2描绘了根据本文实施例的架构200的示例。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者***202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者***202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体***(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者***202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应***内存储的区块链数据。在图2的示例中,参与者***202、204和206分别存储区块链216的完整副本216',216”和216”'。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产、产品、服务、货币)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度的哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获得交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此处理,直到针对所有要存储在区块中的交易提供单个哈希值。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络内的多个节点参与共识协议,并执行将区块添加到区块链中的工作。这样的节点被称为共识节点。上文介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最新的区块(即添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)值和时间戳。
通常,PBFT提供容忍拜占庭故障(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的经操纵的消息)在PBFT中实现。在PBFT中,以包括主共识节点和备共识节点的序列提供共识节点。主共识节点被周期性地改变。通过区块链网络内的所有共识节点对区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点(peer node)接收的,并验证在传输期间消息未被篡改。
在PBFT中,共识协议是在所有共识节点始于相同的状态的情况下分多个阶段提供的。首先,客户端向主共识节点发送请求以调用服务操作(例如,在区块链网络内执行交易)。响应于接收到该请求,主共识节点将该请求组播到备共识节点。备共识节点执行该请求,并且每个节点都向客户端发送回复。客户端等待直到收到阈值数量的回复。在一些示例中,客户端等待直到接收f+1个回复,其中f是区块链网络内可以容忍的故障共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,该记录被接受或者被拒绝。
在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括(但不限于)对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密处理。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密数据发送给参与者B。参与者B可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
一些区块链***允许通过区块链交易执行区块链合约(也称为智能合约)。区块链交易可以是例如源自区块链账号的签名消息,由区块链网络传输并记录在区块链中。可以编写区块链合约以实现各种功能,例如将数据添加到区块链账号和/或更改区块链中的数据。智能合约不一定与经典的合约概念相关,而可以是任何类型的计算机程序。可以通过执行各种区块链交易来维护和更新区块链。在一些实施方式中,当区块链交易涉及区块链合约时,区块链节点可以在各自的虚拟机(VM)中本地执行区块链合约。为了处理区块链合约,区块链网络的每个区块链节点都可以执行相应的虚拟机并执行在区块链合约中的相同的指令。虚拟机是基于计算机架构的计算机***的软件仿真,并提供物理计算机的功能。可以将区块链环境中的虚拟机理解为旨在用作区块链合约的运行时环境的***。
根据共识规则成功地挖出提出的区块链交易的新区块的特定区块链节点可以将该新区块打包到其区块链的本地副本中,并将结果组播到其他区块链节点。该特定区块链节点可以是首先成功完成验证、获得验证特权或基于其他共识规则选择的区块链节点。其他区块链节点可以遵循特定区块链节点执行的相同执行顺序,以在新区块中本地执行区块链交易,相互验证执行结果(例如,通过执行哈希计算),并将它们的区块链副本与特定区块链节点的区块链副本同步。通过更新它们的区块链本地副本,其他区块链节点可以类似地将区块链交易中的此类信息写入各自的本地存储器中。使用上述方法可以在区块链上部署区块链合约。
部署的区块链合约可以具有一个地址,可以根据该地址访问部署的合约。区块链节点可以通过向区块链合约输入特定参数来调用部署的区块链合约。在一些实施例中,用户终端可以请求调用部署的区块链合约以执行各种操作。例如,可以检索存储在部署的区块链合约中的数据、可以将数据添加到部署的区块链合约中、和/或可以执行部署的区块链合约中指定的金融交易。
本文中描述的发明涉及对访问存储在由业务实体维护的区块链中的用户数据的授权,其中,用户数据与由去中心化标识标识的用户相关联。在一些常规***中,用户难以精确控制对访问与该用户相关联并由业务实体管理的数据的授权。业务实体可以获得并生成关于用户的大量数据,但是对于用户而言,可能很难准确地知道业务实体具有关于用户的哪些信息。此外,与第一用户相关联并由业务实体管理的数据通常是通过业务实体所拥有的业务软件接口或门户来访问的,并且第一用户无法控制业务软件接口或门户。业务实体可能存储与第一用户相关联的数十、数百、数千或数百万个数据条目或交易记录,并且第一用户很难识别及指定第一用户希望提供给另一用户访问的确切数据条目或记录。
例如,业务实体可以提供门户(例如,网络门户)以允许每个用户访问与该用户相关联的数据。第一用户可能希望授权第二用户访问属于第一用户的一些数据。第一用户可以指示业务实体允许第二用户访问第一用户的特定信息。然而,由于第一用户没有对门户的控制权,因此很难知道业务实体是否准予第二用户访问第一用户希望共享的确切信息、业务实体是否允许第二用户访问超过(或少于)第一用户希望共享的信息、或者业务实体是否向第二用户提供了关于第一用户的错误信息。
例如,医疗相关基金会患者登记可以收集患有某些疾病并同意参加该登记的人的健康状况的信息。假设第一用户在几年的时间里去医院寻求几种疾病的治疗,医院***可以获得和/或生成关于该第一用户的大量数据,包括该用户自愿提供给医院的信息(例如,用户输入到患者摄入量表格的信息),护士和医生输入到患者记录***的诊断信息,来自血液样本、其他体液样本和/或组织样本的分析的实验室结果,例如X射线图像、CT扫描图像和/或MRI图像的成像结果。许多患者并不确切知道医院有关于患者的哪些信息。在接受X射线扫描、CT扫描或MRI扫描之后,患者可能会从检查X射线图像、CT扫描图像和/或MRI图像的医生得到诊断,但患者本人可能没有看过这些图像。医院可以提供患者网关或门户,以允许每个患者查看他/她的医疗记录,但是门户可能不会显示医院拥有的关于患者的所有数据,并且门户可能不具有允许第一用户选择要与第二用户共享的特定数据的功能。如果患者希望参加收集关于患有特定疾病的人的健康状况信息的医疗相关基金会患者登记,则该患者可能只希望与该基金会共享关于该特定疾病的信息,而不希望共享该患者可能患有的其他疾病的相关信息。传统的医院患者网关软件可能不具有允许患者对患者数据的授权进行如此精确控制的功能。
下面描述一种技术,该技术可以提供一种处理,以允许每个用户以安全的方式更精确地控制要与其他用户共享哪些信息。该技术涉及两种类型的区块链。第一类区块链由业务实体管理,以存储包括与用户相关联的数据的记录,其中,这些记录由向用户提供服务的业务***进行管理。我们将以联盟区块链为例来说明第一类区块链。与用户相关联的记录或数据将被称为“用户记录”或“用户数据”。第二类区块链存储包括用户的去中心化标识(DID)和与该去中心化标识绑定或相关联的其他数据的记录。第二类区块链称为“数据去中心化标识区块链”。数据去中心化标识区块链存储的信息可用于管理对访问存储在联盟区块链中的用户记录或用户数据的授权。例如,数据去中心化标识区块链可用于验证希望访问属于第一用户的数据的第二用户的身份,并验证将让第二用户访问的数据是否已由第一用户预先授权。
实体的去中心化标识(DID)可以允许该实体获得对其身份以及与该身份相关联的信息的控制。在业务环境中,服务或产品提供商可以使用其客户的去中心化标识来标识客户并向客户提供服务或产品。在一些实施例中,去中心化标识可以是指示真实世界实体与在线身份之间的映射关系的唯一标识。去中心化标识可以包括通用资源定位符(URL)方案标识、去中心化标识法的标识、和去中心化标识特定法的标识。每个去中心化标识可以指向相应的去中心化标识文档,该文档可以包括与去中心化标识和去中心化标识的所有者的预设格式(例如,JSON-LD)有关的描述性文本。去中心化标识可以用作用于定位去中心化标识文档的统一资源标识符(URI)。去中心化标识文档可以包括各种属性,例如上下文、去中心化标识主题、公钥、认证、授权和委派、服务端点、生成、更新、证明和可扩展性。去中心化标识文档可以定义或指向资源,该资源定义了可以执行关于去中心化标识的多个操作。在本文中描述的示例中,去中心化标识符合万维网联盟(W3C)指定的标准。有关去中心化标识的示例性实现的信息,请参见文档“去中心化标识(DIDS)v1.0,核心数据模型和语法,”W3C工作草案,2019年12月9日,该文档可从以下网址获得:“https://www.w3.org/TR/did-core”。然而,也可以使用其他去中心化标识。在本文的后面部分提供了有关去中心化标识的其他信息。
图3示出了环境300的示例,在该环境中,用户(例如302、304和306)通过业务***316访问由业务实体(或服务提供商)314提供的服务。业务***316可以包括当业务实体314向用户提供服务时与用户交互的业务实体314的任何***。业务***316可以包括硬件和/或软件。用户可以直接或通过业务实体314的代理或代表与业务***316交互。
例如,患者可以通过经由终端设备在本地、或经由网络远程将信息输入到业务***中来与医院业务***进行交互。患者还可以与护士和/或医生交互,然后由护士和/或医生将信息输入业务***。患者可以通过测量或分析患者样本(例如血液样本、其他体液样本和/或组织样本)的仪器、捕获患者图像的仪器(例如X射线机、电脑断层扫描仪和/或磁共振成像扫描仪)与业务***进行交互。当患者使用医院的服务时,医院会生成关于患者的大量数据,并且至少有一部分数据可以被存储在例如联盟区块链的区块链中。
通常,随着每个用户(例如302、304和306)使用由业务实体314提供的服务,业务***316可以生成数据记录,该数据记录包括与该用户或该用户的活动相关联的信息。数据记录或数据记录的某些部分可以存储在区块链322中,例如联盟区块链322。第一用户可能想要与第二用户共享存储在区块链322中的某些记录。
在常规***中,第一用户与业务***交互,并不与区块链交互。第一用户并不确切地知道存储在区块链中的记录中包含哪些信息。第一用户可以向业务实体发送消息,并请求业务实体授权第二用户访问存储在区块链中的第一用户的某些信息。然而,第一用户难以验证业务实体是否正确地将访问权限授予第二用户。例如,第一用户可能打算向第二用户授予对第一条信息的访问权限,但是业务实体可能向第二用户授予对与第一条信息不同的第二条信息的访问权限,或者该业务实体可能向第二用户授予对第一条信息和第一用户不打算向第二用户公开的其他信息的访问权限。如果业务实体未经第一用户批准而错误地授权第二用户访问第一用户的信息,则业务实体可能违反与第一用户的合约,并且还可能违反数据保护法律,例如欧洲的GDPR。
在本文中,术语“业务实体”广泛地用于指代任何组织,包括例如营利性企业、非营利性组织或政府实体。例如,业务实体314可以是仓库,并且由业务***316管理和/或生成的用户记录可以包括:仓单、与仓单相关联的关于商品货物或买卖的详细信息。业务实体314可以是电子设备和组件的供应商,并且由业务***316管理和/或生成的用户记录可以包括:采购订单和***、购买和付款的历史数据、和/或关于在何时间段购买了多少数量的什么产品的汇总信息等。业务实体314可以是医院,并且用户记录可以包括患者医疗保健信息,例如患者病史、生物特征数据、药物处方信息、X射线扫描、MRI扫描、和/或医生对治疗的建议等。业务实体314可以是银行,并且用户记录可以包括客户财务数据,例如关于支票和储蓄账号、401K账号、抵押贷款和/或投资组合等信息。业务实体314可以是公共设施公司,例如向用户提供电力、天然气、燃油和/或水的公司,以及用户记录可以包括电力、天然气、燃油和/或水的使用历史。业务实体314可以是提供运输服务(例如乘车服务)的公司,并且用户记录可以包括用户的旅行记录。业务实体314可以是向用户提供小额信贷服务的公司,并且用户记录可以包括用户信用信息,例如用户提取了多少小额贷款以及是否按时足额偿还了贷款。业务实体314可以是餐馆,并且用户记录可以包括用户在何时何日订购了什么食品。例如,业务实体314可以是具有居民税收记录的政府税收征管机构。业务实体314可以是具有学生的教育记录、包括学生已经完成的课程的证书和等级的大学。业务实体314可以是马拉松团体,该团体具有关于其成员的联系信息、成员的跑步日程、成员所使用的运动装备以及关于成员的赞助者的信息。
本文中描述的发明技术可以应用于由所有类型的组织管理和/或生成的所有类型的数据的授权,并不限于本文中具体描述的那些。
在一些实施例中,业务***316将数据记录存储在一个或多个数据库318中,为每个记录生成哈希值,并将包括该记录和哈希值的区块添加到区块链322'。业务实体314包括计算机服务器(其可以是业务***316的一部分或与业务***316交互),该计算机服务器可以与区块链网络324的节点320之一相关联,其中,区块链322跨区块链网络324复制,业务实体314维护的区块链322'是区块链322的副本。在一个示例中,第一用户302是患者,并且业务实体314是向第一用户302提供针对几种疾病的医疗的第一医院。区块链网络324中的节点326可以与患者记录管理服务提供商的计算机服务器328相关联,该计算机服务器328维护医院所使用的用于管理患者记录的软件。区块链网络324可以是例如联盟区块链网络,其中,业务实体314的计算机服务器、计算机服务器328和其他经批准的计算机服务器(例如,医院附属的医疗诊所的计算机服务器)可以控制共识处理。
例如,第一用户302可以决定去第二医院接受针对特定疾病的治疗。第二用户304可以是将要治疗第一用户302的第二医院的医生,并且该医生希望查看与该特定疾病有关的过去医疗信息。第一用户302可以决定允许第二医院的医生(第二用户304)看到与该特定疾病有关的过去治疗信息,但是不能看到与其他疾病有关的过去治疗信息。第一用户302可能想要控制从第一医院向第二医院的医生(第二用户304)提供何种信息。以下描述了允许第一用户302确定将哪个/哪些记录与第二用户304共享的处理。
在下面描述的示例中,第一用户302的数据被存储在各种联盟区块链中。以下描述了用于允许第一用户302授权访问包括与第一用户302相关联、并且还与由业务实体管理的联盟区块链相关联的数据的记录的处理,其中第一用户302通过业务***与业务实体进行交互。例如,数据可被存储在联盟区块链中。记录可以包括任何类型的数据,包括纯文本数据,可以是电子表格、图像文件、音频文件和/或视频文件形式的结构化数据。
在以下描述的示例中,第一用户使用数字钱包去中心化应用(Dapp)程序来请求并获得数字身份去中心化标识(DID)。然而,也可以使用其他类型的应用程序或应用。联盟区块链请求并获得业务标识。例如,业务标识可以是去中心化标识,称为业务去中心化标识。在下面的示例中,业务标识是去中心化标识。数字钱包Dapp请求并获得与联盟区块链相关联的用户数据的数字活动去中心化标识。术语“数字活动去中心化标识”是指标识与特定用户和特定联盟区块链相关联的数字活动数据的标识。术语“数字活动数据”是指与用户关联的数据,其中,数据存储在一个或多个联盟区块链中。在一些示例中,数字活动数据是作为用户的数字活动(例如,在线活动)的结果而生成或收集的。数字活动数据可以包括与用户相关联的数据,其中,数据是作为用户使用业务实体的服务的结果而生成或收集的。数字活动数据可以包括与用户相关联的数据,其中,所述数据是当用户不使用业务实体的服务时由业务实体生成或收集的。数字活动数据还可以包括与用户相关联的数据,其中,数据是由业务实体代表与用户交互的另一实体生成或收集的。部分地基于数字活动去中心化标识,将包括与第一用户相关联的数据的记录的哈希值注册到数据去中心化标识区块链。部分地基于数字活动去中心化标识,第一用户可以授予第二用户对该记录的访问权限,该数字活动去中心化标识包括与用户的数字身份去中心化标识和联盟区块链的业务去中心化标识两者有关的信息。
图4示出了环境400的另一示例,其中用户(例如302、304、306)可以经由网络410通过使用与业务实体的计算机服务器408交互的终端设备(例如402、404、406)来访问由该业务实体提供的服务。计算机服务器408执行向用户提供服务的业务***软件412。当用户访问由业务***软件412提供的服务时,业务***软件412生成许多与提供给用户的服务有关的数据记录。
在一些实施例中,业务***软件412将数据记录存储在一个或多个数据库318中,为每个记录生成哈希值,并将包括该记录和该哈希值的区块添加到区块链322'。计算机服务器408可以与区块链网络324的节点320之一相关联,其中,区块链322跨区块链网络324复制。由计算机服务器408维护的区块链322'是区块链322的副本。
为了使用户能够更好地控制对存储在由业务实体管理的联盟区块链中的用户数据的访问的管理,提供了用户数据管理平台来支持实现以下的处理:
·用户注册。这些用户的数据记录存储在联盟区块链中,该联盟区块链由向用户提供服务的业务实体进行管理。
·对于每个注册用户,注册存储与该用户相关联的数据记录的联盟区块链。
·对于每个注册用户和存储与该用户相关联的数据记录的每个注册联盟区块链,注册与该用户相关联的、有资格与一个或多个第三方共享的每个数据记录。
·每个用户授权对与该用户相关联的、并存储在联盟区块链中的数据记录的访问,其中,所述数据记录已预先注册为有资格与一个或多个第三方共享。
特定用户授权特定第三方访问存储在特定联盟区块链中的特定数据记录涉及:首先,验证联盟区块链已被预先批准与第三方共享属于该特定用户的数据记录;第二,验证该特定用户确实希望与该特定第三方共享该特定数据记录。
在本文中描述的示例中,使用去中心化标识(称为“数字身份去中心化标识”)来标识用户。联盟区块链使用去中心化标识(称为“业务去中心化标识”)进行标识。另一种类型的去中心化标识,简称为“联盟区块链数字活动去中心化标识”,或简称为“数字活动去中心化标识”,与特定用户和特定联盟区块链两者相关。数字活动去中心化标识将联盟区块链的业务去中心化标识与用户的数字身份去中心化标识绑定在一起。与特定用户和特定联盟区块链相关联的数字活动去中心化标识由用户数据管理平台用来验证关于与特定用户关联、并存储在特定联盟区块链中的数据记录的请求。例如,如果与第一用户相关联的第一组数据记录被存储在第一联盟区块链中,与第一用户相关联的第二组数据记录被存储在第二联盟区块链中,则第一数字活动去中心化标识用于验证与第一组数据记录有关的请求,第二数字活动去中心化标识用于验证与第二组数据记录有关的请求。如果与第二用户相关联的第三组数据记录被存储在第一联盟区块链中,与第二用户相关联的第四组数据记录被存储在第二联盟区块链中,则第三数字活动去中心化标识用于验证与第三组数据记录有关的请求,第四数字活动去中心化标识用于验证与第四组数据记录有关的请求。
在一些实施方式中,当业务***希望授予第三方访问与特定用户相关联的数据记录时,其中,该数据记录存储在与业务***相关联的特定联盟区块链中,业务***调用与该特定联盟区块链相关联的智能合约,以使授权第三方访问用户数据记录的请求被发送以进行批准。该请求包括关于第三方希望访问的数据记录的信息,以及与特定用户和特定联盟区块链相关联的数字活动去中心化标识。通过呈现数字活动去中心化标识,该请求显示特定联盟区块链先前已被批准与第三方共享与特定用户关联的数据记录。
如果该请求不包含正确的数字活动去中心化标识,则该请求将不会被批准。例如,如果该请求包括关于第三方希望访问的、与第一用户相关联的数据记录的信息,而数字活动去中心化标识与第二用户相关联,则该请求将不会被批准。如果该请求中包含关于第三方希望访问的、存储在第一联盟区块链中的数据记录的信息,而数字活动去中心化标识与第二联盟区块链相关联,则该请求也将不会被批准。
以下描述了可以由用户数据管理平台实现以达成上述特征的各种处理,包括用户注册、联盟区块链的注册、数据记录的注册以及对访问数据记录的授权。
图5是用于用户(例如302)申请数字身份去中心化标识(数字身份DID)的处理500的示例的图。在该示例中,用户是用户302。通常,去中心化标识可以用于许多目的。在此,去中心化标识被用作用户302的数字身份,并且被称为数字身份去中心化标识。在一些实施例中,用户302使用被设计为与数据去中心化标识区块链交互的应用程序,以便申请数字身份去中心化标识。例如,应用程序可以是数字钱包去中心化应用(Dapp)502。可以在例如移动电话或个人计算机上执行数字钱包去中心化应用502。然而,用户也可以使用其他类型的应用程序或应用来申请数字身份去中心化标识。
数字钱包去中心化应用502向维护区块链509的区块链网络508发送504针对数字身份去中心化标识的请求506,所述区块链509被配置为维护去中心化标识,所述区块链509被称为数据去中心化标识区块链(或称为“数据DID区块链”)509。区块链网络508被称为数据去中心化标识区块链网络508,其可以是属于多个实体的计算机的网络。由于数据去中心化标识区块链509由多个实体维护,因此没有单个实体可以控制存储在数据去中心化标识区块链509中的去中心化标识。数据去中心化标识区块链网络508的实现的示例在本文的后面描述。请求506包括用于验证用户302的身份的验证信息。这里,当我们说请求506被发送到数据去中心化标识区块链网络508时,我们的意思是,请求506被发送到与智能区块链合约或智能合约相关联的地址,该合约被配置为验证用户302的身份,并为用户302生成数字身份去中心化标识。可以在数据去中心化标识区块链网络508的节点(例如计算机服务器)上执行智能合约,该节点负责验证用户302的身份并为用户302生成数字身份去中心化标识。例如,可以通过诸如因特网的网络发送请求506。
例如,验证信息可以是用户的护照、居民身份证、驾驶执照、***对账单和/或生物特征信息(例如一个或多个指纹、一个或多个声纹或虹膜信息)的副本。数据去中心化标识区块链网络508基于由数字钱包Dapp 502提供的请求506中的信息来验证510用户302的身份,并确认用户302确实是他/她声称的身份。在这里,当我们说数据去中心化标识区块链网络508验证用户302的身份时,我们的意思是,数据去中心化标识区块链网络508中负责验证用户的身份的节点(例如计算机服务器),验证用户302的身份。
如果用户302的身份被验证,则数据去中心化标识区块链网络508生成唯一数字身份去中心化标识512,并将数字身份去中心化标识512返回514到数字钱包Dapp 502。例如,可以根据由万维网联盟(W3C)指定的标准来生成数字身份去中心化标识512。在此,当我们说数据去中心化标识区块链网络508生成新的数字身份去中心化标识512时,我们的意思是,数据去中心化标识区块链网络508中负责生成数字身份去中心化标识的节点(例如计算机服务器),生成新的数字身份去中心化标识512。节点还将记录写入数据去中心化标识区块链509中,其中该记录包括新的数字身份去中心化标识512和关于用户302的信息,例如使用哪些信息来验证用户302的身份,以便可以将新的数字身份去中心化标识512映射到用户302或与用户302相关联。
例如,数字钱包Dapp 502可以提供允许用户302执行各种活动的用户接口,诸如请求新的数字身份去中心化标识、查看数字身份去中心化标识或将数字身份去中心化标识发送给其他实体以便验证用户302的身份。
数据去中心化标识区块链网络508可以接收来自多个用户的请求,每个请求都为各个用户请求数字身份去中心化标识。数据去中心化标识区块链网络508可以为每个用户生成唯一数字身份去中心化标识,并存储关于数字身份去中心化标识和其相应用户的信息。
图6是联盟区块链602通过向数据去中心化标识区块链网络508注册自身而加入数据去中心化标识区块链网络508并获得业务标识(在该示例中也是去中心化标识)的处理600的示例的图。在注册之后,联盟区块链602通过数据通道和智能合约与数据去中心化标识区块链网络508相关联或链接到数据去中心化标识区块链网络508。
例如,联盟区块链602可以由联盟区块链网络维护,该联盟区块链网络包括与具有共享利益或活动的业务实体相关联的节点。例如,如图3的示例中所示,联盟区块链网络可以包括:与一个或多个医院及相关实体相关联的节点;或者与电子设备、组件的一个或多个供应商以及相关实体相关联的节点;与一个或多个金融机构及相关实体相关联的节点;或与一个或多个公共设施公司及相关实体相关联的节点;或与提供运输服务的一个或多个公司及相关实体相关联的节点;或与一个或多个餐厅及相关实体相关联的节点;或与一个或多个政府组织及相关实体相关联的节点;或与一个或多个非营利组织及相关实体相关联的节点;或与一个或多个教育机构和/或研究机构及相关实体相关联的节点;或与一个或多个娱乐团体及相关实体相关联的节点。联盟区块链602也可以由联盟区块链网络维护,该联盟区块链网络包括与上面未描述的其他类型的实体相关联的节点。
联盟区块链602向数据去中心化标识区块链网络508发送604用于加入或注册数据去中心化标识区块链网络508的请求606。例如,可以通过诸如因特网的网络发送请求606。在此,当我们说联盟区块链602发送请求606时,我们的意思是,联盟区块链网络中维护联盟区块链602、负责获得业务去中心化标识的节点(例如计算机服务器),发送请求606。当我们说请求606被发送到数据去中心化标识区块链网络508时,我们的意思是,请求606被发送到数据去中心化标识区块链网络508中负责接收这样的请求的节点(例如计算机服务器)。在该示例中,请求606包括关于联盟区块链602、联盟区块链602的公钥以及召回(recall)智能合约函数(或挂钩函数)的信息,以允许数据去中心化标识区块链网络508稍后调用联盟区块链602以发送所请求的业务去中心化标识。数据去中心化标识区块链网络508使用公钥来验证该请求和召回智能合约函数。在验证之后,数据去中心化标识区块链网络508为联盟区块链602生成608业务去中心化标识BizDID 610。例如,可以根据由万维网联盟(W3C)指定的标准来生成业务去中心化标识BizDID 610。在此,当我们说数据去中心化标识区块链网络508生成业务去中心化标识BizDID 610时,我们的意思是,数据去中心化标识区块链网络508中负责生成业务去中心化标识的节点(例如计算机服务器),生成业务去中心化标识BizDID 610。数据去中心化标识区块链网络508将业务去中心化标识BizDID 610返回612到联盟区块链602。
数据去中心化标识区块链网络508可以接收来自多个联盟区块链的请求,每个请求都为各个联盟区块链请求业务去中心化标识。数据去中心化标识区块链网络508可以为每个联盟区块链生成唯一业务去中心化标识,并存储关于业务去中心化标识及其对应的联盟区块链的信息。
图7是用于请求和获得联盟区块链数字活动去中心化标识的示例性处理700的图。在该示例中,假设用户302指示数字钱包Dapp 502发送用以获得联盟区块链602的数字活动去中心化标识的请求。数字活动去中心化标识表示用户数字身份去中心化标识512和联盟区块链的业务去中心化标识BizDID 610的组合,并用于标识与用户相关联并存储在联盟区块链602中的数据。
在处理700中,用户指示数字钱包Dapp 502向数据去中心化标识区块链网络508发送702针对联盟区块链数字活动去中心化标识的请求704。请求704包括联盟区块链602的业务去中心化标识BizDID 610。在此,当我们说请求704被发送到数据去中心化标识区块链网络508时,我们的意思是,请求704被发送到数据去中心化标识区块链网络508中负责生成联盟区块链数字活动去中心化标识的节点(例如计算机服务器)。用于生成联盟区块链数字活动去中心化标识的节点可以与用于生成业务去中心化标识BizDID的节点相同或不同(图5)。用于生成联盟区块链数字活动去中心化标识的节点可以与用于生成用户数字身份去中心化标识的节点相同或不同(图4)。
数据去中心化标识区块链网络508生成706新的联盟区块链数字活动去中心化标识708,并将该数字活动去中心化标识708与用户的数字身份去中心化标识512绑定。在一些实施方式中,联盟区块链数字活动去中心化标识708是数字身份去中心化标识512和业务去中心化标识BizDID 610的函数。例如,可以根据由万维网联盟(W3C)指定的标准来生成数字活动去中心化标识708。“联盟区块链数字活动去中心化标识”可用于验证用户身份,类似于使用“数字身份去中心化标识”验证用户身份的方式。在此,当我们说数据去中心化标识区块链网络508生成706新的联盟区块链数字活动去中心化标识708时,我们的意思是,数据去中心化标识区块链网络508中负责生成数字活动去中心化标识的节点(例如计算机服务器),生成新的数字活动去中心化标识708。数据去中心化标识区块链网络508将新的数字活动去中心化标识708返回710到数字钱包Dapp 502。
可以重复处理700,以请求和获得其他联盟区块链的附加数字活动去中心化标识。例如,用户302可以与医院进行交互,并且医院可为用户302生成医疗数据并将该医疗数据存储在医院联盟区块链中。用户302可以与银行进行交互,并且银行可为用户302生成财务数据,并将该财务数据存储在银行联盟区块链中。用户302可以与产品的供应商进行交互,并且供应商可为用户302生成采购订单数据,并将该采购订单数据存储在供应商联盟区块链中。
例如,用户302可指示数字钱包Dapp 502请求并获得医院联盟区块链数字活动去中心化标识,其标识存储在医院联盟区块链中的用户302的数据。用户302可指示数字钱包Dapp 502请求并获得银行联盟区块链数字活动去中心化标识,其标识存储在银行联盟区块链中的用户302的数据。用户302可指示数字钱包Dapp 502请求并获得供应商联盟区块链数字活动去中心化标识,其标识存储在供应商联盟区块链中的用户302的数据。
数据去中心化标识区块链509可以存储关于多个用户的数字身份去中心化标识的记录,其中,每个记录具有关于一个用户的数字身份去中心化标识的信息。该记录可以包括关于多个联盟区块链数字活动去中心化标识的信息,其中,每个联盟区块链数字活动去中心化标识与一个联盟区块链相关联。因此,如果用户302具有存储在十个不同联盟区块链中的数据,则该记录可以包括关于十个联盟区块链的十个数字活动去中心化标识的信息。
参照图8,例如,第一用户302与在第一联盟区块链602a中存储第一用户302的数据的第一业务实体进行交互、以及与在第二联盟区块链602b中存储第一用户302的数据的第二业务实体进行交互。第二用户304与在第一联盟区块链602a中存储第二用户304的数据的第一业务实体进行交互、与在第二联盟区块链602b中存储第二用户304的数据的第二业务实体进行交互、以及与在第四联盟区块链602d中存储第二用户304的数据的第四业务实体进行交互。第三用户306与在第二联盟区块链602b中存储第三用户306的数据的第二业务实体进行交互、与在第三联盟区块链602c中存储第三用户306的数据的第三业务实体进行交互、以及与在第四联盟区块链602d中存储第三用户306的数据的第四业务实体进行交互。
在图8的示例中,第一用户302使用下载在第一用户的设备上的数字钱包Dapp使用处理500(图5)来获得第一去中心化标识DID_user-302。第一记录802被添加到数据去中心化标识区块链509,其中,第一记录802包括第一去中心化标识DID_user-302。第一记录802将用于存储绑定到该第一去中心化标识DID_user-302的其他标识。第二用户304使用下载在第二用户的设备上的数字钱包Dapp使用处理500来获得第二去中心化标识DID_user-304。第二记录804被添加到数据去中心化标识区块链509,其中第二记录804包括第二去中心化标识DID_user-304。第二记录804将用于存储绑定到该第二去中心化标识DID_user-304的其他标识。第三用户306使用下载在第三用户的设备上的数字钱包Dapp使用处理500来获得第三去中心化标识DID_user-306。第三记录806被添加到数据去中心化标识区块链509,其中第三记录806包括第三去中心化标识DID_user-306。第三记录806将用于存储绑定到第三去中心化标识DID_user-306的其他标识。
第一联盟区块链602a使用处理600(图6)来获得第一联盟区块链去中心化标识BizDID_602a。以类似的方式,第二联盟区块链602b、第三联盟区块链602c和第四联盟区块链602d使用处理600分别获得第二联盟区块链去中心化标识BizDID_602b、第三联盟区块链去中心化标识BizDID_602c和第四联盟区块链去中心化标识BizDID_602d。
使用处理700,第一用户302基于第一用户302的去中心化标识(DID_user-302)及第一联盟区块链602a的业务去中心化标识BizDID_602a,指示数字钱包Dapp 502获得第一联盟区块链数字活动去中心化标识DigitalActivityDID_user-302_biz-602a。第一数字活动去中心化标识DigitalActivityDID_user-302_biz-602a被绑定到第一去中心化标识DID_user-302,并被添加到数据去中心化标识区块链509中的第一记录802。第一数字活动去中心化标识DigitalActivityDID_user-302_biz-602a将用于标识存储在第一联盟区块链602a中的与第一用户302相关联的数据。
第一用户302基于用户302的去中心化标识(DID_user-302)及第二联盟区块链602b的业务去中心化标识BizDID_602b,指示数字钱包Dapp 502获得第二联盟区块链数字活动去中心化标识DigitalActivityDID_user-302_biz-602b。第二数字活动去中心化标识DigitalActivityDID_user-302_biz-602b被绑定到第一去中心化标识DID_user-302,并被添加到数据去中心化标识区块链509中的第一记录802。第二数字活动去中心化标识DigitalActivityDID_user-302_biz-602b将用于标识存储在第二联盟区块链602b中的与第一用户302相关的数据。
使用处理700,第二用户304基于第二用户304的去中心化标识(DID_user-304)及第一联盟区块链602a的业务去中心化标识BizDID_602a,指示第二用户设备上的数字钱包Dapp 502获得第三联盟区块链数字活动去中心化标识DigitalActivityDID_user-304_biz-602a。第三数字活动去中心化标识DigitalActivityDID_user-304_biz-602a被绑定到第二去中心化标识DID_user-304,并被添加到数据去中心化标识区块链509中的第二记录804。第三数字活动去中心化标识DigitalActivityDID_user-304_biz-602a将用于标识存储在第一联盟区块链602a中的与第二用户304相关联的数据。
第二用户304基于第二用户304的去中心化标识(DID_user-304)及第二联盟区块链602b的业务去中心化标识BizDID_602b,指示第二用户设备上的数字钱包Dapp 502获得第四联盟区块链数字活动去中心化标识DigitalActivityID_user-304_biz-602b。第四数字活动去中心化标识DigitalActivityDID_user-304_biz-602b被绑定到第二去中心化标识DID_user-304,并被添加到数据去中心化标识区块链509中的第二记录804。第四数字活动去中心化标识DigitalActivityDID_user-304_biz-602b将用于标识存储在第二联盟区块链602b中的与第二用户304相关联的数据。
第二用户304基于第二用户304的去中心化标识(DID_user-304)及第四联盟区块链602d的业务去中心化标识BizDID_602d,指示第二用户设备上的数字钱包Dapp 502获得第五联盟区块链数字活动去中心化标识DigitalActivityDID_user-304_biz-602d。第五数字活动去中心化标识DigitalActivityDID_user-304_biz-602d被绑定到第二去中心化标识DID_user-304,并被添加到数据去中心化标识区块链509中的第二记录804。第五数字活动去中心化标识DigitalActivityDID_user-304_biz-602d将用于标识存储在第四联盟区块链602d中的与第二用户304相关联的数据。
以类似的方式,使用处理700,第三用户306基于第三用户306的去中心化标识(DID_user-306)及第二联盟区块链602b的业务去中心化标识BizDID_602b,指示第三用户设备上的数字钱包Dapp 502获得第六联盟区块链数字活动去中心化标识DigitalActivityDID_user-306_biz-602b。第六数字活动去中心化标识DigitalActivityDID_user-306_biz-602b被绑定到第三去中心化标识DID_user-306,并被添加到数据去中心化标识区块链509中的第三记录806。第六数字活动去中心化标识DigitalActivityDID_user-306_biz-602b将用于标识存储在第二联盟区块链602b中的与第三用户306相关联的数据。
第三用户306基于第三用户306的去中心化标识(DID_user-306)及第三联盟区块链602c的业务去中心化标识BizDID_602c,指示第三用户设备上的数字钱包Dapp 502获得第七联盟区块链数字活动去中心化标识DigitalActivityDID_user-306_biz-602c。第七数字活动去中心化标识DigitalActivityDID_user-306_biz-602c被绑定到第三去中心化标识DID_user-306,并被添加到数据去中心化标识区块链509中的第三记录806。第七数字活动去中心化标识DigitalActivityDID_user-306_biz-602c将用于标识存储在第三联盟区块链602c中的与第三用户306相关联的数据。
第三用户306基于第三用户306的去中心化标识(DID_user-306)及第四联盟区块链602d的业务去中心化标识BizDID_602d,指示第三用户设备上的数字钱包Dapp 502获得第八联盟区块链数字活动去中心化标识DigitalActivityDID_user-306_biz-602d。第八数字活动去中心化标识DigitalActivityDID_user-306_biz-602d被绑定到第三去中心化标识DID_user-306,并被添加到数据去中心化标识区块链509中的第三记录806。第八数字活动去中心化标识DigitalActivityDID_user-306_biz-602d将用于标识存储在第四联盟区块链602d中的与第三用户306相关的数据。
使用如上所述图5至图7中所示的处理500、600、700,用户可以(通过数字钱包应用)获得数字身份去中心化标识,联盟区块链可以获得业务去中心化标识,用户可以(通过数字钱包应用)获得用于标识与用户相关联并存储在联盟区块链中的记录的联盟区块链数字活动去中心化标识。图8示出了在用户和联盟区块链使用处理500、600、700来获得数字身份去中心化标识、业务去中心化标识和数字活动去中心化标识之后的数据去中心化标识区块链509的示例。
图9是用户302确认存储在联盟区块链602中的记录的准确性的处理900的示例的流程图。用户302可以使用相同的原理来确认存储在其他联盟区块链中的记录的准确性,或者由其他用户来确认存储在联盟区块链602或其他联盟区块链中的记录的准确性。
用户302与业务***316交互,并且用户数字活动数据902由用户302或业务***316生成。例如,如果业务***316管理仓库订单,则用户数字活动数据902可以包括例如用户提供的关于用户的信息(例如姓名、邮政和电子邮件地址、电话号码和账单信息等),以及业务***316生成的与订单有关的信息(例如,关于用户302订购产品的信息、订购产品的数量、订单的时间和日期、付款历史等)。
业务***316将与用户302相关联的数字活动数据902和相关的数字活动去中心化标识存储904到联盟区块链602中,其中,数字活动去中心化标识(例如,图8中的DigitalActivityDID_user-302_biz-602a)与用户302的数字身份去中心化标识和联盟区块链602的业务去中心化标识相关联。在一些实施方式中,业务***316提供用户接口,该用户接口允许用户302向业务***316指示用户302希望存储可以被稍后查看并与他人共享的记录。用户接口可以允许用户302确定记录中包括哪些信息。在用户302指示业务***316存储记录之后,用户302可以使用业务***316提供的用户接口或通过数字钱包Dapp 502查看和验证记录的内容。业务***316可以调用联盟区块链602上的智能合约,以便在联盟区块链602接收到数字活动数据后,智能合约为数字活动数据生成哈希值906,并向数据去中心化标识区块链网络508发送908请求,该请求包括哈希值906和数字活动去中心化标识。例如,该请求还可以包含数字活动数据的描述,例如“日期B时来自公司A的装运1的仓单#1”,“日期C时进行年度体检的医疗记录#5”,“图片IoT009”。该描述可以用于标识联盟区块链602中的特定数字活动数据。
在数据去中心化标识区块链网络508,智能合约检查910数字活动去中心化标识,以确认用户302的数字身份去中心化标识和联盟区块链602的业务去中心化标识均有效。例如,验证用户302的数字身份去中心化标识的有效性可能涉及证明对去中心化标识的控制,即,去中心化标识和对其进行描述的去中心化标识文档之间的绑定,使用两步处理:(i)根据其去中心化标识方法描述,将去中心化标识解析为去中心化标识文档,以及(ii)验证生成的(resulting)去中心化标识文档的id属性与已解析的去中心化标识匹配。去中心化标识文档可表达加密密钥和其他验证者法,其可以用于认证或授权与用户302或关联方的交互。所表达的信息通常包括全局明确的标识和公钥材料,其可用于验证数字签名。联盟区块链602的业务去中心化标识的有效性可以以类似方式验证。
如果没有来自数字钱包Dapp 502的错误消息(如下所述),则智能合约将数字活动数据902的哈希值存储912在数据去中心化标识区块链509与用户相关联的记录(例如图8的第一记录802)中。智能合约还将数字活动数据902的描述及联盟区块链602的地址存储在数据去中心化标识区块链509中。数据去中心化标识区块链509不存储数字活动数据902,该数字活动数据902仅存储在联盟区块链602中。
数据去中心化标识区块链网络508上的智能合约向数字钱包Dapp 502发送914并发消息916,其中该并发消息916包括数字活动数据的哈希值906和数字活动数据的描述。数字钱包Dapp 502确定918哈希值906是否对应于用户302想要存储在联盟区块链602上的正确数字活动数据。数字钱包Dapp 502与联盟区块链602通信以获得相关的数字活动数据902。例如,数字钱包Dapp 502可以将哈希值906及数字活动数据902的描述发送到联盟区块链602,并调用920联盟区块链602上的智能合约以获得相关的数字活动数据902。智能合约验证数字钱包Dapp 502的身份,以确认Dapp 502确实与可以授权访问数字活动数据902的用户302相关联。然后,智能合约使用数字钱包Dapp 502提供的信息来查找相关的数字活动数据902,并将数字活动数据902发送到数字钱包Dapp 502。数字钱包Dapp 502生成从联盟区块链602检索到的数字活动数据的哈希值,并将生成的哈希值与数据去中心化标识区块链网络508提供的哈希值进行比较。如果哈希值不匹配,则数字钱包Dapp 502通知用户302由数据去中心化标识区块链网络508提供的哈希值存在错误。数字钱包Dapp 502向数据去中心化标识区块链网络508发送指示该哈希值存在错误的消息。响应于来自数字钱包Dapp502的错误消息,数据去中心化标识区块链网络508不将数字活动数据的哈希值存储在区块链509中,并且通知联盟区块链602该哈希值中存在错误。
如果数字钱包Dapp 502确定数据去中心化标识区块链网络508提供的哈希值与数字钱包Dapp 502基于从联盟区块链602检索到的数字活动数据计算出的哈希值匹配,则数字钱包Dapp 502将数字活动数据提供给用户302,以使用户302能够查看数字活动数据的内容。如果用户302检查了数字活动数据并且确定该数字活动数据不正确(例如,该记录是针对另一用户的,或者采购订单的明细不正确),则数字钱包Dapp 502向数据去中心化标识区块链网络508发送错误消息,并且数据去中心化标识区块链网络508不存储数字活动数据的哈希值。数据去中心化标识区块链网络508向联盟区块链602发送错误消息。如果用户302查看了数字活动数据并确认该数字活动数据是正确的,则数字钱包Dapp 502向数据去中心化标识区块链网络508发送消息以确认该哈希值是正确的,并且数据去中心化标识区块链网络508将数字活动数据的哈希值存储在数据去中心化标识区块链509中。
处理900允许用户验证数字活动数据的准确性,并将该数字活动数据的哈希值注册在数据去中心化标识区块链509中。这允许用户知道将与他人共享哪些信息,当用户授权第三方访问与该用户相关联并存储在联盟区块链602中的记录时。处理900包括几个安全特征,以确保用户共享的数据是准确的。例如,在步骤910,数据去中心化标识区块链检查数字活动去中心化标识和业务去中心化标识,以确认它们是有效的。通过检查数字活动去中心化标识,数据去中心化标识区块链确认用户及联盟区块链602均已在数据去中心化标识区块链中注册。在步骤918,数字钱包Dapp 502确定哈希值是否正确,以便确保数字活动数据的内容的正确性。
图10A至图10C示出了存储在联盟区块链及数据去中心化标识区块链中的记录的示例。参照图10A,例如,仓单联盟区块链中的记录1000存储与用户302相关联的数据。例如,记录1000存储用户302的数字身份去中心化标识1002、仓单联盟区块链的业务去中心化标识1004以及联盟区块链数字活动去中心化标识1006(DigitalActivityDID_user-302_biz-602a),其标识与用户302相关联、并存储在仓单联盟区块链中的数字活动数据。例如,记录1000存储与第一仓单有关的第一数字活动数据1008a、与图像文件IoT009有关的第二数字活动数据1008b以及与第二仓单有关的第三数字活动数据1008c。
参照图10B,例如,马拉松联盟区块链中的记录1010存储与用户302相关联的数据。例如,记录1010存储用户302的数字身份去中心化标识1002、马拉松联盟区块链的业务去中心化标识1012以及联盟区块链数字活动去中心化标识1014(DigitalActivityDID_user-302_biz-602b),其标识与用户302相关联、并存储在马拉松联盟区块链中的数字活动数据。例如,记录1010存储与第一赞助商相关联的第一数字活动数据1016a,该第一赞助商的徽标将在用户302的马拉松比赛期间穿着的T恤上,第二数字活动数据1016b与第二赞助商有关,该第二赞助商提供了用户302将在马拉松比赛期间穿的一双跑鞋,以及第三数字活动数据1016c与马拉松比赛日程有关。
参照图10C,例如,数据去中心化标识区块链509中的记录1020存储与用户302相关联的数据。记录1020包括用户302的数字身份去中心化标识1002、仓单联盟区块链的业务去中心化标识(BizDID)1004、仓单联盟区块链的地址1005、以及与仓单联盟区块链相关联的联盟区块链数字活动去中心化标识1006(DigitalActivityDID_user-302_biz-602a)。记录1020包括马拉松联盟区块链的业务去中心化标识(BizDID)1012、马拉松联盟区块链的地址1013以及与马拉松联盟区块链相关的联盟区块链数字活动去中心化标识1014(DigitalActivityDID_user-302_biz-602b)。记录1020存储在联盟区块链中存储的数字活动数据的哈希值,例如在图9的处理900中的步骤912中。
例如,记录1020存储与存储在仓单联盟区块链中的数字活动数据有关的哈希值,包括与第一仓单有关的第一数字活动数据1008a的第一哈希值1022a、与图像文件IoT009有关的第二数字活动数据1008b的第二哈希值1022b、以及与第二仓单有关的第三哈希值1022c。例如,记录1020存储与存储在马拉松联盟区块链中的数字活动数据有关的哈希值,包括与第一赞助商有关的第一数字活动数据1016a的哈希值1024a,该第一赞助商的徽标将在用户302的马拉松比赛期间穿着的T恤上,与第二赞助商有关的第二数字活动数据1016b的第二哈希值1024b,该第二赞助商提供了用户302将在马拉松比赛期间穿的一双跑鞋,以及与马拉松比赛日程有关的数字活动数据1016c的第三哈希值1024c。
在此示例中,联盟区块链数字活动去中心化标识1006(DigitalActivityDID_user-302_biz-602a)绑定业务去中心化标识1004(BizDID_warehouse)到用户302的数字身份去中心化标识。当消息请求对数字活动数据或数字活动数据的哈希值执行的操作时,该消息包括联盟区块链数字活动去中心化标识1006(DigitalActivityDID_user-302_biz-602a),以指示该数字活动数据已关联用户302,其中该数字活动数据存储在联盟区块链602a中。因此,数据去中心化标识区块链网络508可以通过使用联盟区块链数字活动去中心化标识1006(DigitalActivityDID_user-302_biz-602a)标识这样的数字活动数据,来管理对存储在联盟区块链602a中的用户302的数字活动数据的访问授权。类似地,数据去中心化标识区块链网络508可以通过使用联盟区块链数字活动去中心化标识1014(DigitalActivityDID_user-302_biz-602b)标识这样的数字活动数据,来管理对存储在联盟区块链602b中的用户302的数字活动数据的访问授权。
同样地,数字钱包Dapp 502可以通过使用联盟区块链数字活动去中心化标识1006(DigitalActivityDID_user-302_biz-602a)标识这样的数字活动数据,来管理对存储在联盟区块链602a中的用户302的数字活动数据的访问授权。类似地,数字钱包Dapp 502还可以通过使用联盟区块链数字活动去中心化标识1014(DigitalActivityDID_user-302_biz-602b)标识这样的数字活动数据,来管理对存储在联盟区块链602b中的用户302的数字活动数据的访问授权。
图11是处理1100的示例的流程图,该处理1100允许第一用户(例如,用户302)授权第二用户(例如,用户304)访问与第一用户相关联的数字活动数据,其中,该数字活动数据存储在联盟区块链(例如602)中,且该数字活动数据的哈希值存储在数据去中心化标识区块链(例如509)中。在该示例中,第一用户和第二用户都与业务***(例如,316)进行交互,以获得由业务实体(例如,314)提供的服务。在下文中,假设第一用户是用户302,第二用户是用户304,联盟区块链是联盟区块链602,数据去中心化标识区块链网络是数据去中心化标识区块链网络508,业务***是业务***316,业务实体是业务实体314。
例如,业务实体314可以是仓单管理***,而业务***316可以提供向特定用户显示仓单列表的用户接口。该列表可以显示关于每个仓单的基本信息,而不会透露关于收据的详细信息。基本信息可以包括将商品存放在仓库中的用户的姓名和联系信息,但不包括详细信息,例如商品的内容、商品的数量和商品的价值。
参照图11,第二用户304访问业务***316以查看仓单的列表。如果第二用户304有兴趣了解更多关于特定仓单的详细信息,则第二用户304通过业务***316向联盟区块链602发送1104请求以访问与第一用户302的特定仓单相关联的数字活动数据1105。该请求包括与第二用户304及联盟区块链602相关联的联盟区块链数字活动去中心化标识1106。联盟区块链602向数据去中心化标识区块链网络508发送1108来自第二用户304的请求1109,以访问第一用户302的数字活动数据。该请求包括第二用户304的联盟区块链数字活动去中心化标识1106、联盟区块链602的业务去中心化标识(BizDID)以及第二用户304要请求的数字活动数据的哈希值1111。数据去中心化标识区块链网络508检查1110第二用户304的数字活动去中心化标识1106及联盟区块链602的业务去中心化标识,以确认它们是有效的。数据去中心化标识区块链网络508确定联盟区块链602提供的数字活动数据的哈希值是否与存储的哈希值匹配。如果哈希值匹配,则这表明第二用户304所请求的数字活动数据可能已经由第一用户302使用图9的处理900预先注册。
数据去中心化标识区块链网络508同时向第一用户302的数字钱包Dapp 502发送1112消息,其中该消息包括关于来自第二用户304的请求的信息。在该示例中,该消息从数据去中心化标识区块链网络508被推送到数字钱包Dapp 502。在一些示例中,数字钱包Dapp502可以定期轮询数据去中心化标识区块链网络508,并从数据去中心化标识区块链网络508检索消息。第一用户302查看1114来自第二用户304的请求。如果第一用户302未批准该请求,则数字钱包Dapp 502向数据去中心化标识区块链网络508发送指示该请求未被批准的消息。数据去中心化标识区块链网络508向联盟区块链602发送指示该请求未被批准的消息,并且联盟区块链向第二用户304发送指示该请求被拒绝的消息。
如果第一用户302批准了该请求,则数字钱包Dapp 502向数据去中心化标识区块链网络508发送1116消息,该消息指示第一用户302已经授权第二用户304访问特定数字活动数据。当数据去中心化标识区块链网络508与第一用户302的数字钱包Dapp 502通信时,数据去中心化标识区块链网络508验证去中心化标识,以确保授权第二用户304访问数字活动数据的是第一用户302而不是某个冒充者。在一些示例中,第一用户302可以设置授予第二用户304的授权条件。例如,授权可以包括时间限制,例如授权在接下来的2个小时或接下来的3天有效。数据去中心化标识区块链网络508发送1118消息,该消息指示来自第二用户304的请求已经被批准,并且第二用户304被授权以某些条件(如果有的话)来访问特定数字活动数据。同时,数据去中心化标识区块链网络508向第二用户304的数字钱包Dapp 1102发送1120指示该请求已被授权的消息,并将联盟区块链602的地址提供给第二用户304的数字钱包Dapp 1102。第二用户304的数字钱包Dapp 1102向联盟区块链602发送请求,请求第一用户302的数字活动数据。联盟区块链602将数字钱包Dapp 1102请求的数字活动数据发送1122到数字钱包Dapp 1102。
处理1100允许第一用户授权其他用户访问与第一用户相关联的数字活动数据,其中,该数字活动数据被存储在不受用户控制的区块链中。处理1100确保在第一用户指定的条件下仅与其他用户共享由第一用户授权的特定数据。
在一些实施方式中,“与用户相关联的数字活动数据”包括用户通过业务***316可访问的数据,并不包括用户302不可访问的数据。例如,用户302可以访问仓单历史记录,并查看用户的信息和关于已存放在仓库中的商品的信息,并且此类信息包括在与用户302相关联的数字活动数据中。业务***316可以生成关于用户302的数据,这些数据是未与用户302共享的机密的公司信息,例如与用户302做生意有多少利润。此类机密信息不作为与用户相关联的数字活动数据的一部分包括在内。
在图11中,在联盟区块链602、数据去中心化标识区块链网络508、数字钱包Dapp502和数字钱包Dapp 1102之间交换的消息,可以使用例如数据加密标准(DES)、TripleDES、RSA、高级加密标准(AES)、双鱼算法(Twofish)等各种加密技术进行加密。类似地,图5、6、7和9,在联盟区块链602、数据去中心化标识区块链网络508和数字钱包Dapp 502之间交换的消息可以使用各种加密技术来加密。
图12是用于控制或管理对访问数据的授权的处理1200的示例的流程图。为方便起见,处理1200将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图1的计算***106或108的)计算***可以执行处理1200。处理1200包括以下步骤。
在1202,去中心化标识区块链节点接收对第一数字活动去中心化标识的第一请求,其中,该第一请求是从与第一用户相关联的第一应用发送的,该第一请求包括与第一用户的第一去中心化标识(DID)以及与第一联盟区块链相关联的第一业务去中心化标识(BizDID)有关的信息。
在一些实施例中,与第一用户相关联的第一应用可以包括与第一用户相关联的数字钱包去中心化应用。
在一些实施例中,去中心化标识区块链节点可以是数据去中心化标识区块链网络508(图7)的区块链节点,第一请求可以是请求704,第一数字活动去中心化标识可以是数字活动去中心化标识708,第一应用可以是数字钱包Dapp 502,第一用户的第一去中心化标识可以是数字身份去中心化标识512(图5),第一业务去中心化标识可以是业务去中心化标识610(图6),以及第一联盟区块链可以是联盟区块链602。
在一些实施例中,第一联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在1204,去中心化标识区块链节点生成第一数字活动去中心化标识。在一些实施例中,生成第一数字活动去中心化标识可以包括在去中心化标识区块链节点处执行智能合约,其中,智能合约被配置为基于包括在第一请求中的信息来生成第一数字活动去中心化标识。
在1206,去中心化标识区块链节点将第一数字活动去中心化标识提供给第一应用。
在1208,去中心化标识区块链节点将与第一用户的第一去中心化标识(DID)及第一数字活动去中心化标识有关的信息存储在第一去中心化标识(DID)区块链中的第一记录中,该第一去中心化标识(DID)区块链被配置为存储与多个用户的多个区中心化标识(DID)相关联的记录。
在一些实施例中,将与第一用户的第一去中心化标识(DID)及第一数字活动去中心化标识有关的信息存储在第一记录中,可以包括:执行去中心化标识区块链节点处的智能合约以存储该信息。
在1210,去中心化标识区块链节点使用存储在去中心化标识区块链中的第一记录中的信息,来控制或管理对访问与第一用户相关联并存储在第一联盟区块链中的数据的授权。
在一些实施例中,管理记录的授权可以包括:能够使第一用户授权第二用户访问与第一用户相关联并存储在第一联盟区块链中的一个或多个记录。管理对访问数据的授权可以包括:向第一用户通知与第一用户相关联的哪些数据记录由去中心化标识区块链管理。管理对访问数据的授权可以包括:响应于第二用户的请求,提示第一用户提供关于是否授权第二用户访问与第一用户相关联的数据记录的指令。管理对访问数据的授权可以包括:响应于从第一用户接收到指令,基于第一用户提供的指令来确定是否授权第二用户访问与第一用户相关联的数据记录。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点将关于与第一联盟区块链相关联的第一业务去中心化标识的信息存储在第一记录中。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点接收对第二数字活动去中心化标识的第二请求,其中,该第二请求包括与第一用户的第一去中心化标识和与第二联盟区块链相关联的第二业务去中心化标识有关的信息。去中心化标识区块链节点生成第二数字活动去中心化标识,将该第二数字活动去中心化标识提供给第一应用,将关于该第二数字活动去中心化标识的信息存储在第一记录中,并使用第一记录中的信息管理与第一用户相关联的、并存储在第二联盟区块链中的记录的授权。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点将关于与第二联盟区块链相关联的第二业务去中心化标识的信息存储在第一记录中。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点接收对数字活动去中心化标识的多个请求,其中,多个请求中的每个请求都包括与第一用户的第一去中心化标识和与特定联盟区块链相关联的特定业务去中心化标识有关的信息。去中心化标识区块链节点生成多个数字活动去中心化标识,其中,每个数字活动去中心化标识对应于业务去中心化标识之一,将数字活动去中心化标识存储在第一记录中,并使用第一记录中的信息管理与第一用户相关联的、并存储在联盟区块链中的记录的授权。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点将与对应于多个数字活动去中心化标识的业务去中心化标识有关的信息存储在第一记录中。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点在接收到对第一数字活动去中心化标识的第一请求之前,接收用于获得第一去中心化标识的第二请求,其中,所述第二请求是从与第一用户相关联的第一应用发送的。去中心化标识区块链节点基于第二请求获得第一身份认证证明,基于第一身份认证证明验证第一用户的身份,生成第一用户的第一去中心化标识,将第一用户的第一去中心化身份标识提供给与第一用户相关联的第一应用,并将第一身份认证证明存储在第一去中心化标识区块链的第一记录中。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点在接收第一请求之前,接收用于获得第一业务去中心化标识的第二请求,其中,所述第二请求是从第一联盟区块链发送的。去中心化标识区块链节点生成第一业务去中心化标识,并将第一业务去中心化标识提供给第一联盟区块链。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求是从与第二用户相关联的第二应用发送的,所述第二请求包括与第二用户的第二去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识有关的信息。去中心化标识区块链节点生成第二数字活动去中心化标识,将第二数字活动去中心化标识提供给第二应用,将关于第二用户的第二去中心化标识和第二数字活动去中心化标识的信息存储在第一去中心化标识(DID)区块链中的第二记录中,并至少部分基于第二记录中的信息来管理对与第二用户相关联的、并存储在第一联盟区块链中的记录的授权。
在一些实施例中,处理1200还可以包括:去中心化标识区块链节点接收对数字活动去中心化标识的多个请求,其中,所述多个请求中的每个请求都包括与多个用户之一的特定去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识有关的信息。去中心化标识区块链节点生成多个数字活动去中心化标识,每个数字活动去中心化标识对应于多个用户之一。去中心化标识区块链节点将关于每个数字活动去中心化标识的信息存储到与对应用户相关联的对应记录中,并至少部分地基于记录中的信息来管理对与每个用户相关联、并存储在第一联盟区块链中的记录的授权。
图13是用于控制或管理对访问数据的授权的处理1300的示例的流程图。为方便起见,处理1300将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图1的计算***106或108的)计算***可以执行处理1300。处理1300包括以下步骤。
在1302,去中心化标识区块链节点接收对第一数字活动去中心化标识的第一请求,其中,该第一请求包括与第一用户的第一去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识有关的信息。
在一些实施例中,去中心化标识区块链节点可以是数据去中心化标识区块链网络508(图7)的区块链节点,第一请求可以是请求704,第一数字活动去中心化标识可以是数字活动去中心化标识708,第一用户的第一去中心化标识可以是数字身份去中心化标识512(图5),第一业务去中心化标识可以是业务去中心化标识610(图6),第一联盟区块链可以是联盟区块链602。
在一些实施例中,第一联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在1304,去中心化标识区块链节点生成第一数字活动去中心化标识。在一些实施例中,生成第一数字活动去中心化标识可以包括执行去中心化标识区块链节点处的智能合约,其中,智能合约被配置为基于包括在第一请求中的信息来生成第一数字活动去中心化标识。
在1306,去中心化标识区块链节点将关于第一数字活动去中心化标识及第一用户的第一去中心化标识的信息存储在第一去中心化标识区块链中的第一记录中。在一些实施例中,存储信息可以包括执行去中心化标识区块链节点处的智能合约以存储信息。
在1308,去中心化标识区块链节点接收对第二数字活动去中心化标识的第二请求,其中,该第二请求包括与第一用户的第一去中心化标识和与第二联盟区块链相关联的第二业务去中心化标识有关的信息。
第二请求可以类似于请求704,第二数字活动去中心化标识可以类似于数字活动去中心化标识708,第二业务去中心化标识可以类似于业务去中心化标识610(图6),以及第二联盟区块链可以类似于联盟区块链602。
在一些实施例中,第二联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在1310,去中心化标识区块链节点生成第二数字活动去中心化标识。在一些实施例中,生成第二数字活动去中心化标识可以包括执行去中心化标识区块链节点处的智能合约,其中,所述智能合约被配置为基于第二请求中包括的信息来生成第二数字活动去中心化标识。
在1312,去中心化标识区块链节点将关于第二数字活动去中心化标识的信息存储在第一记录中。在一些实施例中,存储信息可以包括执行去中心化标识区块链节点处的智能合约以存储信息。
在1314,去中心化标识区块链节点接收对第三数字活动去中心化标识的第三请求,其中,该第三请求包括与第二用户的第二去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识有关的信息。
在一些实施例中,第三请求可以类似于请求704,第三数字活动去中心化标识可以类似于数字活动去中心化标识708,以及第二用户的第二去中心化标识可以类似于数字身份去中心化标识512(图5)。
在1316,去中心化标识区块链节点生成第三数字活动去中心化标识。在一些实施例中,生成第三数字活动去中心化标识可以包括执行去中心化标识区块链节点处的智能合约,其中,所述智能合约被配置为基于第三请求中包括的信息来生成第三数字活动去中心化标识。
在1318,去中心化标识区块链节点将关于第三数字活动去中心化标识和第二用户的第二去中心化标识的信息存储在第一去中心化标识区块链的第二记录中。在一些实施例中,存储信息可以包括执行去中心化标识区块链节点处的智能合约以存储信息。
在1320,去中心化标识区块链节点至少部分地基于第一记录中的信息来控制或管理对与第一用户相关联、并存储在第一联盟区块链中的记录的授权。在一些实施例中,管理记录的授权可以包括能够使第一用户授权第二用户访问与第一用户相关联并存储在第一联盟区块链中的一个或多个记录。
在1322,去中心化标识区块链节点至少部分地基于第一记录中的信息来控制或管理对与第一用户相关联并存储在第二联盟区块链中的记录的授权。在一些实施例中,管理记录的授权可以包括能够使第一用户授权第二用户访问与第一用户相关联并存储在第二联盟区块链中的一个或多个记录。
在1324,去中心化标识区块链节点至少部分地基于第二记录中的信息来控制或管理对与第二用户相关联并存储在第一联盟区块链中的记录的授权。在一些实施例中,管理记录的授权可以包括能够使第二用户授权第三用户访问与第二用户相关联并且存储在第一联盟区块链中的一个或多个记录。
图14是用于控制或管理对访问数据的授权的处理1400的示例的流程图。为方便起见,处理1400将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图1的计算***106或108的)计算***可以执行处理1400。处理1400包括以下步骤。
在1402,去中心化标识区块链节点接收对数字活动去中心化标识的多组一个或多个请求,其中,每个数字活动去中心化标识与用户的去中心化标识(DID)相关联,并且还与联盟区块链相关联,每组一个或多个请求包括与用户的相应去中心化标识和与一个或多个联盟区块链相关联的一个或多个业务去中心化标识有关的信息,不同组的一个或多个请求包括关于不同用户的不同去中心化标识的信息。
在一些实施例中,去中心化标识区块链节点可以是数据去中心化标识区块链网络508(图7)的区块链节点,多组一个或多个请求可以类似于请求704,数字活动去中心化标识可以类似于数字活动去中心化标识708,去中心化标识可以类似于数字身份去中心化标识512(图5),一个或多个业务去中心化标识可以类似于业务去中心化标识610(图6),并且一个或多个联盟区块链可以类似于联盟区块链602。
在一些实施例中,每个联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在1404,去中心化标识区块链节点响应于对数字活动去中心化标识的多组一个或多个请求生成数字活动去中心化标识,其中,每个数字活动去中心化标识与特定用户的特定去中心化标识相关联,并且还与特定业务去中心化标识相关联;与同组的一个或多个请求相关联的不同数字活动去中心化标识与用户的相同去中心化标识相关联,并与不同的业务去中心化标识相关联;并且与不同组的一个或多个请求相关联的不同数字活动去中心化标识与不同用户的不同去中心化标识相关联。
在一些实施例中,生成数字活动去中心化标识可以包括执行去中心化标识区块链节点处的智能合约,其中,智能合约被配置为基于包括在相应请求中的信息来生成数字活动去中心化标识。
在1406,去中心化标识区块链节点将关于数字活动去中心化标识及用户的去中心化标识的数据存储在第一去中心化标识区块链的多个记录中,其中,每个记录存储与用户之一相关联的数据。在一些实施例中,存储数据可以包括执行去中心化标识区块链节点处的智能合约以存储数据。
在1408,去中心化标识区块链节点至少部分地基于存储在第一去中心化标识区块链中的记录来控制或管理对与用户相关联、并存储在联盟区块链中的数据的访问授权。在一些实施例中,管理对访问数据的授权可以包括能够使一个用户授权另一用户访问与该用户相关联并存储在对应联盟区块链中的数据。
图15是用于控制或管理对访问数据的授权的处理1500的示例的流程图。为方便起见,处理1500将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图4的客户终端402、404或406的)用户设备可以执行处理1500。处理1500包括以下步骤。
在1502,应用向去中心化标识区块链发送对第一数字活动去中心化标识的第一请求,该去中心化标识区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,其中,所述第一请求包括第一用户的第一去中心化标识(DID),并且所述第一请求还包括第一联盟区块链的第一业务去中心化标识(BizDID)。
在一些实施例中,该应用可以包括与第一用户相关联的数字钱包去中心化应用(例如502)。第一请求可以是请求704,第一数字活动去中心化标识可以是数字活动去中心化标识708,去中心化标识区块链节点可以是数据去中心化标识区块链网络508(图7)中的区块链节点,所述多个去中心化标识可以类似于数字身份去中心化标识512(图5),第一业务去中心化标识可以是业务去中心化标识610(图6),第一联盟区块链可以是联盟区块链602。
在一些实施例中,联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在1504,应用接收来自去中心化标识区块链的第一数字活动去中心化标识。
在1506,应用使用第一数字活动去中心化标识来控制或管理对访问与第一用户相关联并存储在第一联盟区块链中的数据的授权。
在一些实施例中,处理1500还可以包括:该应用向去中心化标识区块链发送对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括第一用户的第一去中心化标识(DID),并且所述第二请求还包括第二联盟区块链的第二业务去中心化标识(BizDID)。该应用接收来自去中心化标识区块链中的第二数字活动去中心化标识,并使用第二数字活动去中心化标识来管理对访问与第一用户相关联并存储在第二联盟区块链中的数据的授权。
图16是根据本文实施例的装置1600的模块的示例的示图。装置1600可以是数据去中心化标识区块链节点的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置1600可以对应于上述实施例,并且装置1600包括以下:
·接收模块1602,接收对第一数字活动去中心化标识的第一请求,其中,所述第一请求是从与第一用户相关联的第一应用发送的,所述第一请求包括与一用户的第一去中心化标识(DID)和与第一联盟区块链相关联的第一业务去中心化标识(BizDID)有关的信息;
·生成模块1604,生成第一数字活动去中心化标识;
·提供模块1606,将第一数字活动去中心化标识提供给第一应用;
·存储模块1608,将与第一用户的第一去中心化标识(DID)以及第一数字活动去中心化标识有关的信息存储在第一去中心化标识(DID)区块链中的第一记录中,所述第一去中心化标识(DID)区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录;和
·管理模块1610,使用存储在第一去中心化标识(DID)区块链中的第一记录中的信息来管理对访问与第一用户相关联、并存储在第一联盟区块链中的数据的授权。
在可选实施例中,装置1600还可包括存储子模块,该存储子模块将关于与第一联盟区块链相关联的第一业务去中心化标识的信息存储在第一记录中。
在可选实施例中,装置1600还可包括接收子模块,该接收子模块用于接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括与第一用户的第一去中心化标识和与第二联盟区块链相关联的第二业务去中心化标识有关的信息;生成子模块,用于生成第二数字活动去中心化标识;提供子模块,将第二数字活动去中心化标识提供给第一应用;存储子模块,将关于第二数字活动去中心化标识的信息存储在第一记录中;管理子模块,使用第一记录中的信息来管理与第一用户相关联、并存储在第二联盟区块链中的记录的授权。
在可选实施例中,装置1600还可包括存储子模块,将关于与第二联盟区块链相关联的第二业务去中心化标识的信息存储在第一记录中。
在可选实施例中,装置1600还可包括接收模块,接收对数字活动去中心化标识的多个请求,其中,所述多个请求中的每个请求包括与第一用户的第一去中心化标识和与特定联盟区块链相关联的特定业务去中心化标识有关的信息;生成子模块,生成多个数字活动去中心化标识,其中,数字活动去中心化标识中的每个对应于业务去中心化标识之一;存储子模块,将数字活动去中心化标识存储在第一记录中;管理子模块,使用第一记录中的信息管理与第一用户相关联并存储在联盟区块链中的记录的授权。
在可选实施例中,装置1600还可包括存储子模块,将关于与多个数字活动去中心化标识相对应的业务去中心化标识的信息存储在第一记录中。
在可选实施例中,与第一用户相关联的第一应用可包括与第一用户相关联的数字钱包去中心化应用。
在可选实施例中,可以在与第一去中心化标识区块链相关联的第一区块链节点处接收第一请求,并且可以在第一区块链节点处生成第一数字活动去中心化标识。
在可选实施例中,生成子模块可包括执行子模块,执行与第一去中心化标识区块链相关联的第一区块链节点处的智能合约,其中,所述智能合约可以被配置为基于第一请求中包含的信息来生成第一数字活动去中心化标识。
在可选实施例中,存储子模块可包括执行子模块,执行与第一去中心化标识区块链相关联的第一区块链节点处的智能合约以存储信息。
在可选实施例中,装置1600还可包括接收子模块,在接收对第一数字活动去中心化标识的第一请求之前,接收用于获得第一去中心化标识的第二请求,其中,所述第二请求是从与第一用户相关联的第一应用发送的;获得子模块,基于所述第二请求,获得第一身份认证证明;验证子模块,基于所述第一身份认证证明,验证所述第一用户的身份;生成子模块,生成所述第一用户的第一去中心化标识;提供子模块,向与所述第一用户相关联的第一应用提供所述第一用户的第一去中心化标识;存储子模块,将第一身份认证证明存储在第一去中心化标识区块链中的第一记录中。
在可选实施例中,装置1600还可包括:接收子模块,在接收第一请求之前,接收用于获得第一业务去中心化标识的第二请求,其中,所述第二请求是从第一联盟区块链发送的;生成子模块,生成第一业务去中心化标识;以及提供子模块,向第一联盟区块链提供第一业务去中心化标识。
在可选实施例中,第一联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在可选实施例中,装置1600还可包括:接收子模块,接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求是从与第二用户相关联的第二应用发送的,所述第二请求包括与第二用户的第二去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识有关的信息;生成子模块,生成第二数字活动去中心化标识;提供子模块,将第二数字活动去中心化标识提供给第二应用;存储子模块,将与第二用户的第二去中心化标识及第二数字活动去中心化标识有关的信息存储在第一去中心化标识(DID)区块链中的第二记录中;管理子模块,至少部分地基于第二记录中的信息来管理与第二用户相关联并存储在第一联盟区块链中的记录的授权。
在可选实施例中,装置1600还可包括:接收子模块,接收对数字活动去中心化标识的多个请求,其中,所述多个请求中的每个请求包括与多个用户之一的特定去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识有关的信息;生成子模块,生成多个数字活动去中心化标识,数字活动去中心化标识中的每个对应于所述多个用户之一;存储子模块,将关于每个数字活动去中心化标识的信息存储到与相应用户相关联的相应记录中;管理子模块,至少部分地基于记录中的信息来管理与每个用户相关联、并存储在第一联盟区块链中的记录的授权。
在可选实施例中,管理子模块可以包括使能子模块,能够使第一用户授权第二用户访问与第一用户相关联、并存储在第一联盟区块链中的一个或多个记录。
图17是根据本文实施例的装置1700的模块的示例的示图。装置1700可以是数据去中心化标识区块链节点的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置1700可以对应于上述实施例,并且装置1700包括以下:
·第一接收模块1702,接收对第一数字活动去中心化标识的第一请求,其中,该第一请求包括与第一用户的第一去中心化标识和与第一联盟区块链相关的第一业务去中心化标识有关的信息;
·第一生成模块1704,生成第一数字活动去中心化标识;
·第一存储模块1706,将与第一数字活动去中心化标识及第一用户的第一去中心化标识有关的信息存储在第一去中心化标识区块链中的第一记录中;
·第二接收模块1708,接收对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括与所述第一用户的第一去中心化标识和与第二联盟区块链相关联的第二业务去中心化标识有关的信息;
·第二生成模块1710,生成第二数字活动去中心化标识;
·第二存储模块1712,将关于第二数字活动去中心化标识的信息存储在第一记录中;
·第三接收模块1714,接收对第三数字活动去中心化标识的第三请求,其中,所述第三请求包括与第二用户的第二去中心化标识和与所述第一联盟区块链相关联的第一业务去中心化标识有关的信息;
·第三生成模块1716,生成第三数字活动去中心化标识;
·第三存储模块1718,将与第三数字活动去中心化标识及第二用户的第二去中心化标识有关的信息存储在第一去中心化标识区块链的第二记录中;
·第一管理模块1720,至少部分地基于第一记录中的信息来管理与第一用户相关联并存储在第一联盟区块链中的记录的授权;
·第二管理模块1722,至少部分地基于第一记录中的信息来管理与第一用户相关联并存储在第二联盟区块链中的记录的授权;和
·第三管理模块1724,至少部分地基于第二记录中的信息来管理与第二用户相关联并且存储在第一联盟区块链中的记录的授权。
在可选实施例中,第一联盟区块链可以存储以下第一至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
在可选实施例中,第二联盟区块链可以存储以下第二至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
图18是根据本文实施例的装置1800的模块的示例的示图。装置1800可以是数据去中心化标识区块链节点的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置1800可以对应于上述实施例,并且装置1800包括以下:
·接收模块1802,接收对数字活动去中心化标识的多组一个或多个请求,其中,每个数字活动去中心化标识与用户的去中心化标识(DID)相关联,并且还与联盟区块链相关联,每组一个多个请求包括与用户的相应去中心化标识和与一个或多个联盟区块链相关联的一个或多个业务去中心化标识有关的信息,不同组的一个或多个请求包括关于不同用户的不同去中心化标识的信息;
·生成模块1804,响应于对数字活动去中心化标识的多组一个或多个请求,生成数字活动去中心化标识,其中,每个数字活动去中心化标识与特定用户的特定去中心化标识相关联,并且还与特定业务去中心化标识相关联,与同组的一个或多个请求相关联的不同数字活动去中心化标识与用户的相同去中心化标识相关联,并与不同的业务去中心化标识相关联;并且与不同组的一个或多个请求相关联的不同数字活动去中心化标识与不同用户的不同去中心化标识相关联;
·存储模块1806,将关于数字活动去中心化标识及用户的去中心化标识的数据存储在第一去中心化标识区块链的多个记录中,其中,每个记录存储与用户之一相关联的数据;和
·管理模块1808,至少部分地基于存储在第一去中心化标识区块链中的记录来管理对访问与用户相关联并存储在联盟区块链中的数据的授权。
在可选实施例中,每个联盟区块链可以存储以下至少一个:仓单记录、商品订单处理记录、医疗健康记录、购物交易记录、房屋租赁交易记录、车辆租赁交易记录、运输交易记录、仓库交易记录、金融交易记录或马拉松记录。
图19是根据本文实施例的装置1900的模块的示例的示图。装置1900可以是执行应用程序的用户设备的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置1900可以对应于上述实施例,并且装置1900包括以下:
·发送模块1902,向去中心化标识区块链发送对第一数字活动去中心化标识的第一请求,所述去中心化标识区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,其中,所述第一请求包括第一用户的第一去中心化标识(DID),并且所述第一请求还包括第一联盟区块链的第一业务去中心化标识(BizDID);
·接收模块1904,接收来自所述去中心化标识区块链的所述第一数字活动去中心化标识;和
·管理模块1906,使用第一数字活动去中心化标识管理对访问与第一用户相关联并存储在第一联盟区块链中的数据的授权。
在可选实施例中,应用程序可以是数字钱包去中心化应用程序。
在可选实施例中,装置1900可以包括:发送子模块,向去中心化标识区块链发送对第二数字活动去中心化标识的第二请求,其中,所述第二请求包括第一用户的第一去中心化标识(DID),并且所述第二请求还包括第二联盟区块链的第二业务去中心化标识(BizDID);接收子模块,接收来自所述去中心化标识区块链的所述第二数字活动去中心化标识;管理子模块,使用第二数字活动去中心化标识来管理对与第一用户相关联的、并存储在第二联盟区块链中的数据的访问授权。
图20是用于控制或管理对访问数据的授权的处理2000的示例的流程图。为方便起见,处理2000将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图1的计算***106或108的)计算***可以执行处理2000。处理2000包括以下步骤。
在2002,去中心化标识区块链节点接收第一请求,该请求包括第一数字活动去中心化标识和第一数字活动数据的第一哈希值,其中,第一数字活动去中心化标识与第一用户的第一去中心化标识(DID)和第一联盟区块链的第一业务去中心化标识(BizDID)相关联。
在一些实施例中,去中心化标识区块链节点可以是数据去中心化标识区块链网络508(图9)的区块链节点,第一数字活动去中心化标识可以是数字活动去中心化标识708(图7),并且第一联盟区块链可以是联盟区块链602。
在一些实施例中,第一请求可以从第一联盟区块链发送。去中心化标识区块链节点可以通过将第一数字活动去中心化标识与存储在去中心化标识(DID)区块链中的预先存储的数字活动去中心化标识进行比较,来确定第一数字活动去中心化标识是否有效。
在2004,去中心化标识区块链节点将第一数字活动去中心化标识及第一哈希值存储在去中心化标识(DID)区块链中的第一记录中,所述去中心化标识(DID)区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录。
在一些实施例中,第一记录可以类似于记录1020(图10C),第一数字活动去中心化标识可以类似于数字活动去中心化标识1006或1014,并且去中心化标识区块链可以是数据去中心化标识区块链509。
在2006,去中心化标识区块链节点使用存储在去中心化标识(DID)区块链中的第一记录中的信息来控制或管理对访问存储在第一联盟区块链中的第一数字活动数据的授权。
在一些实施例中,去中心化标识区块链可以向与第一用户相关联的第一应用发送第一消息,其中,所述第一消息可以包括第一数字活动数据的第一哈希值;接收来自第一应用的第二消息,该第二消息指示第一哈希值是正确的或第一哈希值是不正确的;如果第二消息指示第一哈希值是正确的,则将第一哈希值存储在第一记录中;如果第二消息指示第一哈希值是不正确的,则不将第一哈希值存储在第一记录中。
在一些实施例中,第一应用可以包括数字钱包去中心化应用。
在一些实施例中,去中心化标识区块链可以接收第二请求,该第二请求包括第一数字活动去中心化标识和第二数字活动数据的第二哈希值;将第二哈希值存储在去中心化标识(DID)区块链中的第一记录中;并使用存储在去中心化标识(DID)区块链中的第一记录中的信息来管理对访问存储在第一联盟区块链中的第二数字活动数据的授权。
在一些实施例中,第二请求可以从第一联盟区块链发送。
在一些实施例中,去中心化标识区块链节点可以接收来自第二联盟区块链的第二请求,该第二请求包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值,其中,第二数字活动去中心化标识与第一用户的第一去中心化标识(DID)及第二联盟区块链的第二业务去中心化标识(BizDID)相关联;将第二数字活动去中心化标识及第二哈希值存储在去中心化标识(DID)区块链中的第一记录中;并使用存储在去中心化标识(DID)区块链中的第一记录中的信息,来管理对访问存储在第二联盟区块链中的第二数字活动数据的授权。
在一些实施例中,去中心化标识区块链节点可以接收来自第一联盟区块链的第二请求,该第二请求包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值,其中,第二数字活动去中心化标识与第二用户的第二去中心化标识(DID)和第一联盟区块链的第一业务去中心化标识(BizDID)相关联;将第二数字活动去中心化标识及第二哈希值存储在去中心化标识(DID)区块链的第二记录中;并使用存储在去中心化标识(DID)区块链的第二记录中的信息,来管理对访问存储在第一联盟区块链中的第二数字活动数据的授权。
图21是用于控制或管理对访问数据的授权的处理2100的示例的流程图。为方便起见,处理2100将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图4的客户终端402、404或406的)用户设备可以执行处理2100。处理2100包括以下步骤。
在2102,与第一用户相关联的应用接收来自去中心化标识(DID)区块链网络的第一数字活动数据的第一哈希值,其中,所述第一数字活动数据被存储在第一联盟区块链中。
在一些实施例中,该应用可以包括数字钱包去中心化应用502(图9),第一数字活动数据可以是数字活动数据902,去中心化标识区块链网络可以是数据去中心化标识区块链网络508,并且第一联盟区块链可以是联盟区块链602。
在2104,该应用从第一联盟区块链获得第一数字活动数据。
在2106,该应用生成从第一联盟区块链获得的第一数字活动数据的第二哈希值。
在2108,该应用将第一哈希值与第二哈希值进行比较。
在2110,在确定第一哈希值与第二哈希值匹配时,该应用将用于指示第一哈希值是准确的消息发送到去中心化标识区块链网络。
在一些实施例中,该应用可以向第一用户提供用户接口,该用户接口显示从第一联盟区块链获得的第一数字活动数据;从第一用户接收指示第一数字活动数据是否正确的指示;将来自第一用户的、指示第一数字活动数据是否正确的指示发送给去中心化标识(DID)区块链网络。
图22是用于控制或管理对访问数据的授权的处理2200的示例的流程图。为方便起见,处理2200将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图1的计算***106或108的)计算***可以执行处理2200。处理2200包括以下步骤。
在2202,去中心化标识区块链节点接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,所述第一请求包括第一数字活动数据的第一哈希值、与第二用户的第一去中心化标识相关联的第一数字活动去中心化标识、以及第一联盟区块链的第一业务去中心化标识。第一请求是从第一联盟区块链发送的并在去中心化标识(DID)区块链网络接收,该去中心化标识(DID)区块链网络维护去中心化标识区块链,该去中心化标识区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录。例如,第一请求可以在维护去中心化标识区块链的去中心化标识区块链网络的节点处被接收。例如,第一请求可以调用与去中心化标识区块链关联的智能合约。第一数字活动数据被存储在第一联盟区块链上。
在一些实施例中,去中心化标识区块链节点可以是数据去中心化标识区块链网络508(图9)的节点,第一数字活动去中心化标识可以是数字活动去中心化标识708(图7),并且第一联盟区块链可以是联盟区块链602。
在2204,去中心化标识区块链节点确定第一数字活动去中心化标识、第一哈希值和第一业务去中心化标识是否有效。
在2206,去中心化标识区块链节点使用关于第一数字活动去中心化标识、第一哈希值及第一业务去中心化标识是否有效的确定,来控制或管理对第二用户访问存储在第一联盟区块链中的第一数字活动数据的授权。
在一些实施例中,去中心化标识区块链节点在接收到第一请求之前,可以存储由第一联盟区块链提供的第一数字活动数据的第二哈希值。确定第一哈希值是否有效可以包括:将第一哈希值与存储的第二哈希值进行比较,如果第一哈希值与存储的第二哈希值相同,则确定第一哈希值有效。
在一些实施例中,去中心化标识区块链节点可以向与第一用户相关联的应用发送第一消息,以向第一用户通知来自第二用户的请求。与第一用户相关联的应用可以包括数字钱包去中心化应用。
在一些实施例中,去中心化标识区块链节点可以接收来自应用的第二消息,该第二消息指示第一用户是否授权第二用户访问第一数字活动数据。管理对访问第一数字活动数据的授权可以至少部分地基于第二消息是否指示第一用户授权第二用户访问第一数字活动数据。
在一些实施例中,去中心化标识区块链节点在确定第一数字活动去中心化标识、第一哈希值及第一业务去中心化标识是有效的,并接收指示第一用户授权第二用户访问第一数字活动数据的第二消息之后,可以向第一联盟区块链发送第三消息,该第三消息指示第一用户已经授权第二用户访问第一数字活动数据。
在一些实施例中,第二消息可以包括第二用户访问第一数字活动数据的条件。该条件可以包括时间限制条件,该时间限制条件指定第二用户只能在指定的时间限制内访问第一数字活动数据。
图23是用于控制或管理对访问数据的授权的处理2300的示例的流程图。为方便起见,处理2300将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的***执行。例如,被适当编程的(例如图4的客户终端402、404或406的)用户设备可以执行处理2300。处理2300包括以下步骤。
在2302,应用接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,第一数字活动数据存储在第一联盟区块链中,该第一请求是从维护去中心化标识区块链的去中心化标识(DID)区块链网络发送的,所述去中心化标识区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,并且所述第一请求是在与第一用户关联的应用处接收的。例如,第一请求可以从维护去中心化标识的去中心化标识区块链网络的节点被发送。例如,第一请求可以作为执行与去中心化标识区块链相关联的智能合约的结果发送。
在一些实施例中,该应用可以包括数字钱包去中心化应用502(图11),第一联盟区块链可以是联盟区块链602,并且去中心化标识区块链网络可以是数据去中心化标识区块链网络508。
在2304,该应用提供用户接口以向第一用户显示第一请求。
在2306,该应用接收来自第一用户的、关于是否授权第二用户访问存储在第一联盟区块链中的第一数字活动数据的指令。
在2308,该应用向去中心化标识区块链发送指示第一用户是否授权第二用户访问第一数字活动数据的第一消息。
在一些实施例中,第一消息可以包括第二用户访问第一数字活动数据的条件。该条件可以包括时间限制条件,该时间限制条件指定第二用户只能在指定的时间限制内访问第一数字活动数据。
图24是根据本文实施例的装置2400的模块的示例的示图。装置2400可以是数据去中心化标识区块链节点的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置2400可以对应于上述实施例,并且装置2400包括以下:
·接收模块2402,接收第一请求,该第一请求包括第一数字活动去中心化标识和第一数字活动数据的第一哈希值,其中,第一数字活动去中心化标识与第一用户的第一去中心化标识(DID)和第一联盟区块链的第一业务去中心化标识(BizDID)相关联;
·存储模块2404,将第一数字活动去中心化标识和第一哈希值存储在去中心化标识(DID)区块链中的第一记录中,所述去中心化标识(DID)区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录;和
·管理模块2406,使用存储在去中心化标识(DID)区块链中的第一记录中的信息来管理对访问存储在第一联盟区块链中的第一数字活动数据的授权。
在可选实施例中,第一请求可从第一联盟区块链发送。
在可选实施例中,装置2400还可包括:发送子模块,向与第一用户相关联的第一应用发送第一消息,其中,所述第一消息包括第一数字活动数据的第一哈希值;接收子模块,接收来自所述第一应用的第二消息,所述第二消息指示所述第一哈希值是正确的或所述第一哈希值是不正确的;存储子模块,如果第二消息指示第一哈希值是正确的,则将第一哈希值存储在第一记录中,如果第二消息指示第一哈希值是不正确的,则不将第一哈希值存储在第一记录中。
在可选实施例中,第一应用可以包括数字钱包去中心化应用。
在可选实施例中,装置2400还可包括确定子模块,通过将第一数字活动去中心化标识与存储在去中心化标识(DID)区块链中的预先存储的数字活动去中心化标识进行比较来确定第一数字活动去中心化标识是否有效。
在可选实施例中,装置2400还可包括:接收子模块,接收第二请求,该第二请求包括第一数字活动去中心化标识和第二数字活动数据的第二哈希值;存储子模块,将第二哈希值存储在去中心化标识(DID)区块链的第一记录中;管理子模块,使用存储在去中心化标识(DID)区块链中的第一记录中的信息来管理对访问存储在第一联盟区块链中的第二数字活动数据的授权。
在可选实施例中,第二请求可以从第一联盟区块链发送。
在可选实施例中,装置2400还可包括:接收子模块,从第二联盟区块链接收第二请求,该第二请求包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值,其中,第二数字活动去中心化标识与第一用户的第一去中心化标识(DID)和第二联盟区块链的第二业务去中心化标识(BizDID)相关联;存储子模块,将第二数字活动去中心化标识和第二哈希值存储在去中心化标识(DID)区块链的第一记录中;管理子模块,使用存储在去中心化标识(DID)区块链的第一记录中的信息来管理对访问存储在第二联盟区块链中的第二数字活动数据的授权。
在可选实施例中,装置2400还可包括:接收子模块,从第一联盟区块链接收第二请求,该第二请求包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值,其中,第二数字活动去中心化标识与第二用户的第二去中心化标识(DID)和第一联盟区块链的第一业务去中心化标识(BizDID)相关联;存储子模块,将第二数字活动去中心化标识及第二哈希值存储在去中心化标识(DID)区块链的第二记录中;以及管理子模块,使用存储在去中心化标识(DID)区块链的第二记录中的信息来管理对访问存储在第一联盟区块链中的第二数字活动数据的授权。
图25是根据本文实施例的装置2500的模块的示例的示图。装置2500可以是执行应用的用户设备的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置2500可以对应于上述实施例,并且装置2500包括以下:
·接收模块2502,在与第一用户关联的应用处,接收来自去中心化标识(DID)区块链的第一数字活动数据的第一哈希值,其中,所述第一数字活动数据存储在第一联盟区块链中;
·获得模块2504,从第一联盟区块链获得第一数字活动数据;
·生成模块2506,生成从第一联盟区块链获得的第一数字活动数据的第二哈希值;
·比较模块2508,将第一哈希值与第二哈希值进行比较;和
·发送模块2510,在确定第一哈希值与第二哈希值匹配时,向去中心化标识区块链发送指示第一哈希值是准确的消息。
在可选实施例中,装置2500还可包括:提供子模块,向第一用户提供用户接口,该用户接口显示从第一联盟区块链获得的第一数字活动数据;接收子模块,接收来自所述第一用户的指示所述第一数字活动数据是否正确的指示;发送子模块,向去中心化标识(DID)区块链发送来自第一用户的用于指示第一数字活动数据是否正确的指示。
在可选的实施例中,该应用可以包括数字钱包去中心化应用。
图26是根据本文实施例的装置2600的模块的示例的图。装置2600可以是数据去中心化标识区块链节点的实施例的示例,其被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置2600可以对应于上述实施例,并且装置2600包括以下:
·接收模块2602,接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,所述第一请求包括第一数字活动数据的第一哈希值、与第二用户的第一去中心化标识相关联的第一数字活动去中心化标识、和第一联盟区块链的第一业务去中心化标识,第一请求是从第一联盟区块链发送的、并在去中心化标识(DID)区块链接收,该去中心化标识区块链配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,以及第一数字活动数据被存储在第一联盟区块链上;
·确定模块2604,确定所述第一数字活动去中心化标识,所述第一哈希值和所述第一业务去中心化标识是否有效;和
·管理模块2606,通过使用关于第一数字活动去中心化标识、第一哈希值及第一业务去中心化标识是否有效的确定,来管理对第二用户访问存储在第一联盟区块链中的第一数字活动数据的授权。
在可选实施例中,装置2600还可包括存储子模块,在接收第一请求之前,存储由第一联盟区块链提供的第一数字活动数据的第二哈希值,其中,确定第一哈希值是否有效包括:将第一哈希值与存储的第二哈希值进行比较,如果第一哈希值与存储的第二哈希值相同,则确定第一哈希值有效。
在可选实施例中,装置2600可以进一步包括发送子模块,向与第一用户相关联的应用发送第一消息,以向第一用户通知来自第二用户的请求。
在可选实施例中,与第一用户相关联的应用可以包括数字钱包去中心化应用。
在可选实施例中,装置2600还可包括接收子模块,从应用接收第二消息,该第二消息指示第一用户是否授权第二用户访问第一数字活动数据,其中,管理对访问第一数字活动数据的授权至少部分地基于第二消息是否指示第一用户授权第二用户访问第一数字活动数据。
在可选实施例中,装置2600还可包括发送子模块,在确定第一数字活动去中心化标识、第一哈希值及第一业务去中心化标识是有效的,并接收指示该第一用户授权第二用户访问第一数字活动数据第二消息之后,向第一联盟区块链发送第三消息,以指示第一用户已授权第二用户访问第一数字活动数据。
在可选实施例中,第二消息可以包括第二用户访问第一数字活动数据的条件。该条件可以包括时间限制条件,该时间限制条件指定第二用户只能在指定的时间限制内访问第一数字活动数据。
图27是根据本文实施例的装置2700的模块的示例的图。装置2700可以是执行应用程序的用户设备的实施例的示例,被配置为控制或管理对访问存储在联盟区块链中的用户数据的授权。装置2700可以对应于上述实施例,并且装置2700包括以下:
·第一接收模块2702,接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,该第一数字活动数据存储在第一联盟区块链中,该第一请求是从去中心化标识(DID)区块链发送的,所述去中心化标识(DID)区块链被配置为存储与多个用户的多个去中心化标识(DID)相关联的记录,并且所述第一请求在与第一用户关联的应用处接收;
·提供模块2704,提供用户接口以向第一用户显示第一请求;
·第二接收模块2706,接收来自第一用户的、关于是否授权第二用户访问存储在第一联盟区块链中的第一数字活动数据的指令;和
·发送模块2708,向去中心化标识区块链发送第一消息,该第一消息指示第一用户是否授权第二用户访问第一数字活动数据。
在可选实施例中,第一消息可以包括第二用户访问第一数字活动数据的条件。该条件可以包括时间限制条件,该时间限制条件指定第二用户只能在指定的时间限制内访问第一数字活动数据。
以下内容提供了关于去中心化标识的其他信息,并描述了如何生成和管理去中心化标识的示例。
图28是示出数据授权平台2800的图,该数据授权平台能够使用户(2802a、…、2802n1,统称为2802)授权其他用户访问或与之共享的用户数据,其中,用户数据存储在与为用户提供服务的业务实体的业务***(2806a、…、2806n2,统称为2806)相关联的联盟区块链(2804a、…、2804n2,统称为2804)中。数据授权平台2800与数据去中心化标识区块链2808相关联,该数据去中心化标识区块链2808存储与用户的去中心化标识、联盟区块链的去中心化标识、以及与各自特定用户和特定联盟区块链相关联的去中心化标识有关的信息。数据去中心化标识区块链2808的多个副本由区块链网络2840维护,其中,数据授权平台2800是区块链网络2840的参与者。用户2802和业务***2806可通过可以是例如因特网的网络2810与数据授权平台2800通信。
数据授权平台2800可以包括一个或多个计算机***,例如执行软件以实现本文中描述的处理的本地和/或云计算机***。数据授权平台2800的各种模块可以用硬件和/或软件来实现。在一些实施方式中,数据授权平台2800可以包括去中心化标识生成模块2812,其包括用户去中心化标识生成模块2814、业务去中心化标识生成模块2816、以及联盟区块链数字活动去中心化标识生成模块2818。例如,用户去中心化标识生成模块2814可以被配置为根据图5所示的处理500生成数字身份去中心化标识512。业务去中心化标识生成模块2816可以被配置为根据图6所示的处理600生成业务去中心化标识610。联盟区块链数字活动去中心化标识生成模块2818可以被配置为根据图7所示的处理700生成联盟区块链数字活动去中心化标识708。
在一些实现方式中,数据授权平台2800可以包括身份验证模块2820,该身份验证模块2820包括用户去中心化标识验证模块2822、业务去中心化标识验证模块2824、以及联盟区块链数字活动去中心化标识验证模块2826。在处理700中,数字钱包Dapp 502向数据去中心化标识区块链网络508发送对新的联盟区块链数字活动去中心化标识708的请求,其中,该请求包括用户的数字身份去中心化标识和联盟区块链的业务去中心化标识。用户去中心化标识验证模块2822可以验证用户的数字身份去中心化标识的有效性,而业务去中心化标识验证模块2824可以验证联盟区块链的业务去中心化标识的有效性。在图9的处理900中,联盟区块链602向数据去中心化标识区块链网络508发送请求,其中,该请求包括数字活动数据的哈希值和与数字活动数据相关联的数字活动去中心化标识。数字活动去中心化标识验证模块2826可以验证数字活动去中心化标识的有效性。
在图11的处理1100中,联盟区块链602向数据去中心化标识区块链网络508发送请求,其中,该请求来自希望访问第一用户的数字活动数据的第二用户。该请求包括第二用户304的联盟区块链数字活动去中心化标识1106、联盟区块链602的业务去中心化标识(BizDID)、以及第二用户304请求的数字活动数据的哈希值1111。数字活动去中心化标识验证模块2826可以验证第二用户304的联盟区块链数字活动去中心化标识1106的有效性,业务去中心化标识验证模块2824可以验证联盟区块链602的业务去中心化标识(BizDID)的有效性。
数据授权平台2800可以包括用户数字活动处理模块2828,该用户数字活动处理模块2828包括用户数字活动数据确认模块2830和用户数字活动数据授权模块2832。用户数字活动数据确认模块2830根据图9中的处理900可以促进对用户数字活动数据的确认。用户数字活动数据授权模块2832根据图11中的处理1100可以促进对第三方访问用户数字活动数据的授权。
数据授权平台2800包括用户接口模块2834,被配置为提供允许用户访问数据授权平台2800的函数的用户接口。数据授权平台2800包括区块链处理模块2836,被配置为执行区块链网络2840的区块链节点2838的函数、并维护数据去中心化标识区块链2808的副本2808a。例如,数据去中心化标识区块链2808a存储类似于图10C的记录1020的记录2842。
在一些实施方式中,区块链网络2840是联盟区块链网络2840,其中,通过共识协议将区块添加到区块链2808。区块链网络中的多个共识节点参与共识协议并执行工作以将区块添加到区块链中。数据授权平台2800是共识节点之一。计算机***2846可以执行共识节点2844的函数,并维护数据去中心化标识区块链2808的本地副本2808b。
在一些实施方式中,每个业务***2806是联盟区块链网络的参与者。例如,业务***2806a是联盟区块链网络2804a的参与者2848a,其维护联盟区块链2850a的副本。业务***2806a向用户2802提供服务,并将包括关于与用户2802相关联的数字活动数据的信息的记录存储在联盟区块链2850中。该记录可以类似于例如图10A中的记录1000或图10B中的记录1010。例如,业务***2806n2是联盟区块链网络2804n2中的参与者2848n2,其维护联盟区块链2850n2的副本。业务***2806n2向用户2802提供服务,并且将包括关于与用户2802相关联的数字活动数据的信息的记录存储在联盟区块链2850n2中。该记录可以类似于例如图10A中的记录1000或图10B中的记录1010。
图29是示出了数据授权平台2800的广泛应用的在线服务平台2900的图。数据授权平台2800是数据去中心化标识区块链网络2840的参与者,其维护数据去中心化标识区块链2808,该数据去中心化标识区块链2808存储用于控制或管理对用户数据的授权的记录。包括例如Alice 2902、Bob2904和用户N1 2906在内的用户使用业务实体通过业务***提供的服务,这些业务***包括但不限于例如仓单***2908、医疗保健***2910、银行***2912、购物***2914、教育***2916、房屋租赁***2918、运输***2920和业务***N2 2922。业务***2908至2922中的每个业务***都可以包括在线和离线组件,并且可以通过业务实体的门户网站或代理与用户2902至2906进行交互。业务***2908至2922中的每个业务***都是联盟区块链网络的参与者,每个业务***存储与提供给用户的服务相关联的数字活动数据。
每个用户都有唯一的去中心化标识,每个联盟区块链都有唯一的去中心化标识。对于每对用户和联盟区块链,都有与关联于用户及联盟区块链的数字活动数据相关联的唯一去中心化标识。
例如,仓单***2908是仓单联盟区块链网络2924的参与者,仓单***2908将数字活动数据存储在仓单联盟区块链2926中,其中,数字活动数据与提供给用户的仓单服务相关联。仓单联盟区块链2926可以存储类似于例如图10A中所示的记录1000的记录。数据去中心化标识区块链2840存储用于控制或管理对访问存储在仓单联盟区块链2926中的用户数据的授权的信息。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_WareHouseReceipt与关联于Alice 2902的数字活动数据相关联,并存储在仓单联盟区块链2926中。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_WareHouseReceipt与关联于Bob 2904的数字活动数据相关联,并存储在仓单联盟区块链2926中。
当Alice 2902使用仓单***2908的服务时,与Alice 2902相关联的数字活动数据被生成并被存储在仓单联盟区块链2926中。数据授权平台2800的用户数字活动数据确认模块2830与关联于Alice 2902的应用程序(例如由Alice 2902控制的数字钱包Dapp)进行交互,以确认数字活动数据,并将关于数字活动数据的信息(例如数字活动数据的哈希值)使用图9的处理900存储在数据去中心化标识区块链2808中。
当Bob 2904希望获得对有关Alice 2902的、并存储在仓单联盟区块链2926中的记录的访问时,Bob 2904使用例如由Bob 2904控制的数字钱包Dapp的应用程序来与数据授权平台2800的用户数字活动数据授权模块2832进行交互,其反过来又与Alice 2902控制的数字钱包Dapp进行交互,以根据图11的处理1100从Alice 2902获得授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_WareHouseReceipt执行处理1100中的各种验证。
当用户N1 2906希望获得对有关Bob 2904的、并存储在仓单联盟区块链2926中的记录的访问时,用户N1 2906使用例如由用户N1 2906控制的数字钱包Dapp的应用程序来与用户数字活动数据授权模块2832进行交互,其反过来又与Bob 2904控制的数字钱包Dapp进行交互,以根据处理1100从Bob 2904获得授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_WareHouseReceipt在处理1100中执行各种验证。
例如,医疗保健***2910向用户提供医疗保健服务,并且是医疗保健联盟区块链网络2928的参与者,医疗保健***2910将数字活动数据存储在医疗保健联盟区块链2930中,其中,数字活动数据与提供给用户的医疗保健服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_Healthcare与有关Alice 2902的并存储在医疗保健联盟区块链2930中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_Healthcare与有关Bob 2904的并存储在医疗保健联盟区块链2930中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_Healthcare来控制或管理对访问有关Alice 2902的并存储在医疗保健联盟区块链2930中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_Healthcare来控制或管理对访问有关Bob2904的并存储在医疗保健联盟区块链2930中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_Healthcare来控制或管理对访问有关用户N1 2906的并存储在医疗保健联盟区块链2930中的数字活动数据的授权。
银行***2912向用户提供金融服务,并且是银行联盟区块链网络2932的参与者,银行***2912将数字活动数据存储在银行联盟区块链2934中,其中,数字活动数据与提供给用户的金融服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_Banking与有关Alice 2902的、并存储在银行联盟区块链2934中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_Banking与有关Bob 2904的、并存储在银行联盟区块链2934中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_Banking,来控制或管理对访问有关Alice 2902的、并存储在银行联盟区块链2934中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_Banking,来控制或管理对访问有关Bob 2904的、并存储在银行联盟区块链2934中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_Banking,来控制或管理对访问有关用户N1 2906的、并存储在银行联盟区块链2934中的数字活动数据的授权。
购物***2914向用户提供购物服务,并且是购物联盟区块链网络2936的参与者,该购物***2914将数字活动数据存储在购物联盟区块链2938中,其中,数字活动数据与提供给用户的购物服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_Shopping与有关Alice 2902的并存储在购物联盟区块链2938中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_Shopping与有关Bob 2904的并存储在购物联盟区块链2938中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_Shopping,来控制或管理对访问有关Alice 2902的、并存储在购物联盟区块链2938中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_Shopping,来控制或管理对访问有关Bob 2904的、并存储在购物联盟区块链2938中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_Shopping,来控制或管理对访问有关用户N1 2906的、并存储在购物联盟区块链2938中的数字活动数据的授权。
教育***2916向用户提供教育服务,并且是联盟区块链网络2940的参与者,教育***2916将数字活动数据存储在联盟区块链2942中,其中,数字活动数据与提供给用户的教育服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_Education与有关Alice 2902的并存储在教育联盟区块链2942中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_Education与有关Bob2904的并存储在教育联盟区块链2942中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_Education,来控制或管理对访问有关Alice 2902的、并存储在教育联盟区块链2942中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_Education,来控制或管理对访问有关Bob 2904的、并存储在教育联盟区块链2942中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_Education,来控制或管理对访问有关用户N1 2906的、并存储在教育联盟区块链2942中的数字活动数据的授权。
住房租赁***2918向用户提供住房租赁服务,并且是联盟区块链网络2944的参与者,住房租赁***2918将数字活动数据存储在联盟区块链2946中,其中,数字活动数据与提供给用户的住房租赁服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_HousingRental与有关Alice 2902的并存储在房屋租赁联盟区块链2946中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_HousingRental与有关Bob 2904的并存储在房屋租赁联盟区块链2946中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_HousingRental,来控制或管理对访问有关Alice 2902的、并存储在房屋租赁联盟区块链2946中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_HousingRental,来控制或管理对访问有关Bob 2904的、并存储在房屋租赁联盟区块链2946中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_HousingRental,来控制或管理对访问有关用户N1 2906的、并存储在房屋租赁联盟区块链2946中的数字活动数据的授权。
运输***2920向用户提供运输服务,并且是联盟区块链网络2948的参与者,运输***2920将数字活动数据存储在联盟区块链2950中,其中,数字活动数据与提供给用户的运输服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_Transportation与有关Alice 2902的并存储在运输联盟区块链2950中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_Transportation与有关Bob 2904的并存储在运输联盟区块链2950中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_Transportation,来控制或管理对访问有关Alice 2902的、并存储在运输联盟区块链2950中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_Transportation,来控制或管理对访问有关Bob 2904的、并存储在运输联盟区块链2950中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_Transportation,来控制或管理对访问有关用户N1 2906的、并存储在运输联盟区块链2950中的数字活动数据的授权。
以类似的方式,业务***N2 2922向用户提供服务,并且是联盟区块链网络2952的参与者,业务***N2 2922将数字活动数据存储在联盟区块链2954中,其中,该数字活动数据与提供给用户的服务相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Alice_Business_N2与有关Alice 2902的并存储在联盟区块链2954中的数字活动数据相关联。联盟区块链数字活动去中心化标识,例如DigitalActivityDID_Bob_Business_N2与有关Bob 2904的并存储在联盟区块链2954中的数字活动数据相关联。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Alice_Business_N2,来控制或管理对访问有关Alice 2902的、并存储在联盟区块链2954中的数字活动数据的授权。数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_Bob_Business_N2,来控制或管理对访问有关Bob 2904的、并存储在联盟区块链2954中的数字活动数据的授权。类似地,数据授权平台2800使用联盟区块链数字活动去中心化标识DigitalActivityDID_User_N1_Business_N2,来控制或管理对访问有关用户N1 2906的、并存储在联盟区块链2954中的数字活动数据的授权。
去中心化标识生成模块2812在向用户和联盟区块链发布去中心化标识之前,验证管理联盟区块链的用户和业务实体的身份。这样可以防止冒名者盗用另一用户的身份,并防止在未经授权的情况下获得访问其他用户的数据。下面描述用于管理去中心化标识的技术的示例,这些技术使去中心化标识管理***能够向实体(例如,用户和企业)提供唯一且可验证的去中心化标识。
可验证声明(VC)可允许不同实体之间进行授权、背书和确认。例如,数据授权平台2800的业务***2806(图28)可以在向客户提供服务和/或产品之前使用其客户的去中心化标识和可验证声明来标识和认证客户。在执行图5、6、7、9和11的处理500、600、700、900和1100时,数据授权平台2800可以使用用户2802的去中心化标识和可验证声明来标识和认证用户。
在一些实施例中,可验证声明可以提供关于实体的品质、特征、关系和其他相关信息的可验证的在线信息。可验证声明可以包括预设格式的描述性文本(例如JSON-LD),该描述性文本描述有关去中心化标识的一个或多个声明(例如,去中心化标识的所有者的年龄、去中心化标识的所有者的教育背景)以及针对该声明的实体的背书。可验证声明可以包括各种属性,例如背景、标识、类型、凭证主题、发布者、发布日期、证明、有效期、状态和/或自我介绍。可验证声明可以指定其声明的类型,其可以指示声明的结构。这可以促进可验证声明发布者和可验证声明验证者的自动处理。
例如,个人可能期望使用由业务实体提供的服务,该服务需要证明个人已超过18岁。个人可以是去中心化标识的所有者,并且可以请求由提供公民年龄验证的政府机构发布的可验证声明。业务实体可以验证该可验证声明,以确定个人符合年龄要求。在这种情况下,个人可以是去中心化标识所有者和可验证声明所有者;政府机构可以是可验证声明发布者,而业务实体可以是可验证声明验证者。
如下所述,在一些实施例中,区块链网络、云应用、代理服务、解析器服务、用户应用、应用编程接口(API)服务、密钥管理***(KMS)、身份认证***共同协作以使得能够生成和认证去中心化标识、发布和验证可验证声明。数据授权平台2800可以提供一个或多个API接口,用于与用户2802和业务***2806的应用程序进行交互。数据授权平台2800可以提供代理服务,代表用户2802和业务***2806执行与去中心化标识和可验证声明有关的各种操作。例如,数据认证平台可以提供可以集成到用户2802或业务***2806的应用中的SDK,以直接执行与去中心化标识和可验证声明有关的操作。数据授权平台2800还可以管理现实世界中个体的身份到对应的去中心化标识的映射。
用于生成去中心化标识的***和方法的示例在2019年8月30日提交的PCT申请PCT/CN2019/103780和2019年10月11日提交的中国专利申请CN201910963431.0中进行了描述。用于将去中心化标识映射到现实世界实体的***和方法的示例在2019年7月9日提交的申请PCT/CN2019/095299中进行了描述。上述三个专利申请通过引用整体并入。
下面描述各种去中心化标识(例如,与用户相关联的数字身份去中心化标识512、与联盟区块链相关联的业务去中心化标识610、以及与用户和联盟区块链相关联的数字活动去中心化标识708)如何生成的示例。图30示出了与数据去中心化标识区块链相关联的网络环境3000的示例(例如508)。客户端计算设备3011可以耦接到服务器端3018,并且服务器端3018和节点B可以通过各种通信网络耦接到区块链***3012。类似地,服务器端3018可以可选地耦接到更多类似于区块链***3012的区块链***,例如,区块链***3013和区块链***3014。每个区块链***可以维护一个或多个区块链。
在一些实施例中,客户端计算设备3011可以包括一个或多个服务器(例如,节点C)和一个或多个其他计算设备(例如,节点A1、节点A2、节点A3)。节点A1、节点A2和节点A3可以耦接到节点C。节点C可以由具有各种本地账号(例如,从点A1、节点A2、节点A3访问的本地账号)的实体(例如,网站、移动电话应用、组织、公司、企业)实现。例如,移动电话应用(例如,数字钱包Dapp 502)可以使数百万个终端用户从各自的用户账号访问该应用的服务器。应用的服务器可以相应地存储数百万个用户账号。客户端计算设备3011的组件及其布置可以具有许多其他配置。
在一些实施例中,区块链***3012可以包括维护一个或多个区块链(例如,公有区块链、私有区块链、联盟区块链)的多个区块链节点(例如,区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i)。其他区块链***(例如,区块链***3013)可以包括维护另一区块链的区块链节点的类似布置。每个区块链节点都可以在一个或多个区块链***中找到。区块链节点可以包括全节点。全节点可以下载每个区块和区块链交易,并对照区块链的共识规则对他们进行检查。区块链节点可以形成一个网络,其中一个区块链节点与另一区块链节点通信。所示的区块链节点的次序和数量仅仅是为了说明的示例。区块链节点可以在计算机服务器中实现。例如,每个区块链节点可以在服务器或服务器集群中实现。每个区块链节点可以对应于经由诸如TCP/IP的各种类型的通信方法耦接在一起的一个或多个物理硬件设备或者虚拟设备。
在一些实施例中,节点B可以包括轻节点。轻节点可以不下载完整的区块链,而是可以只下载区块头以验证区块链交易的真实性。轻节点可以由全节点(例如,区块链***3012中的区块链节点)服务并且有效地依赖于全节点来访问区块链的更多函数。轻节点可以通过安装适当的软件而在诸如膝上型计算机和移动电话之类的电子设备中实现。例如,节点B可以将区块链交易发送到区块链***3012以添加到区块链。
在一些实施例中,可以有更多客户端计算设备耦接到服务器端3018,类似于客户端计算设备3011。服务器端3018可以提供区块链即服务(BaaS),并且被称为BaaS云。在一个实施例中,BaaS是一种云服务模型,其中,客户端或开发人员将网络应用或移动应用的幕后方面外包。BaaS可以为区块链上发生的活动提供预先编写的软件,例如用户认证、数据库管理和远程更新。BaaS云可以在服务器、服务器集群或其他设备中实现。在一个实施例中,BaaS云提供基于区块链技术的企业级平台服务。这项服务可以帮助客户端构建安全且稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。基于云的丰富的安全策略和多租户隔离,BaaS云可以使用芯片加密技术来提供高级的安全保护。基于高度可靠的数据存储,此服务可提供可以快速扩展而不会中断的端到端和高可用性的服务。BaaS云可以为标准区块链应用和数据提供本地支持。例如,数据授权平台2800可以向业务***2806提供BaaS,以帮助管理联盟区块链2804。
在环境3000中,***、节点和设备中的每个可以安装有适当的软件(例如,应用编程接口)和/或硬件(例如,具有链接到网络的有线或无线连接)以访问环境3000中的其他设备。通常,***、节点和设备可以通过一个或多个有线或无线网络(例如,互联网)彼此通信,通过所述网络可以通信数据。***、节点和设备中的每个可以包括一个或多个处理器以及耦接到所述一个或多个处理器的一个或多个存储设备。存储设备可以是,例如非暂态的、计算机可读的、并且配置有可由一个或多个处理器执行的指令,以使一个或多个处理器执行本文中描述的操作。指令可以存储在存储设备中,或者可以通过通信网络下载,而不必存储在存储设备中。尽管在图中将***、节点和设备示出为单独的组件,但是这些***、节点和设备也可以实现为单个设备或耦接在一起的多个设备。例如,节点B可以集成到区块链节点2中。
诸如节点A1、节点A2、节点A3、节点B和节点C之类的设备可以安装有适当的区块链软件以发起、转发或访问区块链交易。术语“区块链交易”可以指在验证后在区块链***中执行并记录在区块链中的任务单元。在一些实施例中,服务器端3018可以基于从节点A1、A2或A3获得的信息来构建区块链合约。服务器端3018可以将区块链合约添加至区块链交易中。在服务器端3018将区块链交易提交给区块链***之后,区块链节点可以验证区块链交易以添加到区块链。如果将区块链交易添加到区块链,则区块链合约被部署在区块链上并在特定状态下被发起。通过一个或多个附加区块链交易,可以调用部署的区块链合约以更新特定状态。
可以根据共识规则来验证区块链交易。例如,下面提供了工作量证明(POW)共识处理。尽管如此,诸如POS(权益证明)、DPOS(代表权益证明)和PBFT(实用拜占庭容错)的其他类型的共识处理可以类似地应用于所公开的***和方法。
在关于区块链交易验证的一些实施例中,在接收到未确认的区块链交易的区块链交易请求后,接收方区块链节点可以对区块链交易执行一些初步验证。例如,区块链节点1可以在从节点C接收到区块链交易之后执行初步验证。一旦被验证,区块链交易可以被存储在接收方区块链节点(例如,区块链节点1)的数据库中,该接收方区块链节点也可以将该区块链交易转发至一个或多个其他区块链节点(例如,区块链节点3、区块链节点4)。类似地,每个区块链节点可以包括或耦接到存储数据库的存储设备。该数据库可以存储多个未确认的区块链交易。在接收到区块链交易之后,一个或多个其他区块链节点可以重复由接收方区块链节点完成的初步验证和广播处理。
为了验证,每个区块链节点可以根据其偏好从数据库中选择一些区块链交易,并将其格式化为针对该区块链的提出的新区块。区块链节点可以通过投入计算能力来解决复杂的数学问题,从而对提出的新区块进行“挖矿”。如果区块链交易涉及区块链合约,则区块链节点可以在对应的虚拟机(VM)中本地执行区块链合约。为了处理区块链合约,区块链网络的每个区块链节点都执行相应的虚拟机并执行区块链合约中相同的指令。虚拟机是基于计算机架构的计算机***的软件仿真,并提供物理计算机的功能。区块链环境中的虚拟机可以被理解为旨在用作区块链合约的运行时环境的***。
根据共识规则成功挖出区块链交易的提出的新区块的特定区块链节点可以将新区块打包至其区块链的本地副本中,并将结果组播到其他区块链节点。该特定区块链节点可以是首先成功完成验证、已经获得验证特权和基于另一共识规则已被选择的区块链节点。然后,其他区块链节点可以遵循由该特定区块链节点执行的相同执行顺序,以在新区块中本地执行区块链交易,彼此验证执行结果(例如,通过执行哈希计算),并将他们的区块链的副本与该特定区块链节点的副本同步。通过更新其本地区块链副本,其他区块链节点可以类似地将区块链交易中的此类信息写入各自的本地存储设备。因此,区块链合约可以被部署在区块链上。如果在某一时刻验证失败,则拒绝区块链交易。
部署的区块链合约可以具有地址,根据该地址可以访问部署的合约。区块链节点可以通过向区块链合约输入特定参数来调用部署的区块链合约。在一个实施例中,可以调用部署的区块链合约以添加或更新区块链合约中的特定信息,从而更新区块链合约中的一个或多个状态。在一个实施例中,可以通过查询添加到区块链的相应区块链交易来从区块链中检索区块链合约的一个或多个状态。最近更新的状态可以反映在最新相关的区块链交易中。尽管如上所述,其他类型的区块链***和相关的共识规则可以应用于本文中描述的设备和方法。
图31示出了根据一些实施例的用于实现区块链交易的框架。客户端计算设备3011可以向服务器端3018发送信息(例如,具有用于生成区块链账号的相关信息的请求),以使服务器端3018生成区块链账号。服务器端3018可以生成加密密钥,并将该请求与其他账号生成请求一起编译。服务器端3018可以将包括编译的账号生成请求的区块链交易(例如,区块链交易A)发送到一个或多个区块链节点以供执行。
在一些实施例中,节点B可以构建签名的区块链交易并将其发送到一个或多个区块链节点以供执行。节点B可以构建区块链交易B,该交易B可以包括用于部署或调用部署的区块链合约的区块链合约B。例如,区块链交易B可以包括生成区块链账号或调用部署的区块链合约A的区块链合约。可以在用户端应用3121中以源代码编程区块链合约B。例如,用户或机器可以对区块链合约B进行编程,用户或机器可以使用将源代码转换为字节码的相应编译器来编译源代码。区块链交易B可以包括以下信息:诸如随机数(例如交易序列号)、from(例如节点B的区块链地址或另一区块链地址)、to(例如,空,如果部署区块链合约)、交易费用、值(例如,交易金额)、签名(例如,节点B的签名)和/或数据(例如,发送至合约账号的消息)。节点B可以通过远程过程调用(RPC)接口3123将区块链交易B发送到一个或多个区块链节点以供执行。RPC是一种协议,第一程序(例如,用户端应用)可以使用该协议来从位于网络上的另一计算机(例如,区块链节点)中的第二程序请求服务,而不必理解网络细节的协议。当第一程序促使进程在不同地址空间中执行时,其如同正常(本地)进程调用,而无需程序员明确地编码远程交互的细节。
在一些实施例中,在接收到区块链交易(例如,区块链交易A或B)之后,接收方区块链可以验证区块链交易是否有效。例如,可以验证签名和其他格式。如果验证成功,接收方区块链节点就可将接收到的区块链交易(例如,区块链交易A或B)广播到区块链网络,该区块链网络包括各种其他区块链节点。一些区块链节点可以参与区块链交易的挖矿处理。区块链交易可以由特定节点挑选以进行共识验证,从而被打包到新区块中。如果区块链交易涉及区块链合约,则该特定节点可以为与合约账号地址相关联的区块链合约生成合约账号。如果区块链交易涉及调用部署的区块链合约,则该特定节点可以触发其本地虚拟机来执行接收到的区块链交易,从而从其区块链的本地副本调用部署的区块链合约并更新区块链中的账号状态。如果该特定节点成功挖出新区块,则该特定节点可以将新区块广播到其他区块链节点。其他区块链节点可以验证由该特定区块链节点挖出的新区块。如果达成共识,则将区块链交易B分别打包到由区块链节点维护的区块链的本地副本中。区块链节点可以类似地触发其本地虚拟机以执行区块链交易B,从而调用部署在区块链本地副本上的区块链合约A并进行相应的更新。
在接收到新区块时,其他区块链节点可以执行验证。如果对新区块有效达成了共识,则将新区块分别打包到由区块链节点维护的区块链的本地副本中。区块链节点可以类似地触发它们的本地虚拟机(例如,本地虚拟机1、本地虚拟机i、本地虚拟机2)以执行新区块中的区块链交易,从而调用区块链的本地副本(例如,本地区块链副本1、本地区块链副本i、本地区块链副本2)并进行相应的更新。每个区块链节点的硬件机器可以访问一个或多个虚拟机,所述虚拟机可以是相应的区块链节点的一部分或耦接到相应的区块链节点。可以触发相应的本地虚拟机来执行区块链交易,并且可以执行新块中的其他区块链交易。轻节点也可以与更新的区块链同步。
图32示出了根据一些实施例的与用于管理去中心化标识和可验证声明的***或平台(例如数据授权平台2800)相关联的环境3200。在该示例中,环境3200包括用户端***3210、服务端***3220、区块链3230和身份认证***3240。用户端***3210、服务端***3220和身份认证***3240可以是数据授权平台2800的一部分。区块链3230可以是区块链2808的一部分。用户端***3210可以包括多个计算机***、数据存储、云服务、移动应用、其他组件或以上的任意组合。例如,用户端***3210可以包括服务器3211和数据库3213。数据库3213可以存储与数据授权平台2800的用户的多个用户账号相关联的数据。数据授权平台2800可以为其用户生成和管理去中心化标识和可验证声明,并且可以包括一个或多个软件开发工具包(SDK)3212,用于管理生成和认证去中心化标识、或者管理发布和验证可验证声明。
在一些实施例中,为了实现与去中心化标识和可验证声明相关联的功能,用户端***3210可以与服务端***3220接口,该服务端***3220可以等同于图30和31中的服务器端3018、或是服务器端3018的一部分、或包括服务器端3018的一个或多个组件。服务端***3220可以包括一个或多个代理3221、一个或多个解析器3222、一个或多个密钥管理***3223、一个或多个云3224、其他组件、或以上的任意组合。代理3221可以提供与去中心化标识或可验证声明有关的各种服务或应用,并维护将来自用户端***3210的账号信息或其他业务数据映射到去中心化标识、可验证声明或者存储在一个或多个区块链上的其他信息或数据的数据库。代理3221可以提供一个或多个应用编程接口(API),用户端***3210可以使用该API来直接提交与去中心化标识或可验证声明有关的请求。代理3221可以管理用户端***3210与解析器3222和云3224之间的通信。
在一些实施例中,代理3221可以耦接到密钥管理***(KMS)3223。KMS 3223可以生成、分发和管理设备和应用的加密密钥。它们可能涵盖从密钥的安全生成到密钥的安全交换,再到安全的密钥处理和存储的安全性方面。密钥管理***3223的功能可以包括密钥生成、分发和替换以及密钥注入、存储和管理。密钥管理***3223可以包括或耦接到可信执行环境(TEE)。可信执行环境可以是设备的主处理器上与主操作***分离的隔离区域。可信执行环境可以提供隔离的执行环境,该隔离的执行环境提供例如隔离执行、使用可信执行环境执行的应用的完整性以及其资产的机密性的安全性特征。它可以保证内部加载的代码和数据在机密性和完整性方面得到保护。在一些实施例中,密钥管理***3223可以在可信执行环境中生成一个或多个加密密钥对。在输出加密密钥对之前,可信执行环境可以对私钥进行加密。私钥的加密可以基于例如数据加密标准(DES)、TripleDES、RSA、高级加密标准(AES)、双鱼算法(Twofish)等的各种方法或标准。密钥管理***3223可以存储与公钥相关联的加密私钥。为了使用私钥,密钥管理***3223可以将加密的私钥馈送到可信执行环境以进行解密和处理。
在一些实施例中,代理3221可以耦接到解析器3222,解析器3222可以包括用于管理代理与区块链3230之间的交互的软件应用,这些交互在与去中心化标识或可验证声明(例如,去中心化标识与去中心化标识文档之间的对应关系)有关的交易中进行。在此,根据上下文,区块链3230可以指代记录的账本或包括去中心化网络节点的区块链***,该去中心化网络节点存储记录的账本并参与共识处理以将数据添加到记录的账本。解析器3222可以是一个或多个基于云的服务的一部分,或者耦接到一个或多个基于云的服务。一个或多个基于云的服务可以与区块链即服务(BaaS)云3224相关联。BaaS云3224可以构建为一个或多个区块链3230提供各种接口的平台。BaaS云3224可以从外部应用接收输入,并且基于这些输入来促进生成和执行诸如区块链交易部署、区块链合约生成和执行以及区块链账号生成之类的操作。BaaS云3224还可以从一个或多个区块链3230获得信息和数据,并使用BaaS云3224将信息和数据提供给一个或多个其他***。代理3221可以直接耦接到云3224以使用其服务。代理3221、解析器3222和密钥管理***3223中的一个或多个可以集成为BaaS云3224的一部分。
在一些实施例中,解析器3222和云3224可以耦接到区块链3230。区块链3230可以包括一个或多个区块链合约3231。区块链合约3231中的一个或多个可以被配置为由与区块链3230相关联的虚拟机执行,以执行与去中心化标识和可验证声明相关联的一个或多个操作。所述操作可以包括生成新的去中心化标识、存储去中心化标识文档、更新去中心化标识文档、基于去中心化标识来标识去中心化标识文档、存储与可验证声明相关联的信息、和/或检索与可验证声明相关联的信息。解析器3222和云3224可以被配置为在区块链3230上部署一个或多个交易,该一个或多个交易调用一个或多个区块链合约3231。交易可以触发与去中心化标识和可验证声明有关的一个或多个操作。
在一些实施例中,网络环境可以包括身份认证***3240。身份认证***3240可以在去中心化标识和真实世界的身份之间建立映射关系。身份认证***3240可以与为个人或实体执行身份认证的实体相关联。可以基于个人或实体提供的文档和/或照片来执行身份认证。身份认证也可以基于直接收集的数据(例如照片、指纹和/或密码输入)执行。身份认证***3240可以耦接到用户端***3210和/或服务端***3220。身份认证***3240可以从用户端***3210或服务端***3220接收针对身份认证证明的一个或多个请求。作为响应,身份认证***3240可以执行任何必要的身份认证,并将身份认证证明发送回请求者。身份认证证明可以包括例如确认消息、安全密钥、和/或唯一标识码。身份认证***3240可以耦接到区块链***。链接至身份认证***3240的区块链***可以是耦接至服务端***3220的区块链***3230。可替代地,尽管图32示出了耦接至区块链3230的身份认证***3240,但是身份认证***3240也可以耦接至不同的区块链***。身份认证***3240可以直接或经由中间***(例如,BaaS云3224)访问区块链3230。
身份认证***3240可以包括可以在一个或多个服务器或云平台上实现的身份服务3241。在一些实施例中,身份服务3241可以被实现为服务端***3220(例如,云3224)的一部分。在其他实施例中,身份服务3241可以在与服务端***3220分离的***上实现。身份服务3241可以被配置为处理对身份认证的请求,以控制客户端应用3242来收集身份数据、生成身份认证证明、存储或访问数据库3243中的身份信息、执行区块链3230上的一个或多个操作(例如,获得身份信息、存储身份认证证明)。身份认证***3240可以包括经由网络连接到身份服务3241的客户端应用3242。客户端应用3242可以专用于身份认证,或者可以将身份认证作为其功能之一与一个或多个其他功能合并。客户端应用3242可以被配置为收集与用户相关联的数据。客户端应用3242还可以被配置为将收集到的数据与对应于声称的用户身份的预存储数据进行比较,以认证用户的身份。身份认证***3240可以包括连接到身份服务3241的数据库3243。数据库3243可以存储与多个个人或实体相关联的身份信息。身份信息可以包括例如身份认证证明、人的视觉特征、人的语音特征、人的指纹、人的签名、和/或与身份相关联的密码。
图33示出了根据一些实施例的与用于管理去中心化标识(例如,数字身份去中心化标识512、业务去中心化标识610、联盟区块链数字活动去中心化标识708)及可验证声明的基于区块链的***(例如,数据授权平台2800)相关联的架构。该***可以包括一个或多个代理服务3221、一个或多个解析器服务3222、以及一个或多个区块链合约3231。一个或多个代理服务3221可以被配置为处理与从用户接收的去中心化标识和可验证声明有关的请求。一个或多个代理服务3221可以管理用户端***3210上的账号信息与账号所有者的去中心化标识之间的映射关系。代理服务3221可以包括去中心化标识代理服务API 3310,该去中心化标识代理服务API 3310用于从用户端***3210接收与去中心化标识相关的请求。取决于请求的性质,可以将请求提供给用户代理3311以用于执行诸如生成和认证去中心化标识之类的操作,或者可以将请求提供给发布者代理3312以用于执行诸如发布可验证声明之类的操作。来自希望验证可验证声明的一方的请求可以被提供给验证者代理3313。一个或多个代理服务3221还可提供用于存储一个或多个可验证声明的可验证声明库3314。代理服务3221还可使用一个或多个存储设备3315和一个或多个数据库3316。代理服务3221可耦接到密钥管理***3223和BaaS云3224。代理服务3221可耦接到解析器服务3222。
在一些实施例中,代理服务3221的一个或多个代理可以向与解析器服务3222相关联的去中心化标识解析器API 3320发送一个或多个请求。解析器服务3222可以被配置为处理代理服务3221与区块链3230之间的交互。解析器服务3222可执行诸如从区块链3230获得数据、将数据添加到区块链3230、生成区块链合约3231、和/或将交易部署到区块链3230以调用区块链合约3231之类的操作。解析器服务3222可以包括:去中心化标识解析器3321,其被配置为管理存储在区块链3230上的去中心化标识和去中心化标识文档;以及可验证声明(Verifiable Claim,VC)解析器3322,其被配置为管理基于区块链3230生成的去中心化标识的可验证声明。解析器服务3222还可包括用于从区块链3231获得数据的***3324。***3324可以将获得的数据存储到数据库3323。数据可以由去中心化标识解析器3321和可验证声明解析器3322使用。去中心化标识解析器3321、可验证声明解析器3322和***3324可以耦接到BaaS云3224以与区块链3230进行交互。
在一些实施例中,区块链3230可以包括用于管理去中心化标识和去中心化标识文档的一个或多个区块链合约(3231a、3231b、3231c),并且包括用于管理可验证声明的一个或多个合约(3231d、3231e、3231f)。合约可以由与区块链3230相关联的一个或多个虚拟机执行,以执行诸如生成去中心化标识、存储去中心化标识文档、更新去中心化标识文档、和/或存储与可验证声明相关联的信息之类的操作。
图34示出根据一些实施例的与用于实现与去中心化标识和可验证声明相关联的功能的各种示例的***或平台相关联的网络环境。网络环境的组件可以分类为三层3410、3420和3430。在一些实施例中,底层或核心层3410可以包括一个或多个区块链3230,其可以包括一个或多个区块链合约(3231g、3231h、3231i),该一个或多个区块链合约可以被执行以执行与去中心化标识和可验证声明有关的操作。区块链3230可以存储多个去中心化标识和与去中心化标识相对应的多个去中心化标识文档。区块链合约(3231g、3231h、3231i)可以被配置为管理去中心化标识和去中心化标识文档之间的映射关系,以及去中心化标识文档的生成和更改。一个或多个解析器(3222a、3222b)可以访问区块链3230,以进行与去中心化标识和可验证声明有关的操作。解析器(3222a、3222b)可以被配置为向外部***提供服务,例如基于输入的去中心化标识来搜索去中心化标识文档或包含在去中心化标识文档中的数据。一个或多个方法库3411也可以为外部***采用,以与区块链3230进行交互。
在一些实施例中,中间曾或增强层3420可以包括一个或多个用户代理3311、一个或多个发布者代理3312、和/或一个或多个验证者代理3313。区块链3230可以包括联盟区块链,该联盟区块链对于不是联盟区块链的共识节点的用户可以直接访问或者可以不被其直接访问。用户代理3311可以为普通用户提供与区块链进行交互的接口。用户代理3311可以被配置为生成一个或多个去中心化标识、认证一个或多个去中心化标识、与一个或多个可验证数据注册表3421或一个或多个去中心化标识中心3422进行交互、向去中心化标识的所有者发送通知、或以上的任何组合。在此,去中心化标识中心3422可以包括***,在该***中去中心化标识的所有者存储该***的敏感数据。所有者可以授予某些其他实体(例如,发布可验证声明的机构)访问存储在去中心化标识中心3422中的数据。可验证数据注册表3421可包括用于存储和管理发布给去中心化标识的所有者的可验证声明的可验证声明库。发布者代理3312可以包括一个或多个API(例如,REST API)或SDK。发布者代理3312可以被配置为发布一个或多个可验证声明、撤回一个或多个可验证声明、检查和查看现有的可验证声明、发布可验证声明的模板、和/或维护可验证声明的模板。验证者代理3313可包括一个或多个API(例如,REST API)或SDK,并且被配置为验证可验证声明。在一些实施例中,层3420还可包括一个或多个代码库(例如,去中心化标识解析库3423、去中心化标识认证库3424),其可以被采用并用于与去中心化标识解析器3222或直接与区块链3230进行交互。可以将代码库打包到一个或多个SDK中,并用于执行例如去中心化标识认证、与区块链3230的交互或与区块链合约3231的接口之类的功能。发布者代理3312和验证者代理3313可以由与去中心化标识和可验证声明(例如能够为用户执行了解您的客户(KYC)的认证或背书的实体、或能够发布或验证可验证声明的实体)相关联的网络环境中的主要参与者使用(例如,政府机构、银行、金融服务提供商)。主要参与者可以提供可以通过与发布者代理3312或可验证代理3313的连接来集成的第三方服务。
在一些实施例中,上层或扩展层3430可以包括与去中心化标识和可验证声明有关的一个或多个外部服务或应用。所述服务或应用可以包括例如一个或多个发布者应用3431、一个或多个验证者应用3432、身份管理应用3433、和/或服务应用3434。发布者应用3431可以对应于为用户发布由实体签名或背书的可验证声明的实体(例如,政府机构、银行、信贷机构)。发布者应用3431可以在用户端***3210上操作。发布者应用3431可以包括发布者可验证声明管理器服务,其可以允许发布者管理发布的可验证声明、维持其状态(例如,有效性)、或执行其他合适的操作。发布者应用3431可以通过与发布者代理3312或者一个或多个代码库3423和3424连接或接口,来与层3410和3420进行交互。验证者应用3432可以对应于需要验证可验证声明以确定用户的信息(例如,身份、年龄、信用评分)的实体(例如,服务提供商、信用发布者)。验证者应用3432可以在用户端***3210上操作。验证者应用3432可以通过与验证者代理3313或者一个或多个代码库3423和3424连接或接口,来与层3410和3420进行交互。身份管理应用3433可以安装在与用户相关联的客户端设备或终端上。用户可以是去中心化标识的所有者,可以是个人、企业、组织和/或应用。身份管理应用3433可以允许用户管理与去中心化标识、原始数据或可验证声明相关联的加密密钥对,以从用户代理3311接收通知、以认证去中心化标识、以授予访问数据、和/或使用可验证声明、或以上的任意组合。身份管理应用3433可以通过与用户代理3311的连接或接口,来与层3410和3420进行交互。服务应用3434还可以耦接到用户代理3311,并且被配置为管理与一个或多个用户或账号的去中心化标识或可验证声明有关的功能。
图35和图36示出了由一个或多个用户端***3210、一个或多个解析器3222、一个或多个云3224、或一个或多个区块链***3230执行的与去中心化标识或可验证声明相关联的示例性操作。在一些实施例中,用户端***3210可以通过与去中心化标识解析器3222以及存储去中心化标识和去中心化标识文档的区块链3230接口,来管理一个或多个去中心化标识或一个或多个可验证声明。用户端***3210可以使用一个或多个SDK 3212来管理与关联于去中心化标识的方法兼容的去中心化标识。SDK 3212可以与用户端***3210使用的一个或多个应用集成。用户端***3210还可以与用于存储可验证声明的一个或多个服务端点、用于存储可验证声明的状态信息的一个或多个服务端点、用于认证去中心化标识的一个或多个服务端点、其他合适的***、或以上任意的组合接口。
图35和36示出了根据一些实施例的用于生成去中心化标识的方法。以下呈现的方法的操作旨在是说明性的。取决于实施方式,所述方法可以包括以各种次序或并行执行的附加的、更少的或可选的步骤。此外,在图35或36中执行的一个或多个步骤可以用在另一方法中执行的一个或多个合适的步骤代替。如图35和图36中执行某些步骤的设备或***,也可以由执行相同步骤的其他合适的设备或***代替。合适的设备或***可以包括具有类似功能的子***、父***或对应***。作为示例,由图35中的用户端***3210执行的一个或多个步骤可以由图36中的身份管理应用3433执行,反之亦然。作为另一示例,服务端***3220执行的一个或多个步骤可以由解析器3222执行,解析器3222可以是服务端***3220的子***。尽管本文描述了执行特定步骤的特定设备或***,但是本文考虑用于执行创建去中心化标识的任何适当步骤的任何适当设备或***。
在一些实施例中,如图35所示,用户端***3210可以为其一个或多个用户中的每个用户生成去中心化标识。用户端***3210可以控制与去中心化标识相关联的加密密钥对,并使用该加密密钥对执行与去中心化标识有关的各种操作,包括例如对区块链交易进行签名、对可验证声明进行签名、或认证去中心化标识。用户端***3210可以包括用于执行各种操作的SDK 3212。SDK 3212还可以管理用户端***3210和服务端***3220提供的各种接口之间的各种交互。这些接口可以包括用于分配去中心化标识的接口、用于生成去中心化标识文档的接口、用于向区块链3230添加去中心化标识文档的接口、用于搜索去中心化标识文档的接口、其他合适的接口、或其任意组合。可以通过例如软件程序和网络端口来提供接口。响应于在接口处接收到的请求,服务端***3220可以执行相应的操作,并且经由接口将结果返回到适当的外部***。图35所示的方法可以从步骤3502开始,在步骤3502中,用户端***3210的服务器3211可以获得将要获得去中心化标识的用户的身份认证。身份认证可以已经由身份认证***3240或另一合适的***执行。在其他实施例中,用户端***3210可能已经从身份认证***3240获得了用户的身份认证证明。用户的身份认证证明可以包括实名认证证明(例如,基于政府颁发的身份文件)、真人认证证明(例如,基于用户基于身份认证***3240的指令而拍摄的照片)、其他身份认证证明、或其任意组合。用户端***3210还可以生成或检索包括公钥和私钥的加密密钥对,以用于创建去中心化标识。
在步骤3504,服务器3211可以调用SDK 3212的函数以生成新的去中心化标识。服务器3211可以向SDK 3212提供各种信息以调用该函数。该信息可以包括与待生成的去中心化标识相对应的用户账号标识、为该去中心化标识生成加密密钥对的公钥或私钥、与待生成的去中心化标识相关联的一个或多个服务的说明、与服务器3211相关联的用于返回确认或其他通信的回调网络地址、其他合适的信息、或其任意组合。账号标识可以对应于具有与用户端***3210相关联的实体的用户的业务或服务账号。在步骤3506,用户端***3210可以使用SDK 3212向服务端***3220发送用于创建新的去中心化标识的请求。服务端***3220可以获得用于生成去中心化标识的请求。该请求可以包括加密密钥对的公钥,其可能已由用户端***3210生成。图35示出了一种场景,其中,用于生成去中心化标识的请求是从与第一实体(例如,用户端***3210)相关联的计算设备处接收的,该第一实体代表第二实体(例如,用户)生成去中心化标识。除了公钥之外,该请求还可以包括与第二实体(例如,用户)相关联的账号标识、与第二实体(例如,用户)相关联的简档信息、关于与去中心化标识相关联的一个或多个服务的信息、与第一实体(例如,用户端***3210)或第二实体(例如,用户)相关联的回调地址、其他合适的信息、或其任意组合。在图36中示出了替代场景,其中,用于生成去中心化标识的请求是直接从与拥有去中心化标识的实体相关联的计算设备接收的。在一些实施例中,该请求可以以应用编程接口(API)消息的形式送至服务端***所提供的一个或多个接口。
响应于从用户端***3210获得的请求,服务端***3220可以基于请求中的公钥来生成与区块链2330相关联的区块链账号。在步骤3508,服务端***3220可以向区块链***3230发送用于生成新的区块链账号的请求。在此,该请求可以以一个或多个区块链交易的形式被直接发送到区块链3230的一个或多个区块链节点,或者经由BaaS云3224或与区块链3230相关联的其他合适的接口***发送。在发送该请求之后,在步骤3510,服务端***3220可以从区块链3230获得已经生成了新的区块链账号的指示。区块链账号可以与区块链3230上的地址相关联。服务端***3220可以获得与新生成的区块链地址相关的信息。
然后,服务端***3220可以基于与区块链账号相关联的信息来生成去中心化标识。在步骤3512,服务端***3220可以基于区块链账号向用户分配去中心化标识。服务端***3220可以通过确定去中心化标识与关联于区块链3230的任何现有的去中心化标识不重复,来确保所分配的去中心化标识是唯一的。根据该实施例,可以在构造或上传与去中心化标识相对应的去中心化标识文档之前,将去中心化标识分配并将其确定为唯一。这可以有效地防止由于去中心化标识的重复而导致上传去中心化标识文档潜在的失败尝试,并且因此节省了在生成和上传去中心化标识文档中的处理和计算工作。服务端***3220可以通过存储账号标识和生成的去中心化标识之间的映射关系,来将去中心化标识与用户端***3210的用户账号相关联。服务端***3220还可存储去中心化标识的状态。作为示例并且不作为限制,去中心化标识的状态可以指示该去中心化标识是否已经注册到区块链3230,或者对应的去中心化标识文档是否已经存储在区块链3230中。在步骤3514,服务端***3220可以将消息发回与用户端***3210相关联的SDK 3212。该消息可以包括与新生成的去中心化标识相关联的信息。
在步骤3516,用户端***3210可以使用SDK 3212来生成与去中心化标识相关联的去中心化标识文档。去中心化标识文档可以包括与去中心化标识关联的信息,例如与去中心化标识关联的公钥、与去中心化标识关联的认证信息(例如,一种或多种认证方法)、与去中心化标识关联的授权信息(例如,与控制器关联的去中心化标识)、与去中心化标识关联的委派信息(例如,一种或多种委派方法)、与去中心化标识关联的一个或多个服务(例如,一种或多种类型的服务,例如凭证存储库服务和代理服务)、与去中心化标识相关联的一个或多个服务端点(例如,一个或多个服务端点中的每个的URI)、其他合适的信息、或其任意组合。当服务器3211在步骤3504调用SDK 3212时,SDK 3212可以基于从服务器3211接收的信息来生成去中心化标识文档。用户端***3210可以进一步使用SDK 3212来生成用于将去中心化标识文档添加到区块链3230的区块链交易。在此阶段生成的区块链交易可能是完整有效的,也可能是不完整且无效的。在一些实施例中,由用户端***3210生成的区块链交易可能缺少与区块链3230相关联的信息、与区块链3230相关联的一个或多个区块链合约、数字签名、其他合适的信息、或其任意组合。
在步骤3518,SDK 3212可以将去中心化标识文档发送到服务端***3220。如果SDK3212已经生成了区块链交易,则其可以将该区块链交易发送到服务端***3220,该服务端***3220可以包括去中心化标识文档。在该步骤,SDK 3212可以请求服务端***3220提供与已完成但未签名的区块链交易相关联的哈希值,以将去中心化标识文档添加到区块链3230。在从用户端***3210获得与去中心化标识相对应的去中心化标识文档之后,服务端***3220可以生成或完成用于将去中心化标识文档添加到区块链3230的区块链交易。区块链交易可以调用先前部署在区块链3230上的区块链合约3231,用于管理去中心化标识和对应的去中心化标识文档之间的关系。调用的区块链合约3231可以包括一个或多个接口,例如用于将一个或多个去中心化标识文档添加到区块链3230的接口。区块链合约3231的一个或多个接口可以包括与区块链合约3231的一个或多个可执行函数相对应的可执行代码。为了生成区块链交易,服务端***3220可以包括在区块链交易中的一个或多个信息项。一个或多个信息项可以包括与区块链3230相关联的地址、与区块链交易相关联的区块链合约3231的标识、与区块链交易相关联的区块链合约3231的版本信息、与区块链交易相关联的区块链合约3231的一个或多个接口的信息、其他合适的信息、或其任意组合。由服务端***3220添加到区块链交易的信息可以包括与区块链***3230相关联的公有或其他合适的信息、区块链3230上的区块链合约、或生成有效的区块链交易所需的其他信息。服务端***3220可以自动增添这样的信息,并且减轻用户端***3210保持跟踪这样的信息的负担。这可能会降低用户端***3210向区块链3230添加去中心化标识文档所需的技术能力。
由服务端***3220基于从用户端***3210接收的去中心化标识文档生成的区块链交易可以在该阶段是未签名的。服务端***3220可以根据区块链***3230可接受的哈希函数来确定未签名的区块链交易的哈希值。在步骤3520,服务端***3220可以将未签名的区块链交易的哈希值发送到用户端***3210。然后,在步骤3522,与用户端***3210相关联的SDK 3212可以在哈希值上生成数字签名。作为示例,可以通过使用与从服务器3211接收到的去中心化标识的所有者相关联的加密密钥对的私钥,来对哈希值进行加密以生成数字签名。在步骤3524,SDK 3212可以将数字签名返回给服务端***3220,从而授权该区块链交易。在步骤3524,从用户端***3210接收到数字签名之后,服务端***3220可以将数字签名添加到未签名的区块链交易中,以生成或完成用于将去中心化标识文档添加到区块链的区块链交易。然后,在步骤3526,服务端***3220可以将区块链交易发送到与区块链3230相关联的一个或多个区块链节点以添加到区块链。在步骤3528,服务端***3220可以从区块链3230获得信息,该信息用于确认在区块链3230中成功存储去中心化标识文档。在步骤3530,服务端***3220可以将确认消息返回给SDK 3212。确认消息可以包括已经生成的去中心化标识和去中心化标识文档。然后,在步骤3532,SDK 3212可以将去中心化标识和去中心化标识文档提供给服务器3211。在此,SDK 3212可以基于与从服务器3211接收的回调地址相关联的信息来发送与去中心化标识和去中心化标识文档相关联的信息。在步骤3534,服务器3211可以向用户发送确认成功生成去中心化标识和对应的去中心化标识文档的通知。
在一些实施例中,如图36所示,用户可以直接使用服务端***3220提供的一个或多个接口为其自身生成去中心化标识,而无需使用用户端***3210提供的服务。用户可以包括个人、企业、组织、另一合适的实体、或其任何组合。作为示例,用户可以使用身份管理应用3433或另一合适的软件或硬件***来与服务端***3220进行交互。身份管理应用3433可以由与服务端***3220相关联的实体开发,并被提供用于安装在与用户相关联的客户端设备上。身份管理应用3433可以被配置为管理与服务端***3220提供的各种接口的交互。图36所示的方法可以从步骤3542开始,用户可以向身份管理应用3433提供一个或多个输入,以便请求为用户生成去中心化标识。身份管理应用3433可以请求来自用户的输入,以验证用户的真实世界的身份。可选地,身份管理应用3433可能先前已获得与用户相关联的身份认证信息,并且可以被配置为检索这样的信息,例如在用户登录身份管理应用3433时。
在步骤3544,身份管理应用3433可以为用户生成加密密钥对。加密密钥对可以包括用于生成与用户相关联的去中心化标识的公钥和私钥。在步骤3546,身份管理应用3433可以向服务端***3220发送用于生成新的去中心化标识的请求。在步骤3548,服务端***3220可以向区块链***3230发送用于生成新的区块链账号的请求。在此,该请求可以以一个或多个区块链交易的形式被直接发送到区块链3230的一个或多个区块链节点,或者经由BaaS云3224或与区块链3230相关联的其他合适的接口***发送。然后,在步骤3550,服务端***3220可以从区块链3230获得指示已经生成了新的区块链账号的信息。区块链账号可以与区块链3230上的地址相关联。服务端***3230获得的信息可以包括与新生成的区块链地址相关联的信息。它可以包括足以生成去中心化标识的信息。在步骤3552,服务端***3220可以根据与区块链账号相关联的信息向用户分配唯一去中心化标识。在步骤3554,服务端***3220可以将消息发回身份管理应用3433。该消息可以包括与新生成的去中心化标识相关联的信息。
在一些实施例中,可以生成去中心化标识文档并将其存储在区块链3230上。在步骤3556,身份管理应用3433可以生成去中心化标识文档,并将与新生成的去中心化标识相关联的公钥和其他合适的信息(例如,认证信息)添加到去中心化标识文档。身份管理应用3433可以将与一个或多个服务端点相关联的信息(例如,与认证服务端点相关联的信息、与可验证声明库相关联的信息)添加到去中心化标识文档。认证服务端点和可验证声明库可以作为服务端***3220的一部分来提供,或者可以由第三方***提供。然后,在步骤3558,身份管理应用3433可以生成用于将去中心化标识文档添加到区块链3230的一个或多个区块链交易。在步骤3560,身份管理应用3433可以生成区块链交易的哈希值,并使用与去中心化标识相关联的私钥来为交易生成数字签名。可替换地,身份管理应用3433可以以类似于如图35的步骤3518、3520和3522所示的用户端***3210和服务端***3220之间的交互的方式与服务端***3220交互,以便生成区块链交易并对区块链交易进行签名。在步骤3562,身份管理应用3433可以将去中心化标识文档以及区块链交易发送到服务端***3220,用于发送到区块链***3230。在步骤3564,服务端***3220可以向区块链***3230发送一个或多个交易。一个或多个交易可以调用区块链合约3231,用于管理区块链3230上的去中心化标识和去中心化标识文档。在步骤3566,服务端***3220可从区块链3230获得指示去中心化标识文档已被成功存储的信息。在步骤3568,服务端***3220可以将确认转发至身份管理应用3433。在步骤3570,身份管理应用3433可以提供通知,该通知包括与生成的去中心化标识和去中心化标识文档相关联的信息,以显示给用户。
图37示出了根据一些实施例的用于使用去中心化标识认证服务来认证去中心化标识的方法。以下呈现的方法的操作旨在是说明性的。取决于实施方式,所述方法可包括以各种次序或并行执行的附加的、更少的或可选的步骤。在一些实施例中,拥有去中心化标识的用户可以使用由数据授权平台2800提供的去中心化标识认证服务来实现其对去中心化标识的所有权的认证。所有者可以将与去中心化标识相对应的公钥-私钥对授信给数据授权平台2800以进行存储。所有者可以提供去中心化标识认证服务的网络位置(例如,由URL标识)作为用于认证去中心化标识的服务端点。去中心化标识认证服务的位置标识可以被包括在与去中心化标识相关联的去中心化标识文档的“服务”字段中。
在一些实施例中,验证者3432(例如,需要验证客户信息的服务提供商)可以使用SDK3212来发起去中心化标识认证处理。在步骤3602,验证者3432可以获得由声称的所有者提供的去中心化标识。在步骤3604,验证者3432可以调用SDK 3212以生成去中心化标识认证质询。验证者3432可以将要认证的去中心化标识、和要向其发送对质询的响应的网络地址(例如,URL)输入到SDK 3212。在步骤3606,SDK 3212可以向解析器3222发送对与要认证的去中心化标识相关联的去中心化标识文档的查询。在步骤3608,解析器3222可以制定调用区块链合约3231的区块链交易以管理去中心化标识,并将该区块链交易发送到与区块链3230相关联的一个或多个区块链节点以供执行。结果,在步骤3610,解析器3222可获得与去中心化标识相对应的去中心化标识文档,并在步骤3612将其转发给SDK 3212。在步骤3614,验证者3432可以基于获得的去中心化标识文档使用SDK 3212来生成去中心化标识认证质询。在一些实施例中,去中心化标识认证质询可以包括通过使用与去中心化标识文档中记录的去中心化标识相关联的公钥对原始文本进行加密而生成的密文。质询还可以包括要向其发送响应的网络地址。在步骤3616,验证者3432可以从去中心化标识文档中获得与去中心化标识的认证服务端点相关联的信息。在步骤3618,验证者3432可以使用SDK 3212将质询发送到与去中心化标识相关联的去中心化标识认证服务。
在一些实施例中,在从验证者3432获得去中心化标识认证质询之后,在步骤3620,去中心化标识认证服务可以从所有者获得对于这种认证请求的同意。如果所有者提供针对该身份认证的同意或许可,则在步骤3622,去中心化标识认证服务可以调用其SDK 3212的版本以生成对去中心化标识认证质询的响应。在一些实施例中,对去中心化标识认证质询的响应可以包括明文,该明文是使用与去中心化标识相关联的私钥对质询中的密文进行解密的结果。在步骤3624,SDK 3212可以将响应返回到去中心化标识认证服务,然后在步骤3626,去中心化标识认证服务可以将响应发送到验证者3332提供的网络地址。在接收到对去中心化标识认证质询的响应之后,验证者3432可以在步骤3628调用其SDK 3212以检查响应。在步骤3630,SDK 3212可以确定响应是否证明提供去中心化标识的用户是去中心化标识的所有者。在一些实施例中,SDK 3212可以通过将响应中的解密文本与用于生成去中心化标识认证质询的原始文本进行比较来检查响应。如果确定响应是正确的,则在步骤3632,SDK 3212可将指示该去中心化标识是用户的有效身份证明的消息返回给验证者3432。在步骤3634,验证者3432可以通知用户关于去中心化标识的有效性。
图38示出了根据一些实施例的用于使用身份管理应用来认证去中心化标识的方法。以下呈现的方法的操作旨在是说明性的。取决于实施方式,所述方法可包括以各种次序或并行执行的附加的、更少的或可选的步骤。在一些实施例中,用户可以使用终端来管理去中心化标识,该终端可以包括身份管理应用或另一合适的应用。该应用可以包括SDK 3212的版本。在该示例中,用户可能需要来自服务提供商(即验证者)的服务,该服务提供商为了提供它的服务需要验证用户拥有特定的去中心化标识。用户可以向验证者发送服务请求。服务请求可以是HTTP请求的形式。
在步骤3702,用户可以调用身份管理应用3433以提供用于服务请求的认证信息。用户可以将原始服务请求作为输入提供给包括在身份管理应用3433中的SDK 3212。在步骤3704,SDK 3212可以使用与去中心化标识相关联的加密密钥对的私钥来对原始服务请求的内容进行签名。SDK 3212可以用于将去中心化标识和原始服务请求的数字签名添加到原始服务请求,以生成签名的服务请求。在原始服务请求是HTTP请求的情况下,SDK 3212可以将去中心化标识和数字签名添加到HTTP请求的报头。在步骤3706,SDK 3212可以将签名的服务请求发送到验证者3432。
在一些实施例中,在步骤3708,验证者3432可以调用其SDK 3212的版本以认证包括在签名的服务请求中的去中心化标识。在步骤3710,SDK 3212可以获得包括在签名的服务请求中的去中心化标识和数字签名。在签名的服务请求是HTTP请求的情况下,可以从HTTP请求的报头中获得去中心化标识和数字签名。在步骤3712,SDK 3212可以向解析器3222发送对与待认证的去中心化标识相关联的去中心化标识文档的查询。在步骤3714,解析器3222可以制定调用区块链合约3231的交易以管理去中心化标识,并将该交易发送到与区块链3230相关联的一个或多个区块链节点以供执行。结果,在步骤3716,解析器3222可以获得与去中心化标识相对应的去中心化标识文档,并在步骤3718将其转发到SDK 3212。在步骤3720,与验证者3432相关联的SDK 3212可以检查签名的服务请求,以基于获得的去中心化标识文档来确定它是否来自去中心化标识的所有者。在一些实施例中,SDK 3212可以使用从去中心化标识文档获得的公钥来解密数字签名,并且针对原始服务请求的哈希值来检查解密结果,以确定公钥是否与用于生成签名的服务请求中的数字签名的密钥相关联。如果是,则SDK 3212可以确定来自用户的服务请求是有效的。然后,在步骤3722,SDK 3212可以将服务请求发送到验证者3432以供处理。在步骤3724,验证者3432可以处理服务请求并向用户提供适当的服务。然后,在步骤3726,验证者3432可以将响应发送给用户以确认完成所请求的服务。
前述实施例中示出的***、装置、模块或单元可以通过使用计算机芯片或实体来现,或者可以通过使用具有特定功能的产品来实现。典型的实现设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和作用的实施例处理,可以参考前一方法中相应步骤的实施例处理。为简单起见,这里省略了细节。
由于装置实施基本上对应于方法实施,对于相关部件,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的模块可以是或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域的普通技术人员无需付出创造性劳动就能理解和实现本申请的实施例。
再次参照图16至图19以及图24至图27,可以将其解释为示出了内部功能模块和区块链节点的结构。执行主体本质上可以是电子设备,并且该电子设备包括以下:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,一个或多个计算机可读存储器耦接至一个或多个处理器且其上存储有编程指令,所述编程指令能够由所述一个或多个处理器执行以执行如本文中所述的算法、方法、函数、处理、流程和程序。本文还提供了一个或多个非暂态计算机可读存储介质,其耦接到一个或多个处理器并且具有存储在其上的指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器根据这里提供的方法的实施例执行操作。
本文还提供了用于实现本文提供的方法的***。该***包括一个或多个处理器,以及耦接到一个或多个处理器的计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器根据这里提供的方法的实施例执行操作。
本文中描述的主题、动作和操作的实施可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实施,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括一个或多个计算机可读存储介质,其上编码或存储有指令。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、或声明或程序性语言;它可以配置为任何形式,包括作为独立程序,或作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由数据通信网络互连的一个或多个位置上的一台或多台计算机。
计算机程序可以但非必须对应于文件***中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括:例如,通用和专用微处理器两者,和任意种类的数字计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接至处理器的非暂态计算机可读介质的数据。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。数据处理设备可以包括例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或者它们中一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一台或多台计算机或处理器执行,以通过对输入数据进行操作并生成输出来执行操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或向一个或多个存储设备传送数据。存储设备可以是例如,磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机不必需这样的设备。因此,计算机可以耦接到例如一个或多个存储器的本地和/或远程的一个或多个存储设备。例如,计算机可以包括作为计算机的组成部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,这里仅举几例。
组件可以通过直接或经由一个或多个中间组件例如电连接或光连接地彼此连接通信而彼此“耦接”。如果组件中的一个部件被集成到另一个中,则组件也可以被彼此“耦接”。例如,集成到处理器中的大容量存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户任何形式的输入,包括声音、语音输入或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的网络浏览器发送网络页面以响应从网络浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息收发应用程序的智能手机)轮流发送文本消息或其他形式的消息、并且从用户接收响应消息来与用户交互。
本文使用与***、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的***,意味着***已经在其上安装了在运行中促使该***执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施细节,但是这些细节不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中单个实施例的上下文中描述的多个特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从要求保护的组合中删除该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的划分不应被理解为在所有实施例中都要求如此划分,而应当理解,所描述的程序组件和***通常可以一起集成在单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现所期望的结果。作为一个示例,附图中描绘的处理无需要求以所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。联盟区块链数字活动标识非必须是去中心化标识,并且可以是用户数字身份去中心化标识(例如512)和联盟区块链去中心化标识BizDID(例如610)的任意组合,例如用户数字身份去中心化标识和联盟区块链去中心化标识BizDID。

Claims (25)

1.一种计算机实现的用于控制对访问数据的授权的方法,所述方法包括:
接收第一请求,所述第一请求包括第一数字活动去中心化标识DID和第一数字活动数据的第一哈希值,其中,所述第一数字活动去中心化标识与第一用户的第一去中心化标识和与第一联盟区块链相关联的第一业务去中心化标识相关联;
将所述第一数字活动去中心化标识及所述第一哈希值存储在去中心化标识区块链中的第一记录中,所述去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录;以及
使用存储在所述去中心化标识区块链中的第一记录中的信息来控制对访问存储在所述第一联盟区块链中的第一数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问所述第一数字活动数据。
2.根据权利要求1所述的方法,其中,所述第一请求是从与所述第一联盟区块链相关联的第一联盟区块链节点发送的。
3.根据权利要求1所述的方法,包括:向与所述第一用户相关联的第一应用程序发送第一消息,其中,所述第一消息包括所述第一数字活动数据的第一哈希值;
接收来自所述第一应用程序的、指示所述第一哈希值是否正确的第二消息;
如果所述第二消息指示所述第一哈希值是正确的,则将所述第一哈希值存储在所述第一记录中;以及
如果所述第二消息指示所述第一哈希值是不正确的,则不将所述第一哈希值存储在所述第一记录中。
4.根据权利要求3所述的方法,其中,所述第一应用程序包括数字钱包去中心化应用程序。
5.根据前述任一权利要求所述的方法,包括:通过将所述第一数字活动去中心化标识与存储在所述去中心化标识区块链中的预存储的数字活动去中心化标识进行比较,来确定所述第一数字活动去中心化标识是否有效。
6.根据前述任一权利要求所述的方法,包括:
接收第二请求,所述第二请求包括所述第一数字活动去中心化标识和第二数字活动数据的第二哈希值;
将所述第二哈希值存储在所述去中心化标识区块链中的第一记录中;以及
使用存储在所述去中心化标识区块链中的第一记录中的信息来控制对访问存储在所述第一联盟区块链中的第二数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问所述第二数字活动数据。
7.根据权利要求6所述的方法,其中,所述第二请求是从所述第一联盟区块链发送的。
8.根据前述任一权利要求所述的方法,包括:
接收来自维护第二联盟区块链的第二联盟区块链网络的第二请求,所述第二请求包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值,其中,所述第二数字活动去中心化标识与所述第一用户的第一去中心化标识和与所述第二联盟区块链相关联的第二业务去中心化标识相关联;
将所述第二数字活动去中心化标识及所述第二哈希值存储在所述去中心化标识区块链中的第一记录中;以及
使用存储在所述去中心化标识区块链中的第一记录中的信息来控制对访问存储在所述第二联盟区块链中的第二数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第一记录中的信息来确定是否授权另一用户访问所述第二数字活动数据。
9.根据前述任一权利要求所述的方法,包括:
接收来自所述第一联盟区块链、包括第二数字活动去中心化标识和第二数字活动数据的第二哈希值的第二请求,其中,所述第二数字活动去中心化标识与第二用户的第二去中心化标识和与所述第一联盟区块链相关联的第一业务去中心化标识相关联;
将所述第二数字活动去中心化标识和所述第二哈希值存储在所述去中心化标识区块链中的第二记录中;以及
使用存储在所述去中心化标识区块链中的第二记录中的信息来控制对访问存储在所述第一联盟区块链中的第二数字活动数据的授权,包括基于存储在所述去中心化标识区块链中的第二记录来确定是否授权另一用户访问所述第二数字活动数据。
10.一种计算机实现的用于控制对访问数据的授权的方法,所述方法包括:
在与第一用户相关联的应用程序中,接收来自去中心化标识DID区块链的第一数字活动数据的第一哈希值,其中,所述第一数字活动数据存储在第一联盟区块链中;
从所述第一联盟区块链获得所述第一数字活动数据;
生成从所述第一联盟区块链获得的第一数字活动数据的第二哈希值;
比较所述第一哈希值和所述第二哈希值;以及
在确定所述第一哈希值与所述第二哈希值匹配时,向与所述去中心化标识区块链相关联的去中心化标识区块链节点发送指示所述第一哈希值是准确的消息。
11.根据权利要求10所述的方法,包括:
向所述第一用户提供用户接口,所述用户接口显示从所述第一联盟区块链获得的第一数字活动数据;
接收来自所述第一用户的、指示所述第一数字活动数据是否正确的指示;以及
将来自所述第一用户的、指示所述第一数字活动数据是否正确的所述指示发送给所述去中心化标识区块链。
12.根据权利要求10或11所述的方法,其中,所述应用程序包括数字钱包去中心化应用程序。
13.一种计算机实现的用于控制对访问数据的授权的方法,所述方法包括:
接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,所述第一请求包括所述第一数字活动数据的第一哈希值、与所述第二用户的第一去中心化标识相关联的第一数字活动去中心化标识、和与第一联盟区块链相关联的第一业务去中心化标识,所述第一请求从所述第一联盟区块链发送、并在去中心化标识DID区块链处接收,所述去中心化标识区块链配置为存储与多个用户的多个去中心化标识DID相关联的记录,并且所述第一数字活动数据是存储在所述第一联盟区块链中的;
确定所述第一数字活动去中心化标识、所述第一哈希值和所述第一业务去中心化标识是否有效;以及
使用关于所述第一数字活动去中心化标识、所述第一哈希值和所述第一业务去中心化标识是否有效的确定,控制对所述第二用户访问存储在所述第一联盟区块链中的第一数字活动数据的授权。
14.根据权利要求13所述的方法,包括:在接收所述第一请求之前,存储由所述第一联盟区块链提供的第一数字活动数据的第二哈希值,其中,确定所述第一哈希值是否有效包括将所述第一哈希值与存储的第二哈希值进行比较,以及如果所述第一哈希值与所述存储的第二哈希值相同,则确定所述第一哈希值有效。
15.根据权利要求13或14所述的方法,包括:向与所述第一用户相关联的应用程序发送第一消息,以向所述第一用户通知关于允许所述第二用户访问所述第一数字活动数据的第一请求。
16.根据权利要求15所述的方法,其中,与所述第一用户相关联的应用程序包括数字钱包去中心化应用程序。
17.根据权利要求15或16所述的方法,包括:接收来自所述应用程序的、指示所述第一用户是否授权所述第二用户访问所述第一数字活动数据的第二消息,其中,控制对访问所述第一数字活动数据的授权是至少部分基于所述第二消息是否指示所述第一用户授权所述第二用户访问所述第一数字活动数据。
18.根据权利要求17所述的方法,包括:
在确定所述第一数字活动去中心化标识、所述第一哈希值和所述第一业务去中心化标识有效之后,接收所述第二消息,所述第二消息指示所述第一用户授权所述第二用户访问所述第一数字活动数据,
向所述第一联盟区块链发送第三消息,所述第三消息指示所述第一用户已授权所述第二用户访问所述第一数字活动数据。
19.根据权利要求17或18所述的方法,其中,所述第二消息包括所述第二用户访问所述第一数字活动数据的条件。
20.根据权利要求19所述的方法,其中,所述条件包括时间限制条件,所述时间限制条件指定所述第二用户只能在指定的时间限制内访问所述第一数字活动数据。
21.一种计算机实现的用于控制对访问数据的授权的方法,所述方法包括:
接收允许第二用户访问第一用户的第一数字活动数据的第一请求,其中,所述第一数字活动数据被存储在第一联盟区块链中,所述第一请求是从与第一去中心化标识区块链相关联的去中心化标识DID区块链节点发送的,所述第一去中心化标识区块链被配置为存储与多个用户的多个去中心化标识相关联的记录,以及所述第一请求是在与所述第一用户相关联的应用程序处接收的;
提供向所述第一用户显示所述第一请求的用户接口;
接收来自所述第一用户的、关于是否授权所述第二用户访问存储在所述第一联盟区块链中的第一数字活动数据的指令;以及
向所述去中心化标识区块链节点发送第一消息,所述第一消息指示所述第一用户是否授权所述第二用户访问所述第一数字活动数据。
22.根据权利要求21所述的方法,其中,所述第一消息包括所述第二用户访问所述第一数字活动数据的条件。
23.根据权利要求22所述的方法,其中,所述条件包括时间限制条件,所述时间限制条件指定所述第二用户只能在指定的时间限制内访问所述第一数字活动数据。
24.一种用于控制对访问数据的授权的***,包括:
一个或多个处理器;以及
一个或多个计算机可读存储器,其耦接到所述一个或多个处理器并具有存储在其上的指令,所述指令能够由所述一个或多个处理器执行以执行权利要求1至23中的任一项所述的方法。
25.一种用于控制对访问数据的授权的装置,所述装置包括用于执行权利要求1至23中的任一项所述的方法的多个模块。
CN202080000570.4A 2020-02-14 2020-02-14 基于去中心化标识的数据授权 Active CN111448565B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/075272 WO2020098839A2 (en) 2020-02-14 2020-02-14 Data authorization based on decentralized identifiers

Publications (2)

Publication Number Publication Date
CN111448565A true CN111448565A (zh) 2020-07-24
CN111448565B CN111448565B (zh) 2024-04-05

Family

ID=70733030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080000570.4A Active CN111448565B (zh) 2020-02-14 2020-02-14 基于去中心化标识的数据授权

Country Status (5)

Country Link
US (1) US11093933B1 (zh)
EP (1) EP3799642B1 (zh)
CN (1) CN111448565B (zh)
SG (1) SG11202012921XA (zh)
WO (1) WO2020098839A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111527489A (zh) * 2020-03-13 2020-08-11 支付宝(杭州)信息技术有限公司 基于去中心化标识的数据授权
CN112580102A (zh) * 2020-12-29 2021-03-30 郑州大学 基于区块链的多维度数字身份鉴别***
CN112767163A (zh) * 2021-01-22 2021-05-07 支付宝(杭州)信息技术有限公司 基于区块链的数字商品交易方法和装置
CN114978740A (zh) * 2022-06-06 2022-08-30 中国互联网络信息中心 基于区块链的标识关联和验证的解析方法
CN117032592A (zh) * 2023-10-08 2023-11-10 湖南省金河计算机科技有限公司 一种基于区块链的收款机收款数据储存***

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US10783164B2 (en) 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11295296B2 (en) * 2018-08-06 2022-04-05 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11444749B2 (en) 2020-01-17 2022-09-13 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
WO2021183694A1 (en) * 2020-03-10 2021-09-16 Lumedic Acquisition Co., Inc. Electronic patient credentials
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
CN111881483B (zh) * 2020-08-07 2024-02-23 广州运通链达金服科技有限公司 基于区块链的资源账户绑定方法、装置、设备和介质
AU2021339233A1 (en) * 2020-09-09 2023-03-02 Meld Gold Pty Ltd Methods and systems for conducting transactions of precious metal backed digital assets
US11681992B2 (en) * 2020-11-16 2023-06-20 TraDove, Inc. Blockchain-based supply chain payment network
KR102542880B1 (ko) * 2020-11-30 2023-06-15 한국전자통신연구원 개인정보 관리 장치 및 방법
US11533306B2 (en) * 2020-12-16 2022-12-20 Global Wisdom Software Technology CO. LTD. Processes and method for safe of use, monitoring and management of device accounts in terminal manner
US12008526B2 (en) 2021-03-26 2024-06-11 Inveniam Capital Partners, Inc. Computer system and method for programmatic collateralization services
US20220329436A1 (en) * 2021-04-13 2022-10-13 International Business Machines Corporation Token-based identity validation via blockchain
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
KR102569132B1 (ko) * 2021-09-29 2023-08-24 한국전자통신연구원 분산 아이디 기반 서비스에서의 위임 크리덴셜 발급 장치 및 방법
US11714894B2 (en) * 2021-12-10 2023-08-01 Fmr Llc Authenticating client applications using an identity fabric blockchain
CN114185997B (zh) * 2022-02-17 2022-05-13 天津眧合数字科技有限公司 一种基于区块链的宠物信息可信存储***
CN117134996B (zh) * 2023-10-26 2023-12-26 北京鑫创数字科技股份有限公司 基于区块链的工业互联网标识信息解析方法和***

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070938A (zh) * 2017-04-27 2017-08-18 电子科技大学 基于区块链的数据访问控制***
CN107291862A (zh) * 2017-06-12 2017-10-24 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质及电子设备
WO2018032377A1 (zh) * 2016-08-13 2018-02-22 深圳市樊溪电子有限公司 一种用于区块链的只读安全文件存储***及其方法
CN107979590A (zh) * 2017-11-02 2018-05-01 财付通支付科技有限公司 数据共享方法、客户端、服务器、计算设备及存储介质
US20180204213A1 (en) * 2017-01-17 2018-07-19 HashLynx Inc. System for facilitating secure electronic communications between entities and processing resource transfers
CN108632284A (zh) * 2018-05-10 2018-10-09 网易(杭州)网络有限公司 基于区块链的用户数据授权方法、介质、装置和计算设备
US10102526B1 (en) * 2017-03-31 2018-10-16 Vijay K. Madisetti Method and system for blockchain-based combined identity, ownership, integrity and custody management
CN108694328A (zh) * 2017-04-05 2018-10-23 三星Sds株式会社 数字标识管理方法、数字标识管理装置和记录介质
CN109190410A (zh) * 2018-09-26 2019-01-11 华中科技大学 一种云存储环境下的基于区块链的日志行为审计方法
CN109327314A (zh) * 2018-11-08 2019-02-12 阿里巴巴集团控股有限公司 业务数据的访问方法、装置、电子设备和***
CN109344647A (zh) * 2018-09-12 2019-02-15 上海点融信息科技有限责任公司 用于区块链网络的访问凭证生成方法、数据访问方法、存储介质、计算设备
CN109491996A (zh) * 2018-09-27 2019-03-19 上海点融信息科技有限责任公司 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质
US20190205563A1 (en) * 2017-12-29 2019-07-04 Ebay, Inc. User controlled storage and sharing of personal user information on a blockchain
US20190229915A1 (en) * 2018-01-23 2019-07-25 CYBRIC Inc. Trusted verification of cybersecurity remediation
CN110061838A (zh) * 2019-04-28 2019-07-26 广州大学 一种dns资源记录的去中心化存储***及其实现、信息检索方法
WO2019157810A1 (zh) * 2018-02-13 2019-08-22 华为技术有限公司 一种数据传输方法、装置和网络节点
CN110263579A (zh) * 2018-11-16 2019-09-20 腾讯科技(深圳)有限公司 一种数据处理方法、***及相关设备
CN110493220A (zh) * 2019-08-16 2019-11-22 腾讯科技(深圳)有限公司 一种基于区块链的数据共享方法、设备及存储介质
WO2019228555A2 (en) * 2019-07-02 2019-12-05 Alibaba Group Holding Limited System and method for blockchain-based notification
CN110602089A (zh) * 2019-09-11 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的医疗数据存储方法、装置、设备及存储介质
CN110650139A (zh) * 2019-09-25 2020-01-03 四川师范大学 云平台的资源访问控制方法以及***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356094B2 (en) * 2014-06-30 2019-07-16 Vescel, Llc Uniqueness and auditing of a data resource through an immutable record of transactions in a hash history
JP6364132B2 (ja) * 2015-03-31 2018-07-25 ナスダック, インコーポレイテッドNasdaq, Inc. ブロックチェーン取引記録のシステムおよび方法
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
CN109792437B (zh) * 2017-05-16 2021-01-12 北京大学深圳研究生院 一种用于去中心化域名***的共识方法
EP3849133B1 (en) * 2018-12-21 2022-07-13 Advanced New Technologies Co., Ltd. Verifying integrity of data stored in a consortium blockchain using a public sidechain
CN109918942B (zh) * 2019-02-21 2020-07-31 领信智链(北京)科技有限公司 一种基于以太坊区块链的去中心化标识符管理***
CN111095865B (zh) * 2019-07-02 2023-08-04 创新先进技术有限公司 用于发布可验证声明的***和方法
CN110795501A (zh) 2019-10-11 2020-02-14 支付宝(杭州)信息技术有限公司 基于区块链的可验证声明的创建方法、装置、设备及***

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018032377A1 (zh) * 2016-08-13 2018-02-22 深圳市樊溪电子有限公司 一种用于区块链的只读安全文件存储***及其方法
US20180204213A1 (en) * 2017-01-17 2018-07-19 HashLynx Inc. System for facilitating secure electronic communications between entities and processing resource transfers
US10102526B1 (en) * 2017-03-31 2018-10-16 Vijay K. Madisetti Method and system for blockchain-based combined identity, ownership, integrity and custody management
CN108694328A (zh) * 2017-04-05 2018-10-23 三星Sds株式会社 数字标识管理方法、数字标识管理装置和记录介质
CN107070938A (zh) * 2017-04-27 2017-08-18 电子科技大学 基于区块链的数据访问控制***
CN107291862A (zh) * 2017-06-12 2017-10-24 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质及电子设备
CN107979590A (zh) * 2017-11-02 2018-05-01 财付通支付科技有限公司 数据共享方法、客户端、服务器、计算设备及存储介质
US20190205563A1 (en) * 2017-12-29 2019-07-04 Ebay, Inc. User controlled storage and sharing of personal user information on a blockchain
US20190229915A1 (en) * 2018-01-23 2019-07-25 CYBRIC Inc. Trusted verification of cybersecurity remediation
WO2019157810A1 (zh) * 2018-02-13 2019-08-22 华为技术有限公司 一种数据传输方法、装置和网络节点
CN108632284A (zh) * 2018-05-10 2018-10-09 网易(杭州)网络有限公司 基于区块链的用户数据授权方法、介质、装置和计算设备
CN109344647A (zh) * 2018-09-12 2019-02-15 上海点融信息科技有限责任公司 用于区块链网络的访问凭证生成方法、数据访问方法、存储介质、计算设备
CN109190410A (zh) * 2018-09-26 2019-01-11 华中科技大学 一种云存储环境下的基于区块链的日志行为审计方法
CN109491996A (zh) * 2018-09-27 2019-03-19 上海点融信息科技有限责任公司 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质
CN109327314A (zh) * 2018-11-08 2019-02-12 阿里巴巴集团控股有限公司 业务数据的访问方法、装置、电子设备和***
CN110263579A (zh) * 2018-11-16 2019-09-20 腾讯科技(深圳)有限公司 一种数据处理方法、***及相关设备
CN110061838A (zh) * 2019-04-28 2019-07-26 广州大学 一种dns资源记录的去中心化存储***及其实现、信息检索方法
WO2019228555A2 (en) * 2019-07-02 2019-12-05 Alibaba Group Holding Limited System and method for blockchain-based notification
CN110493220A (zh) * 2019-08-16 2019-11-22 腾讯科技(深圳)有限公司 一种基于区块链的数据共享方法、设备及存储介质
CN110602089A (zh) * 2019-09-11 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的医疗数据存储方法、装置、设备及存储介质
CN110650139A (zh) * 2019-09-25 2020-01-03 四川师范大学 云平台的资源访问控制方法以及***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111527489A (zh) * 2020-03-13 2020-08-11 支付宝(杭州)信息技术有限公司 基于去中心化标识的数据授权
CN112580102A (zh) * 2020-12-29 2021-03-30 郑州大学 基于区块链的多维度数字身份鉴别***
CN112767163A (zh) * 2021-01-22 2021-05-07 支付宝(杭州)信息技术有限公司 基于区块链的数字商品交易方法和装置
CN114978740A (zh) * 2022-06-06 2022-08-30 中国互联网络信息中心 基于区块链的标识关联和验证的解析方法
CN114978740B (zh) * 2022-06-06 2023-06-23 中国互联网络信息中心 基于区块链的标识关联和验证的解析方法
CN117032592A (zh) * 2023-10-08 2023-11-10 湖南省金河计算机科技有限公司 一种基于区块链的收款机收款数据储存***
CN117032592B (zh) * 2023-10-08 2023-12-12 湖南省金河计算机科技有限公司 一种基于区块链的收款机收款数据储存***

Also Published As

Publication number Publication date
EP3799642A4 (en) 2021-06-16
EP3799642B1 (en) 2022-06-29
WO2020098839A2 (en) 2020-05-22
WO2020098839A3 (en) 2020-12-24
SG11202012921XA (en) 2021-01-28
US11093933B1 (en) 2021-08-17
CN111448565B (zh) 2024-04-05
US20210256505A1 (en) 2021-08-19
EP3799642A2 (en) 2021-04-07

Similar Documents

Publication Publication Date Title
CN111448565B (zh) 基于去中心化标识的数据授权
US11271754B2 (en) Data authorization based on decentralized identifiers
CN111095865B (zh) 用于发布可验证声明的***和方法
CN111295869B (zh) 用于认证去中心化标识的***和方法
CN111066020B (zh) 用于创建去中心化标识的***和方法
Zhang et al. FHIRChain: applying blockchain to securely and scalably share clinical data
CN111095327B (zh) 用于验证可验证声明的***和方法
US10942994B2 (en) Multicomputer processing for data authentication using a blockchain approach
US20200145229A1 (en) System and method for blockchain-based cross-entity authentication
US11088826B2 (en) Managing assets with expiration on a blockchain
US11159537B2 (en) Multicomputer processing for data authentication and event execution using a blockchain approach
US11360963B2 (en) Tracking and verification of physical assets
US11755998B2 (en) Smart data annotation in blockchain networks
US20220311611A1 (en) Reputation profile propagation on blockchain networks
US20220036323A1 (en) Electronic wallet allowing virtual currency expiration date
Garg Decentralized transaction mechanism based on smart contracts
US11374755B1 (en) Entangled token structure for blockchain networks
Patel et al. EMRs with blockchain: A distributed democratised electronic medical record sharing platform
Kim et al. Digital Authentication System in Avatar Using DID and SBT
US20230308276A1 (en) Creating non-fungible token shards
WO2022042602A1 (en) Trustless operations for blockchain networks
CN114697114B (zh) 数据处理方法、装置、电子设备和介质
CA3167524A1 (en) Api for incremental and periodic crypto asset transfer
CA3167522A1 (en) Blockchain-based security token for kyc 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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40034149

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant