首页> 中国专利> 管理对访问分布式账本信托网络中的用户数据的许可

管理对访问分布式账本信托网络中的用户数据的许可

摘要

描述了管理对访问分布式账本信托网络(“DLTN”)中的用户数据的许可的机制。给定用户可以以细粒度方式共享对用户数据的访问。对用户数据的访问可以取决于用户数据的类别和/或另一用户的角色(例如另一用户是否被识别为连接)。对用户数据的访问可以在持续时间上受限。对访问用户数据的许可可以是主动地或反应性地被设置的。协议允许潜在检阅者请求访问给定用户的用户数据,其中给定用户选择性地批准或者驳回由检阅者进行的访问。以这种方式,给定用户可以控制对DLTN中的用户数据的访问,从而由所选的其他用户或所有其他用户,选择性地授予(或撤销)由所选择的其他用户或者由所有其他用户对用户数据中的一些用户数据或者用户数据中的所有数据的访问。

著录项

  • 公开/公告号CN113287141A

    专利类型发明专利

  • 公开/公告日2021-08-20

    原文格式PDF

  • 申请/专利权人 班克公司;

    申请/专利号CN201980088790.4

  • 申请日2019-11-12

  • 分类号G06Q50/10(20060101);H04L29/08(20060101);H04L29/06(20060101);H04L9/08(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人董莘

  • 地址 美国明尼苏达州

  • 入库时间 2023-06-19 12:16:29

说明书

本申请要求于2018年11月13日提交的美国临时专利申请号62/760,789的权益,其公开内容通过引用并入本文。

技术领域

增强分布式账本信托网络(“DLTN”)的增强。这些增强中的一些增强涉及用于管理对DLTN中的用户数据的访问的机制。

背景技术

区块链技术已经被用于诸如银行业务、加密货币交换和智能合约的上下文中。通常,区块链技术提供了以可核实的永久方式来记录事务的分布式账本。区块链可以跨被称为节点的计算机系统的网络分布。节点遵循协议,该协议用于在节点之间通信、将新区块添加到区块链、以及批准(“验证”)新区块。

通常,区块链是链中动态增长的记录的列表,称为区块。给定的区块逻辑地被链接至区块链中的先前区块。例如,通过将密码哈希函数应用于先前区块的数据,哈希值被计算,并且哈希值被存储在给定区块中。给定区块还包括其他字段,诸如时间戳和有效载荷数据(有时称为事务数据)。有效载荷数据通常表示一个或多个事务,但是更一般地可以是任何种类的数据。通常,一旦给定区块被添加到区块链,该给定区块中的数据就无法在稍后被修改,因为任何后续区块都取决于给定区块中的数据。(要追溯地更改给定区块中的数据,区块链中的后续区块也必须被更改,这要求区块链网络内不可能或其达成不切实际的共识水平。)通过重新计算针对区块链中的相应区块的哈希值、并且将这些重新计算的哈希值与逻辑地链接这些区块的先前计算的哈希值相比较,区块链的完整性可以被核实。

在一些情况下,多个区块可以被同时产生,并且被添加到区块链中的相同的先前区块。这在区块链中临时创建一个分叉。区块链网络的节点遵循协议来将分叉的不同分支排名(“评分”),使得分支中(具有最高得分)的一个分支由所有节点跟随。以这种方式,区块链的非优先分支的大小被限制。支持区块链的节点共享区块链的版本,并且保留具有最高得分的版本。各种激励被实现,以在所使用的区块链版本越长时,降低区块链的该版本被取代的可能性。

通过跨区块链网络的节点来存储区块链,与将数据存储在单个集中位置中相关联的数据丢失的风险被减轻。取决于实现,区块链网络中的每个节点都可以存储区块链的完整或部分副本。

在公共区块链(也称为无许可区块链)中,在没有许可的情况下,区块链的区块对区块链网络中的参与者可访问。区块链网络中的任何参与者都可以访问该区块链中的区块,核实区块链的区块,向区块链添加新区块,并且验证区块链的新区块。访问控制不在公共区块链中被使用。相反,在私有区块链(也称为许可区块链)中,中央机构控制对区块链网络的访问。即,中央机构控制哪些参与者可以:访问区块链中的区块,核实区块链的区块,向区块链添加新区块,以及验证区块链的新区块。

在实现私有区块链的先前方法中,给定用户可以将关于该给定用户的数据添加到区块链。例如,用户数据可以是关于给定用户的传记信息或关于给定用户作为其一方的事务的数据。然而,关于控制其他用户对区块链中的给定用户的用户数据的访问,给定用户的选项非常有限,这可能导致给定用户的用户数据以与给定用户的期望不一致的方式暴露。

发明内容

总而言之,具体实施方式提出了用于管理对访问分布式账本信托网络(“DLTN”)中的用户数据的许可的各种创新。利用这样的创新,给定用户可以以细粒度方式共享对给定用户的用户数据(例如传记数据、联系数据、标识文档、事务数据等)的访问。例如,对用户数据的访问可以取决于用户数据的类别。或者,作为另一示例,对用户数据的访问可以取决于另一用户的角色(例如另一用户是否被识别为给定用户的连接)。进一步地,对用户数据的访问可以在持续时间上受限,使得对访问用户数据的许可在某个时间段之后到期。给定用户可以主动设置对访问用户数据的许可,或者给定用户可以反应性地设置对访问用户数据的许可。例如,一种协议被描述,该协议允许潜在检阅者请求访问给定用户的用户数据,其中给定用户选择性地批准或者驳回检阅者通过各种信道中的任何信道的访问。以这种方式,在一些示例实现中,给定用户可以控制对DLTN中的给定用户的用户数据的访问,从而选择性地授予(或撤销)由所选择的其他用户或者所有其他用户对用户数据中的一些用户数据或者用户数据中的所有用户数据的访问。

本文描述的创新包括但不限于由权利要求覆盖的创新。创新可以被实现为方法的一部分、被配置为执行该方法的计算机系统的一部分、或者存储计算机可执行指令的非瞬态计算机可读介质的一部分,该计算机可执行指令用于使计算机系统中的一个或多个处理器执行该方法。各种创新可以组合或单独地使用。本发明内容被提供来以简化的形式介绍一些概念,这些概念下面在具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在被用于限制所要求保护的主题的范围。通过以下具体实施方式,本发明的前述和其他目的、特征和优点将变得更加明显,以下具体实施方式继续参照附图并图示了许多示例。示例也可以用于其他和不同的应用,并且一些细节可以在各个方面进行修改,而不脱离所公开创新的精神和范围。

附图说明

以下附图图示了所公开创新的一些特征。

图1是图示了一些所描述的示例可以被实现的示例计算机系统的图。

图2是图示了示例区块链的图。

图3是图示了用于管理DLTN中的私有区块链的示例架构的图。

图4是图示了在图3的架构中使用的用于认证服务和加密/解密服务的示例架构的图。

图5a和图5b是图示了用于更新针对DLTN中的给定用户的用户数据的许可设置的一般化技术的各个方面的流程图。

图6是图示用于更新针对DLTN中的给定用户的用户数据的许可设置的示例方法的协议图。

图7a至图7e是图示用于请求和批准对DLTN中的给定用户的用户数据的访问的一般化技术的各个方面的流程图。

图8a和图8b是图示请求和批准对DLTN中的给定用户的用户数据的访问的示例方法的协议图。

图9a和图9b是图示用于撤销对DLTN中的给定用户的用户数据的访问的一般化技术的各个方面的流程图。

图10是图示用于撤销对DLTN中的给定用户的用户数据的访问的示例方法的协议图。

图11a至图11j是图示管理针对DLTN中的给定用户的用户数据的许可设置的不同特征的示例屏幕截图的图解。

具体实施方式

具体实施方式提出了用于分布式账本信托网络(“DLTN”)的各种创新。本文描述的一些创新涉及用于管理对访问DLTN中的用户数据的许可的机制。

在本文描述的示例中,不同附图中的相同附图标记指示相同的组件、模块或操作。更一般地,本文描述的示例的各种备选方案是可能的。例如,通过改变所描述的方法动作的顺序,通过拆分、重复或者省略某些方法动作等,本文描述的方法中的一些方法可以被更改。所公开技术的各个方面可以组合或单独地使用。本文描述的创新中的一些创新解决了背景中提到的问题中的一个或多个问题。通常,给定的技术/工具不能解决所有这样的问题。要理解的是,其他示例可以被利用,并且在不脱离本公开的范围的情况下,结构、逻辑、软件、硬件和电气改变可以被进行。因此,以下描述不应被认为是限制性的。确切地说,本发明的范围由所附权利要求限定。

I.示例计算机系统

图1图示了合适的计算机系统(100)的一般化示例,所描述的创新中的多个创新可以在计算机系统(100)中被实现。本文描述的创新涉及DLTN的增强。除了在DLTN中使用之外,计算机系统(100)不旨在建议对使用范围或功能性范围的任何限制,因为创新可以在各种计算机系统(包括适用于DLTN中的操作的专用计算机系统)中被实现。

参照图1,计算机系统(100)包括中央处理单元(“CPU”)的一个或多个处理核心(110…11x)和本地片上存储器(118)。(多个)处理核心(110…11x)执行计算机可执行指令。(多个)处理核心(110…11x)的数目取决于实现,并且可以是例如4或8。本地存储器(118)可以是易失性存储器(例如寄存器、高速缓存、RAM)、非易失性存储器(例如ROM、EEPROM、闪存等)或者两者的某种组合,其可由相应的(多个)处理核心(110…11x)访问。

本地存储器(118)可以以计算机可执行指令的形式来存储软件(180),该软件(180)实现用于针对DLTN的创新的工具,以用于由相应的(多个)处理核心(110…11x)执行的操作。在图1中,本地存储器(118)是诸如一个或多个高速缓存的片上存储器,利用(多个)处理核心(110…11x)针对的访问操作、转移操作等是快速的。

计算机系统(100)可以包括图形处理单元(“GPU”)的处理核心(未示出)和本地存储器(未示出)。备选地,计算机系统(100)包括片上系统(“SoC”)、专用集成电路(“ASIC”)或其他集成电路的一个或多个处理核心(未示出)以及相关联的存储器(未示出)。(多个)处理核心可以执行计算机可执行指令,以用于针对DLTN的一个或多个创新。

更一般地,术语“处理器”可以泛指可以处理计算机可执行指令的任何设备,并且可以包括微处理器、微控制器、可编程逻辑设备、数字信号处理器和/或其他计算设备。处理器可以是CPU或其他通用单元,然而,使用例如ASIC或现场可编程门阵列(“FPGA”)来提供专用处理器也是众所周知的。

术语“控制逻辑”可以指代可操作以处理计算机可执行指令、确定结果并且生成输出的控制器或更一般地一个或多个处理器。取决于实现,控制逻辑可以由在CPU上可执行的软件、由控制专用硬件(例如GPU或其他图形硬件)的软件、或者由专用硬件(例如在ASIC中)实现。

计算机系统(100)包括共享存储器(120),该共享存储器可以是易失性存储器(例如RAM)、非易失性存储器(例如ROM、EEPROM、闪存等)或者两者的某种组合,其由(多个)处理核心可访问。存储器(120)以计算机可执行指令的形式来存储软件(180),该软件(180)实现用于针对DLTN的一个或多个创新的工具,以用于所执行的操作。在图1中,共享存储器(120)是片外存储器,利用处理核心针对其的访问操作、转移操作等较慢。

计算机系统(100)包括一个或多个网络适配器(140)。如本文使用的,术语网络适配器指示任何网络接口卡(“NIC”)、网络接口、网络接口控制器或者网络接口设备。(多个)网络适配器(140)支持通过网络与另一计算实体(例如服务器、其他计算机系统)的通信。该网络可以是广域网、局域网、存储区域网络或者其他网络。(多个)网络适配器(140)可以支持有线连接和/或无线连接,以用于广域网、局域网、存储区域网络或者其他网络。(多个)网络适配器(140)通过(多个)网络连接使用经调制的数据信号来传达数据(诸如计算机可执行指令、音频或视频输入或输出、或者其他数据)。经调制的数据信号是以对信号中的信息进行编码的这种方式设置或改变其特性中的一个或多个特性的信号。通过示例而非限制,网络连接可以使用电气、光学、RF或其他载体。

计算机系统(100)还包括一个或多个(多个)输入设备(150)。(多个)输入设备可以是触摸输入设备(诸如键盘、鼠标、笔或轨迹球)、扫描设备、或者向计算机系统(100)提供输入的另一设备。计算机系统(100)还可以包括视频输入、音频输入、运动传感器/追踪器输入和/或游戏控制器输入。

计算机系统(100)包括一个或多个输出设备(160)。(多个)输出设备(160)可以是打印机、CD刻录机、视频输出、音频输出、或者提供来自计算机系统(100)的输出的另一设备。

存储装置(170)可以是可移除的或不可移除的,并且包括磁性介质(诸如磁盘、磁带或盒式磁带)、光盘介质、和/或可以被用于存储信息并且可以在计算机系统(100)内被访问的任何其他介质。存储装置(170)存储用于软件(180)的指令,该软件实现针对DLTN的一个或多个创新。

诸如总线、控制器或网络的互连机制(未示出)将计算机系统(100)的组件互连。通常,操作系统软件(未示出)为在计算机系统(100)中执行的其他软件提供操作环境,并且协调计算机系统(100)的组件的活动。

图1的计算机系统(100)是物理计算机系统。虚拟机可以包括如图1所示的而被组织的组件。

术语“应用”或者“程序”可以指代软件,诸如用于提供功能性的任何用户模式指令。应用(或程序)的软件还可以包括用于操作系统和/或设备驱动的指令。该软件可以被存储在相关联的存储器中。该软件可以是例如固件。尽管设想经适当编程的通用计算机或者计算设备可以被用于执行这样的软件,但是也设想硬接线电路系统或者定制硬件(例如ASIC)可以代替软件指令使用,或者与软件指令组合使用。因此,示例不限于硬件和软件的任何特定组合。

术语“计算机可读介质”指代参与提供数据(例如指令)的任何介质,该数据可以由处理器读取并在计算环境内被访问。计算机可读介质可以采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘以及其他持久性存储器。易失性介质包括动态随机存取存储器(“DRAM”)。计算机可读介质的常见形式包括例如固态驱动器、闪存驱动器、硬盘、任何其他磁性介质、CD-ROM、数字通用盘(“DVD”)、任何其他光学介质、RAM、可编程只读存储器(“PROM”)、可擦除可编程只读存储器(“EPROM”)、USB记忆棒、任何其他存储器芯片或匣、或者计算机可以从其读取的任何其他介质。术语“计算机可读存储器”特别地排除了瞬态传播信号、载波、以及波形或者其他无形或瞬态介质,尽管它们可以被计算机读取。术语“载波”可以指代在幅度或频率方面被调制以传达信号的电磁波。

创新可以在计算机可执行指令在目标真实或虚拟处理器上的计算机系统中被执行的一般上下文中描述。计算机可执行指令可以包括在通用处理器的处理核心上可执行以提供本文描述的功能性的指令、可执行以控制GPU或专用硬件以提供本文描述的功能性的指令、在GPU的处理核心上可执行以提供本文描述的功能性的指令、和/或在专用处理器的处理核心上可执行以提供本文描述的功能性的指令。在一些实现中,计算机可执行指令可以被组织在程序模块中。通常,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,程序模块的功能性可以如所期望的在程序模块之间被组合或者被拆分。用于程序模块的计算机可执行指令可以在本地或分布式计算机系统内被执行。

许多示例在本公开中被描述,并且仅出于说明性目的而被提出。所描述的示例在任何意义上都不是限制性的,并且也不旨在是限制性的。如从本公开而明显的,当前公开的创新可广泛地应用于许多上下文。本领域的普通技术人员将认识到,所公开的创新可以在具有各种修改和更改(诸如结构、逻辑、软件和电气修改)的情况下被实践。尽管所公开创新的特定特征可以参照一个或多个特定示例来被描述,但是应该理解的是,除非另有明确指定,否则这种特征不被限于它们被参照描述的一个或多个特定示例中的用法。本公开既不是所有示例的字面描述,也不是所有示例中必须存在的本发明的特征列表。

当序数(诸如“第一”、“第二”、“第三”等)在术语之前被用作形容词时,(除非另有明确指定)该序数仅被用于指示特定特征,诸如将该特定特征与由同一术语或类似术语描述的另一特征区分开。仅使用序数“第一”、“第二”、“第三”等并不指示任何物理顺序或位置、任何时间顺序、或者重要性、质量的任何排名等。另外,仅使用序数并没有定义对用序数标识的特征的数值限制。

当引入元素时,冠词“一”、“一个”、“该”和“所述”旨在表示存在一个或多个元素。术语“包括(comprising)”、“包括(including)”和“具有”旨在是包含性的,并且表示可能存在不同于所列举元素的附加元素。

当单个设备、组件、模块或结构被描述时,多个设备、组件、模块或结构(无论它们是否协作)可以改为代替单个设备、组件、模块或结构来使用。被描述为由单个设备拥有的功能性可以改为由多个设备拥有,无论它们是否协作。类似地,在多个设备、组件、模块或结构在本文中被描述之处,无论它们是否协作,单个设备、组件、模块或结构可以改为代替多个设备、组件、模块或结构来使用。被描述为由多个设备拥有的功能性可以改为由单个设备拥有。通常,计算机系统或设备可以是本地的或分布式的,并且可以包括专用硬件和/或具有实现本文描述的功能性的软件的硬件的任何组合。

进一步地,本文描述的技术和工具不限于本文描述的特定示例。相反,相应技术和工具可以与本文描述的其他技术和工具独立地且分开地被利用。

与彼此通信的设备、组件、模块或结构不需要与彼此连续通信,除非另有明确指定。相反,这样的设备、组件、模块或结构仅需要在必要或期望时向彼此传输,并且实际上可以在大多数时间抑制交换数据。例如,经由互联网与另一设备通信的设备可能一次数周都不向该另一设备传输数据。另外,与彼此通信的设备、组件、模块或结构可以直接通信或者通过一个或多个中介间接地通信。

如本文使用的,术语“发送”表示从一个设备、组件、模块或结构向另一设备、组件、模块或结构传达信息的任何方式。术语“接收”表示在一个设备、组件、模块或结构处从另一设备、组件、模块或结构获得信息的任何方式。设备、组件、模块或结构可以是同一计算机系统或不同计算机系统的一部分。信息可以通过值被传递(例如作为消息或函数调用的参数),或者通过引用被传递(例如在缓冲区中)。取决于上下文,信息可以被直接传送、或者通过一个或多个中间设备、组件、模块或结构而被传达。如本文使用的,术语“连接的”表示设备、组件、模块或结构之间的可操作的通信链路,这些设备、组件、模块或结构可以是同一计算机系统或不同计算机系统的一部分。可操作的通信链路可以是有线或无线网络连接,其可以是直接的或者经过(例如网络的)一个或多个中介。

具有多个特征的示例的描述并不暗示要求这样的特征中的全部甚或任何特征。相反,各种可选特征被描述,以说明本文描述的创新的多种可能的示例。除非另有明确指定,否则没有特征是必要或者被要求的。

此外,尽管过程步骤和阶段可以按相继顺序被描述,但是这样的过程可以被配置为以不同的顺序来工作。特定序列或顺序的描述并不一定指示要求步骤/阶段以该顺序被执行。步骤或阶段可以以任何实用的顺序被执行。此外,尽管被描述或暗示为非同时发生,但是一些步骤或阶段可以同时被执行。将过程描述为包括多个步骤或阶段并不暗示步骤或阶段中的所有甚或任何步骤或阶段是必要的或者被要求的。各种其他示例可以省略所描述的步骤或阶段中的一些或所有步骤或阶段。除非另有明确指定,否则没有步骤或阶段是必要或者被要求的。类似地,尽管产品可以被描述为包括多个方面、质量或特性,但这并不意味着它们中的所有都是必要或者被要求的。各种其他示例可以省略这些方面、质量或特性中的一些或所有方面、质量或特性。

项目的枚举列表并不暗示这些项目中的任何项目或所有项目都是互相排斥的,除非另有明确指定。同样地,所枚举的项目列表并不暗示这些项目中的任何或所有项目对任何类别是全面的,除非另有明确指定。

为了演示,具体实施方式使用如“确定”和“选择”等术语来描述计算机系统中的计算机操作。这些术语表示由计算机系统中的一个或多个处理器或其他组件执行的操作,并且不应与人类执行的动作混淆。与这些术语对应的实际计算机操作取决于实现而变化。

II.示例区块链

图2示出了示例区块链(200),该示例区块链(200)为说明而被简化。区块链(200)可以在区块链网络的不同节点之间被复制。节点中的每个节点可以存储区块链(200)的完整或部分副本。区块链(200)包括多个区块,从根区块开始,并且随着区块被添加到区块链而动态增长。区块中的每个区块包括报头和有效载荷数据。

区块的报头包括多个字段。根区块除外,报头包括哈希值,该哈希值通过对区块链(200)中的先前区块的数据应用密码哈希函数而被计算的哈希值。以这种方式,给定区块逻辑地被链接至区块链中的先前区块。例如,区块1的哈希值是通过将密码哈希函数应用于根区块的数据而被计算的,区块2的哈希值是通过将密码哈希函数应用于区块1的数据而被计算的,依此类推。通过针对区块链(200)中的相应区块重新计算哈希值,并且将这些重新计算的哈希值与逻辑地链接这些区块的(报头中的)先前计算的哈希值相比较,区块链(200)的完整性可以被核实。以这种方式,区块链(200)中的有效载荷数据可以被核实。

区块的报头还包括与区块相关联的用户(例如有效载荷数据的所有者)的时间戳和用户标识符(“ID”)。报头的其他字段取决于实现,并且为了简单起见未被示出。例如,这些字段可以包括标识用于加密区块中的有效载荷数据的加密密钥的密钥ID和标识区块中的有效载荷数据的类别的类别ID。通常,报头的字段取决于针对DLTN所定义的规则。

区块链(200)被用作各种类型的数据的主要存储装置。区块链(200)可以被共享–没有始终存储数据的中央数据库,也没有拥有和控制数据的中央管理员。有效载荷数据(有时称为事务数据)是任意数据。在区块链(200)的一些区块中,有效载荷数据是针对用户的用户数据(例如用于一个或多个事务、联系数据、传记数据、标识文档),其中用户数据可以包括静态数据和/或动态数据。在区块链(200)的一些其他区块中,有效载荷数据是许可设置,其可以如部分III和IV中所解释的那样来被设置。更一般地,有效载荷数据可以是任何种类的数据。

在图2的示例中,给定区块中的有效载荷数据由给定区块中的用户ID指定的用户“拥有”。针对用户的许可设置被用于控制对用户的用户数据的访问,该许可设置可以被存储在如图2中的区块链(200)中或者被存储在区块链外。区块链(200)中的有效载荷数据可以通过用户特定的(针对有效载荷数据的相应所有者)和上下文特定的(例如取决于访问特权)的加密密钥来被加密。因此,区块链(200)可以包括相同有效载荷数据的不同加密版本,其可以对不同组的用户可访问。

由于相继应用密码哈希函数来计算逻辑地链接区块链(200)中的区块的哈希值,所以区块取决于区块链(200)中的较早区块的数据(包括哈希值)。通常,一旦区块被添加到区块链(200),该区块中的数据就无法在稍后被修改。为了追溯地更改区块中的数据,区块链中的后续区块也必须被更改,这要求在区块链网络内不可能或其达成不切实际的共识水平。

在一些情况下,多个区块可以被同时产生,并且被添加到区块链(200)中的相同的先前区块。在图2中,区块2和区块3被同时产生,并且从区块链(200)的区块1被添加。这在区块链(200)中临时创建分叉。遵循协议来将分叉的不同分支排名(“评分”),使得所有节点都遵循分支中(具有最高得分)的一个分支。在图2中,区块2具有比区块3高的得分,因此后续区块是从区块2被添加的。区块链网络中的节点共享区块链(200)的版本,并且保留得分最高的版本。各种激励措施被实现,以在区块链(200)的版本被使用越长时,降低区块链(200)的该版本被取代的可能性。

在本文描述的示例中的许多示例中,区块链是私有的许可区块链。然而,在一些示例中,区块链可以代替为是公共区块链。

为了简单起见,图2示出了其中所有区块在单个链中(例如利用针对相应区块的哈希值)逻辑地被链接的区块链(200)。备选地,区块的一组单独的链可以代替单个区块链而被使用,例如在一个链中逻辑地链接用户数据的区块,在另一链中逻辑地链接许可设置的区块。如本文使用的,术语“区块链”或“该区块链”包括逻辑地被链接至由区块链平台管理的一个或多个链中的区块。

III.示例架构

图图3示出了用于管理DLTN中的私有区块链的示例架构(300)。在示例架构(300)中,各种实体被配置为通过诸如互联网的网络(320)通信。

一个或多个客户端系统(310)各自包括针对DLTN的DLTN客户端(312)。DLTN客户端(312)的用户可以是个人、小型企业、大型企业、银行、非营利组织、政府代理或者另一实体。客户端系统(310)可以是个人计算机、膝上型计算机、智能手机或者其他类型的计算设备。

在图3中,一个或多个集成合作伙伴系统(315)中的每个集成合作伙伴系统(315)还包括针对DLTN的DLTN客户端(316)。与客户端系统(310)的用户相比,集成合作伙伴系统(315)的用户潜在地在DLTN中具有增强的特权(privilege)、许可(permission)或权限(right)。然而,出于本文描述的创新的目的,针对集成合作伙伴系统(315)的DLTN客户端(316)与针对客户端系统(310)的DLTN客户端(312)本质上相同。集成合作伙伴系统(315)可以是个人计算机、膝上型计算机、智能手机或其他类型的计算设备。

DLTN客户端(312、316)被配置为通过安全连接(例如,经SSL加密的连接)来与用于DLTN的DLTN服务器(370)互操作。通常,DLTN客户端(312、316)向DLTN提供客户端侧用户界面(“UI”)。DLTN客户端(312、316)可以做出其他客户端侧决策,并且管理客户端侧通信。DLTN客户端(312、316)可以被实现为独立的可执行文件(例如单独的应用)。或者,DLTN客户端(312、316)可以在Web浏览器环境中使用客户端侧脚本逻辑或者其他控制逻辑来被实现,该Web浏览器环境在客户端侧执行。或者,DLTN客户端(312、316)可以被实现为Web浏览器的一组功能,以控制由DLTN服务器执行的面向客户端的脚本逻辑,其中该脚本逻辑在DLTN服务器处执行,但是是客户端侧控制的用户输入以用于导航(例如点击、数据录入)。因此,DLTN客户端(312、316)可以使用Web浏览器的常规功能来被实现,其向DLTN服务器的Web应用提供“前端”。在一些示例实现中,DLTN客户端(312、316)使用常规的Web浏览器功能来被实现,其使用JavaScript对象表示法(“JSON”)来控制面向客户端的脚本以与DLTN互操作。结合DLTN服务器(370)行动,DLTN客户端(312、316)被配置为允许用户执行各种动作。例如,通过DLTN客户端(312,316),用户可以:登录DLTN;管理到DLTN的其他用户的连接的网络;从事与DLTN中的其他用户的事务;添加、编辑或者移除用户数据;编辑针对用户的用户数据的许可设置;请求访问另一用户的用户数据;响应于来自另一用户的请求,授予或者撤消对该用户的用户数据的访问;创建定制表单以与其他用户共享;提供由另一用户共享的表单的数据;或者对所提交的表单进行检阅(review)、批准(approve)、驳回(reject)或者采取某个其他动作。具体地,在各种场景中的DLTN客户端(312、316)的功能性在部分IV中被描述。

一个或多个外部服务提供方(390)被配置为向DLTN服务器(370)提供服务。外部服务提供方(390)被配置为通过安全连接(例如,经SSL加密的连接)来与DLTN服务器(370)互操作。

例如,外部服务提供方(390)可以包括通信服务的一个或多个提供方,这些提供方被配置为提供对DLTN服务器(370)的编程访问,以用于进行和接收电话呼叫、经由SMS或另一组协议发送和接收文本消息、或者执行其他通信功能的功能性。在一些示例中,外部服务提供方(390)包括Twilio、Clickatell和Nexmo。具体地,当驳回或者批准用于授予访问用户的用户数据的请求时,通信服务的提供方可以允许DLTN服务器(370)经由备选的通信信道(例如电话呼叫和语音导航菜单;SMS消息)与用户通信。

作为另一示例,外部服务提供方(390)可以包括电子邮件服务的一个或多个提供方,这些提供方被配置为提供对DLTN服务器(370)的编程访问,以用于发送和接收电子邮件的功能性。在一些示例实现中,外部服务提供方(390)包括SendGrid。具体地,当发送用于授予访问用户的用户数据的请求时,电子邮件服务的提供方可以允许DLTN服务器(370)经由备选的通信信道(例如电子邮件)与用户通信。

在图3中,云计算服务(330、350)托管为DLTN提供功能性的服务。例如,云计算服务(330、350)通过微软Azure、谷歌云或亚马逊Web服务来被提供。尽管图3示出了用于云计算服务的两个不同的提供方(330、350),备选地,单个提供方或者更多个提供方可以被用于托管为DLTN提供功能性的服务。或者,私人拥有的计算资源或者私人拥有的计算资源与云计算服务的混合可以被用于为DLTN提供服务器侧功能性。

云计算服务(330、350)可以被配置为将服务组织成单独的分区、分组等。以这种方式,云计算服务(330、350)可以支持服务的缩放和/或复制。负载平衡器(354)可以被配置为跨分区分布业务和工作负载。

防火墙(332、352)可以被配置为监视和控制传入网络业务和传出网络业务。防火墙(332、352)可以被配置为应用各种安全性规则,以在网络(320)和云计算服务(330、350)的资源之间建立屏障。云计算服务(330、350)可以被配置为包括一个或多个公共子网络和一个或多个隔离(私有)子网络。通常,公共子网络对互联网可访问。隔离网络无法通过互联网访问,但是代替地通过访问控制列表(“ACL”)或者由云计算服务(330、350)管理的其他机制访问可访问。

在一些示例实现中,被托管在云计算服务(330、350)中的服务被部署在“容器”中或在虚拟机中被执行。容器或虚拟机虚拟化对资源的访问,该资源由云计算服务(330、350)提供。在一些示例实现中,服务被部署在Docker容器中,该容器可以跨不同位置而被分布。

DLTN包括各种专用节点,这些专用节点被配置为根据DLTN的规则执行不同的服务。为了冗余性,节点可以跨通过云计算服务(330、350)所提供的一个或多个云而被分布。例如,DLTN使用以太坊技术,该技术提供了基于区块链的分布式计算平台和操作系统,其可能支持智能合约功能性。备选地,DLTN使用另一技术(例如Eris:db、HydraChain、Hyperledger Fabric、Iroha、Sawtooth Lake、IBM区块链平台、Multichain、Openchain、Cardano、Quorum、Stellar、Symbiont Assembly、BigChainDB、ChainCore、Corda、Credits、Domus Tower区块链、Elements区块链平台)。如本文使用的,术语“分布式账本信托网络”和“区块链网络”是可互换的,并且术语区块链通常指示逻辑地被链接的任何记录(区块)账本。

DLTN的节点(334、356、360)提供各种服务。通常,DLTN节点可以被配置为存储(同步)区块链的数据。或者,在新区块被添加到区块链之前,DLTN节点可以被配置为验证事务。(在一些示例实现中,在不使用加密货币进行支付的情况下,区块可以被添加到区块链。像这样,事务的速度和安全性不受DLTN中所使用的加密货币的潜在波动性影响。备选地,加密货币(例如以太币)可以被用于DLTN内的支付。在这样的实现中,DLTN节点可以被配置为挖掘DLTN中所使用的加密货币。)或者,DLTN节点可以协调DLTN中的活动。通常,为了将区块添加到区块链,DLTN节点批准(验证)区块并且添加区块。

在图3中,被托管在云计算服务(350)的公共子网络中的DLTN节点(356)提供节点发现服务。节点发现服务被用于在DLTN中定位节点。在一些示例实现中,DLTN节点(356)是以太坊引导节点,其提供根据节点发现协议来定位节点的轻量服务。作为另一示例,被托管在云计算服务(350)的隔离子网络中的DLTN节点(360)提供RPC服务和/或挖掘服务。在一些示例实现中,节点(360)提供以太坊RPC服务和/或以太币挖掘服务。作为另一示例,被托管在云计算服务(330)的公共子网络中的DLTN节点(334)提供节点发现服务、RPC服务和/或挖掘服务。公共子网络中的DLTN节点(334、356)经由通过网络(320)的经加密的数据传输来通信。隔离子网络中的DLTN节点(360)经由使用网络ACL和加密来保护的连接与公共子网络中的节点(356)通信。

在一些示例实现中,DLTN节点(334、356、360)是使用Geth实现的以太坊节点。备选地,节点使用以太坊的另一实现或者使用另一DLTN技术。在一些示例实现中,DLTN节点(334、356、360)被部署在Docker容器中。备选地,DLTN节点(334、356、360)使用另一虚拟化技术来被部署。

架构(300)包括一个或多个DLTN服务器(370)。DLTN服务器(370)被配置为通过安全连接(例如,经SSL加密的连接)与DLTN的一个或多个DLTN客户端(312、316)互操作。DLTN服务器(370)还被配置为通过安全连接(例如,经SSL加密的连接)与一个或多个外部服务提供方(390)互操作。DLTN服务器(370)可以被实现为独立的可执行文件、Web应用(也称为基于Web的应用)或者以某种其他方式被实现。在一些示例实现中,DLTN服务器(370)包括可执行以实现应用编程接口(“API”)的方法、提供Web应用功能性、做出其他服务器侧决策并且管理服务器侧通信的控制逻辑。在这些示例实现中,API根据代表现层状态转换(“REST”)原理来被设计。该API被设计为具有可预测的面向资源的统一资源定位符(“URL”),并且使用HTTP响应代码来指示API错误。该API使用内置的HTTP特征(诸如HTTP动词),这些特征通常被现成的HTTP客户端理解。该API使用JSON进行输入和输出。DLTN服务器(370)的Web应用组件可以与DLTN服务器(370)的API组件分开。例如,关于用于与DLTN客户端(312、316)互操作的前端组件,DLTN服务器(370)可以使用提供用于构建UI的功能性的库(诸如React、JavaScript库)以及提供用于管理应用状态的功能性的库(诸如Redux、JavaScript库)来被实现。关于后端组件,DLTN服务器(370)可以使用用于服务器侧脚本和命令行工具的运行时环境(诸如NodeJS)以及提供用于构建Web应用和API的功能性的Web应用框架(诸如Express)来被实现。备选地,DLTN服务器(370)可以以某种其他方式被实现。在一些示例实现中,DLTN服务器(370)被部署在云计算环境中的Docker容器中。备选地,DLTN服务器(370)使用另一虚拟化技术来被部署。

在一些方面中,通过调解对区块链网络和其他平台功能(例如用于认证或者加密/解密)的访问,架构(300)中的一个或多个DLTN服务器(370)充当集中式管理机构。例如,DLTN服务器(370)使用许可机制来控制对区块链的写入访问以及限制对区块链的读取访问。然而,在其他方面中,DLTN服务器(370)不充当中央管理机构。可以有多个DLTN服务器(370)。而且,除了调解对区块链网络或者其他平台功能的访问之外,DLTN的用户之间的事务不要求DLTN服务器(370)的批准或者调解。

DLTN服务器(370)被配置为允许用户通过DLTN客户端(312、316来执行各种动作,如上所述。具体地,在各种场景中的DLTN客户端(370)的功能性在部分IV中被描述。

DLTN客户端(312、316)和DLTN服务器(370)可以被国际化/本地化为不同的语言。

架构(300)还包括存储装置(372),其被配置为存储照片、附件和DLTN服务器(370)可访问的其他数据。这样的数据可以被用于DLTN的各种操作中。DLTN服务器(370)被配置为通过使用网络ACL和加密所保护的连接来连接至存储装置(372)。

认证服务(380)向DLTN服务器(370)提供认证服务。加密服务(382)向DLTN服务器(370)提供加密/解密服务。DLTN服务器(370)通过使用网络ACL和加密所保护的连接来连接至认证服务(380)和加密服务(382)。在一些示例实现中,认证服务(380)和加密服务(382)使用Vault来被实现。备选地,认证服务(380)和加密服务(382)可以以某种其他方式被实现。在一些示例实现中,认证服务(380)和加密服务(382)被部署在云计算环境中的Docker容器中。备选地,认证服务(380)和加密服务(382)使用另一虚拟化技术来被部署。

认证服务(380)和加密服务(382)被配置为管理和应用存储装置中的访问规则(384)(诸如ACL数据、策略数据)和加密密钥(386),该存储装置通过安全连接对认证服务(380)和加密服务(382)可访问。访问规则(384)(例如ACL数据、策略数据)和加密密钥(386)以经加密的形式被存储在没有互联网访问的受保护的(隔离)子网络中。在DLTN中,数据通常在静止时和运输中被加密。通常,区块链中的数据利用用户特定和上下文特定的加密密钥来被加密。在运输中,数据可以使用由连接提供的机制来被加密。在一些示例实现中,密钥存储装置是使用Consul被实现的。备选地,密钥存储装置可以以某种其他方式被实现。

认证服务(380)和加密服务(382)的操作和特征参照图4的架构(400)来进一步被解释。

认证服务(380)执行各种操作,以初始化用于认证的结构和数据。例如,在阈值数目的主密钥份额(412)被获取之后,认证服务(380)可以使用一组主密钥份额(412)来创建主密钥(422)。认证服务(380)可以使用主密钥(422)来确定加密密钥(428),加密密钥(428)可使用以解密访问规则(384)和用户加密密钥(386)。认证服务(380)可以从持久性存储装置(438)取回访问规则(384)和用户加密密钥(386)的经加密的版本,并且使用加密密钥(428)来执行解密操作。经解密的访问规则(384)和用户加密密钥(386)在对认证服务(380)可访问的存储器中高速缓存(430)中被缓冲。

当用户注册时,认证服务(380)可以针对用户随机生成一组加密密钥。认证服务(380)可以使用密钥导出和轮换来分离加密上下文。如果需要,则认证服务(380)可以针对用户(例如针对用户数据被共享的用户的不同子集、或者针对其他不同的上下文)生成附加的加密密钥。取决于实现,针对用户的加密密钥可以以不同的方式来被组织。例如,针对用户的加密密钥可以包括用于加密/解密未被共享(即,私有)的数据的一个或多个加密密钥的第一集合、用于加密/解密与DLTN中的用户的连接所共享的一个或多个加密密钥的第二集合、以及用于加密/解密与DLTN中的每个人所共享的(即,公共的)数据的一个或多个加密密钥的第三集合。在该配置中,根据访问规则(ACL、策略数据等)并且与许可设置一致,(多个)第一加密密钥不与其他用户共享,(多个)第二加密密钥与DLTN中的用户的连接共享,并且(多个)第三加密密钥与DLTN中的所有用户共享。(被与另一用户“共享”的加密密钥可以由加密服务(382)代表该另一用户访问和使用,但是实际上未被分配给另一用户。)或者,作为另一示例,针对用户的加密密钥可以包括针对DLTN中的用户的每个不同子集的一个或多个加密密钥(例如不与用户共享的(多个)第一加密密钥、与用户的第一子集共享的(多个)第二加密密钥、与用户的第二子集共享的(多个)第三加密密钥、…、与所有用户共享的(多个)第n加密密钥)。备选地,用户的加密密钥可以以某种其他方式来被组织。

通常,对敏感数据的访问被限制为依赖于使用认证服务(380)和加密服务(382)所提供的认证、授权和可问责性。在用户接收到对加密密钥的访问之前,加密/解密请求根据安全性策略被检查并且记录日志。在操作中,认证服务(380)使用ACL和策略来规定由用户对用户拥有的加密密钥以及共享加密密钥的访问。在一些示例实现中,认证服务(380)以“白名单”模式操作。除非经由策略明确被授予,否则动作不被允许。认证服务(380)从DLTN服务器(370)接收针对用户的用户凭证(424),并根据访问规则(例如ACL数据、策略数据)来认证用户。如果用户被认证并且访问被授予,则认证服务(380)返回针对该用户的用户认证令牌(426)。用户认证令牌(426)与访问策略的列表以及可以根据访问策略而被使用的对应加密密钥相关联,其也被提供给加密服务(382)。

针对加密/解密,DLTN服务器(370)将用户数据(442)和用户认证令牌(426)传递给加密服务(382)。加密服务(382)返回用户数据(444)。针对解密操作,被传递给加密服务(382)的用户数据(442)被加密,并且由加密服务返回的用户数据(444)已经使用适当的加密密钥被解密。针对加密操作,被传递给加密服务(382)的用户数据(442)被解密,并且由加密服务返回的用户数据(444)已经使用适当的加密密钥被加密。如部分IV中所描述的,由加密服务(382)加密/解密的“用户数据”可以是传记数据、联系数据、事务数据或者其他用户数据。在一些示例实现中,加密服务(382)使用对称密钥加密—相同的加密密钥被用于数据的加密和解密。备选地,加密服务可以使用非对称密钥加密(例如根据公钥/私钥协议)。

IV.区块链中的针对用户数据的许可设置的示例管理

该部分描述了管理针对DLTN中的区块链中用户数据的许可设置的各个方面。在一些示例实现中,创新使得用户能够拥有、访问、货币化以及设置针对他/她的用户数据的许可。该部分中描述的创新可以被用于支持各种特征,包括但不限于:

·给定用户控制用户数据的哪些类别被共享的能力;

·给定用户控制哪些其他用户可以访问给定用户的用户数据、或者允许对DLTN的所有用户允许访问的能力;

·给定用户撤销先前被授予的访问许可或者以其他方式修改许可设置的能力;

·给定用户针对访问给定用户的用户数据设置时间限制的能力;

·给定用户在DLTN中“变暗”(被遗忘)的能力;

·给定用户请求访问另一用户的用户数据的能力;

·给定用户响应来自其他用户的、对访问给定用户的用户数据的请求的能力;以及

·给定用户经由简单的SMS消息响应来允许或撤销所请求的许可的能力。

A.介绍

用户的用户数据被存储在区块链中。用户可以是个人、小型企业、大型企业、银行、非营利组织或者其他实体。用户数据可以包括用户的传记数据(例如名字、教育记录、就业记录、信用历史记录、健康记录、国籍、家属)、用户的联系数据(例如物理地址、电话号码、电子邮件地址)、用户的标识文档(例如凭证)、用户在DLTN中的连接、关于涉及用户作为一方的一个或多个事务的数据(例如商业交换、远程购买、资金钱包、定期购买、现金支出)、关于用户资产的数据(例如财产记录)和/或其他类型的数据。用户数据可以包括地理定位标签。通常,仅一个用户拥有该用户的用户数据,但是对于事务数据,参与事务的每个用户都可以拥有该事务的事务数据的相等且受保护的副本。

通常,区块链中的用户数据可以在用户级别、组织级别或资产级别被索引。然而,通常,用户数据与将用户数据写入区块链(拥有用户数据)的用户的用户ID相关联。例如,如图2所示,区块链中的区块包括用户的用户ID以及由用户供应的用户数据。区块链中用户数据与对应用户的关联有助于由用户控制对访问用户数据的许可。用户的用户数据利用用户控制的一个或多个加密密钥来被加密,这有效地允许用户拥有用户数据。加密密钥可以是用户特定的(针对用户数据的所有者)和上下文特定的(例如每用户组,每数据类别)。用户可以与其他用户选择性地共享加密密钥,以允许其他用户访问用户数据。因此,通过许可设置来控制对加密密钥的访问可以允许用户控制对用户数据的访问。在一些示例实现中,区块还可以包括密钥ID和类别ID,密钥ID标识用于加密区块中的用户数据的加密密钥,类别ID标识区块中的用户数据的类别。

用户的用户数据的许可可以是类别受限的。即,用户可以针对用户的用户数据的不同类别设置不同的许可。拥有用户数据的用户可以授予对访问用户数据中的所有数据或者仅对访问用户数据子集的许可。对用户数据的不同子集的访问可以被授予给其他用户的不同组。在一些示例实现中,拥有用户数据的用户可以被呈现以每数据类别的复选框,该复选框可以由用户选择或取消选择以授予或撤消对该类别的用户数据的访问。例如,有针对电子邮件、电话号码、地址、事务、教育记录、就业记录和资产的复选框。备选地,每类别的许可设置可以以某种其他方式被呈现给用户。

在一些示例实现中,由用户设置的许可可以是持续时间受限的。例如,用户可以指定到期时间和日期。或者,用户可以指定对用户数据的访问被授予的持续时间。备选地,由用户设置的许可具有无限的持续时间–许可保持活动,直到由用户改变为止。

取决于实现,针对给定用户的用户数据的许可可以在每用户的基础上针对DLTN的其他用户设置,针对DLTN的用户的任意子集设置,针对与给定用户具有已定义关系(例如用户的连接)的其他用户的子集设置,针对DLTN的所有用户设置,或针对公众设置。以这种方式,不同的许可可以针对DLTN用户的不同子集被设置。不同的许可管理方式(按类别、按持续时间、按用户/用户集合)可以组合使用。例如,在一些示例实现中,对访问给定用户的用户数据的每类别许可可以针对公众设置,并且每类别许可可以针对给定用户的连接设置。

当用户数据通过互联网被与公众共享时,DLTN服务器(370)可以创建Web页面,该Web页面呈现共享的用户数据。用户数据被解密,并且用于Web页面的材料被高速缓存在Web服务器可访问的存储器中。DLTN服务器(370)可以向用户的DLTN客户端(312、316)提供Web页面的URL,其可以共享该URL。当URL被取消引用时,共享的用户数据在Web浏览器中被呈现为Web页面。如果用户改变了所共享的用户数据,则Web页面可以被重新创建,并被指派有相同的URL或不同的URL。如果用户撤消了对先前所共享的用户数据的访问,则Web页面和相关联的材料可以从高速缓存被移除。

当用户加入DLTN或用户首次将用户数据添加到区块链时,用户可以配置许可设置。用户还可以在稍后的时间配置许可设置,例如由某个事件驱动,该事件导致用户想要共享对用户数据的访问或者撤销对用户数据的访问。

如上面解释的,许可设置可以由给定用户主动地设置。许可设置还可以由给定用户响应于来自其他用户的对访问给定用户的用户数据的请求而反应性地设置。

在DLTN中,用户可以请求DLTN中的另一用户的用户数据。发出请求的用户可以是拥有用户数据的用户的连接。或者,发出请求的用户可以是DLTN中的某个其他用户。发出请求的用户可以请求访问所有者的所有用户数据或所有者的用户数据的子集。例如,发出请求的用户可以选择针对所请求的用户数据的不同类别的一个或多个复选框。

拥有用户数据的用户可以通过各种信道来响应请求。例如,如果用户被登录到DLTN的DLTN客户端,则该用户可以访问列出要被检阅的请求的页面。除了每个请求外,一个或多个图形元素还可以指示该请求是被批准还是被驳回。或者,如果用户被登录到DLTN的DLTN客户端,则弹出框可以在DLTN客户端的UI中被呈现,提示用户批准或者驳回该请求。

备选地,请求可以通过另一信道被检阅。请求可以在与发出请求的信道不同的信道中被检阅,以实现区块链中的用户数据的多信道许可。例如,请求可以在SMS消息中被呈现给用户。SMS消息可以提示用户通过经由SMS发送回复消息、或者通过访问具有可以被致动以批准请求的图形控件的Web页面来批准请求。或者,作为另一示例,电子邮件可以被发送给拥有用户数据的用户,以提示用户(通过返回电子邮件)批准请求或者登录到DLTN客户端以检阅请求。

请求可以作为整体被批准或者被驳回。备选地,在一些示例实现中,请求可以(例如在逐类别的基础上)部分地被批准或者被驳回。如果请求(或请求的一部分)被批准,则一组智能合约算法可以打包针对访问的许可的正确集合。即,许可可以通过基于请求和批准来应用条件逻辑而被设置,并且已更新的许可设置可以被存储。

针对用户的用户数据的许可设置可以以各种方式被存储和被部署。例如,许可设置可以被存储在区块链的与用户相关联的区块中。即,许可设置与用户的身份相关联地存留在区块链中。许可设置可以利用用户的与DLTN的其他用户共享的加密密钥来被加密。当另一用户尝试访问用户数据时,许可设置可以(由DLTN服务器代表另一用户)从区块链被取回,使用共享加密密钥被解密,并且结合访问规则、ACL、策略规则等被评估,以确定访问是否被授予。如果访问被授予,则适当的(多个)共享加密密钥可以被标识并且被传达给加密服务,以用于解密所请求的用户数据。如果访问未被授予,则用于访问用户数据的请求被拒绝,但是用于授予访问的请求可以被发送给用户数据的所有者以供检阅。如果许可设置改变,则已更新的许可设置可以被存储在区块链的新区块中,取代先前的区块。因此,当前活动的许可被存储在区块链中用户的最后的许可设置区块中。已更新的许可设置可以利用相同的加密密钥或者不同的加密密钥来被加密。

备选地,当管理对区块链中的用户数据的访问时,许可设置可以被并入到认证服务所应用的ACL数据、策略数据或者访问规则中。当用户更新许可设置时,认证服务更新ACL数据、策略数据或者访问规则以反映改变。认证服务根据需要为用户生成新的加密密钥。ACL数据、策略数据或者访问规则利用认证服务的通用密钥而不是用户特定的加密密钥来被加密。当另一用户尝试访问给定用户的用户数据时,许可设置可以作为访问规则、ACL、策略规则等的一部分被评估,以确定访问是否被授予。如果访问被授予,则适当的(多个)共享加密密钥可以被标识并且被传达给加密服务,以用于解密所请求的用户数据。如果访问未被授予,则用于访问用户数据的请求被拒绝,但是用于授予访问的请求可以被发送给用户数据的所有者以供检阅。

B.涉及针对用户数据的许可设置的操作的示例

图5a、图5b、图7a、图7b、图9a和图9b图示了涉及针对用户数据的许可设置的不同操作。这些操作中的一些操作由DLTN客户端执行,而其他操作由DLTN服务器执行。通常,DLTN客户端被配置为执行各种操作,以与DLTN服务器互操作来访问DLTN,并且DLTN服务器被配置为执行各种操作,以提供对DLTN的访问。在一些示例实现中,DLTN使用以太坊技术。备选地,DLTN使用另一DLTN技术。

在这些示例中,用户的用户数据与用户的身份相关联地被(或将被)存储在DLTN的区块链中。在一些示例实现中,区块链是私有区块链,具有DLTN服务器管理对私有区块链的访问。备选地,区块链是公共区块链。区块链包括一个或多个区块。例如,区块链的一个区块之中的给定区块包括基于区块链中的一个或多个先前区块的哈希值、密钥标识符、类型值、给定用户的用户ID、以及给定用户的用户数据。用户数据使用例如用户特定和上下文特定的一组加密密钥中的一个加密密钥来被加密。备选地,区块链的给定区块包括其他和/或附加字段。

在一些示例中,请求访问用户的用户数据。所请求的用户数据可以是用户的可用用户数据中的所有可用用户数据。或者,所请求的用户数据可以是用户的可用用户数据的子集,其中该子集包括用户的一个或多个类别的用户数据。用户数据可以包括用户的传记数据(例如名字、教育记录、就业记录、信用历史记录、健康记录、国籍、家属)、用户的联系数据(例如物理地址、电话号码、电子邮件地址)、用户的标识文档(例如凭证)、用户在DLTN中的连接、关于涉及用户作为一方的一个或多个事务的数据(例如商业交换、远程购买、资金钱包、定期购买、现金支出)、关于用户资产的数据(例如财产记录)、和/或其他类型的数据。

关于受许可设置影响的用户的集合,许可设置可以以各种方式来被组织。例如,许可设置可以包括组许可设置,该组设置控制按照通过DLTN的一个或多个连接的用户的组的、对用户的用户数据的私有访问。作为另一示例,许可设置可以包括单独的许可设置,该单独的许可设置控制通过DLTN的每连接用户的、对用户的用户数据的私有访问。作为另一示例,许可设置可以包括公开许可设置,该公开许可设置控制通过互联网的对用户的用户数据的公开访问。

关于受许可设置影响的用户数据,许可设置可以以各种方式来被组织。例如,许可设置可以包括类别特定的许可设置,该类别特定的许可设置控制对用户的用户数据的相应类别的访问的授予。作为另一示例,许可设置可以包括全局许可设置,该全局许可设置控制授予对用户的用户数据中的所有用户数据的访问。

许可设置可以是时间受限的。例如,许可设置包括一个或多个定时的许可设置,其在到期时间之前控制对用户的用户数据的访问的授予。备选地,许可设置可以具有无限的持续时间,直到改变为止保持有效。

在一些示例实现中,DLTN客户端是参照图3描述的DLTN客户端(312、316),并且DLTN服务器是参照图3描述的DLTN服务器(370)。DLTN服务器可以包括Web应用并且实现对DLTN客户端可访问的API。DLTN客户端可以被实现为Web浏览器的一组功能,以控制由DLTN服务器执行的面向客户端的脚本逻辑。DLTN服务器在云计算服务的公共子网络中执行。DLTN服务器被配置为调用在云计算服务的隔离子网络中执行的认证服务和加密服务。针对涉及DLTN的区块链的操作,DLTN服务器被配置为调用DLTN的一个或多个节点,这些节点在云计算服务的隔离子网络中执行。备选地,例如如上面参照图3描述的,DLTN客户端和/或DLTN服务器以某种其他方式被实现。

C.设置或改变对访问用户数据的许可的示例

图5a从给定用户的DLTN客户端的角度示出了用于更新DLTN中的针对给定用户的用户数据的许可设置的一般化技术(501)。图5b从DLTN服务器的角度示出了用于更新针对DLTN中的给定用户的用户数据的许可设置的一般化技术(502)。

参照图5a,DLTN客户端向DLTN服务器发送(510)针对用户的用户数据的许可设置的请求。参照图5b,DLTN服务器从DLTN客户端接收(515)针对用户的用户数据的许可设置的请求。该请求可以以经加密的形式通过安全连接被发送/被接收。

DLTN服务器取回(520)许可设置。许可设置可以被存储在持久性存储装置中并且以各种方式被取回,如下所述。

DLTN服务器向DLTN客户端发送(525)许可设置。参照图5a,DLTN客户端从DLTN服务器接收(530)许可设置。许可设置可以以经加密的形式通过安全连接被发送/被接收。

DLTN客户端通过DLTN客户端的UI来呈现(535)许可设置。例如,DLTN客户端通过DLTN客户端的用户界面来显示图形控件,该图形控件可操作以授权对用户的相应类别的用户数据的访问。

DLTN客户端通过DLTN客户端的UI接收(540)来自用户的用户输入,该用户输入指示对许可设置的一个或多个更新。例如,对许可设置的(多个)更新包括授予对用户的用户数据中的至少一些用户数据的访问。或者,作为另一示例,对许可设置的(多个)更新包括撤销对用户的用户数据中的至少一些用户数据的访问。

DLTN客户端向DLTN服务器发送(545)对许可设置的一个或多个更新。参照图5b,DLTN服务器从DLTN客户端接收(550)对许可设置的一个或多个更新。对许可设置的(多个)更新可以以经加密的形式通过安全连接被发送/被接收。

基于对许可设置的一个或多个更新,DLTN服务器更新(555)许可设置。取决于许可设置如何被存储在持久性存储装置中,它们可以以各种方式被更新,如下所述。

当用户的用户数据的类别公开可访问时,DLTN服务器可以执行附加操作以使用户数据可用。例如,DLTN服务器可以创建Web页面,该Web页面包括用户的用户数据的公开可访问的任何类别。DLTN服务器然后可以向DLTN客户端发送到Web页面的链接。

DLTN服务器可以基于对许可设置的(多个)更新来执行附加操作。因为更新可以撤消对以前可访问的用户数据的访问,或者授予对以前不可访问的用户数据的访问,所以DLTN服务器可以改变用户数据如何被加密。例如,DLTN服务器可以使用针对用户的一组加密密钥之中的第一加密密钥来解密用户的用户数据中的至少一些用户数据。DLTN服务器然后可以使用该一组加密密钥之中的(不同于第一加密密钥的)第二加密密钥来重新加密用户的用户数据中的至少一些用户数据。DLTN服务器可以将用户的经重新加密的用户数据存储在区块链中的新区块中。

当用户注册时,许可设置可以如图5a和5b所示的那样被更新。在这种情况下,针对许可设置的请求可以是用于注册用户的请求的一部分,并且对许可设置的(多个)更新是对许可设置的默认初始值的改变。或者,当用户稍后改变许可设置时,许可设置可以如图5a和5b所示的那样被更新。在这种情况下,针对许可设置的请求可以是用于检阅许可设置的请求的一部分,并且对许可设置的(多个)更新是对许可设置的先前被设置的值的改变。

许可设置可以与用户的身份相关联地以经加密的形式被存储在DLTN的区块链中。在这种情况下,DLTN服务器可以通过针对许可设置来搜索区块链来取回许可设置。或者,DLTN服务器可以通过从DLTN的服务请求许可设置来取回许可设置。当DLTN服务器更新许可设置时,许可设置的新版本(或者至少已更新的许可设置)被存储在区块链中的新区块中。

备选地,许可设置可以以经加密的形式被存储在对认证服务可访问的存储装置中。在这种情况下,许可设置可以使用认证服务的主密钥而被加密和被解密。许可设置由认证服务结合一个或多个访问规则可强制执行(enforceable)。当DLTN服务器更新许可设置时,DLTN服务器可以改变对认证服务可访问的存储装置中的许可设置。

图6示出了用于更新针对DLTN中的给定用户的用户数据的许可设置的示例方法(600)。该方法包括参照图5a和5b描述的操作中的一些操作以及用于用户登录、解密和加密的操作。在图6所示的示例方法(600)中,DLTN客户端与DLTN服务器之间的通信可以使用通过用于会话的安全连接(例如,SSL连接)的经加密的消息。许可设置和用户数据可以使用单独的加密密钥以经加密的形式被存储,这些密钥特定于给定用户(用户数据的所有者)并且由加密服务管理。

为了开始,在登录阶段(610)中,作为用户数据的所有者的用户通过DLTN客户端的UI来发起(611)登录过程。DLTN客户端向DLTN服务器提供(612)用户的凭证。DLTN服务器利用认证服务来认证(613、614)用户,当认证成功时,该认证服务向DLTN服务器提供用户认证令牌。DLTN服务器向DLTN客户端发送(615)消息,指示认证已经成功。

在下一阶段(620)中,针对用户的用户数据的许可设置被请求并且被呈现。通过DLTN客户端的UI,用户请求(621)许可设置。DLTN客户端向DLTN服务器发送(622)请求,DLTN服务器从区块链或者其他存储装置取回(623、624)许可设置。许可设置可以以经加密的形式被取回,在这种情况下,DLTN服务器调用(625)加密服务以解密许可设置。为了解密许可设置,加密服务使用针对用户(用户数据的所有者)使用一个或多个适当的用户特定的加密密钥。加密服务以经解密的形式向DLTN服务器返回(626)许可设置,该DLTN服务器(通过用于会话的安全连接)向DLTN客户端发送(627)经解密的许可设置。DLTN客户端通过DLTN客户端的UI来呈现(628)许可设置。

在下一阶段(630)中,许可设置选择性地被更新。用户通过DLTN客户端的UI来提供(631)用户输入,该用户输入指示对许可设置的一个或多个更新。DLTN客户端向DLTN服务器发送(632)(多个)更新,DLTN服务器更新许可设置。如果已更新的许可设置以经加密的形式被存储,则DLTN服务器调用(633)加密服务以加密已新的许可设置,并且加密服务以经加密的形式返回(634)已更新的许可设置。为了加密许可设置,加密服务使用针对用户(用户数据的所有者)的一个或多个适当的用户特定的加密密钥。DLTN服务器将已更新的许可设置存储(635)在区块链或者其他存储装置中。

D.请求和批准对访问用户数据的许可的示例

图7a从另一用户的DLTN客户端的角度示出了用于请求访问DLTN中的给定用户的用户数据的一般化技术(701),该另一用户是该用户数据的潜在检阅者。图7b从DLTN服务器的角度示出了对应的一般化技术(702)。

参照图7a,DLTN客户端向DLTN服务器发送(710)来自检阅者的用于访问用户的用户数据的请求。参照图7b,DLTN服务器从DLTN客户端接收(715)用于访问用户的用户数据的请求。该请求可以以经加密的形式通过安全连接被发送/被接收。

DLTN服务器取回(720)针对用户的许可设置。许可设置可以被存储在持久性存储装置中并且以各种方式被取回。例如,许可设置可以与用户的身份相关联地以经加密的形式被存储在DLTN的区块链中。在这种情况下,DLTN服务器可以通过针对许可设置来搜索区块链来取回许可设置。或者,DLTN服务器可以通过从DLTN的服务请求许可设置来取回许可设置。替代地,许可设置可以以经加密的形式被存储在对认证服务可访问的存储装置中。在这种情况下,许可设置可以使用认证服务的主密钥而被加密和被解密。许可设置由认证服务结合一个或多个访问规则可强制执行。

DLTN服务器基于许可设置而确定(725)对用户的用户数据的访问未被授予检阅者。DLTN服务器向DLTN客户端发送(730)对用户的用户数据的访问未被授予检阅者的指示。指示可以以经加密的形式通过安全连接被发送。

参照图7a,DLTN客户端从DLTN服务器接收(735)如下指示:根据针对用户的用户数据的许可设置,对用户的用户数据的访问未被授予检阅者。作为响应,DLTN客户端可以通过DLTN客户端的UI来显示一个或多个图形元素,该一个或多个图形元素指示对用户的用户数据的访问未被授予。随后,DLTN客户端可以通过DLTN客户端的UI接收来自检阅者的用户输入,该用户输入指示针对批准访问用户的用户数据的请求。DLTN客户端向用户发起(740)对批准访问用户的用户数据的请求。例如,DLTN客户端向DLTN服务器或者服务器消息收发应用发送如下指示:检阅者寻求由用户对访问用户的用户数据的批准。

参照图7b,DLTN服务器从DLTN客户端接收(745)如下指示:检阅者寻求由用户对访问用户的用户数据的批准的指示。DLTN服务器然后向用户的DLTN客户端或者用户的客户端消息收发应用发送(750)对以下的请求:由用户批准检阅者访问用户的用户数据。至少在被发送给用户的DLTN客户端时,该请求可以以经加密的形式通过安全连接被发送。

图7c从给定用户的DLTN客户端的角度示出了用于批准访问给定用户的用户数据的一般化技术(703)。图7d从DLTN服务器的角度示出了对应的一般化技术(704)。

参照图7c,DLTN客户端通过DLTN客户端的UI来呈现(755)对以下的请求:由用户批准检阅者访问用户的用户数据。例如,DLTN客户端通过DLTN客户端的用户界面显示图形控件,该图形控件可操作以指示对请求的批准或者驳回。该请求可以由DLTN客户端从DLTN服务器以加密形式通过安全连接接收。

DLTN客户端通过DLTN客户端的UI接收(760)输入,该输入指示对请求的批准或者驳回。

DLTN客户端向DLTN服务器发送(765)对请求的批准或者驳回的指示。参照图7d,DLTN服务器从DLTN客户端接收(770)批准或者驳回请求的指示。批准或者驳回的指示可以以经加密的形式通过安全连接被发送/被接收。

基于指示,DLTN服务器选择性地更新许可设置。具体地,DLTN服务器检查(775)来自检阅者的请求是否被批准。如果是,则DLTN服务器更新(780)许可设置,以向检阅者提供所请求的对用户的用户数据的访问。取决于许可设置如何被存储在持久性存储装置中,它们可以以各种方式被更新。例如,如果许可设置与用户的身份相关联地以经加密的形式被存储在DLTN的区块链中,则当DLTN服务器更新许可设置时,许可设置的新版本(或者至少已更新的许可设置)被存储在区块链中的新区块中。备选地,如果许可设置以经加密的形式被存储在对认证服务可访问的存储装置中,则当DLTN服务器更新许可设置时,DLTN服务器可以改变该对认证服务可访问的存储装置中的许可设置。

DLTN服务器可以基于批准或者驳回请求的指示来执行附加操作。由于批准授予对先前不可访问的用户数据的访问,因此DLTN服务器可以改变用户数据如何被加密。例如,DLTN服务器可以使用针对用户的一组加密密钥之中的第一加密密钥来解密用户的用户数据中的至少一些用户数据。DLTN服务器然后可以使用该一组加密密钥之中的(不同于第一加密密钥的)第二加密密钥来重新加密用户的用户数据中的至少一些用户数据。DLTN服务器可以将用户的经重新加密的用户数据存储在区块链中的新区块中。

图7c示出了利用与DLTN服务器互操作的DLTN客户端所执行的操作,而图7e示出了用于使用备选信道来批准对给定用户的用户数据的访问的一般化技术(705)。该技术(705)的操作可以由客户端消息收发应用(诸如SMS消息收发应用)执行。例如,如果给定用户未被登录到DLTN或者不具有对DLTN客户端的访问,则该技术(705)可以被执行。

为了开始,客户端消息收发应用通过客户端消息收发应用的UI来呈现(756)针对批准检阅者访问用户的用户数据的请求。例如,客户端消息收发应用通过客户端消息收发应用的UI来显示文本消息,该文本消息包括描述请求的文本。文本消息还可以包括到Web页面的链接和/或消息收发号码。

客户端消息收发应用通过客户端消息收发应用的UI来接收(761)来自用户的用户输入,该用户输入指示对请求的批准。客户端消息收发应用向Web服务器或者服务器消息收发应用发送(766)对请求的批准的指示。例如,如果请求(例如文本消息)包括到Web页面的链接,则客户端系统可以启动Web浏览器并且导航到链接中所指示的Web页面,从而向Web服务器通知请求的批准。或者,作为另一示例,如果请求(例如文本消息)包括消息收发号码,则客户端消息收发应用可以向消息收发号码发送文本消息,从而向服务器消息收发应用通知请求的批准。

图8a和图8b示出了用于请求和批准访问DLTN中的给定用户的用户数据的示例方法(800)。该方法包括参照图7a至图7d描述的操作中的一些操作以及用于用户登录、解密和加密的操作。在图8a和8b所示的示例方法(800)中,DLTN客户端与DLTN服务器之间的通信可以使用通过用于会话的安全连接(例如,SSL连接)的经加密的消息。许可设置和用户数据可以使用单独的加密密钥以经加密的形式被存储,这些密钥特定于给定用户(用户数据的所有者)并且由加密服务管理。

参照图8a,在检阅者的登录阶段(810)中,检阅者通过DLTN客户端的UI来发起(811)登录过程。DLTN客户端向DLTN服务器提供(812)检阅者的凭证。DLTN服务器利用认证服务来认证(813、814)检阅者,当认证成功时,该认证服务向DLTN服务器提供用户认证令牌。DLTN服务器向DLTN客户端发送(815)消息,指示认证已成功。

在下一阶段(820)中,检阅者请求访问另一用户的用户数据。通过DLTN客户端的UI,用户请求(821)对用户的用户数据的访问。DLTN客户端向DLTN服务器发送(822)请求,DLTN服务器从区块链或者其他存储装置取回(823、824)针对(拥有用户数据的)用户的许可设置。许可设置可以以经加密的形式被取回,在这种情况下,DLTN服务器调用(825)加密服务以解密许可设置。为了解密许可设置,加密服务使用针对用户(用户数据的所有者)的一个或多个适当的用户特定的加密密钥。加密服务以经解密的形式向DLTN服务器返回(826)许可设置,该DLTN服务器使用许可设置来确定检阅者是否具有对用户的用户数据的访问。(备选地,如果许可设置被直接存储在对认证服务可访问的存储装置中,则认证服务可以确定检阅者是否具有对用户的用户数据的访问。)在图8a和图8b所示的示例中,DLTN服务器确定检阅者不具有对用户的用户数据的访问。DLTN服务器向DLTN客户端发送(827)访问未被授予的指示,并且DLTN客户端在DLTN客户端的UI上呈现(828)访问未被授予的指示。

在下一阶段(830)中,检阅者通过DLTN客户端的UI来提供(831)输入,该输入指示检阅者寻求由用户批准检阅者访问用户数据。DLTN向DLTN服务器发送(832)如下指示:检阅者寻求由用户对访问用户数据的批准。

参照图8b,在拥有用户数据的用户的登录阶段(840)中,用户通过DLTN客户端的UI来发起(841)登录过程。DLTN客户端向DLTN服务器提供(842)用户的凭证。DLTN服务器利用认证服务来认证(843、844)用户,当认证成功时,该认证服务向DLTN服务器提供用户认证令牌。DLTN服务器向DLTN客户端发送(845)消息,指示认证已经成功。

在下一阶段(850)中,DLTN服务器向DLTN客户端发送(851)对以下的请求:由用户批准检阅者访问用户的用户数据。DLTN客户端在DLTN客户端的UI中呈现(852)该请求。通过DLTN客户端的UI,用户提供(853)用户输入,该用户输入指示请求是否被批准。DLTN客户端向DLTN服务器发送(854)请求是已经被批准还是被驳回的指示。

在下一阶段(860)中,基于请求是已经被批准还是被驳回的指示,许可设置选择性地被更新。如果DLTN服务器不再具有针对用户的许可设置,则DLTN服务器从区块链或者其他存储装置取回(861、862)针对(拥有用户数据的)用户的许可设置。许可设置可以以经加密的形式被取回,在这种情况下,DLTN服务器调用(863)加密服务以解密许可设置。为了解密许可设置,加密服务使用针对用户(用户数据的所有者)的一个或多个适当的用户特定的加密密钥。加密服务以经解密的形式向DLTN服务器返回(864)许可设置。DLTN服务器更新许可设置。如果许可设置以经加密的形式被存储,则DLTN服务器调用(865)加密服务以加密已更新的许可设置,并且加密服务以经加密的形式返回(866)已更新的许可设置。为了加密许可设置,加密服务针对用户(用户数据的所有者)的一个或多个适当的用户特定的加密密钥。DLTN服务器将已更新的许可设置存储(867)在区块链或者其他存储装置中。批准的指示可以被发送给检阅者的DLTN客户端并且被呈现给检阅者。随后,当检阅者再次尝试访问用户的用户数据时(如图8a的操作821至826中一样),访问被授予。

E.撤销对访问用户数据的许可的示例.

图9a从给定用户的DLTN客户端的角度示出了用于撤销对DLTN中的给定用户的用户数据的访问的一般化技术(901)。图9b从DLTN服务器的角度示出了对应的一般化技术(902)。

参照图9b,DLTN服务器向DLTN客户端发送(910)来自检阅者的、用于授予对用户的用户数据的访问的先前被批准的请求。该先前被批准的请求可以以经加密的形式通过安全连接被发送/被接收。

参照图9a,DLTN客户端通过DLTN客户端的UI呈现(915)用于授予对用户的用户数据的访问的先前被批准的请求。例如,DLTN客户端通过DLTN客户端的UI显示图形控件,该图形控件可操作以指示撤销先前被批准的请求。

DLTN客户端通过DLTN客户端的UI接收(920)输入,该输入指示撤销先前被批准的请求。

DLTN客户端向DLTN服务器发送(925)撤销先前被批准的请求的指示。参照图9b,DLTN服务器从DLTN客户端接收(930)撤销先前被批准的请求的指示。撤销的指示可以以经加密的形式通过安全连接被发送/被接收。

基于撤销先前被批准的请求的指示,DLTN服务器更新(935)许可设置。取决于许可设置如何被存储在持久性存储装置中,它们可以以各种方式被更新。例如,如果许可设置与用户的身份相关联地以经加密的形式被存储在DLTN的区块链中,则当DLTN服务器更新许可设置时,许可设置的新版本(或者至少已更新的许可设置)被存储在区块链中的新区块中。备选地,如果许可设置以经加密的形式被存储在对认证服务可访问的存储装置中,则当DLTN服务器更新许可设置时,DLTN服务器可以改变该对认证服务可访问的存储装置中的许可设置。

基于撤销先前被批准的请求的指示,DLTN服务器可以执行附加操作。由于驳回移除了对先前可访问的用户数据的访问,因此DLTN服务器可以改变用户数据如何被加密。例如,DLTN服务器可以使用针对用户的一组加密密钥之中的第一加密密钥来解密用户的用户数据中的至少一些用户数据。DLTN服务器然后可以使用该一组加密密钥之中的(不同于第一加密密钥的)第二加密密钥来重新加密用户的用户数据中的至少一些用户数据。DLTN服务器可以将用户的经重新加密的用户数据存储在区块链中的新区块中。

图10示出了用于撤销对DLTN中的给定用户的用户数据的访问的示例方法(1000)。该方法包括参照图9a和图9b描述的操作中的一些操作以及用于用户登录、解密和加密的操作。在图10所示的示例方法(1000)中,DLTN客户端与DLTN服务器之间的通信可以使用通过用于会话的安全连接(例如,SSL连接)的经加密的消息。许可设置和关于先前请求的信息可以使用单独的加密密钥以经加密的形式被存储,这些密钥特定于给定用户(用户数据的所有者)并且由加密服务管理。

为了开始,在登录阶段(1010)中,用户通过DLTN客户端的UI来发起(1011)登录过程。DLTN客户端向DLTN服务器提供(1012)用户的凭证。DLTN服务器利用认证服务认证(1013、1014)用户,当认证成功时,该服务向DLTN服务器提供用户认证令牌。DLTN服务器向DLTN客户端发送(1015)消息,指示认证已成功。

在下一阶段(1020)中,用于访问用户数据的先前被批准的请求被请求并且被呈现。通过DLTN客户端的UI,用户请求(1021)针对用户的用户数据的先前被批准的请求列表。DLTN客户端向DLTN服务器发送(1022)请求,DLTN服务器从区块链或者其他存储装置取回(1023、1024)许可设置和先前被批准的请求。许可设置和先前被批准的请求可以以经加密的形式被取回,在这种情况下,DLTN服务器调用(1025)加密服务以解密许可设置和先前被批准的请求。为了解密许可设置和先前被批准的请求,加密服务使用针对用户(用户数据的所有者)的一个或多个适当的用户特定的加密密钥。加密服务以经解密的形式向DLTN服务器返回(1026)返回许可设置和先前被批准的请求,该DLTN服务器向DLTN客户端发送(1027)经解密的先前被批准的请求。DLTN客户端通过DLTN客户端的UI来呈现(1028)先前被批准的请求。

在下一阶段(1030)中,用户通过DLTN客户端的UI来提供(1031)用户输入,该用户输入指示撤销先前被批准的请求中的一个请求。DLTN客户端向DLTN服务器发送(1032)撤销的指示,该DLTN服务器更新许可设置和先前被批准的请求的列表(以移除被撤销的请求)。(备选地,DLTN服务器可以在此时取回和解密许可设置,而不是更早取回它们)。如果已更新的许可设置和剩余的先前被批准的请求以经加密的形式被存储,则DLTN服务器调用(1033)加密服务以加密已更新的许可设置和剩余的先前被批准的请求,并且加密服务以经加密的形式返回(1034)已更新的许可设置和剩余的先前被批准的请求。为了加密许可设置和剩余的先前被批准的请求,加密服务使用针对用户(用户数据的所有者)的一个或多个适当的用户特定的加密密钥。DLTN服务器将已更新的许可设置和剩余的先前被批准的请求存储(1035)在区块链或者其他存储装置中。撤销的指示可以被发送给用户的DLTN客户端和/或其许可被撤销的用户的DLTN客户端。

F.示例屏幕截图

图11a至图11j是示例屏幕截图的图,其图示了在一些示例实现中管理针对DLTN中的给定用户的用户数据的许可设置的不同特征。在图11a至图11c和图11e至图11i中,屏幕截图示出了在(DLTN客户端的)Web浏览器中所绘制的页面,其具有由(DLTN服务器的)Web应用提供的图形元素。

图11a中的屏幕截图(1100)示出了用户(农夫二)已经登录之后DLTN客户端的UI的首页(1101)。首页(1101)的顶行(1102)包括可以被致动以到达菜单或页面的图形控件(下拉菜单),这些菜单或页面示出与用户相关联的身份、可用的应用、(由用户定义、或者要由用户完成或检阅、或者先前由用户提交的)表单、或者用户的资产。顶行(1102)还包括图形指示符,该图形指示符指示首页的语言和已登录用户。在顶行(1102)下方,首页(1101)包括用户的简档、设置和安全性的部分。简档部分包括图形控件,该图形控件可以被致动以检阅和编辑用户的用户数据(诸如一般信息、就业历史、教育)、或者上传用户的用户数据的文档(诸如标识文档)。安全性部分包括图形控件,该图形控件可以被致动以检阅和标记针对用户的用户数据的许可设置(“公共简档设置”)、或者检阅对共享用户的用户数据的请求(“简档共享请求”)。

图11b中的屏幕截图(1110)示出了在用户(农夫二)已经致动图形控件以检阅和编辑许可设置之后、DLTN客户端的UI的页面(1111)。顶行(1102)与图11a所示的相同。右列(1113)提供与用户数据的许可设置和共享相关的图形控件和信息。在右列(1113)的顶部提供了到Web页面的链接(“到您的共享简档的链接”)以及可以被用于共享链接的图形控件,该Web页面包括用户的用户数据的公共可用项。在其下方,右列(1113)包括复选框,该复选框可以被选择以与公众或者仅与用户在DLTN中的连接共享用户的用户数据的类别。在一个标签(“互联网”)中,复选框可以被选择以与公众共享用户的用户数据的类别。在另一标签(“连接”)中,复选框可以被选择以仅与用户在DLTN中的连接共享用户的用户数据的类别。在图11b中,页面(111)示出了被选择以与公众共享的四个类别(电子邮件、语言能力、就业历史和事务),并且页面(1111)示出了这些类别中的用户数据。通过致动该部分中针对用户数据的该类别的图形控件,一些用户数据(例如语言能力、就业历史)可以被编辑。其他信息(例如事务)无法被编辑。用户可以选择或者取消选择复选框,以改变用户数据的哪些类别是公开被共享的、以及用户数据的哪些类别与用户的连接共享。在进行改变之后,用户可以通过致动保存按钮来保存对许可设置的改变,这引起对许可设置的更新被发送给DLTN服务器。

图11c中的屏幕截图(1120)示出了在用户(农夫二)已经致动图形控件以检阅和编辑许可设置之后、DLTN客户端的UI的另一页面(1121)。与图11b所示的页面(1111)相比,用户数据的不同类别被选择以用于共享。在图11c中,页面(1121)示出了被选择以与公众共享的两个类别(身份和事务)以及这些类别中的用户数据。通过致动该部分中针对用户数据的该类别的图形控件,一些用户数据(例如身份)可以被编辑。其他信息(例如事务)无法被编辑。

图11d所示的屏幕截图(1130)示出了Web页面(1131),该Web页面(1131)包括用户(农夫二)的公开可用的用户数据。Web页面在常规的Web浏览器(未充当DLTN客户端)中被绘制,其包括例如地址栏(1132)。在图11d中,公开被共享的用户数据包括电子邮件地址、电话号码、物理地址和身份。

图11e中的屏幕截图(1140)示出了在用户(农夫二)已经致动图形控件以检阅简档共享请求(例如图11a的首页(1101)的简档共享请求控件、或者图11b或11c的右列(1113)中的简档共享请求链接)之后DLTN客户端的UI的页面(1141)。顶行(1141)与图11a至图11c所示的相同。在顶行(1102)下方,页面(1141)包括可用于用户检阅的两个不同的简档共享请求的部分。一个请求来自用户咖啡公司,并且另一请求来自用户Ashish Gadnis。每个请求列出该请求所请求的要共享的用户数据的类别,或者列出概述(“多个部分”)。如在左下角指示的(来自用户咖啡公司的)第一请求先前已被批准。在第一请求的部分中,图形控件可以被致动以打开或者撤销第一请求。(来自用户Ashish Gadnis的)第二请求尚未被批准。在第二请求的部分中,图形控件可以被致动以批准或者驳回第二请求。

图11f中的屏幕截图(1150)示出了在用户(农夫二)已经致动图形控件以检阅(来自用户咖啡公司的)第一请求之后DLTN客户端的UI的页面(1151)。顶行(1102)与图11a至图11c和图11e所示的相同。在顶行(1102)下方,页面(1151)包括(来自用户咖啡公司的)第一简档共享请求的部分。该部分列出了第一请求所请求的要共享的用户数据的类别。图形控件可以被致动以撤销第一请求。

图11g至11i中的屏幕截图(1160、1170、1180)生成了在另一用户(咖啡公司)已经登录之后、DLTN客户端的UI的一系列页面(1161、1171、1181)。相应页面的顶行(1162)包括可以被致动以到达菜单或页面的图形控件(下拉菜单),该菜单或页面示出了与用户相关联的身份、可用的应用、(由用户定义,或者要由用户完成或检阅、或者先前由用户提交的)表单、用户的资产、来自用户的请求和管理设置。顶行(1162)还包括图形指示符,该图形指示符指示页面(1161、1171、1181)语言和已登录用户。图11g和11h所示的页面(1161、1171)示出了用户的连接(农夫Juan)以及该连接的共享用户数据(电子邮件地址)。图11h所示的页面(1171)示出了图形控件,该图形控件可以被致动来向连接(农夫Juan)发送简档共享请求以共享用户数据(“请求更多信息”)。图11i中的屏幕截图(1180)示出了在用户(咖啡公司)已经致动图形控件以向连接(农夫Juan)发送简档共享请求之后的页面(1181)。页面(1181)列出了要被包括在简档共享请求中的用户数据的类别。在类别由用户(咖啡公司)选择之后,简档共享请求被发送给连接(农夫Juan),该连接可以DLTN客户端中请求检阅请求,然后批准或者驳回(如参照图11e所解释的)。

最后,图11j中的屏幕截图(1190)示出了在备选信道中在一个用户(咖啡公司)已经将简档共享请求发送给另一用户(农夫Juan)之后,客户端消息收发应用的UI的屏幕(1191)。该屏幕(1191)示出了文本消息,该文本消息包括简档共享请求的概述、发送方(咖啡公司)想要用户(农夫Juan)共享的用户数据的类别、以及用户批准请求的两个选项。第一选项是链接,用户可以致动该链接以批准请求。第二选项是电话号码,用户可以发送短响应(“是”)来批准请求。

本文描述的创新包括但不限于以下内容:

前述描述仅公开了示例。落入本发明的范围的修改对于本领域的普通技术人员将是明显的。鉴于所公开发明的原理可以被应用的许多可能示例,应该认识到,所说明的示例仅是本发明的优选示例,并且不应被认为是限制本发明的范围。相反,本发明的范围由所附权利要求限定。因此,我们要求保护落入这些权利要求的范围和精神内的所有内容作为我们的发明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号