CN113302645A - 定义和管理分布式账本信托网络中的表单 - Google Patents

定义和管理分布式账本信托网络中的表单 Download PDF

Info

Publication number
CN113302645A
CN113302645A CN201980088759.0A CN201980088759A CN113302645A CN 113302645 A CN113302645 A CN 113302645A CN 201980088759 A CN201980088759 A CN 201980088759A CN 113302645 A CN113302645 A CN 113302645A
Authority
CN
China
Prior art keywords
dltn
given form
given
client
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980088759.0A
Other languages
English (en)
Inventor
S·S·纳塔伦科
J·A·科伊瑟
A·加德尼斯
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.)
Bank Corp
Original Assignee
Bank Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank Corp filed Critical Bank Corp
Publication of CN113302645A publication Critical patent/CN113302645A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Abstract

用于定制分布式账本信托网络(“DLTN”)中的表单的机制被描述。给定用户可以指定元数据,该元数据定义了要由其他用户完成的表单,其中定义表单的元数据被存储在区块链中。所述给定用户可以针对表单设置许可,以便控制对该表单的访问,并且将表单指派给其他用户以供完成。在另一用户已经向区块链提交了表单的(包括由其他用户录入的数据的)实例之后,给定用户可以检阅和批准该表单的实例,或者请求其他用户对表单的校正。区块链可以存储表单的记录、表单的包括由其他用户在不同阶段提供的数据的实例、以及关于表单的那些实例的状态(例如已批准、已请求校正、已驳回)的信息。

Description

定义和管理分布式账本信托网络中的表单
相关申请信息
本申请要求于2018年11月13日提交的美国临时专利申请号62/760,789的权益,其公开内容通过引用并入本文。
技术领域
分布式账本信托网络(“DLTN”)的增强。增强中的一些增强涉及用于使用定义表单的元数据来定义和管理DLTN中的表单的机制。
背景技术
区块链技术已经被用于诸如银行业务、加密货币交换和智能合约的上下文中。通常,区块链技术提供了以可核实的永久方式来记录事务的分布式账本。区块链可以跨被称为节点的计算机系统的网络分布。节点遵循协议,该协议用于在节点之间通信、将新区块添加到区块链、以及批准(“验证”)新区块。
通常,区块链是链中动态增长的记录的列表,称为区块。给定的区块逻辑地被链接至区块链中的先前区块。例如,通过将密码哈希函数应用于先前区块的数据,哈希值被计算,并且哈希值被存储在给定区块中。给定区块还包括其他字段,诸如时间戳和有效载荷数据(有时称为事务数据)。有效载荷数据通常表示一个或多个事务,但是更一般地可以是任何种类的数据。通常,一旦给定区块被添加到区块链,该给定区块中的数据就无法在稍后被修改,因为任何后续区块都取决于给定区块中的数据。(要追溯地更改给定区块中的数据,区块链中的后续区块也必须被更改,这要求区块链网络内不可能或其达成不切实际的共识水平。)通过重新计算针对区块链中的相应区块的哈希值、并且将这些重新计算的哈希值与逻辑地链接这些区块的先前计算的哈希值相比较,区块链的完整性可以被核实。
在一些情况下,多个区块可以被同时产生,并且被添加到区块链中的相同的先前区块。这在区块链中临时创建一个分叉。区块链网络的节点遵循协议来将分叉的不同分支排名(“评分”),使得分支中(具有最高得分)的一个分支由所有节点跟随。以这种方式,区块链的非优先分支的大小被限制。支持区块链的节点共享区块链的版本,并且保留具有最高得分的版本。各种激励被实现,以在所使用的区块链版本越长时,降低区块链的该版本被取代的可能性。
通过跨区块链网络的节点来存储区块链,与将数据存储在单个集中位置中相关联的数据丢失的风险被减轻。取决于实现,区块链网络中的每个节点都可以存储区块链的完整或部分副本。
在公共区块链(也称为无许可区块链)中,在没有许可的情况下,区块链的区块对区块链网络中的参与者可访问。区块链网络中的任何参与者都可以访问该区块链中的区块,核实区块链的区块,向区块链添加新区块,并且验证区块链的新区块。访问控制不在公共区块链中被使用。相反,在私有区块链(也称为许可区块链)中,中央机构控制对区块链网络的访问。即,中央机构控制哪些参与者可以:访问区块链中的区块,核实区块链的区块,向区块链添加新区块,以及验证区块链的新区块。
在实现区块链的先前方法中,给定用户无法定制和管理可以与其他用户共享的表单,这限制了区块链网络的功能性。
发明内容
总而言之,具体实施方式提出了针对用于在分布式账本信托网络(“DLTN”)中定制表单的机制的各种创新。利用这样的创新,给定用户可以定义和管理与DLTN中的其他用户共享的定制表单。例如,给定用户可以指定元数据,该元数据定义了要由其他用户完成的表单,其中定义表单的元数据被存储在区块链中。给定用户可以针对表单设置许可,以便控制其他用户对表单的访问,并且给定用户可以将表单指派给其他用户以供完成。以这种方式,在一些示例实现中,在DLTN中定义和共享定制表单的过程被简化,并且对DLTN的用户可用。作为另一示例,在另一用户已经向区块链提交了表单的(包括由其他用户录入的数据的)实例之后,给定用户可以检阅(review)和批准表单的实例,或者请求其他用户对表单的校正。以这种方式,在一些示例实现中,检阅表单的已提交实例的过程被简化。区块链可以存储(如由元数据指定的)表单的记录、表单的包括由其他用户在不同阶段提供的数据的实例、以及关于表单的那些实例的状态(例如已批准、已请求校正、已驳回)的信息,这提供了一种直观的方式来追踪表单的历史记录和使用情况。
本文描述的创新包括但不限于由权利要求覆盖的创新。创新可以被实现为方法的一部分、被配置为执行该方法的计算机系统的一部分、或者存储计算机可执行指令的非瞬态计算机可读介质的一部分,该计算机可执行指令用于使计算机系统中的一个或多个处理器执行该方法。各种创新可以组合或单独地使用。本发明内容被提供来以简化的形式介绍一些概念,这些概念下面在具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或者必要特征,也不旨在被用于限制所要求保护的主题的范围。通过以下具体实施方式,本发明的前述和其他目的、特征和优点将变得更加明显,以下具体实施方式继续参照附图并图示了许多示例。示例也可以用于其他和不同的应用,并且一些细节可以在各个方面进行修改,而不脱离所公开创新的精神和范围。
附图说明
以下附图图示了所公开创新的一些特征。
图1是图示一些所描述的示例可以在其中被实现的示例计算机系统的图解。
图2是图示示例区块链的图解。
图3是图示用于管理DLTN中的私有区块链的示例架构的图解。
图4是图示在图3的架构中所使用的用于认证服务和加密/解密服务的示例架构的图解。
图5a和图5b是图示用于更新定义DLTN中的表单的元数据的一般化技术的各个方面的流程图。
图6是图示用于更新定义DLTN中的表单的元数据的示例方法的协议图。
图7a和图7b是图示用于为DLTN中的表单的实例提供实例数据的一般化技术的各个方面的流程图。
图8是图示用于为DLTN中的表单的实例提供实例数据的示例方法的协议图。
图9a和图9b是图示以供检阅和批准DLTN中的表单的实例的一般化技术的各个方面的流程图。
图10是图示了以供检阅和批准DLTN中的表单的实例的示例方法的协议图。
图11a至图11f是图示管理定义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指定的用户“拥有”。针对用户的许可设置被用于控制对用户的用户数据的访问,该许可设置可以被存储在区块链(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客户端的UI使用元数据来定义定制表单的能力,该元数据被存储在区块链中;
●用户(表单创建者)设置许可以与DLTN中的所有其他用户或者经选择的其他用户共享定制表单的能力;
●用户(表单创建者)向DLTN中的其他用户指派定制表单的能力;
●用户(表单创建者)创建和管理针对定制表单的批准工作流的能力;
●用户(表单提交者)提供针对定制表单的数据、并且提交定制表单的实例的能力,该实例被存储在区块链中;
●用户(表单检阅者)检阅被存储在区块链中的定制表单的实例、并且批准该表单的实例或者以其他方式提供对该表单实例的反馈的能力;以及
●用户创建和访问定制表单的不可变记录、定制表单的已提交实例、以及已提交实例在各个阶段的状态的能力。
A.介绍.
除了存储用户数据之外,区块链还可以存储定义定制表单的元数据。DLTN中的DLTN服务器可以通过DLTN客户端提供UI,从而允许用户定义定制表单。当定制表单被保存时,定义定制表单的元数据可以与创建定制表单的用户的用户ID相关联地被存储在区块链的新区块中。
当创建定制表单时,用户可以从先前的定制表单、从表单的预设模板、或者从空表单开始。用户可以向定制表单添加一个或多个字段。定制表单可以包含任意数目的数据字段,每个数据字段都具有被定义的属性。例如,用户可以指定针对定制表单的字段的信息,诸如名称、控件类型(例如文本、单选按钮、滑块)或另一属性。定制表单可以包括单个部分或多个部分。定制表单还可以包括嵌入的规则以检查数据的一致性,并取决于先前录入的数据适配哪些字段是活动的。这在数据层和表单层处提供了可扩展性。
用户可以设置针对定制表单的许可,以便控制哪些用户可以访问DLTN中的定制表单。例如,可以使定制表单对DLTN中的用户的所有连接、DLTN中经选择的用户或者DLTN中的所有用户可用。这提供了访问级别的可扩展性,以用于对DLTN中的定制表单的安全和许可管理。针对定制表单的许可设置可以使用各种机制中的任何机制来被管理。
为了使用户提供针对定制表单的数据,DLTN客户端可以呈现该定制表单。例如,DLTN客户端在其UI中绘制定制表单,并且接受到定制表单的字段中的用户输入。当用户完成向定制表单中录入数据时,用户可以利用电子签名来将定制表单签名。通过与提交定制表单的用户的用户ID相关联地将定制表单的实例保存在区块链的新区块中,用户提交定制表单。新区块可以包括定义表单的元数据以及由用户提供的数据。提交定制表单的实例的用户可以指定许可,使得用户和表单检阅者可以访问定制表单的已提交实例。因此,当用户录入针对定制表单的实例的数据时,用户可以设置针对定制表单的实例的许可,以便控制哪些用户可以访问和检阅定制表单的实例。针对实例数据的许可设置可以使用各种机制中的任何机制来被管理。
检阅者可以检阅定制表单的已提交实例。例如,DLTN客户端在其UI中绘制定制表单的已提交实例,并且接受来自检阅者的反馈。检阅者可以检查电子签名、批准表单的实例、请求校正表单的实例、或者提供其他反馈。定制表单的新的(经检阅的)实例可以与检阅定制表单的用户的用户ID相关联地被保存在区块链的新区块中。新区块可以包括定义表单的元数据、以及由提交者提供的数据和来自检阅者的反馈。检阅者可以指定许可,使得原始表单提交者(实例数据的提交者)和检阅者可以访问定制表单的新实例。来自检阅者的针对反馈(或新实例)的许可设置可以使用各种机制中的任何机制来被管理。如果被请求,则提交者可以对定制表单的先前所提交的实例或者经检阅的实例做出改变,并且将定制表单的另一实例保存在区块链中。
通常,提交和检阅过程的每个新事件都可以引起将新区块保存在区块链中。这些区块共同提供了由用户提交的定制表单的实例的历史记录。例如,区块链包括用于由用户最初完成定制表单的实例的区块、用于校正请求的另一区块、以及用于定制表单的经改变/经校正实例的第三区块。在批准后,区块链包括用于定制表单的已批准实例的区块。
B.涉及定义表单的元数据的操作的示例.
图5a、图5b、图7a、图7b、图9a和图9b图示了涉及定义表单的元数据的不同操作。这些操作中的一些操作由DLTN客户端执行,而其他操作由DLTN服务器执行。通常,DLTN客户端被配置为执行各种操作,以与DLTN服务器互操作来访问DLTN,并且DLTN服务器被配置为执行各种操作,以提供对DLTN的访问。在一些示例实现中,DLTN使用以太坊技术。备选地,DLTN使用另一DLTN技术。
在这些示例中,定义表单的元数据与拥有表单的用户的身份相关联地被(或将被)存储在DLTN的区块链中。在一些示例实现中,区块链是私有区块链,其中DLTN服务器管理对私有区块链的访问。备选地,区块链是公共区块链。区块链包括一个或多个区块。例如,区块链的(多个)区块之中的给定区块包括基于区块链中的一个或多个先前区块的哈希值、密钥标识符、类型值、给定用户的用户ID、以及定义由给定用户拥有的表单的元数据。元数据使用例如用户特定和上下文特定的一组加密密钥中的一个加密密钥来被加密。备选地,区块链的给定区块包括其他和/或附加字段。对定义表单的元数据的访问可以使用许可设置来被管理。
在一些示例实现中,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和5b所示的更新活动可以发生。在这种情况下,定义表单的元数据包括先前指定的值,这些值根据对表单的一个或多个更新而被修改。更新可以包括例如表单的标题的添加或改变;表单的部分的添加、移除或改变;表单的字段的添加、移除或改变;字段的属性的添加、移除或改变;针对表单的许可设置的添加、移除或改变;和/或一些其他添加、移除或改变。或者,当表单被创建时,图5a和5b所示的更新活动可以发生。在这种情况下,定义表单的元数据包括默认初始值,这些值可能会根据对表单的一个或多个更新而被修改。更新可以包括例如表单的标题的添加;表单的部分的添加;表单的字段的添加;字段的属性的添加;针对表单的许可设置的添加;和/或一些其他添加或改变。
参照图5b,DLTN服务器向DLTN客户端发送(510)定义给定表单的元数据。参照图5a,DLTN客户端从DLTN服务器接收(515)定义给定表单的元数据。定义给定表单的元数据可以通过安全连接以经加密的形式被发送/被接收。元数据可以定义给定表单的各种性质,诸如给定表单的标题、给定表单的一个或多个部分、以及给定表单的一个或多个字段。针对给定字段,元数据可以定义该字段的一个或多个属性,诸如字段的类型(例如短文本、多行文本、下拉菜单、选择列表、复选框、滑块、日期/时间选择器、公式或者附件)、字段的标题、针对字段的默认值、字段的描述、针对字段的验证是否被要求的指示、字段的值是否被要求是唯一的指示和/或另一属性。元数据还可以包括针对给定表单的一个或多个许可设置,该一个或多个许可设置可以允许该表单与用户的所有连接或者与该用户的连接的某个子集共享,或者根本不共享(私有的)。
DLTN客户端在DLTN客户端的UI上基于元数据来绘制(520)给定表单。DLTN客户端可以包括表单绘制引擎(例如作为Web浏览器的一部分),该表单绘制引擎可操作以解析定义给定表单的元数据并且执行表单的绘制。除了显示关于表单的信息(例如标题、(多个)部分、(多个)字段、(多个)字段的(多个)属性、许可设置)外,DLTN客户端还通过DLTN客户端的UI来呈现可操作以编辑表单的图形元素。图形元素可以包括文本框、下拉菜单、选择列表、复选框、滑块控件和/或其他控件,用以编辑给定表单的性质和字段的属性。
DLTN客户端通过DLTN客户端的UI来接收(525)来自用户的用户输入,该用户输入指示对定义给定表单的元数据的一个或多个更新。例如,更新可以包括表单的标题的添加或改变;表单的部分的添加、移除或改变;表单的字段的添加、移除或改变;字段的属性的添加、移除或改变;针对表单的许可设置的添加、移除或改变;和/或对表单的某种其他修改。DLTN客户端向DLTN服务器发送(530)对定义给定表单的元数据的(多个)更新。(多个)更新可以通过安全连接以经加密的形式被发送/被接收。
参照图5b,DLTN服务器从DLTN客户端接收(535)对定义给定表单的元数据的(多个)更新。基于对定义表单的元数据的(多个)更新,DLTN服务器更新定义表单的元数据。定义表单的元数据(例如与拥有表单的用户的身份相关联地)被存储在DLTN的区块链中。例如,DLTN服务器将表单的已更新的元数据添加到区块链的新区块中。
DLTN服务器可以管理由用户拥有的多个表单。在这种情况下,DLTN服务器可以取回由用户拥有的表单列表、以及分别地关于表单的信息,并且然后向DLTN客户端发送表单列表、以及分别地关于表单的信息。这样的信息可以通过安全连接被发送/被接收。针对给定表单,关于表单的信息可以包括表单的标题、表单中的部分的计数、表单中的字段的计数、表单的许可状态、由用户创建的表单实例的计数、从用户所请求的表单实例的计数、由用户提交的表单实例的计数和/或其他信息。
在从DLTN服务器接收到表单列表和关于表单的信息之后,DLTN客户端可以在DLTN客户端的UI上绘制表单列表、分别地关于表单的信息、以及分别地针对表单的一个或多个动作的图形控件。例如,给定表单的图形控件包括针对查看给定表单实例的实例数据的动作的图形控件、针对指派给定表单的动作的图形控件、针对编辑给定表单的动作的图形控件、和/或针对将给定表单存档的动作的图形控件。DLTN客户端可以通过DLTN客户端的UI接收来自用户的用户输入,该用户输入指示选择给定表单以供编辑。DLTN客户端然后可以向DLTN服务器发送该选择的指示。DLTN服务器可以从DLTN客户端接收选择表单以供编辑的指示。作为响应,DLTN服务器向DLTN客户端发送定义表单的元数据以供编辑,如参照图5a和5b描述的。备选地,用户可以将给定的表单指派给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客户端的角度示出了用于提供表单的实例数据的一般化技术(701)。图7b从DLTN服务器的角度示出了用于提供表单的实例数据的一般化技术(702)。
参照图7b,DLTN服务器取回(710)定义给定表单的元数据。定义给定表单的元数据(例如与给定表单的所有者的身份相关联地)被存储在DLTN的区块链中。DLTN服务器向DLTN客户端发送(715)定义给定表单的元数据。参照图7a,DLTN客户端从DLTN服务器接收(720)定义给定表单的元数据。定义给定表单的元数据可以通过安全连接以经加密的形式被发送/被接收。元数据可以定义给定表单的各种性质,诸如给定表单的标题、给定表单的一个或多个部分、以及给定表单的一个或多个字段。针对给定字段,元数据可以定义该字段的一个或多个属性,诸如字段的类型(例如短文本、多行文本、下拉菜单、选择列表、复选框、滑块、日期/时间选择器、公式或者附件)、字段的标题、针对字段的默认值、字段的描述、针对字段的验证是否被要求的指示、字段的值是否被要求是唯一的指示和/或另一属性。
DLTN客户端在DLTN客户端的UI上基于元数据来绘制(725)给定表单。DLTN客户端可以包括表单绘制引擎(例如作为Web浏览器的一部分),该表单绘制引擎可操作以解析定义给定表单的元数据并且执行表单的绘制。除了显示关于表单的信息(例如标题、(多个)部分、(多个)字段、(多个)字段的(多个)属性)外,DLTN客户端还通过DLTN客户端的UI呈现来可操作以完成表单字段的图形元素。图形元素可以包括文本框、下拉菜单、选择列表、复选框、滑块控件和/或其他控件,用以向表单的字段提供用户输入。
DLTN客户端通过DLTN客户端的UI来接收(730)来自用户的用户输入,该用户输入指示针对给定表单的实例的实例数据。例如,用户输入为给定表单的一个或多个字段提供值。DLTN客户端向DLTN服务器发送(735)针对给定表单的实例的实例数据。实例数据可以通过安全连接以经加密的形式被发送/被接收。
DLTN服务器从DLTN客户端接收(740)来自用户的针对给定表单的实例的实例数据。DLTN服务器将针对给定表单的实例的实例数据连同定义给定表单的元数据一起存储(745)在区块链中。例如,DLTN服务器将针对给定表单的实例的实例数据连同定义给定表单的元数据一起与提供实例数据的用户的身份相关联地存储在区块链中。DLTN服务器可以将针对表单的实例的实例数据添加到区块链的新区块中。定义表单的元数据的副本可以被存储在相同区块中。
DLTN服务器可以管理可用于由用户完成的多个表单。在这种情况下,DLTN服务器可以取回可用于由用户完成的表单列表、以及分别地关于表单的信息,然后向DLTN客户端发送表单列表以及分别地关于表单的信息。这样的信息可以通过安全连接被发送/被接收。针对给定表单,关于表单的信息可以包括表单的标题、表单的所有者、针对用户(提交者)的表单的提交状态(例如未决、已提交、已检阅和已批准)、和/或针对用户(提交者)的表单的完成状态(例如已完成的百分比、已请求的校正)。
在从DLTN服务器接收到表单列表和关于表单的信息之后,DLTN客户端可以在DLTN客户端的UI上绘制可用于由用户完成的表单列表、分别地关于表单的信息、以及分别地针对表单的一个或多个动作的图形控件。例如,图形控件包括针对为表单的实例提供实例数据的动作的图形控件。DLTN客户端可以通过DLTN客户端的UI来接收来自用户的用户输入,该用户输入指示选择给定表单以供数据录入。DLTN客户端然后可以向DLTN服务器发送选择的指示。DLTN服务器可以从DLTN客户端接收选择表单以供数据录入的指示。作为响应,DLTN服务器向DLTN客户端发送定义表单的元数据以供数据录入。
图8示出了用于为DLTN中的表单的实例提供实例数据的示例方法(800)。该方法包括参照图7a和图7b描述的操作中的一些操作以及用于用户登录、解密和加密的操作。在图8所示的示例方法(800)中,DLTN客户端与DLTN服务器之间的通信可以使用通过用于会话的安全连接(例如,SSL连接)的经加密的消息。表单的元数据可以使用单独的加密密钥以经加密的形式被存储,这些密钥特定于表单的所有者并且由加密服务管理。类似地,针对表单的实例的实例数据可以使用单独的加密密钥以经加密的形式被存储,这些密钥特定于实例数据的提交者并且由加密服务管理。
为了开始,在登录阶段(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服务器向DLTN客户端发送(827)经解密的元数据。DLTN客户端解析元数据,并且通过DLTN客户端的UI来呈现(828)给定表单。
在下一阶段(830)中,用户(实例数据的提交者)通过DLTN客户端的UI来提供(831)用户输入,该用户输入指示对给定表单的一个或多个字段的数据录入。用户输入共同提供针对表单的实例的实例数据。DLTN客户端向DLTN服务器发送(832)针对实例的实例数据。如果实例数据以经加密的形式被存储,则DLTN服务器调用(833)加密服务以将实例数据加密,并且加密服务以经加密的形式返回(834)实例数据。定义表单的元数据的副本可以与实例数据存储在一起。为了加密实例数据(以及定义表单的元数据的副本),加密服务使用针对用户(表单的实例数据的提交者)的一个或多个适当的用户特定的加密密钥。DLTN服务器将实例数据(以及定义表单的元数据的副本)存储(835)在区块链中(例如在区块链的新区块中)。
E.检阅和批准表单的示例.
图9a从作为表单实例的检阅者的给定用户的DLTN客户端的角度示出了以供检阅和批准DLTN中的表单实例的一般化技术(901)。图9b从DLTN服务器的角度示出了以供检阅和批准DLTN中的表单的实例的一般化技术(902)。利用图9a和9b所示的操作,表单的实例可以根据由表单所有者指定的工作流来被检阅和被批准。
DLTN服务器取回(910)定义给定表单的元数据以及针对给定表单的实例的实例数据。元数据以及针对给定表单的实例的实例数据(例如与提交实例数据的用户的身份相关联地)被存储在DLTN的区块链中。DLTN服务器向DLTN客户端发送(915)元数据以及针对表单的实例的实例数据。元数据和实例数据可以通过安全连接以经加密的形式被发送/被接收。元数据可以定义给定表单的各种性质,诸如表单的标题、表单的一个或多个部分、以及表单的一个或多个字段。针对给定字段,元数据可以定义字段的一个或多个属性。该实例数据可以记录针对表单的(多个)字段的用户输入。
DLTN客户端从DLTN服务器接收(920)定义表单的元数据以及针对表单的实例的实例数据。基于元数据以及针对表单的实例的实例数据,DLTN客户端在DLTN客户端的UI上绘制(925)表单的实例。DLTN客户端可以包括表单绘制引擎(例如作为Web浏览器的一部分),该表单绘制引擎可操作以解析定义给定表单的元数据以及实例数据,并且然后执行表单的实例的绘制。除了显示关于表单的信息(例如标题、(多个)部分、(多个)字段、(多个)字段的(多个)属性)以及由表单的提交者提供的实例数据外,DLTN客户端通过DLTN客户端的UI呈现可操作以提供对表单的实例的反馈的图形元素。图形元素可以包括文本框、下拉菜单、选择列表、复选框、滑块控件和/或其他控件,以提供对表单的实例的反馈。
DLTN客户端通过DLTN客户端的UI接收(930)来自用户(检阅者)的用户输入,该用户输入指示对表单的实例的反馈。例如,反馈可以是批准表单的实例或者驳回表单的实例。或者,反馈可以是校正或者补充实例数据中所提交的信息的请求。DLTN客户端向DLTN服务器发送(935)对给定表单的实例的反馈的指示。反馈可以通过安全连接以经加密的形式被发送/被接收。
DLTN服务器从DLTN客户端接收(940)对给定表单的实例的反馈的指示。基于对给定表单的实例的反馈的指示,DLTN服务器更新(945)给定表单的实例的状态。例如,DLTN服务器将状态信息连同定义给定表单的元数据和实例数据一起与提供反馈的用户(检阅者)的身份相关联地存储在区块链中。DLTN服务器可以将状态信息添加到区块链的新区块中。元数据的副本和实例数据可以被存储在相同区块中。
DLTN服务器可以管理准备好由用户(检阅者)检阅的表单的多个实例。在这种情况下,DLTN服务器可以取回准备好以供检阅的表单实例的列表、以及分别地关于实例的信息,并且然后向DLTN客户端发送准备好以供检阅的表单实例的列表、以及分别地关于实例的信息。这样的信息可以通过安全连接被发送/被接收。针对表单的给定实例,关于实例的信息可以包括表单的标题、与表单的实例相关联的用户(提交者)、针对用户(提交者)的表单的提交状态(例如未决、已提交、已检阅和已批准)、针对用户(提交者)的表单的完成状态(例如已完成的百分比、已请求的校正)、表单实例的历史(例如表单实例的提交事件、表单实例的校正请求事件、和/或表单实例的批准事件)。具体地,表单实例的历史中的事件可以被记录在区块链中的区块中,以便提供表单的不可变记录,表单的已提交实例、以及已提交实例在各个阶段的状态。
在从DLTN服务器接收到表单实例的列表和关于实例的信息之后,DLTN客户端可以在DLTN客户端的UI上绘制准备好以供检阅的实例列表、分别地关于实例的信息、以及分别地针对实例的一个或多个动作的图形控件。例如,图形控件包括针对选择表单的实例以供检阅的动作的图形控件。DLTN客户端可以通过DLTN客户端的UI来接收来自用户(检阅者)的用户输入,该用户输入指示对以供检阅的表单的实例的选择。DLTN客户端然后可以向DLTN服务器发送选择的指示。DLTN服务器可以从DLTN客户端接收对以供检阅的表单实例的选择的指示。作为响应,DLTN服务器发送定义表单的元数据和针对表单实例的实例数据,如参照图9a和9b描述的。
图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服务器还从相同区块或不同区块取回来自区块链的表单的相关联的元数据。)实例数据和元数据可以以经加密的形式被取回,在这种情况下,DLTN服务器调用(1025)加密服务以解密实例数据和元数据。为了解密实例数据和元数据,加密服务使用针对实例数据的提交者的一个或多个适当的用户特定的加密密钥。(如果元数据被单独加密,则其可以使用针对表单的所有者的一个或多个适当的用户特定的加密密钥而被解密。)加密服务以经解密的形式向DLTN服务器返回(1026)实例数据(和元数据),DLTN服务器向DLTN客户端发送(1027)该实例数据(和元数据)。DLTN客户端解析实例数据和元数据,并且通过DLTN客户端的UI呈现(1028)表单的实例。
在下一阶段(1030)中,用户(检阅者)通过DLTN客户端的UI来提供(1031)用户输入,该用户输入指示对表单实例的实例数据的反馈(例如批准、驳回、请求校正等)。DLTN客户端该向DLTN服务器发送(1032)反馈,DLTN服务器基于该反馈来确定状态信息。如果状态信息以经加密的形式被存储,则DLTN服务器调用(1033)加密服务以将状态信息加密,并且加密服务以经加密的形式返回(1034)状态信息。定义表单的元数据的副本和针对实例的实例数据可以与状态信息存储在一起。为了加密状态信息(以及元数据的副本/实例数据),加密服务使用针对用户(表单的检阅者、以及可能地提交者和/或所有者)的一个或多个适当的用户特定的加密密钥。DLTN服务器将状态信息(以及元数据的副本/实例数据)存储(1035)在区块链中(例如在区块链的新区块中)。
F.示例屏幕截图.
图11a至11f是示例屏幕截图的图示,其图示了在一些示例实现中管理定义DLTN中的表单的元数据的不同特征。在图11a至图11f中,屏幕截图示出了在(DLTN客户端的)Web浏览器中所绘制的页面,其中图形元素由(DLTN服务器的)Web应用提供。
图11a中的屏幕截图(1100)示出了用户(咖啡公司)已经登录之后,DLTN客户端的UI的页面(1101)上的表单的列表。顶行(1102)包括可以被致动以到达菜单或页面的图形控件(下拉菜单),这些菜单或页面示出与用户相关联的身份、可用的应用、(由用户定义、或者与用户共享、或者由用户存档的)表单、用户的资产、来自用户的请求以及管理设置。顶行(1102)还包括图形指示符,其指示页面(1101)的语言和已登录用户。在顶行(1102)下方,页面(1101)包括表单的列表。图形控件(“创建表单”按钮)可以被致动以创建由用户拥有的新表单。标签可以被选择以过滤哪些表单被示出在列表中—所有表单、用户自己的表单、与用户共享的表单或者已存档的表单。在图11a中,“所有”标签被选择。
针对列表中示出的每个表单,列表录入包括表单的标题。表单中部分的数目、表单中字段的数目、表单的许可设置(例如“与所有连接共享”或“私有的”)、表单的状态信息以及可以被致动以执行动作的图形控件。状态信息可以指示已经被创建的表单实例的数目、已经被提交的表单实例的数目、表单被请求的次数或者其他信息。图形控件可以被致动以编辑表单(“编辑表单”),将表单存档(“存档”),将表单指派给DLTN中的另一用户以供数据录入(“指派表单”),查看针对表单的实例的实例数据(“查看数据录入”)或者采取某个其他动作。如果表单被指派给DLTN中的另一用户以供数据录入,则针对该另一用户,给定的表单将出现在要由另一用户完成的表单列表中(例如参见图11c)。
图11b中的屏幕截图(1110)示出了在用户(咖啡公司)已经致动图形控件来选择以供编辑的表单之后在DLTN客户端的UI的页面(1111)上的特定表单。顶行(1102)与图11a所示的相同。在顶行(1102)下方,页面(1111)包括关于所选表单的细节,该表单标题为“家庭问卷表单”。标签可以被选择,以在编辑表单的元数据(“编辑器”)和编辑表单的许可设置(“许可”)之间切换。在图11b中,“编辑器”标签被选择。利用页面底部的控件(1111),用户可以滚动表单、添加或移除部分、添加或移除字段、或者改变许可设置。针对字段,用户可以设置属性,诸如字段的标题、针对字段的默认值、字段的描述、JSON字段名称、字段的数据类型(例如自由文本、短文本、多行文字、下拉菜单、国家选择器、复选框、单选组、日期/时间选择器、公式或者附件)、针对字段的验证是否被要求的指示、以及该字段的值是否被要求在各提交间是唯一的指示。图形控件被呈现,以保存表单的已更新的元数据或者取消对表单的元数据的改变。
图11c中的屏幕截图(1120)示出了在不同用户(农夫二)已经登录之后在DLTN客户端的UI的页面(1121)上的表单的列表。顶行(1122)包括可以被致动以到达菜单或页面的图形控件(下拉菜单),该菜单或页面示出了与用户相关联的身份、可用的应用、表单和用户的资产。顶行(1122)还包括图形指示符,其指示页面(1121)语言和已登录用户。在顶行(1122)下方,页面(1121)包括表单的列表。标签可以被选择,以过滤哪些表单被示出在列表中–所有表单、要由用户完成的表单(“未决”)、先前由用户提交的表单(“已提交”)、由用户提交的已经被检阅的表单(“已检阅”)、或者由用户提交的已被批准的表单(“已批准”)。在图11c中,“未决”标签被选择,以示出要由用户完成的表单。搜索框可以接受用户输入以搜索表单的列表。针对列表中示出的每个表单,列表录入包括标题、表单的所有者、表单何时被创建、以及表单的完成状态(例如已完成的百分比或者已请求的校正)。表单可以被选择,以向表单的字段提供数据录入。
图11d中的屏幕截图(1130)示出了在用户(农夫二)已经选择表单以进行数据录入之后在DLTN客户端的UI的页面(1131)上的特定表单。顶行(1122)与图11c所示的页面相同。在顶行(1122)下方,页面包括关于所选表单的细节,该表单标题为“儿童问卷表单”。细节包括表单的标题和两个部分,这些部分标题为“基线人口统计部分”和“咨询服务部分”。每个部分都包括一个或多个字段以供数据录入。页面(1131)包括图形控件,其可以被致动以查看表单的现有数据录入、创建新录入或者关闭表单。当用户为表单的字段提供数据并且保存表单时,表单的实例被创建。
图11e中的屏幕截图(1140)示出了在用户(咖啡公司)已经登录之后在DLTN客户端的UI的页面(1141)上的表单实例的列表。顶行(1102)与图11a所示的相同。在顶行(1102)下方,页面(1141)包括表单实例的列表。所示出的表单由用户拥有,该用户还负责检阅表单实例。标签可以被选择,以过滤哪些表单实例被示出在列表中–所有表单实例、要由其他用户完成的表单实例(“未决”)、先前由其他用户提交的表单实例(“已提交”)、由其他用户提交的已经被检阅的表单实例(“已检阅”)或由其他用户提交的已被批准的表单实例(“已批准”)。在图11c中,“所有”标签被选择,以示出表单的所有实例。搜索框可以接受用户输入以搜索表单实例的列表。针对列表中示出的表单的每个实例,列表录入包括表单的标题、提交表单实例的用户、以及表单何时被指派给另一用户或者由另一用户提交。列表录入还包括关于表单实例的状态信息(例如如果表单实例尚未被提交,则已完成百分比或者已请求的校正;如果表单实例已经被提交并且被检阅,则已批准或者已驳回)。表单的实例可以被选择,以检阅表单的实例。
图11f中的屏幕截图(1150)示出了在用户(咖啡公司)已经选择表单实例以进行检阅之后在DLTN客户端的UI的页面(1151)上的特定表单实例。顶行(1102)与图11a所示的相同。在顶行(1102)下方,页面(1151)包括关于所选表单实例的历史记录,该表单标题为“度量表单”。细节包括表单的标题、针对表单的历史记录的数据录入、以及针对表单实例的事件的历史记录。这些事件包括表单实例由提交者(农夫二)第一次签名并且提交时、当检阅者(咖啡公司)请求校正时、当提交者重新签名并且重新提交表单实例时、以及当检阅者签名并批准表单实例时。
本文描述的创新包括但不限于以下内容:
Figure BDA0003158543230000381
Figure BDA0003158543230000391
Figure BDA0003158543230000401
Figure BDA0003158543230000411
Figure BDA0003158543230000421
Figure BDA0003158543230000431
Figure BDA0003158543230000441
Figure BDA0003158543230000451
Figure BDA0003158543230000461
Figure BDA0003158543230000471
前述描述仅公开了示例。落入本发明的范围的修改对于本领域的普通技术人员将是明显的。鉴于所公开发明的原理可以被应用的许多可能示例,应该认识到,所说明的示例仅是本发明的优选示例,并且不应被认为是限制本发明的范围。相反,本发明的范围由所附权利要求限定。因此,我们要求保护落入这些权利要求的范围和精神内的所有内容作为我们的发明。

Claims (20)

1.在其中存储有计算机可执行指令的一个或多个计算机可读介质,所述计算机可执行指令用于使实现分布式账本信托网络(“DLTN”)服务器的计算机系统在由其编程时执行操作,以提供对DLTN的访问,所述操作包括:
向DLTN客户端发送元数据,所述元数据定义给定表单;
从所述DLTN客户端接收对定义所述给定表单的所述元数据的一个或多个更新;以及
基于对定义所述给定表单的所述元数据的所述一个或多个更新,更新定义所述给定表单的所述元数据,定义所述给定表单的所述元数据被存储在所述DLTN的区块链中。
2.根据权利要求1所述的一种或多种计算机可读介质,其中所述操作还包括:
取回由用户拥有的表单的列表、以及分别关于所述表单的信息,所述表单包括所述给定表单;以及
向所述DLTN客户端发送表单的所述列表、以及分别关于所述表单的所述信息。
3.根据权利要求2所述的一种或多种计算机可读介质,其中所述操作还包括:
从所述DLTN客户端接收选择所述给定表单以供编辑的指示,其中定义所述给定表单的所述元数据响应于所述选择所述给定表单以供编辑而被发送。
4.根据任何权利要求1所述的一种或多种计算机可读介质,其中定义所述给定表单的所述元数据包括默认初始值,并且其中对定义所述给定表单的所述元数据的所述一个或多个更新包括:
所述给定表单的标题的添加;
所述给定表单的部分的添加;
所述给定表单的字段的添加;和/或
所述给定表单的给定字段的一个或多个属性的添加,所述一个或多个属性包括以下一项或多项:
所述给定字段的类型,所述类型选自由短文本、多行文本、下拉菜单、选择列表、复选框、滑块、日期/时间选择器、公式或者附件组成的组;
所述给定字段的标题;
针对所述给定字段的默认值;
所述给定字段的描述;
针对所述给定字段的验证是否被要求的指示;以及
所述给定字段的值是否被要求是唯一的指示;以及
针对所述给定表单的一个或多个许可设置。
5.根据权利要求1所述的一种或多种计算机可读介质,其中定义所述给定表单的所述元数据包括先前所指定的值,并且其中对定义所述给定表单的所述元数据的所述一个或多个更新包括:
所述给定表单的标题的添加或改变;
所述给定表单的部分的添加、改变或者移除;
所述给定表单的字段的添加、改变或者移除;
所述给定表单的给定字段的一个或多个属性的添加、改变或者移除,所述一个或多个属性包括以下一项或多项:
所述给定字段的类型,所述类型选自由短文本、多行文本、下拉菜单、选择列表、复选框、滑块、日期/时间选择器、公式或者附件组成的组;
所述给定字段的标题;
针对所述给定字段的默认值;
所述给定字段的描述;
针对所述给定字段的验证是否被要求的指示;以及
所述给定字段的值是否被要求是唯一的指示;以及
针对所述给定表单的一个或多个许可设置。
6.根据权利要求1所述的一种或多种计算机可读介质,其中定义所述给定表单的所述元数据与用户的身份相关联地被存储在所述区块链中。
7.根据权利要求1所述的一种或多种计算机可读存储介质,其中:
所述DLTN服务器包括Web应用,并且实现对所述DLTN客户端可访问的应用编程接口(“API”);并且
所述DLTN客户端被实现为单独的可执行应用,被实现为在Web浏览器环境中执行的客户端侧脚本逻辑,或者被实现为Web浏览器的一组功能以控制由所述DLTN服务器执行的面向客户端的脚本逻辑。
8.根据权利要求1所述的一种或多种计算机可读介质,其中所述操作还包括:
接收凭证;
验证所述凭证;以及
向所述DLTN客户端发送认证令牌。
9.一种计算机系统,包括存储器和一个或多个处理单元,其中所述计算机系统实现分布式账本信托网络(“DLTN”)服务器,所述分布式账本信托网络服务器被配置为执行操作,所述操作包括:
取回定义给定表单的元数据,定义所述给定表单的所述元数据被存储在所述DLTN的区块链中;
向DLTN客户端发送定义给定表单的所述元数据;
从所述DLTN客户端接收来自用户的实例数据,所述实例数据针对所述给定表单的实例;以及
将针对所述给定表单的所述实例的所述实例数据连同定义所述给定表单的所述元数据一起存储在所述区块链中。
10.根据权利要求9所述的计算机系统,其中所述操作还包括:
取回可用于由所述用户完成的表单的列表、以及分别关于所述表单的信息,所述表单包括所述给定表单;以及
向所述DLTN客户端发送表单的所述列表、以及分别关于所述表单的所述信息。
11.根据权利要求10所述的计算机系统,其中所述操作还包括:
从所述DLTN客户端接收由所述用户选择所述给定表单以供数据录入的指示,其中定义所述给定表单的所述元数据响应于所述选择所述给定表单以供数据录入而被发送。
12.根据权利要求10所述的计算机系统,其中针对所述给定表单,所述信息包括以下一项或多项:
所述给定表单的标题;
所述给定表单的所有者;
所述给定表单的提交状态,其中所述给定表单的所述提交状态选自由未决、已提交、已检阅、以及已批准组成的组;以及
所述给定表单的完成状态,其中所述给定表单的所述完成状态选自由已完成的百分比和已请求的校正组成的组。
13.根据权利要求9所述的计算机系统,其中:
定义所述给定表单的所述元数据与所述给定表单的所有者的身份相关联地被存储在所述区块链中;并且
针对所述给定表单的所述实例的所述实例数据、连同定义所述给定表单的所述元数据一起与所述用户的身份相关联地被存储在所述区块链中。
14.根据权利要求9所述的计算机系统,其中:
所述DLTN服务器包括Web应用,并且实现对所述DLTN客户端可访问的应用编程接口(“API”);并且
所述DLTN客户端被实现为单独的可执行应用,被实现为在Web浏览器环境中执行的客户端侧脚本逻辑,或者被实现为Web浏览器的一组功能以控制由所述DLTN服务器执行的面向客户端的脚本逻辑。
15.一种在实现分布式账本信托网络(“DLTN”)服务器的计算机系统中的方法,所述分布式账本信托网络服务器被配置为提供对DLTN的访问,所述方法包括:
取回定义给定表单的元数据、以及针对所述给定表单的实例的实例数据,定义所述给定表单的所述元数据、以及针对所述给定表单的所述实例的所述实例数据被存储在所述DLTN的区块链中;
向DLTN客户端发送定义给定表单的元数据、以及针对所述给定表单的实例的实例数据;
从所述DLTN客户端接收对所述给定表单的所述实例的反馈的指示;以及
基于对所述给定表单的所述实例的所述反馈的所述指示,更新所述给定表单的所述实例的状态。
16.根据权利要求15所述的方法,还包括:
取回准备好以供检阅的表单的实例的列表、以及分别关于所述实例的信息,所述表单包括所述给定表单;以及
向所述DLTN客户端发送准备好以供检阅的表单的实例的所述列表、以及分别关于所述实例的所述信息。
17.根据权利要求16所述的方法,还包括:
从所述DLTN客户端接收对以供检阅的所述给定表单的所述实例的选择的指示,其中定义所述给定表单的所述元数据、以及针对所述给定表单的实例的所述实例数据响应于对以供检阅的所述给定表单的所述实例的所述选择而被发送。
18.根据权利要求15所述的方法,其中所述反馈选自由批准、驳回、以及已请求的校正组成的组。
19.根据权利要求15所述的方法,其中:
定义所述给定表单的所述元数据以及针对所述给定表单的所述实例的所述实例数据与所述用户的身份相关联地被存储在所述区块链中。
20.根据权利要求15所述的方法,还包括:
接收凭证;
验证所述凭证;以及
向所述DLTN客户端发送认证令牌。
CN201980088759.0A 2018-11-13 2019-11-12 定义和管理分布式账本信托网络中的表单 Pending CN113302645A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862760789P 2018-11-13 2018-11-13
US62/760,789 2018-11-13
PCT/US2019/061002 WO2020102242A1 (en) 2018-11-13 2019-11-12 Defining and managing forms in a distributed ledger trust network

Publications (1)

Publication Number Publication Date
CN113302645A true CN113302645A (zh) 2021-08-24

Family

ID=70730834

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980088759.0A Pending CN113302645A (zh) 2018-11-13 2019-11-12 定义和管理分布式账本信托网络中的表单
CN201980088790.4A Pending CN113287141A (zh) 2018-11-13 2019-11-12 管理对访问分布式账本信托网络中的用户数据的许可

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980088790.4A Pending CN113287141A (zh) 2018-11-13 2019-11-12 管理对访问分布式账本信托网络中的用户数据的许可

Country Status (9)

Country Link
US (2) US20220052988A1 (zh)
EP (2) EP3881271A4 (zh)
CN (2) CN113302645A (zh)
BR (2) BR112021008817A2 (zh)
CO (2) CO2021007712A2 (zh)
MX (2) MX2021005659A (zh)
PH (2) PH12021551090A1 (zh)
WO (2) WO2020102242A1 (zh)
ZA (2) ZA202103185B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4062308A1 (en) * 2019-11-19 2022-09-28 Consensys AG Network multi-tenant architecture for distributed ledger systems
US11769577B1 (en) 2020-01-15 2023-09-26 Ledgerdomain Inc. Decentralized identity authentication framework for distributed data
US11081219B1 (en) 2020-01-15 2021-08-03 Ledgerdomain Inc. Secure messaging in a machine learning blockchain network
US20210334769A1 (en) * 2020-04-22 2021-10-28 T-Mobile Usa, Inc. Blockchain-based subscriber data protection and access
US11418587B2 (en) * 2020-04-30 2022-08-16 T-Mobile Usa, Inc. 5G on-demand dynamically instantiated blockchain for highly distributed peer-to-peer consumer cloud
US11539787B2 (en) 2020-04-30 2022-12-27 T-Mobile Usa, Inc. 5G enabled massively distributed on-demand personal cloud system and method
US20210352077A1 (en) * 2020-05-05 2021-11-11 International Business Machines Corporation Low trust privileged access management
WO2022046524A1 (en) * 2020-08-24 2022-03-03 Burstiq, Inc. Systems and methods for accessing digital assets in a blockchain using owner consent contracts
US11651096B2 (en) 2020-08-24 2023-05-16 Burstiq, Inc. Systems and methods for accessing digital assets in a blockchain using global consent contracts
US11748303B2 (en) * 2020-11-23 2023-09-05 Ford Global Technologies, Llc Systems and methods for remote storage of information associated with a distributed ledger network
US20230205903A1 (en) * 2021-12-23 2023-06-29 Oracle International Corporation Just-in-time data object permission restriction
US11736290B1 (en) 2022-11-07 2023-08-22 Ledgerdomain Inc. Management of recipient credentials leveraging private keys on keystores read by provisioned devices
US11741216B1 (en) 2022-11-07 2023-08-29 Ledgerdomain Inc. Credential revocation leveraging private keys on keystores read by provisioned devices
US11741215B1 (en) 2022-11-07 2023-08-29 Ledgerdomain Inc. Recipient credentialing leveraging private keys on keystores read by provisioned devices
US11848754B1 (en) * 2022-11-07 2023-12-19 Ledgerdomain Inc. Access delegation leveraging private keys on keystores read by provisioned devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681492A (zh) * 2007-06-14 2010-03-24 微软公司 通过具有访问控制列表的模糊性来集成安全
US20180060836A1 (en) * 2016-08-29 2018-03-01 Bank Of America Corporation Application life-cycle transition record recreation system
US20180218160A1 (en) * 2017-02-02 2018-08-02 Alfresco Software, Inc Application of security parameters for content
CN108701145A (zh) * 2017-02-06 2018-10-23 北方信托公司 用于分布式网络节点内的数字身份管理和许可控制的系统和方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191703A1 (en) * 2002-02-01 2003-10-09 Ubs Painewebber Inc. Method and system for providing interested party access to aggregated accounts information
US7801864B2 (en) * 2005-11-28 2010-09-21 Commvault Systems, Inc. Systems and methods for using metadata to enhance data identification operations
KR101226925B1 (ko) * 2008-07-21 2013-01-28 최상혁 상품권 결제 방법
CN102291373B (zh) * 2010-06-15 2016-08-31 华为技术有限公司 元数据文件的更新方法、装置和系统
WO2013044138A1 (en) * 2011-09-21 2013-03-28 Twilio, Inc. System and method for authorizing and connecting application developers and users
KR101751534B1 (ko) * 2013-07-05 2017-06-28 농협은행(주) 불법적 금융 거래 방지 장치
US20170140375A1 (en) 2015-11-15 2017-05-18 Michael Kunstel System and Method for Permissioned Distributed Block Chain
US10972281B2 (en) * 2016-02-08 2021-04-06 Guy Scott System and method for document information authenticity verification
US10250694B2 (en) * 2016-08-19 2019-04-02 Ca, Inc. Maintaining distributed state among stateless service clients
US11657176B2 (en) * 2016-08-23 2023-05-23 Health Blockchain Convergence, Inc. Blockchain-based mechanisms for secure health information resource exchange
WO2018039312A1 (en) 2016-08-23 2018-03-01 BBM Health LLC Blockchain-based mechanisms for secure health information resource exchange
US10475272B2 (en) * 2016-09-09 2019-11-12 Tyco Integrated Security, LLC Architecture for access management
US10923215B2 (en) * 2016-09-20 2021-02-16 Nant Holdings Ip, Llc Sample tracking via sample tracking chains, systems and methods
US9961155B1 (en) * 2016-12-01 2018-05-01 Dropbox, Inc. Sharing content via virtual spaces
US10691793B2 (en) * 2017-02-20 2020-06-23 AlphaPoint Performance of distributed system functions using a trusted execution environment
US10956582B1 (en) * 2017-06-13 2021-03-23 Alchemy Limited, LLC Systems and methods for secure storage of encrypted data on a distributed computing platform, the distributed computing platform being based on a distributed ledger
CA3169394C (en) * 2017-06-14 2024-01-09 Sas Institute Inc. Distributed data set encryption and decryption
US10762079B2 (en) * 2017-09-29 2020-09-01 Oracle International Corporation System and method for managing a blockchain cloud service
JP7102918B2 (ja) * 2018-05-10 2022-07-20 ブラザー工業株式会社 サーバとサーバシステムとサーバのためのコンピュータプログラム
US11049148B2 (en) * 2018-06-01 2021-06-29 Concord Technologies Inc. User control of anonymized profiling data using public and private blockchains in an electronic ad marketplace
WO2019246188A1 (en) * 2018-06-22 2019-12-26 Attestiv Inc. Atomic capture using a distributed ledger, for proof of authenticity and/or real time visual validation
US11145391B1 (en) * 2018-07-30 2021-10-12 Health Vector LLC Longitudinal condition tracking system and method
US11611440B2 (en) * 2018-09-20 2023-03-21 Intralinks, Inc. Deal room platform using blockchain
US20210135857A1 (en) * 2019-11-05 2021-05-06 Verizon Patent And Licensing Inc. System and methods for distributed runtime logging and transaction control for multi-access edge computing services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681492A (zh) * 2007-06-14 2010-03-24 微软公司 通过具有访问控制列表的模糊性来集成安全
US20180060836A1 (en) * 2016-08-29 2018-03-01 Bank Of America Corporation Application life-cycle transition record recreation system
US20180218160A1 (en) * 2017-02-02 2018-08-02 Alfresco Software, Inc Application of security parameters for content
CN108701145A (zh) * 2017-02-06 2018-10-23 北方信托公司 用于分布式网络节点内的数字身份管理和许可控制的系统和方法

Also Published As

Publication number Publication date
PH12021551090A1 (en) 2022-01-03
MX2021005658A (es) 2021-09-10
CN113287141A (zh) 2021-08-20
PH12021551089A1 (en) 2021-12-13
US20220060330A1 (en) 2022-02-24
EP3881271A4 (en) 2022-08-17
ZA202103186B (en) 2022-10-26
MX2021005659A (es) 2021-09-10
CO2021007714A2 (es) 2021-07-19
WO2020102246A1 (en) 2020-05-22
EP3881270A1 (en) 2021-09-22
CO2021007712A2 (es) 2021-06-21
ZA202103185B (en) 2022-10-26
BR112021008817A2 (pt) 2021-08-10
BR112021008819A2 (pt) 2021-08-17
EP3881270A4 (en) 2022-08-17
US20220052988A1 (en) 2022-02-17
WO2020102242A1 (en) 2020-05-22
EP3881271A1 (en) 2021-09-22

Similar Documents

Publication Publication Date Title
CN113302645A (zh) 定义和管理分布式账本信托网络中的表单
US10999063B2 (en) Methods and apparatus for verifying a user transaction
US20210243193A1 (en) Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (dlt) platform
US11588619B2 (en) Generating customized smart contracts
US20230004675A1 (en) Secure identity and profiling system
US10764254B2 (en) Systems and methods of secure data exchange
US20200119904A1 (en) Tamper-proof privileged user access system logs
US11170092B1 (en) Document authentication certification with blockchain and distributed ledger techniques
US9613190B2 (en) Systems and methods of secure data exchange
US20190236562A1 (en) Systems, methods, and apparatuses for implementing document interface and collaboration using quipchain in a cloud based computing environment
US10944560B2 (en) Privacy-preserving identity asset exchange
CN113711536A (zh) 从区块链网络中提取数据
JP2021512416A (ja) クラウドベースのコンピューティング環境において分散台帳技術のためのインテリジェントな合意、スマートな合意、及び重み付き合意のモデルを実現するシステム、方法、及び装置
US9990514B2 (en) Joint ownership of protected information
US11397919B1 (en) Electronic agreement data management architecture with blockchain distributed ledger
WO2022007548A1 (en) Blockchain implementation to securely store information off-chain
EP4264445A1 (en) System and method for controlling data using containers
WO2021224696A1 (en) Low trust privileged access management
Belmann et al. de. NBI Cloud federation through ELIXIR AAI
US20220399988A1 (en) Linking blockchain operations
US11153377B1 (en) Shared channel invitation paths
EP4270864A1 (en) Transaction authorization and verification through distributed-ledger-based chain of custody
US20230267220A1 (en) Privacy preserving asset token exchange
US20240073014A1 (en) System configuration based on smart contracts
Isaac et al. A Decentralised Application for Storing Electronic Health Records using Blockchain Technology

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