一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有权益证明区块链支持的加密资产托管系统的制作方法

2022-06-09 01:26:02 来源:中国专利 TAG:

具有权益证明区块链支持的加密资产托管系统
1.相关申请的交叉引用
2.本技术要求2019年8月19日提交的标题为“cryptoasset custodial system with proof-of-stake blockchain support”的美国申请16/544,628的优先权,其公开内容通过引用而被包含于此。
技术领域
3.本说明书涉及用于安全存储和检索可用于控制对区块链的访问的信息(诸如私钥等)的计算机实现的系统和技术。


背景技术:

4.区块链是使得多个用户能够产生和共享在使用区块链的系统中进行的每个交易的可核实记录的分布式分类账技术。区块链可以是公共的、私有的、或者包括公共和私有可访问的部分这两者。在任何情况下,区块链仅通过系统的指定用户之间的共识来更新。因此,区块链表示在无需中央管理员或集中式数据存储的情况下对跨多个节点散布的复制、共享和同步的数字数据的共识。除了加密散列技术的使用之外,复制和共享还为基于区块链的分布式分类账提供了其特有的弹性和免于未经授权的更改的保护。然而,在区块链的访问密钥丢失或被盗时,缺少中央管理员也可能导致新风险。这在区块链包括大数额的加密资产(也称为加密资产(cryptoasset),诸如比特币(bitcoin)、以太坊(ethereum)和瑞波币(ripple)加密货币等)时可能要特别关注。
5.近年来,这样的加密货币已开始普及并获得价值,并且许多人期望继续如此。每天基于加密货币进行的交易的种类越来越多,并且可以想象,将来可能产生新类型的加密资产,即不一定是货币的加密资产。随着加密资产的使用越来越多,需要可以安全地存储非常大量加密资产并且控制对这些加密资产的访问的可信托管系统。事实上,美国证券法规要求代表另一方持有超过一定数额资金(例如,1.5亿美元)的某些实体使用托管机构来持有这些资金。有时使用硬件钱包和其他形式的“冷存储”装置来存储加密货币,然而,这些装置将访问仅限制到装置的所有者,因此不适合许多商业用途,其中在这些商业用途中,许多个人可能需要访问加密货币或其他加密资产。


技术实现要素:

6.本说明书描述了与用于安全存储和检索可用于控制对区块链的访问的信息(诸如私钥等)的计算机实现的系统和技术有关的技术,其中这些系统和技术可以安全地保持控制加密资产的所有权的私钥(从而允许实体用作这些加密资产的托管机构),同时并行地使得这些私钥能够参与需要主动使用私钥的在线协议(诸如质押和治理(staking and governance)协议等)。在加密资产托管系统的上下文中,如果系统所使用的访问控制机制被破解,则所采取的技术安全措施可能被破坏并且加密资产可能被盗。因此,确保加密资产托管系统中的访问控制提供足够的技术安全措施来减少或消除破坏风险是至关重要的。
7.硬件安全模块(hsm)可用于针对加密资产托管系统中所保持的数字资产以安全方式启用质押和治理协议。这可以涉及hsm通过核实由将专用密钥保持在硬件中的个人装置(例如,iphone)创建的签名来认证客户端动作。hsm将保持足够可用(例如,每分钟或更短时间的气隙切换),以便以支持的质押和治理协议所需的适当频率参与。因此,由于hsm可以主动参与质押和治理操作(从而以相当快的速度产生消息)、同时仍将私钥安全地保持在气隙后方,因此即使当这些私钥安全地保持在托管系统中时,也可以支持需要主动使用私钥的质押和治理协议。此外,通过在hsm中使用自定义固件,可以编写适用于不同种类的质押和治理协议的代码,并且可以在(一个或多于一个)协议改变和/或创建新质押和治理协议时容易地进行更新。
8.本说明书中描述的主题的一个或多于一个方面可以体现在包括一个或多于一个方法的一个或多于一个第一实施例中,该一个或多于一个方法包括:在加密资产托管系统中接收用以授权与区块链相关联的权益证明协议的质押操作的请求,其中所述质押操作与非对称加密密钥对中的私钥相关联,所述私钥能够用于控制所述区块链中所记录的加密资产的所有权,以及所述私钥代表所述加密资产托管系统的用户被安全地保持在所述加密资产托管系统中;响应于所述请求,使用针对所述权益证明协议所设计的逻辑来在硬件安全模块中进行所述权益证明协议的至少一部分,其中所述加密资产托管系统包括所述硬件安全模块,所述硬件安全模块包括至少一个安全存储装置和至少一个物理计算装置,其中所述至少一个物理计算装置与所述至少一个安全存储装置耦接,以及所述硬件安全模块中的所述逻辑被配置为通过对与所述质押操作相关联的质押交易进行数字签名来授权所述质押操作;以及将经数字签名的质押交易发送到另一计算机以代表所述用户实现所述质押操作。
9.所述加密资产托管系统可以包括中继计算机,所述中继计算机通过气隙与所述硬件安全模块通信地耦接,所述气隙用于将所述硬件安全模块与所述加密资产托管系统外部的网络隔离,以及所述方法可以包括:在所述中继计算机中进行所述权益证明协议的至少另一部分。
10.所述方法还可以包括:通过所述中继计算机确认为所述质押交易的格式符合所述权益证明协议,以及在所述硬件安全模块中进行所述权益证明协议的至少一部分可以包括:重新确认为所述质押交易的格式符合所述权益证明协议。
11.所述加密资产托管系统可以包括在线服务器计算机,所述在线服务器计算机与所述中继计算机通信地耦接,所述硬件安全模块中的所述逻辑可以包括被编程为处理两个或多于两个权益证明协议的不同质押交易的固件代码,以及所述方法可以包括:在所述在线服务器计算机中进行所述权益证明协议的附加部分;以及基于所述两个或多于两个权益证明协议的不同质押交易来调整对所述气隙的定时控制。
12.所述方法可以包括:在所述硬件安全模块中,使用所述硬件安全模块中安全地存储的基于硬件的加密密钥来对已加密密钥进行解密,以揭示已解密密钥;在所述硬件安全模块中,至少从所述已解密密钥导出所述非对称加密密钥对中的私钥;在所述硬件安全模块中,使用在所述硬件安全模块中导出的私钥来对所述质押交易进行数字签名;以及从所述硬件安全模块中的存储器将所述私钥删除。
13.所述方法可以包括:在所述硬件安全模块中,核实策略图,所述策略图用于指定所
述加密资产托管系统的个人用户和用以批准所述质押操作的阈值数量的个人用户;在所述硬件安全模块中,通过使用与所述加密资产托管系统的所指定的个人用户的子集相对应的公钥检查加密数字签名,来验证至少来自所指定的个人用户的子集的背书消息;以及在所述硬件安全模块中,在针对所述阈值数量的所指定的个人用户验证了所述背书消息的情况下,确认为所述质押操作符合所述策略图的控制规则。
14.所述加密资产可以被指派给所述加密资产托管系统中的多个不同保险库中的一个保险库,所述多个不同保险库中的各保险库可以具有保险库特定的策略图,该保险库特定的策略图用于定义保险库控制规则,所述保险库控制规则管控在一个或多于一个指定条件下对于所述保险库允许哪些动作,指定所述个人用户的策略图可以是与所述多个不同保险库中的被指派了所述加密资产的保险库相对应的保险库特定的策略图,以及导出所述私钥可以包括:通过将确定性密钥导出函数至少应用于所述加密资产的保险库的标识符、所述加密资产的资产标识符和所述已解密密钥来重新生成所述私钥。
15.通常,本说明书中描述的主题的另一创新方面可以体现在系统的一个或多于一个第二实施例中,所述系统包括:一个或多于一个硬件安全模块,所述一个或多于一个硬件安全模块中的各硬件安全模块包括至少一个安全存储装置和与所述至少一个安全存储装置耦接的至少一个物理计算装置,并且被配置为提供加密处理以管理能够用于控制至少一个区块链中的加密资产的所有权的非对称加密密钥对中的私钥;以及一个或多于一个服务器计算机,其与所述一个或多于一个硬件安全模块通信地耦接,以访问由所述至少一个物理计算装置使用所述私钥进行的加密处理,其中,所述一个或多于一个硬件安全模块中的各硬件安全模块的所述至少一个物理计算装置被配置为:在基于由所述硬件安全模块控制的加密密钥认证与所管理的私钥相对应的策略图之后,对照所述策略图来针对所管理的私钥对所请求的质押动作进行检查;确认为所请求的质押动作的格式符合所请求的质押动作的权益证明协议;在所请求的质押动作根据所述策略图被授权并且所述格式符合所述权益证明协议的情况下,用所管理的私钥对所请求的质押动作进行数字签名;以及将经数字签名的质押动作发送到另一计算机以实现一个或多于一个质押操作。
16.所述一个或多于一个服务器计算机可以包括至少一个中继服务器计算机,所述至少一个中继服务器计算机通过用于隔离所述硬件安全模块的气隙与所述硬件安全模块通信地耦接,以及所述至少一个中继服务器计算机可以被配置为进行所述权益证明协议的至少一部分。
17.所述一个或多于一个服务器计算机可以包括与所述至少一个中继服务器计算机通信地耦接的至少一个在线服务器计算机,所述至少一个在线服务器计算机可以被配置为接受来自公共计算机网络的请求并且进行所述权益证明协议的附加部分,所述一个或多于一个硬件安全模块中的各硬件安全模块可以包括固件,所述固件被配置为处理两个或多于两个权益证明协议的不同质押交易,以及所述至少一个在线服务器计算机和所述至少一个中继服务器计算机中的一个或多于一个可以被配置为基于所述两个或多于两个权益证明协议的不同质押交易来调整对所述气隙的定时控制。
18.所述一个或多于一个硬件安全模块中的各硬件安全模块的所述至少一个物理计算装置可以被配置为:使用所述硬件安全模块中安全地存储的基于硬件的加密密钥来对已加密密钥进行解密,以揭示已解密密钥;至少从所述已解密密钥导出所管理的私钥;使用在
所述硬件安全模块中导出的所管理的私钥来对所请求的质押动作进行数字签名;以及从所述硬件安全模块中的存储器将所管理的私钥删除。
19.所述一个或多于一个硬件安全模块中的各硬件安全模块的所述至少一个物理计算装置可以被配置为:核实所述策略图,所述策略图用于指定所述系统的个人用户和用以批准质押操作的阈值数量的个人用户;通过使用与所指定的个人用户的子集相对应的公钥检查加密数字签名,来验证至少来自所指定的个人用户的子集的背书消息;以及在针对所述阈值数量的所指定的个人用户验证了所述背书消息的情况下,确认为所述质押操作符合所述策略图的控制规则。
20.将能够用于控制所述加密资产的所有权的私钥可以被组织成逻辑分组,所述逻辑分组中的各逻辑分组可以具有关联的策略图,所述关联的策略图用于定义管控在一个或多于一个指定条件下对于所述逻辑分组允许哪些动作的规则,用于指定所述个人用户的策略图可以是与所述逻辑分组中的同所管理的私钥相对应的逻辑分组相关联的策略图,以及所述一个或多于一个硬件安全模块中的各硬件安全模块的所述至少一个物理计算装置可以被配置为:通过将确定性密钥导出函数至少应用于所述逻辑分组中的与所管理的私钥相对应的逻辑分组的标识符、资产标识符和所述已解密密钥来导出所管理的私钥。
21.第一组实施例和第二组实施例可以使用一个或多于一个计算机可读介质来实现,所述一个或多于一个计算机可读介质用于对一个或多于一个计算机程序进行编码,所述一个或多于一个计算机程序可用于使得包括以下项的硬件安全模块进行操作:至少一个安全存储装置和与所述至少一个安全存储装置耦接的至少一个物理计算装置,所述操作包括:在加密资产托管系统中接收用以授权与区块链相关联的权益证明协议的质押操作的请求,其中所述质押操作与非对称加密密钥对中的私钥相关联,所述私钥能够用于控制所述区块链中所记录的加密资产的所有权,以及所述私钥代表所述加密资产托管系统的用户被安全地保持在所述加密资产托管系统中;响应于所述请求,使用针对所述权益证明协议所设计的逻辑来在硬件安全模块中进行所述权益证明协议的至少一部分,其中所述硬件安全模块中的所述逻辑被配置为通过对与所述质押操作相关联的质押交易进行数字签名来授权所述质押操作;以及将经数字签名的质押交易发送到另一计算机以代表所述用户实现所述质押操作。
22.所述加密资产托管系统可以包括中继计算机,所述中继计算机通过气隙与所述硬件安全模块通信地耦接,所述气隙用于将所述硬件安全模块与所述加密资产托管系统外部的网络隔离。
23.在所述硬件安全模块中进行所述权益证明协议的至少一部分可以包括:重新确认为所述质押交易的格式符合所述权益证明协议。
24.所述加密资产托管系统可以包括在线服务器计算机,所述在线服务器计算机与所述中继计算机通信地耦接,以及所述硬件安全模块中的所述逻辑可以包括被编程为处理两个或多于两个权益证明协议的不同质押交易的固件代码。
25.所述操作可以包括:使用所述硬件安全模块中安全地存储的基于硬件的加密密钥来对已加密密钥进行解密,以揭示已解密密钥;至少从所述已解密密钥导出所述非对称加密密钥对中的私钥;使用在所述硬件安全模块中导出的私钥来对所述质押交易进行数字签名;以及从所述硬件安全模块中的存储器将所述私钥删除。
26.所述操作可以包括:核实策略图,所述策略图用于指定所述加密资产托管系统的个人用户和用以批准所述质押操作的阈值数量的个人用户;通过使用与所述加密资产托管系统的所指定的个人用户的子集相对应的公钥检查加密数字签名,来验证至少来自所指定的个人用户的子集的背书消息;以及在针对所述阈值数量的所指定的个人用户验证了所述背书消息的情况下,确认为所述质押操作符合所述策略图的控制规则。
27.所述加密资产可以被指派给所述加密资产托管系统中的多个不同保险库中的一个保险库,所述多个不同保险库中的各保险库可以具有保险库特定的策略图,该保险库特定的策略图用于定义保险库控制规则,所述保险库控制规则管控在一个或多于一个指定条件下对于所述保险库允许哪些动作,指定所述个人用户的策略图可以是与所述多个不同保险库中的被指派了所述加密资产的保险库相对应的保险库特定的策略图,以及导出所述私钥可以包括:通过将确定性密钥导出函数至少应用于所述加密资产的保险库的标识符、所述加密资产的资产标识符和所述已解密密钥来重新生成所述私钥。
附图说明
28.本公开的各种实施例是在附图的各图中通过示例而非限制性的方式示出的,其中相似的附图标记表示类似的要素。
29.图1a是示出加密资产托管系统(ccs)参与权益证明分布式分类账系统中的质押和治理的示例的示意图。
30.图1b是示出通过图1a的ccs中的硬件安全模块(hsm)与权益证明分布式分类账系统的完整验证节点之间的半双工连接的数据流的示例的示意图。
31.图2a是示出ccs中的协议处理(包括权益证明协议处理)的示例的流程图。
32.图2b是示出响应于与质押和治理有关的变化而修改ccs中的操作的示例的状态和流程图。
33.图2c是示出hsm中的权益证明(pos)质押请求批准的示例的流程图。
34.图3a是示出由hsm实施的访问规则的结构的示例的示意图。
35.图3b是示出ccs的另一示例的框图。
36.图4a是示出利用ccs的存入(deposite)处理流程的示例的示意图。
37.图4b是示出该存入处理流程的示例的流程图。
38.图5a是示出利用ccs的取出(withdrawal)处理流程的示例的示意图。
39.图5b是示出该取出处理流程的示例的流程图。
40.图5c是示出利用ccs的质押处理流程的示例的示意图。
41.图6是示出hsm结合所请求的操作所进行的处理的示例的流程图。
42.图7是示出hsm结合所请求的操作所进行的另一处理的示例的流程图。
43.图8是示出用于使用离线用户装置来对所请求的交易进行背书(endorse)的处理的示例的流程图。
44.图9是示出可用于实现ccs或用户装置的一部分或全部的处理系统的硬件架构的示例的框图。
具体实施方式
45.在本说明书中,对“实施例”或“一个实施例”等的引用意味着正描述的特定特征、功能、结构或特性包括在正描述的系统和技术的至少一个实施例中。在本说明书中这些短语的出现不必全部指代相同实施例。另一方面,所提到的实施例也不必相互排斥。
46.概述
47.这里介绍一种计算机实现的加密资产托管系统(ccs),即用于维护加密货币和/或其他加密资产的托管并且控制对加密货币和/或其他加密资产的访问的计算机实现的系统。ccs可以由商业企业(在这里称为加密资产托管机构)代表可以各自具有ccs的多个用户(雇员或零售客户)的一个或多于一个客户拥有和/或运营。ccs可以采用各种技术以使得能够利用在线硬件安全地参与(一个或多于一个)数字资产质押/治理协议。这些技术包括一个或多于一个硬件安全模块(hsm),该hsm既安全地保持私钥(显式地在存储区中、或者隐式地使用一个或多于一个所存储的hsm密钥以及一个或多于一个密钥生成算法),并且还在hsm中包括质押逻辑,该质押逻辑被配置为使用这些保持的私钥来授权质押操作(权益证明分布式分类账系统中的质押和治理)。如本文所使用的,术语“硬件安全模块”或“hsm”是指用于保护和管理认证所用的数字密钥并提供加密处理功能的专用物理计算装置。hsm可被体现为插入卡或者直接附接至计算机的外部装置。
48.在ccs中的hsm中包括质押逻辑可以促进ccs适应不同质押协议的能力,该能力在分布式分类账技术针对各种加密资产而演进时质押协议随时间的经过而改变的情况下可能特别重要。例如,hsm中的质押逻辑可被定制为hsm中的质押协议特定固件,其中可以通过用新代码配置该固件来根据需要更新该固件。此外,使得能够利用在线硬件安全参与(一个或多于一个)数字资产质押/治理协议的技术可以包括通过ccs的(例如,一个或多于一个数据中心中的)一个或多于一个中继服务器的半双工通信信道,使得在与ccs的(一个或多于一个)hsm的全双工通信期间,通过使(一个或多于一个)中继服务器与任何在线计算机或网络隔离(例如,处于气隙状态)来创建安全区。这使得能够安全地保持私钥,同时还主动可用(例如,每分钟、每小时、每天、每周或每可配置的时间间隔可访问一次)以进行分布式分类账系统中的质押/治理。
49.此外,使得能够安全参与(一个或多于一个)数字资产质押/治理协议的技术还可以包括加密资产不可知授权层,其中加密资产不可知授权层在一个或多于一个加密资产保险库中使用一个或多于一个密钥间接层。可以使用客户端密钥向对质押和治理的授权提供用于基于风险分析的交易的用户授权的可选背书消息,以在面对变化的分布式分类账和区块链技术时进一步增强ccs的安全性并增加其鲁棒性。在一些实施例中,ccs包括加密资产的逻辑分组(称为“保险库”),以限制对可用于控制对至少一个区块链中的加密资产的访问的私钥的访问,其中逻辑分组由一个或多于一个hsm控制。在一些实施例中,ccs包括基于生物特征识别的多用户验证、交易风险分析、以及使用hsm来提供认证/验证功能以及加密资产的私钥的安全存储的组合。此外,可以将两个或多于两个不同的生物特征认证技术应用于任何给定的交易请求。
50.另外,在一些实施例中,当用户请求涉及加密资产的交易(诸如涉及加密货币资金的取出、转移或质押操作等)时,ccs使得将背书请求消息发送至多个用户装置中的各用户装置,其中各用户装置与已被定义为针对涉及该加密资产的交易的规定数量(quorum)的潜
在成员的不同用户相关联(在其他实施例中,多个用户可以共享相同用户装置)。该背书请求消息被配置为使得各接收用户装置提示其用户提供所请求的交易的背书。该上下文中的背书是用户对操作的批准或拒绝。当接收到这样的提示的用户在他或她的用户装置(例如,智能电话、平板或笔记本计算机)上对交易进行背书时,该用户装置用该用户的私钥对背书消息进行签名,并将已签名的背书消息传输至ccs。该私钥存储在用户装置内的安全指定位址空间(secure enclave)中。各用户装置中的安全指定位址空间用于存储相应用户的私钥并生成该用户的数字签名。
51.对于关于保险库的任何动作,hsm判断保险库的策略图是否是真实的,并且如果保险库的策略图是真实的,则hsm仅在动作符合经认证的策略图中阐述的规则时才允许该动作。在一些实施例中,hsm判断基于策略的规定数量的多个用户是否背书(批准)了所请求的动作(诸如涉及加密货币资金的取出、转移或质押操作等)。hsm通过在从用户接收到的背书消息中针对多个用户中的各用户使用公钥-私钥对中的公钥验证签名来进行该操作。在判断为基于策略的规定数量的多个用户已有效地背书了所请求的动作之后,hsm然后允许自身访问该特定加密资产的私钥(例如,供加密货币资金向完整验证节点的特定质押用)(该私钥是hsm先前生成的),并且使用该私钥来对交易进行签名作为交易可以继续进行的授权。该加密资产的私钥仅存储在hsm(或关联的hsm的组)中(或者以其他方式由hsm(或关联的hsm的组)控制),这不许可hsm(或关联的hsm的组)外部的任何实体获得该密钥。交易的批准例如可以包括将交易传输到已知的区块链网络上。在一些实施例中,hsm对交易的批准仅在所请求的交易通过了可能是部分或完全自动化的风险评审的情况下和之后才发生。
52.其他详情将通过以下的说明变得显而易见。此外,认为这里所介绍的系统和技术可用于除加密资产之外的其他类型的数字资产的安全托管。此外,认为这里所介绍的系统和技术可用于促进将托管系统中安全地保持的私钥用在需要主动使用私钥的(除质押/治理协议以外的)附加协议中。
53.加密资产托管系统(ccs)
54.图1a是示出ccs 100参与权益证明分布式分类账系统中的质押和治理的示例的示意图。如以下进一步详细所述,ccs 100包括各种计算机110、120、130和关联的存储区112、122、132。通常,各计算机110、120、130包括被配置为根据指令(其可被编码在计算机可读介质中和/或使用被设计为实现指令的计算机电路来实现)进行操作的一个或多于一个硬件处理器,并且存储区112、122、132可以包括易失性存储器装置(例如,以保留在ccs 100中处理的数据并且保留在这样的处理期间的指令)和非易失性存储器装置这两者以存储供ccs 100用的这样的指令和/或数据。因此,存储区112、122、132表示与计算装置集成以形成计算机110、120、130的存储装置以及在计算机110、120、130的外部的供ccs 100用的永久存储设施。对于与存储设施以及ccs 100所使用的存储设施跨一个或多于一个数据库(其可以是基于云的或通过计算机网络150可访问的)的分布的选项有关的更多细节,参见2019年2月14日提交的标题为“cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys”的美国申请16/276,567,该申请通过引用而被全部包含于此。
55.一个或多于一个计算机110包括将ccs 100连接到计算机网络150的在线服务器程序114。计算机网络150可以是公共网络、专用网络、虚拟专用网络等。计算机网络150提供
ccs 100和其他计算机系统152之间的通信路径,这些其他计算机系统152也连接到网络150并且也可以包括硬件处理器、计算机可读介质和存储设施。如将理解的,各这样的计算机系统152可以包括用于进行处理和通过网络150进行通信的各种指令。在计算机系统152中实现的各这样的指令集被称为“节点”,“节点”可以作为服务器和/或客户端、作为计算机网络150内的重新分发点或通信端点操作,并且可以包括物理网络装置或与另一节点(即,虚拟节点)共享物理网络装置。换句话说,网络150上的各节点是可以创建、接收或传输消息的点。
56.例如,计算机系统152可以包括在线节点服务器程序154,该在线节点服务器程序154配置计算机系统152以作为以下项进行操作:具有区块链156的完整节点(例如,权益证明分布式分类账系统所用的完整验证节点)、超级节点(例如,公开可见且用作权益证明分布式分类账系统的重新分发点的完整节点)、矿工节点(供工作量证明分布式分类账系统用)、或者与区块链156有关的轻量级节点(例如,简易支付验证(spv)客户端)。为了进一步说明这一点,权益证明分布式分类账系统所用的完整验证节点160包括包含区块158的区块链156的副本,该区块158包括由私钥pk控制的加密资产ca。
57.权益证明分布式分类账系统所用的每个这样的验证节点160还具有其自身的关联权益162(其影响(许多节点中的)验证节点160是否将被选择作为要添加到区块链156的下一区块的验证者(锻造者))、以及潜在的一个或多于一个其他因素(诸如质押寿命(例如,基于币龄=质押天数乘以质押的加密资产数量的区块选择)和随机化(例如,基于最低散列值和最高权益的组合的随机化区块选择)等)。如将理解的,锁定到任何给定验证节点160的权益162中的加密资产的数量可以随时间的经过改变,并且任何给定验证节点160还可以停止作为完整节点进行操作,然后稍后重新开始作为完整节点进行操作,并且在这两种情况下,用于验证区块链156中的区块的权益和奖励(或其部分)将在足以确保不存在由完整节点160添加到区块链156的欺诈性区块的时间之后被释放。
58.在区块链156上操作的权益证明分布式分类账系统的该上下文内,现在详细说明质押操作的示例。在该示例中,所描述的质押操作是最初将加密资产ca锁定到完整节点160a的权益162a中的质押操作,但如将理解的,使用本公开的系统和技术所进行的质押操作可以包括质押和治理协议的各种部分(包括尚未设计或部署的质押和治理协议)。另外,尽管该示例示出区块链156中的单个加密资产ca被锁定到用作该相同区块链156的验证者的完整节点160a的权益162a中,但将理解,这仅是一个示例,并且其他质押和治理操作也是可以的;注意,单个区块链内的交互可以影响托管在其上的多个资产(例如,eth区块链上的erc20令牌)。
59.在ccs 100中接收到请求164a,其中请求164a用于授权在ccs 100和完整节点之间通信的质押操作164b。例如,请求164a可以由计算机110的在线服务器程序114从由用户170操作的计算机系统152(例如,企业网络中的台式计算机、或者移动电话172)接收,其中该请求用于将加密资产ca锁定到区块链网络156、156a的分布式分类账所用的完整节点160a的权益162a中。如将理解的,请求164a可以表示多于一个加密资产,但是为了便于呈现,这里论述仅一个加密资产ca。在一些实现中,请求164a识别要质押的特定节点160a(或要从中选择的完整节点的集合)。在一些实现中,如以下进一步所述的,请求164a不识别特定节点,并且ccs 100在区块链网络中监测产生了质押机会的指示符,然后在内部生成请求164a以提
交给安全区102。ccs 100可以识别许多完整节点160中(或预先批准的完整节点的集合中)的哪个完整节点160a代表用户170进行质押。在一些实现中,可以例如根据资产类型在从已被审查的白名单节点的集合中选择完整节点160a与允许用户170或加密资产的所有者选择完整节点或预先批准的完整节点的集合之间做出选择。
60.在一些实现中,计算机110包括权益证明协议程序116,其中权益证明协议程序116使得计算机110能够进行实现区块链网络156、156a所用的权益证明协议所需的点对点(p2p)处理和通信的一部分。此外,在一些实现中,程序116使得ccs 100内的计算机110能够作为完整验证节点进行操作。因此,ccs内的计算机110可以进行以下针对节点160a所述的操作。
61.在任何情况下,请求164a都需要被通信到在ccs 100的安全区102内的另一计算机120。计算机120包括中继服务器程序124,并且计算机120通过气隙104与计算机100分离,该气隙104为ccs 100创建安全区102。hsm 130不能直接访问ccs 100外部的任何网络,并且从hsm 130向安全区102外部的任何网络的所有通信都必须通过中继计算机120。如图所示,气隙104可以用在如下的两个配置其中之一之间转换(flip)的物理线来实现:中继服务器120连接到(一个或多于一个)hsm 130,以及中继服务器120(例如,通过在线服务器110)连接到外部因特网。不存在使得(一个或多于一个)hsm 130能够直接连接到外部因特网的配置。实现半双工中继服务器的其他方式包括使用虚拟专用网络和其他软件实现、以及手动(人工)气隙和切换。
62.因此,通过各中继计算机120在与安全区102内的任何hsm 130通信时从ccs 100外部的任何网络断开来实现气隙104。以下说明与这样的气隙机制有关的更多细节。包括使用多个中继计算机120的其他气隙机制也是可以的。例如,多个中继服务器计算机120各自可以具有其自身的关联气隙104以创建其自身的安全区102,并且各这样的中继服务器计算机120可以连接到多于一个hsm主计算机,并且各hsm主计算机可以连接到多个hsm 130。注意,安全区102内的多于一个hsm 130可以共享基于硬件的加密密钥138,以促进跨安全区102内的多个hsm 130的负载均衡。此外,在一些实现中,不使用气隙104。
63.计算机120还可以包括权益证明协议程序126,其中权益证明协议程序126使得计算机120能够进行实现区块链网络156、156a的权益证明协议所需的p2p处理和通信的一部分。此外,在一些实现中,计算机120包括气隙定时控制程序128,以及/或者计算机110包括气隙定时控制程序118,其中气隙定时控制程序118使得能够控制气隙104以适应不同的质押和治理协议所需的不同定时。此外,ccs 100可被设计为除了处理不同的权益证明协议之外,还处理其他类型的质押和治理协议。在一些实现中,ccs 100还处理一个或多于一个委托的权益证明协议。
64.为了授予请求164a,必须使用非对称加密密钥对中的私钥pk来获得数字签名,其中私钥pk可用于控制区块链156中所记录的加密资产ca的所有权。但由于加密资产ca在托管账户中,因此私钥pk安全地保持在ccs 110中,并且私钥pk仅在hsm 130内才可访问。私钥pk不能离开安全区102。因此,为了授予请求164a,必须在hsm 130中进行权益证明协议的至少一部分。注意,可以在ccs 100的其他计算机110、120中进行权益证明协议的其他部分(以及相同部分)。在一些实现中,由hsm 130进行的权益证明协议的部分可以是在ccs 100的计算机110、120中的一个或多于一个中已确认的质押操作的方面的重新确认。例如,hsm 130
可以进行质押交易164d的重新验证,即hsm 130可以重新验证为质押消息/请求采用符合权益证明协议的格式。
65.hsm 130包括至少一个物理计算装置132,其中至少一个物理计算装置132包括加密处理逻辑134(电路和/或例如固件的代码),该加密处理逻辑134管理可用于控制对一个或多于一个区块链(诸如区块链156等)的访问的非对称加密密钥对中的私钥。hsm 130还包括与物理计算装置132耦接的至少一个安全存储装置136。在一些实施例中,安全存储装置136通过与物理计算装置132集成而与物理计算装置132耦接。例如,安全存储装置136可以是包括物理计算装置132的集成电路芯片中所包括的非易失性存储器装置,并且加密处理逻辑134可以是安全非易失性存储器装置136中所存储的(并且可能直接从安全非易失性存储器装置136运行)的加密处理代码。
66.另外,加密处理逻辑134包括针对权益证明协议所设计的质押逻辑134a,由此使得hsm 130能够通过对与质押操作164b相关联的质押交易164c进行数字签名来响应于请求164a授权质押操作164b。因此,可以在具有安全硬件、加密存储器等的hsm安全边界内运行用于处理密钥材料的任何关键的质押代码。如将理解的,各质押操作164b可以包括一个或多于一个质押交易164c。在其他情况下,诸如在单个经数字签名的质押请求164c可以在一段时间内预先批准多个质押操作164b时等,多于一个质押操作164b可以共享质押交易164c。
67.在一些实现中,在可以授权质押操作164b之前,进行检查以确认请求164a自身被授权。例如,逻辑134、134a可以诸如通过确认来自移动装置172中的硬件密钥的规定数量的数字签名和/或使用例如以下详细所述的基于保险库的策略等,确认以加密形式提供的客户端授权。另外,可以使用逻辑134a来在hsm 130中处理(包括委托的权益证明协议的)不同的质押协议。因此,除了使用私钥将加密资产锁定到验证者节点的权益中之外,私钥还可用于对可被选择以验证下一区块的代表进行投票。
68.然后,可以将经数字签名的质押交易(或请求)164c发送到另一计算机以代表用户170实现质押操作164b。例如,可以将经数字签名的质押交易164d从hsm 130通信到中继计算机120,其中经数字签名的质押交易164d在由中继服务器程序124通信到在线计算机110之前可能由权益证明协议程序126进一步处理,其中经数字签名的质押交易164d在由在线服务器程序114通信到完整节点160a之前可能由权益证明协议程序116进一步处理。完整节点160a接收经数字签名的质押交易164d(可能地包装在质押操作164b所用的其他数据中),并且在该示例中,这使得将加密资产ca添加到权益162a。
69.通过对节点160a的权益162a的该添加,完整节点160a将被选择以验证区块链网络156、156a的新区块的机会将增加。完整节点160a通过检查区块159中的交易是否有效、对区块159进行数字签名并将区块159添加到区块链156a来验证区块链156a的新区块159。当在区块链网络中接受了新区块159时,完整节点160a接收与区块159中的交易相关联的交易费作为进行验证的奖励,例如,完整节点160a可以接收在区块链网络156、156a中创建的新加密资产。然后,可以与权益162a中的加密资产的所有者(包括加密资产ca的所有者)共享这些交易费。
70.图1b是示出通过权益证明分布式分类账系统的hsm 130和完整验证节点160之间的半双工连接的数据流的示例的示意图。当切换气隙104以允许中继计算机120和完整节点
160之间的通过服务器程序(sp)124的全双工传输(t
xrx
)时,区块链数据bd被传送到中继计算机120并由权益证明协议(pos.prot.)程序126使用t
xrx
控制(cntl.)逻辑128进行处理以生成数据d。当切换气隙104以允许中继计算机120和hsm 130之间的全双工传输(t
xrx
)时,将数据d传送到hsm 130并在计算装置132中使用质押逻辑134a(电路和/或例如固件的代码)进行处理,以生成经数字签名的数据d
pk
。然后,在切换气隙104以允许中继计算机120和完整节点160之间的通过sp 124的全双工传输(t
xrx
)时,经数字签名的数据d
pk
由pos.prot.程序126使用t
xrx cntl.逻辑128进行处理以生成经数字签名的区块链数据b
dpk
,并且该经数字签名的区块链数据b
dpk
被传送到完整节点160。因此,hsm 130和完整验证节点160之间的“连接”是半双工的,因为消息不能同时在两个方向上在这两个端点之间行进。
71.另外,css 100可以采用加密资产不可知授权层,其中加密资产不可知授权层使用一个或多于一个密钥间接层。如以下进一步所述的客户账户密钥(例如,组织的私钥或加密密钥332)可用于获得诸如私钥pk等的加密资产私钥,这些加密私钥可用于控制区块链156中所记录的加密资产ca的所有权。一个或多于一个加密层可用于保护包括私钥(诸如私钥pk或用于获得私钥pk的组织的私钥等)的机密信息,并且加密层中的至少一个可能需要hsm130中的基于硬件的加密密钥138(如图1a所示)用于完全解密机密信息。多层加密的更多细节包括在下文以及2019年2月14日提交的标题为“cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys”的美国申请16/276,567中,该申请通过引用而被全部包含于此。
72.另外,如上所述,多于一个hsm 130可以共享基于硬件的加密密钥138,这提高了硬件处理可用性(例如,多个不同的hsm可用于任何给定的请求)并且促进了ccs 100中所保持的加密资产的重新平衡。在任何情况下,需要基于硬件的加密密钥138来获得对私钥pk的明确访问。此外,可以使用一个或多于一个密钥导出函数(kdf)来导出对加密资产的私钥,使得这些私钥不需要显式地存储在hsm 130中,而是可以隐式地保持在hsm 130中。kdf使得能够基于提供给hsm 130的输入来重新生成私钥,例如,组织私钥或加密密钥332(诸如以下结合图3a详细所述等)。因此,hsm 130根本不需要物理地存储任何私钥,但仍然能够使用kdf的确定性算法来重新创建私钥。
73.另外,注意,可以针对新加密资产密钥(例如,针对为作为安全措施的加密资产的迁移所创建的新私钥)改变kdf算法。万一hsm主密钥泄露,受该密钥保护的加密资产将被移动到根据新hsm主密钥或不同方案所导出的新私钥。如果发现kdf不知何故在加密方面是不可靠的,则可以进行类似的过程,或者如果现有密钥仍可用,则可以对所有新密钥使用新kdf方案。
74.图2a是示出ccs中的包括权益证明协议处理的协议处理的示例的流程图。除本技术中所描述的系统和技术之外,在线服务器还使用已知的网络化处理来进行计算机网络协议处理200。作为该处理200的一部分,可以利用在线服务器接收(200)用以授权与区块链相关联的权益证明协议的质押操作的请求,并且在利用在线服务器的任何所需的适当处理之后,该请求可被发送到中继服务器。中继服务器除了使用本技术中所描述的系统和技术之外还使用已知处理来进行包括权益证明(pos)协议处理的区块链协议处理205,并且还进行任何适当的托管账户处理205。因此,中继服务器可以从在线服务器(或ccs内的另一计算机)接收用以授权质押操作的请求,并且进行初始协议处理以使该请求准备好进行hsm中的
授权。
75.如图2a所示,在这些不同的协议处理操作之间不存在硬分离。在一些实现中,网络协议处理200的至少一部分由中继服务器进行。在一些实现中,区块链协议处理205的至少一部分由在线服务器进行。类似地,区块链协议处理205的至少一些可以在hsm中进行。由hsm相对于另一计算机(例如,在线服务器和/或中继服务器)进行的协议处理的量可以是特定于区块链和质押协议的,并且hsm可以进行也在其他地方进行的协议处理的一部分。
76.然而,通常,优选减少由hsm进行的区块链协议处理205的量,以使供数字资产的质押和治理协议的安全授权用的hsm可用性最大化。在最低限度,hsm将在确认或重新确认质押操作的方面之后对质押交易进行数字签名以授权质押操作(例如,hsm重新验证为质押消息/请求采用权益证明协议的适当格式),并且ccs中的各种hsm将保持足够可用,以便以质押协议所需的适当频率参与。因此,hsm维护了密钥安全性(例如,将最关键代码放入hsm中以避免损失权益),同时还为参与质押和治理提供了高可用性。
77.hsm从中继服务器接收到用以授权质押操作的请求,并且使用本技术中所描述的系统和技术来进行pos协议质押操作授权210。例如,hsm可以进行如以下结合图2c进一步详细所述的资产不可知授权210。在一些实现中,ccs100的hsm运行自定义固件以支持质押和治理操作。由于各协议可能不同,因此可以针对各资产类型定制该固件。然而,每个协议动作应例如通过客户端签名来认证和授权。另外,为了核实客户端批准了动作,根据协议,客户端可以预先批准特别是针对需要非常频繁的操作的协议(例如,如以下所述,通过策略更新)继续使用质押动作;当质押协议需要更频繁的签名时,针对某些动作和/或某些时间帧在策略图中使用预先批准可以减少将需要的背书消息的数量。核实可以在hsm固件的内部进行,以确保在访问资产密钥之前所有动作都被授权,但也可以在系统的其他部分中复制以进行纵深防御。当hsm处于气隙状态时,依赖于区块链的实时状态的附加检查可以在hsm的外部发生。
78.在hsm授权了(210)质押操作之后,中继服务器进行任何附加所需的区块链协议处理215(包括pos协议处理)以及任何适当的托管账户处理215。与之前一样,该处理215的一些可以由hsm和/或在线服务器进行。在任何情况下,授权质押操作的经数字签名的交易(消息、请求等)都从hsm被发送到中继服务器,然后(在任何适当处理之后)从中继服务器被发送到在线服务器,该在线服务器进而进行计算机网络协议处理220以代表ccs的用户实现质押操作。
79.图2b是示出响应于与质押和治理有关的变化而修改ccs中的操作的示例的状态和流程图。质押和治理操作的挑战是密钥必须保持足够可用;根据协议,资产密钥可能需要在一天或一小时内多次签署同意质押消息。注意,尽管hsm处于气隙状态,但hsm能够与中继服务器进行通信,其中该中继服务器以频繁的速率(例如,每分钟一次)在hsm和公司的云系统之间断开和重新连接。可以定制和调制该速率,以与质押和治理操作的频率最佳地协调。因此,在一些实现中,ccs监测(240)一个或多于一个区块链的质押和治理,并且当存在质押协议改变(例如,对现有质押协议的改变或新质押协议的创建)时,可以相应地调整(250)ccs中的一个或多于一个气隙的定时控制。例如,气隙切换速率可以从每六十秒一次(适用于大多数当前的质押协议)改变为每天一次或更不频繁(适用于一些现有协议)。注意,可以根据协议调整(250)气隙切换速率,这在ccs中提供了额外的灵活性,既用于处理多个当前质押
和治理协议,又用于适应质押和治理协议的将来发展。
80.此外,处理需要利用加密资产私钥的数字签名的质押和治理协议的一部分的hsm逻辑可以是被编程为处理一个或多于一个权益证明协议的不同质押交易的固件代码。因此,通过不使用硬编码电路,也可以容易地更新hsm。因此,响应于质押协议改变(例如,对现有质押协议的改变或新质押协议的创建),还可以更新(245)一个或多于一个hsm中的固件以适应该改变。该改变可以涉及hsm进行的操作的细节、以及在hsm上与在ccs中的其他计算机中相比进行协议的多少。
81.响应于ccs操作的改变,也可以进行类似的改变。因此,可以响应于ccs系统的变化来调整(260)协议处理地点和/或hsm选择。注意,在具有ccs的各种计算机中(例如,在中继服务器计算机或在线服务器计算机或其他计算机中)进行质押和治理协议的附加部分可以(例如,通过在ccs的各种计算机中进行冗余处理作为双重或三重检查)帮助平衡ccs内的处理负荷和/或增加安全性。此外,如2019年2月14日提交的标题为“cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys”的美国申请16/276,567(该申请通过引用而被全部包含于此)所述,可以通过重新平衡私钥组来调整hsm选择。
82.此外,在对质押的奖励改变(例如,新质押协议提供更高的收益率,或者一个验证者(锻造者)有可能比另一验证者(锻造者)更频繁地被选择用于块验证)的情况下,ccs可以修改(265)利用加密资产进行的质押,以提高托管账户上的收益。在一些实施例中,质押操作的预先批准使得ccs能够监测(240)一个或多于一个区块链网络,以识别ccs的客户的最佳质押机会,并由此提高提供给质押加密资产的所有者的奖励。
83.为了提高安全性,上述的系统和技术可以与如以下详细所述的加密资产保险库一起使用,以及/或者css 100可以例如基于风险分析来也如以下详细所述使用加密资产不可知授权层中的背书消息来进行交易的用户授权,以在面对变化的分布式分类账和区块链技术时进一步增强ccs 100的安全性并增加其鲁棒性。图2c是示出hsm中的权益证明操作批准的示例的流程图。hsm接收信息并对该所接收到的信息的至少一部分进行解密(270)。所接收到的信息包括策略图(例如,具有特定于特定保险库的访问控制规则的策略图)和已加密密钥。
84.例如,保持私有(资产)密钥的hsm(或hsm集合)也可以是针对保持私有(资产)密钥的客户托管账户生成了私有(组织签名)密钥的hsm(或hsm集合)。(一个或多于一个)hsm可以通过生成随机数字签名公钥/私钥对(verificationkey
org
和signingkey
org
)来产生临时组织数据结构的密钥,然后用基于硬件的加密密钥(hsm自身的硬件内主密钥,例如图3a的密钥322)对私钥(signingkey
org
)进行加密来产生enc(signingkey
org
)
hsm
。在将包括纯文本signingkey
org
的所有该信息从hsm的存储器丢弃之前,hsm也可以(诸如通过用signingkey
org
对完整组织数据结构进行数字签名以产生orgsignature等)用私有(组织签名)密钥(例如,图3a的密钥332)对客户账户记录的一些方面进行数字签名。这些操作也可以在接收到质押请求之前发生。
85.因而,在本示例中,hsm所接收到的信息包括组织、orgsignature、资产id、保险库id、verificationkey
org
和enc(signingkey
org
)
hsm
(注意,附加的加密层可用于组织的签名密钥(例如,加密组密钥)),并且解密(270)涉及hsm使用其基于硬件的加密密钥来揭示已解密
的私钥(signingkey
org
)。注意,如以下进一步详细论述的,完全解密的私有(组织签名)密钥仅在hsm硬件本身的内部可用。还注意,当hsm可以从明文signingkey
org
导出verificationkey
org
时,不需要将verificationkey
org
发送到hsm,但在一些实施例中,hsm也接收verificationkey
org

86.在该示例中hsm所接收到的信息还包括背书和策略图。策略图可以包括在组织数据结构中,并且可以特定于保险库id。背书也可以由hsm同时接收或者由hsm主动请求。在实践中,通常优选使中继服务器计算机收集并(例如,在气隙的一次切换期间)向hsm提供给定授权处理在hsm中继续进行所需的所有信息。
87.在任何情况下,解密(270)的结果是已解密密钥,例如明文signingkey
org
。另外,该处理可以包括一个或多于一个策略图的核实(272)(例如,使用verificationkey
org
来核实组织的orgsignature)、以及检查(272)策略图的控制规则是否允许所请求的质押操作。如果为“否”,则拒绝(274)质押操作。此外,以下结合图3a提供与核实一个或多于一个保险库的策略图有关的细节。
88.另外,hsm可以通过使用与所指定的个人用户相对应的公钥检查加密数字签名,来验证(276)从(如由策略图指定的)加密资产托管系统的个人用户接收到的背书消息(例如,在hsm中运行的固件可以核实由驻留在用户的移动装置上的基于硬件的私钥生成的数字签名)。如果未确认(278)(如由策略图设置的)阈值数量的有效背书消息,则拒绝(274)质押操作。然而,注意,在一些实施例中,中继服务器计算机已进行了这两个检查272、278,因此hsm将拒绝质押操作的机会极低,因为策略可能已被检查并且背书消息已由中继服务器计算机验证。
89.另外,检查(278)的阈值数量(即,所需的规定数量大小)可以基于特定质押协议、要批准的特定质押操作和/或权益的大小(如在策略图中详述)、以及取决于风险评估(例如,通过以下所述的风险分析阶段4)。当检查272、278都被许可时,至少从已解密密钥导出(280)加密资产的私钥。例如,可以将明文signingkey
org
和资产id作为输入提供到kdf,以重新生成加密资产的私钥作为输出。当加密资产已被指派给ccs中的多个不同保险库其中之一时,如以下结合图3a进一步详细所述,向kdf的其他输入可以包括保险库id。然后,利用在hsm中产生的重新生成的私钥来对质押交易进行数字签名(282)。将重新生成的私钥从hsm中的存储器删除(284),并且将经数字签名的质押交易发送(286)到中继服务器计算机以代表用户实现质押操作。
90.hsm的保险库系统
91.如上所述,可以在ccs 100中使用保险库系统。图3a是示出由hsm 300实施的访问规则的结构的示例的示意图。hsm 300包括执行加密处理代码304的至少一个物理计算装置302,其中加密处理代码304管理可用于控制对至少一个区块链中的加密资产的访问的非对称加密密钥对中的私钥。hsm 300还包括与物理计算装置302耦接的至少一个安全存储装置306。在一些实施例中,安全存储装置306通过与物理计算装置302集成而与物理计算装置302耦接。例如,安全存储装置306可以是包括物理计算装置302的集成电路芯片中所包括的非易失性存储器装置,并且加密处理代码304可以存储在安全非易失性存储器装置306中(并且可能直接从安全非易失性存储器装置306运行)。
92.在一些实施例中,hsm 300的(一个或多于一个)物理计算装置302和(一个或多于
一个)安全存储装置306被实现为安全执行环境(see),其中代码304除了通过对hsm 300的物理访问之外不能被改变,并且对代码304的任何改变均需要由加密资产托管机构的多个雇员安全地持有的一组智能卡。在一些实施例中,使用一般的签名代码检查来确保加密处理代码304的安全性。此外,在一些实施例中,hsm有权访问数据库310。数据库310可以包括在(一个或多于一个)安全存储装置306中,或者托管在单独的计算系统(诸如通过计算机网络与hsm 300耦接的服务器计算机等)上。
93.安全存储装置306存储由hsm 300控制的一个或多于一个加密密钥308。在最低限度,hsm 300可以具有永远不会离开hsm 300的单个主密钥308。在这样的实施例中,主密钥308用于对所有敏感数据(包括其他加密密钥)进行加密和解密,使得该数据可以安全地存储在另一计算机系统上的数据库310中,但该安全数据除了在hsm 300中之外不能被解密,因为主密钥308保持在hsm 300内。一个或多于一个加密密钥308可以是一个或多于一个对称加密密钥和/或一个或多于一个非对称加密密钥对,其中各密钥对具有可用于数字签名处理的公钥和私钥。
94.hsm 300提供hsm环境320,在该hsm环境320中,加密处理代码304对多个加密密钥进行操作以控制对由ccs管理的加密资产的访问。hsm 300可以对一个或多于一个托管账户330提供加密处理,各账户330用于加密资产托管机构的一个或多于一个客户。各账户330包括两个或多于两个保险库340,其中各保险库340包括可用于访问加密资产的多个私钥342。在一些实施例中,私钥342是(至少部分地)从各相应保险库340的保险库id导出的,这有助于实施各个保险库中的私钥的逻辑分离,由此提高ccs中的安全性。另外,各保险库340具有其自身关联的策略图350,该策略图350定义保险库控制规则352,这些保险库控制规则352管控在一个或多于一个指定条件下对于保险库340允许哪些动作。各策略图350的规则352可以包括如以下进一步所述的规定数量要求以及各种其他权限结构。注意,也可以更新策略图350,因此可以随时间的经过而改变其(一个或多于一个)权限结构和(一个或多于一个)规则。
95.各账户330具有由hsm 300加密的关联加密密钥332。加密密钥332用于保护(360)关联账户330中的各保险库340的各策略图350。在一些实施例中,加密密钥332是由hsm 300用于对各策略图350进行加密(360)的对称加密密钥,并且hsm 300通过使用加密密钥332对策略图350进行解密来认证各策略图350。在一些实施例中,加密密钥332是非对称加密密钥,其中hsm 300使用密钥332的私钥部分来在首次创建(或更新)各策略图350时对各策略图350进行数字签名(360),并且hsm 300通过使用密钥332的公钥部分确认策略图350的数字签名来认证各策略图350。
96.不论密钥332的类型如何,hsm 300都仅在所请求的动作符合保险库的关联策略图350中阐述的规则时并且仅在策略图350已被hsm 300认证时才允许使用保险库340中的私钥342。当满足这两个条件时,hsm将实现所请求的动作。在一些情况下,实现所请求的动作涉及使用私钥342对一些数据进行数字签名(例如,以实现加密资产的取出)。在一些情况下,实现所请求的动作涉及使用加密密钥332(例如,对更新后的策略图350进行加密或数字签名)。
97.在一些实施例中,hsm 300存储由hsm 300保持安全的多个加密密钥(例如,所有加密密钥)。因此,hsm 300可以存储各个保险库340的所有私钥342。然而,为了减少hsm 300所
需的存储空间的量,在一些实施例中,使用密钥导出函数(kdf)来在需要私钥342时即时导出(365)私钥342。kdf是用于从各保险库340的相应唯一标识符生成各相应保险库340中的私钥342的确定性算法。因此,如图所示,使用采用保险库id“a”作为输入的kdf来导出(365)密钥342。注意,不论私钥342是否是仅在需要(或存储)时生成的,使用保险库id来导出各保险库340的私钥342的处理都强制保险库340的逻辑分离,并确保私钥342不能在保险库340之间共享。另外,保险库中的各加密资产可以具有针对该加密资产所产生的一个或多于一个私钥342。
98.此外,kdf还可以使用其他信息作为输入来帮助提高ccs中的安全性。例如,如图3a所示,除了保险库id之外,kdf还可以使用加密密钥332和资产id作为输入。附加的或不同的输入也可以与kdf一起使用。此外,ccs中的hsm 300和/或其他hsm可以各自使用不同的kdf来进一步提高ccs中的安全性。可以使用的kdf的示例包括hkdf、pbkdf2和scrypt。通常,kdf采用所输入的密钥材料(例如,组织密钥)以及一个或多于一个确定性标识符(例如,保险库id和资产id)。此外,在私钥342的即时创建的情况下,由于重新生成各私钥342以用于实现动作(例如,对取出加密资产的请求的至少一部分进行数字签名),因此一旦实现了动作(例如,直接地或通过中介将如此得到的数字签名数据发送到区块链网络),就将私钥342从存储器完全删除。因此,私钥342仅在被需要的时间才存在于hsm 300中。
99.此外,可以使用一个或多于一个附加级别的密钥间接。例如,hsm 300可以存储其主加密密钥322,并且当加密密钥332首次由hsm 300创建时,可以使用主密钥322对该密钥332进行加密。这将允许加密密钥332(以已加密形式)存储在其他计算机中并且仍保持安全,因为加密密钥332可以仅由hsm 300使用hsm 300的主密钥322进行解密。注意,在一些实施例中,主密钥322特定于各个hsm,并且在其他实施例中,主密钥322在系统中的两个或多于两个hsm之间共享(或者可能由所有hsm共享),以增加对处理请求的hsm可用性。此外,在一些实现中,加密密钥332是公钥-私钥对,用主密钥322仅对该对中的私钥332进行加密,并且根据需要,从该对中的已解密私钥332即时重新生成该对中的公钥332。此外,在一些实施例中,使用保险库id来针对各托管账户330中的各保险库340生成单独的加密密钥332,以导出各相应的加密密钥332,这强制保险库340的逻辑分离直到加密密钥332的级别,并且确保加密密钥332不能在保险库340之间共享。
100.ccs的附加安全措施
101.如上所述,hsm 300可以在更大的ccs中采用,该更大的ccs可以包括附加的hsm并且可以采用附加的系统和技术来提高安全性。图3b示出ccs的示例的框图。在所示实施例中,ccs 1包括在线服务器2、中继服务器3、风险分析阶段4、hsm 5(例如,被实现为hsm 300)和数据存储设施6。数据存储设施6可以包括一个或多于一个数据库(例如,数据库310或数据库100),该一个或多于一个数据库可以是或包括关系数据库或者用于以组织方式存储数据的任何其他类型的机构,其中数据可以是结构化数据和/或非结构化数据。hsm 5还包括其自身的内部安全存储设施7(例如,安全存储装置306)。注意,尽管上述各组件的仅一个实例被示出为简化描述,但是在ccs 1中可以存在上述组件中的各组件的多个实例。一个或多于一个用户装置8(也称为“客户端”)可以经由诸如因特网等的公共计算机网络9与ccs 1进行通信。各个用户装置可以是例如智能电话、平板计算机、膝上型计算机和台式计算机等中的任一个。各用户装置8可以包括诸如基于ios的安全指定位址空间等的安全指定位址空间
14,该安全指定位址空间14用于存储相应用户的私钥并且生成该用户的数字签名。在至少一些实施例中,各用户装置8与不同的用户相关联,并且之后的说明书采用这样的实施例来便于说明。然而,注意,可以具有多个用户共享相同用户装置8的实施例。
102.中继服务器3用作虚拟气隙,以将hsm 5与公共计算机网络9隔离。中继服务器3和hsm 5在安全区10内操作。hsm 5可以从物理上驻留在无法直接访问任何外部网络的物理上安全的数据中心中。hsm 5和在线服务器2之间的消息在半双工连接(仅外传请求-响应)上路由到安全区10中的中继服务器3。中继服务器3在与在线服务器2进行通信时使自身从安全网络断开,并且在与hsm 5进行通信时使自身从所有的外部网络断开,使得不能从外部建立与这些装置的交互式会话。这为关键基础设施提供了“气隙”安全。此外,在一些实现中,气隙不仅仅是虚拟的,而是物理气隙,例如,中继服务器3与任何外部网络(例如,因特网)之间的物理开关和/或中继服务器3与hsm 5之间的物理开关,其中各物理开关由中继服务器3或由专用交换主机驱动。
103.在一些实施例中,ccs 1还有权访问与ccs 1具有托管权的加密资产相对应的至少一个区块链网络11。对区块链网络11的访问可以经由公共计算机网络9(例如,因特网)。
104.在一些实施例中,ccs 1的客户所提交的各交易均将经历可以是部分或完全自动化的风险分析阶段4。例如,在ccs 1的一些实施例中,人工风险分析代理可以评估风险评审仪表板上所显示的自动风险分析软件的输出,以决定交易是否已被充分授权而被接受。风险分析代理或软件可以遵循在各单独保险库上设置的策略,并且可以查看各种风险信号(例如,交易金额、授权该交易的用户的数量、请求和批准交易的(一个或多于一个)地点、目的地地址)中的任何风险信号,以计算可能导致批准交易或请求更多信息的最终风险得分。
105.存入
106.现在参考图4a和4b,图4a和图4b示出利用ccs 1存入诸如一定数额的加密货币等的加密资产的处理的示例。存入是由客户通过在客户的用户装置8上执行的软件应用(以下简称“ccs应用”)(未示出)经由因特网来发起的。这可以通过客户在ccs应用中选择资产类型并请求给定数额的存入来进行。一旦发起,对区块链存入地址的请求然后被发送至在线服务器2,该在线服务器2接收(401)到该请求,并且将请求经由中继服务器3转发(402)到hsm 5(如上所述,hsm 5通过中继服务器3与因特网隔离)。然后,hsm 5生成(403)新的公钥-私钥对21以唯一地对应于该存入,即对应于所请求的区块链地址。在一些实施例中,hsm 5使用相关组织的私钥以及kdf来生成针对区块链地址的新密钥对。如本文论述的,该上下文中的“组织”是与特定客户相对应的数据结构。新生成的密钥对中的私钥不能从hsm 5中提取,但可以安全地备份在已加密文件中。hsm 5内部的密钥生成确保了私钥21仅存在于hsm 5内,在世界上任何其他地方都不可用,并且不能由hsm 5外部的任何实体访问。
107.接着,hsm 5根据新创建的密钥对中的公钥来生成(404)存入所用的区块链地址。这可以通过使用众所周知的区块链地址的公钥的特定于区块链的变换来实现。然后,hsm 5用组织的私钥对区块链地址进行签名(405),并将已签名的区块链地址返回到在线服务器2。然后,在线服务器2使得(406)将已签名的区块链地址22发送至客户的用户装置8,以使得用户装置8以易于使用的格式(例如,作为qr码)在用户装置上的ccs应用中向客户呈现该地址,以用作区块链交易中的目的地地址。用户装置上的ccs应用在将地址呈现给客户之前核实(407)地址的签名。
108.客户的用户装置8使用组织的公钥(该公钥是先前从ccs 1接收到并本地存储的)来核实该用户装置8从ccs 1接收到的区块链地址的真实性。然后,客户发起(408)交易以将资产存入到ccs 1中。该交易可以是从交易所、从客户的个人钱包、或者从另一加密资产商店发起的。资产无需确认即可出现在ccs 1中。
109.存入的地址与ccs 1中属于客户的其他地址一起存储在集合(被称为客户的“保险库”)中。该上下文中的保险库是包含资产和策略图的数据实体,该策略图包含用于管控从这些资产的存入和取出的一个或多于一个策略。加密资产被表示为可以保持一定数额的资产类型(例如,比特币、以太坊)的保险库内的槽(slot)。一旦利用ccs 1托管并存储,资产就完全在ccs 1的控制下。
110.在线服务器2判断客户是否在所定义的时间段内确认了交易(409、410)。一旦存入交易由客户确认并且在区块链上被确认,在线服务器2就向客户通知(411)该情况,并且资产被视为由ccs 1托管。在所定义的时间段内未接收到确认的情况下,在线服务器向客户通知(412)交易中的错误。
111.取出
112.图5a和5b示出取出一定数额的先前存入的加密资产(诸如加密货币等)的处理的示例。取出可以通过选择要取出的特定加密资产和数额来从用户装置8a上的ccs应用发起。一旦发起,使所有的授权方都知晓取出请求并且要求所有的授权方在它们的移动装置8b上单独授权。
113.在该处理期间,要求用户评审交易并批准交易,其中各用户的批准均经过生物特征认证(例如,指纹、面部识别和/或语音识别)。在一些实施例中,在取出可以成功地继续移动到下一阶段之前,每个请求都被发送到风险分析阶段,以便对可疑活动进行检查并被授权为合法。hsm 5验证为所定义的规定数量(例如,大多数)的用户授权了交易,并且该交易由风险评审阶段4批准。例如,对于拥有需要转移资金能力的五个不同雇员的特定公司客户,适当的规定数量配置可能是需要由这五个雇员中的三个组成的组来移动任何资金。然后,hsm 5继续进行签名并将资产流动交易提交给区块链11。
114.在图5b中进一步示出取出处理的示例。在线服务器2最初从客户接收(501)到取出请求31。然后,在线服务器2检查(502)针对作为交易的对象的加密资产的批准策略(如在加密资产的保险库中所示),以确定哪些个人的授权(背书)可用于满足用以批准该取出的规定数量。然后,在线服务器2将背书请求发送(503)至这些个人的移动装置8a、8b(这些移动装置先前已在ccs 1中登记)。响应于这些请求,可以从用户的移动装置8a、8b接收到一个或多于一个背书消息,其中如以下进一步所述,这些背书消息由在用户各自的移动装置中安全地存储的这些用户各自的私钥进行本地签名,并且经过一个或多于一个生物特征认证技术。因此,如在针对该加密资产的策略中指定的,在线服务器2判断(504)在超时时间段内是否接收到了规定数量的授权并且是否认证了相应的授权方。如果为“是”,则在线服务器2将交易请求31传递(505)到风险分析阶段4。否则,在线服务器将交易拒绝通知至少发送(510)至请求了该交易的用户(以及可能地发送至在针对该加密资产的策略中识别的所有其他用户)。
115.风险分析阶段4进行如上所述可以是完全或部分自动化的风险分析(506),或者在一些实施例中,可以完全由一个或多于一个人(基于计算机输出数据)进行。如果交易通过
风险分析(506),则控制流程传递到hsm 5,该hsm 5通过进行与判断504相同的判断或类似的判断,其中hsm 5核实(508)满足了规定数量要求,风险分析(506)也是如此(以下进一步描述)。如果hsm 5核实为满足规定数量,则hsm用区块链地址的私钥对取出交易进行签名,并将该交易提交到区块链11上以执行取出(509)。否则,hsm 5向在线服务器2以信号方式发送失败,该在线服务器2作为响应将交易拒绝通知至少发送(510)至请求该交易的用户(以及可能地发送至在针对该加密资产的策略中识别出的所有其他用户)。
116.用户认证
117.如上所述,当用户对交易请求进行背书时,用户由他们的移动装置和/或ccs 1进行一个或多于一个形式的认证,以确定为这些用户是采取动作的预期人员。这些认证形式可以包括一个或多于一个生物特征认证技术(诸如指纹核实、声纹核实、语音识别、面部识别和/或手势识别等)。用户的移动装置(例如,智能电话)可以进行这些认证技术中的一个或多于一个。
118.附加地或可选地,还可以要求用户将利用他们的移动装置所拍摄到的视频上传到ccs 1,其中例如通过以下项可以从该视频中证明用户的身份:对照已知面部的图像(例如,用户的先前视频)来识别视频中的用户的面部;对照用户的经训练的语音配置文件来识别视频中的用户的语音;基于交易来要求用户在视频中说出特定词语或采取特定动作(参见以下的进一步论述);要求用户作出先前指定的姿势、或者在痛苦时做出痛苦姿势;要求用户在视频上识别这些用户处于的预期房间;以及/或者进行被认为是提高用户是他或她声称是谁的置信度水平的任何其他动作。
119.当判断为有必要时,可以要求用户完成质询,以认证他或她实际上是被授权对交易采取动作的人。这些质询可以是基于交易的上下文而确定性地生成的。例如,基于交易中的诸如id、数额、目的地等的关键信息,ccs 1可以生成可用于从一组已知词语中选择几个(例如,三到五个)词语的随机数。ccs 1可以将这些词语呈现给用户,并让用户在用户的移动装置所拍摄到的视频中说出这些词语,然后用户的移动装置将该视频传输至ccs 1。在评审交易时,评审机构或人工评审员可以基于交易数据来独立地生成预期词语,并且核实用户说出了这些词语。该视频也可以经受面部和/或语音识别。通过进行这种确定性质询生成,可以防止攻击者通过拍摄并重用来自用户的先前传输的认证视频来伪造交易。
120.hsm逻辑
121.参考图3a和图3b,hsm 5的主要作用是核实操作的有效性。hsm 5通过hsm对密钥的特权访问执行签名者的意愿并且认证了签名者是操作的授权方。对交易进行签名所需的密钥可以安全地存储在hsm 5中,并且永远不会离开。在一些实施例中,hsm 5通过安全执行环境(see)来加强这些策略,该see运行除了对hsm 5的物理访问以外不能更改的代码,并且需要由加密资产托管机构的多个员工安全地持有的一组智能卡。
122.在一些实施例中,为了促进上述功能,hsm 5在其内部存储装置7中存储被称为“组织”的数据结构的多个实例(即针对加密资产托管机构的各客户存储一个实例)。组织数据结构可以包含以下的字段:组织的标识符(id)、组织的名称、组织的公钥、属于组织的用户的列表、策略图、属于组织的保险库及其各自的策略图的列表、以及在每次更新组织结构时递增的生成编号。“策略图”是一组策略。在一个实现中,策略图包括针对可以执行的各种动作中的各可能动作(例如,添加用户、改变保险库策略等)的一个策略。组织由hsm使用该组
织的私钥(其存储在hsm 5中且不能由任何外部实体读取)签名,以表示组织是通过由用户和风险评审员授权的一组有效的改变而产生的。hsm跟踪最新版本以防止回滚攻击。
123.为了加入新客户,hsm 5创建新的组织实例。为了帮助确保充分安全,hsm 5可以利用已在组织中的所请求的一组用户来创建该组织。在一些实施例中,hsm 5必须针对以该方式创建的每个新组织来生成新的唯一密钥。这防止了攻击者要求hsm 5生成具有与现有组织相同的id的“新”组织并欺骗用户信任该“新”组织。
124.此外,如上所述,hsm 5可被实现为hsm 300,或者类似地,hsm 300可被实现为ccs 1中的hsm 5。因此,在一些实施例中,hsm 5不需要将私钥21存储在内部安全存储设施7中,而是可以根据需要重新生成私钥21。同样,在一些实施例中,hsm 5不需要将组织的私钥存储在内部安全存储设施7中,而是可以根据需要重新生成组织的私钥。类似地,hsm 5不需要将组织数据结构存储在内部安全存储设施7中。在一些实施例中,组织数据结构由组织的私钥进行数字签名,该组织的私钥进而使用hsm的主密钥进行加密,因此组织的加密私钥和组织数据结构可以存储在其他地方并在需要由hsm处理时提供给hsm。
125.图5c是示出利用ccs 1的质押处理流程的示例的示意图。可以通过选择特定加密资产(或多个加密资产)并向在线服务器2发送对质押批准的请求33来从用户装置8a上的ccs应用发起质押批准请求。一旦发起,使所有授权方都知晓质押请求,并且要求所有授权方在他们的移动装置8b上单独授权质押请求。在该处理期间,要求用户评审交易并批准交易,其中各用户的批准经受生物特征认证(例如,指纹、面部识别和/或语音识别)。在一些实施例中,在质押请求可以成功地继续移动到下一阶段之前,每个这样的请求都被发送到风险分析阶段4,以便对可疑活动进行检查并被授权为合法。
126.如果风险分析阶段4批准了质押请求,则ccs 1在区块链网络11中监测到进行质押的时间的指示符。在适当的时间,ccs 1将质押请求发送到安全区以对质押请求进行签名。中继服务器3将质押请求跨气隙通信到hsm 5。hsm 5验证为所定义的规定数量(例如,大多数)的用户授权了质押请求,并且该质押请求由风险评审阶段4批准。例如,对于拥有需要转移资金能力的五个不同雇员的给定公司客户,适当的规定数量配置可能是需要由这五个雇员中的三个组成的组来质押任何资金。注意,中继服务器3还可以在将质押请求发送到hsm 5以供批准之前进行这些检查。
127.然后,hsm 5对质押请求进行数字签名以生成已签名的质押请求34,该已签名的质押请求34通过气隙被返回到中继服务器3以通信到ccs 1的在线服务器2。ccs 1将已签名的质押请求34发送到区块链网络11并且监测成功。
128.图6是示出hsm 5、130、300结合所请求的操作(也称为所请求的动作)所进行的处理的示例的流程图。接收(610)到用以关于加密资产托管系统中的多个不同保险库中的保险库采取动作的请求。如上所述,多个不同保险库是与加密资产托管系统的用户(例如,客户和/或客户的雇员和/或零售客户)相关联的加密资产的逻辑分组。在一些实施例中,请求包括hsm 5、130、300处理该请求所需的附加信息(诸如例如在组织数据结构中的保险库的策略图等)。此外,包括存入、取出、转移、策略更新等的各种类型的所请求的动作也是可以的。此外,用以使用密钥的请求可以包括与究竟正对什么内容进行签名有关的细节。例如,对于取出,系统可以验证为用户签名了以下内容:目的地地址;发送的数额;使用的费用;以及实际交易的散列,因此该散列不能被重放。hsm对交易进行反序列化,并确保所有用户的
预期值都与已有值匹配。
129.从接收到的请求识别(620)保险库。这可以涉及:从请求本身提取保险库id,或者根据请求中的其他信息确定保险库id。例如,请求可以包括资产id,其中hsm可以使用该资产id来在数据库中查找保险库id。hsm所使用的其他信息(诸如拥有保险库的客户的公钥等)可以是从请求中提取的,或者可以是根据请求中的信息确定或导出的。
130.使用(630)拥有保险库的客户的公钥来检查保险库的策略图的数字签名。经数字签名的策略图可以存储在hsm上,与请求一起提供给hsm,或者由hsm响应于请求而获得。在任何情况下,在hsm允许所请求的动作相对于保险库继续进行之前,检查策略图的数字签名。
131.如果数字签名无效(640),则拒绝(680)所请求的动作。如果数字签名有效(640),则对照由保险库的策略图指定的一个或多于一个策略来检查(650)所请求的动作。如上所述,包括规定数量要求的各种规则可以由策略图定义。因此,在一些实施例中,检查(650)包括:如策略图指定的,验证(651)来自加密资产托管系统的个人用户的至少子集的背书消息;以及如策略图指定的,确认(652)为有效背书的数量满足阈值。验证(651)背书消息可以包括:使用与所指定的个人用户的子集相对应的公钥来检查加密数字签名。结合图5a、图5b和图7描述了这样的基于规定数量的策略的示例的进一步细节。
132.如果所请求的动作不符合(660)保险库的策略图的规则,则拒绝(680)所请求的动作。如果所请求的动作确实符合(660)保险库的策略图的规则,则所请求的动作由hsm实现(670)。注意,在各种实施例中,由hsm进行的处理670的量可以随所请求的动作和实现的细节而变化。在最低限度,hsm将进行至少一个加密处理操作,然后发送和/或保存该处理的结果以实现(670)动作。
133.例如,hsm可以使用私钥(例如,加密资产私钥)对一些数据(例如,请求的至少一部分)进行数字签名(671),然后将数字签名发送(672)到适当接收方(例如,到区块链网络)以进行进一步处理。另外,如果hsm根据需要重新生成私钥,则hsm然后可以删除(673)数字签名处理中所使用的私钥。注意,尽管描述了密钥生成的kdf方法,但加密密钥可以以其他方式生成并存储在(一个或多于一个)hsm上。作为动作的另一示例,hsm可以用加密密钥处理(675)更新后的策略图(例如,用客户的对称密钥对更新后的策略图进行加密,或者用客户的非对称密钥的私有部分对更新后的策略图进行数字签名),然后发送或保存(676)该处理的结果。在一些实施例中,hsm还基于所接收到的指令来更新策略图本身,并且在一些实施例中,hsm接收到更新后的策略图以及用以授权和保护该更新的请求。还可以采用其他动作、策略和附加安全措施。
134.图7示出在至少一些实施例中可以由hsm 5响应于用以执行操作的请求而进行的处理的示例。该请求可以由hsm 5从中继服务器3接收到。最初,hsm 5从中继服务器3接收(701)指定组织的操作描述。该操作描述是描述所请求的操作(诸如所请求的加密货币的存入、取出或转移等)的一组数据和元数据。然后,hsm 5核实(702)所指定的组织的完整性。
135.然后,hsm 5在组织的策略图或保险库的策略图中查找(703)策略。然后,hsm 5查看内部风险评审员的策略,以判断(704)必须实现哪些内部风险背书以及多少内部风险背书(即,加密资产托管机构的人员的背书)。接着,hsm 5判断(705)(从用户)接收到的背书中的任何背书是否表示“拒绝(reject)”所请求的操作。如果为“是”,则hsm 5通过向中继服务
器返回“拒绝”消息来拒绝(711)所请求的操作,其中中继服务器随后将相应的“拒绝”消息返回到在线服务器,以使得向请求方进行通知。在该情况下,hsm 5不费心地检查签名,并且仅仅拒绝该操作。
136.然后,hsm 5判断(706)所有接收到的针对交易的背书是否有效。这包括:通过检查以下内容来核实所提供的背书的有效性:i)用户在组织中;ii)签名对于所指定的操作而言是正确的;以及iii)各个签名具有“批准”决定。如果并非所有接收到的针对交易的背书都是有效的,则处理进入如上所述的拒绝711。
137.如果所有接收到的针对交易的背书都是有效的,则hsm 5然后判断(707)背书是否满足对象加密资产的相关策略(即,满足所指定的规定数量)。如果有效的背书不满足该策略,则处理进入如上所述的拒绝711。如果背书满足该策略,则然后hsm 5判断(708)所请求的操作是否通过风险分析阶段。如果为“否”,则处理进入如上所述的拒绝711。如果所请求的操作通过了风险分析阶段,则hsm 5判断(709)所请求的操作是否有效。这可以包括:核实为操作在内部是一致的,并且可以将操作应用于该操作所针对的组织、保险库或资产。如果所请求的操作无效,则处理进入如上所述的拒绝711。否则,hsm 5执行(710)所请求的操作(或触发使得执行该操作的动作)。用以改变组织、保险库或策略的操作产生了具有更高的生成值和应用了改变的新的已签名的组织数据结构。用以取出资产的操作使得hsm 5利用与对象资产相对应的私钥对区块链交易进行签名。用以存入资产的操作使得hsm 5生成存入地址。
138.离线装置背书
139.作为用于降低用户与他们的个人装置上的ccs应用交互的风险的方法,ccs 1可能需要来自离线装置的授权。该装置(诸如具有安全指定位址空间的消费者电话或诸如ipod touch等的类似能力的计算装置等)将在其正常状态下与因特网完全断开,并且以离线方式用于对授权所需的交易进行签名。
140.可以如下执行该处理。用户的电话或类似装置是他或她的保险库策略的规定数量的成员并且未连接至任何无线或蜂窝网络。该装置运行与用于使得用户能够对所请求的交易进行背书的ccs应用软件类似的软件、或者以不同模式操作的相同软件。用户通过规定数量的不同装置发起针对他/她的保险库的交易。诸如另一电话或web浏览器等的在线装置有权访问该交易。在线装置可以是规定数量中的另一电话/安全装置,或者在线装置可以仅仅为了显示交易而存在。装置具有将需要由离线装置签名的数据传输至离线装置的能力。这可以通过无法经由因特网访问的通道(诸如显示qr码、播放对数据进行编码的声音或声音序列、或者通过蓝牙传输等)来实现。离线装置显示为了离线装置签名所传输的数据,以供用户批准或拒绝。离线装置基于用户的期望动作来对操作的背书进行签名。离线装置以与接收方式类似的方式(例如,显示qr码、播放对数据进行编码的声音或声音序列、或者通过蓝牙传输)将其已签名的有效载荷(payload)通信回至在线装置。在线装置将已签名的决定有效载荷通信回至ccs 1的在线服务器。
141.图8是根据一些实施例的进一步示出该处理的流程图。在线用户装置经由因特网从ccs接收(801)操作描述。然后,在线用户装置将该操作描述(或其一部分)使用离线通道传输(802)到离线用户装置文件。如上所述,离线通道是不能经由因特网访问的通道,诸如利用在线用户装置的本地视觉显示、在线用户装置所生成的声音或声音序列、或者(例如,
经由蓝牙)来自在线用户装置的短距离无线传输等。离线用户装置经由离线通道从在线用户装置接收(803)操作描述,并且基于由此接收到的信息,显示操作描述(或其一部分),并且向用户提示(804)该操作的背书。如果离线装置在超时时间段内接收(805)到有效背书作为用户输入,则离线装置将“接受(accept)”消息经由(该离线装置接收到操作描述的)相同离线通道或者经由不同的离线通道传输(806)至在线用户装置。然后,在线用户装置从离线装置接收(807)到背书的结果,并且将结果有效载荷经由因特网传输(808)至ccs。如果离线用户装置在超时时间段内未从用户接收(805)到有效背书,则离线用户装置将“拒绝”消息经由离线通道传输至在线用户装置,而在线用户装置将该“拒绝”有效载荷经由因特网传输(809)至ccs。
142.离线装置可以以其安全密钥预先登记在组织中的状态被交付至用户,或者可以允许离线装置在线以进行初始登记处理,或者离线装置可以通过与授权处理相同的过程来发送其登记。
143.可能需要周期性地更新离线装置上的ccs软件。为了允许这样的更新,离线装置可按预定义的节奏被安排经由wi-fi连接至因特网并更新其软件,或者离线装置可以检测到作为从在线用户装置接收到要签名的交易的结果(表示离线装置上的软件版本不再兼容)而需要更新其软件。每当该装置在线时,该装置可以记录该装置可以访问因特网这一事实并尝试将该事实传输至ccs 1以使得该信息可用于由平台在稍后时间评估风险。
144.离线用户装置以及一个或多于一个在线装置除了保持离线之外,可被限制成仅在预定义信标的范围内对交易采取动作。可以使无线(例如,蓝牙(bluetooth))信标装置对用户可用,并且除非ccs应用检测到信标可用,否则ccs应用可以拒绝授权交易。
145.可审计性和所有权证明
146.提交给ccs 1的每个交易均记录在内部分类账中,该内部分类账是防篡改的,且允许审计员在每个用户的账户具有每个历史事件的加密证据。区块链资产的所有权通过拥有与公用钱包地址相对应的私钥来控制。ccs可以通过利用与用户的保险库相对应的私钥对审计员所选择的一串随机选择文本进行签名来向审计员证明这些资产的所有权。考虑以下示例:
147.审计员希望看到ccs有权访问由地址“1bvbmseystn5au4m4gfg7yjanvn2”标识的钱包中的资金的证据。因此,审计员随机地生成长字符串(例如,“xgg8vqfnd8qdwhz6uj1gx”),并且提交以下质询:
148.{
149.地址:1bvbmseystn5au4m4gfg7yjanvn2,
150.令牌:“audit-challenge-xgg8vqfnd8qdwhz6uj1gx”,
151.}
152.ccs 1接收质询并将该质询作为预定义的模板序列化包转发给hsm 5。hsm 5被编程为接受这样的审计请求(其不是任意的有效载荷,因此不存在随后被解释为已签名的区块链交易的风险),并且用与所指定的地址相关联的私钥对这些审计请求进行签名。然后,ccs 1针对审计员可以独立核实的质询而返回有效签名。该核实证明了ccs 1能控制与区块链上的条目相对应的私钥,从而实现对资产的控制的证明。
153.阈值化服务
154.在一些实施例中,ccs 1包括阈值化服务,该阈值化服务使得系统的其他部分(风险分析阶段4和hsm 5)能够安全地判断为:用户操作和交易遵循了客户特定的业务逻辑,并且已被人工/自动风险评审系统批准。阈值化服务可以核实多重签名(多用户)规定数量以实现这一点。
155.阈值化服务验证由用户发起并批准的操作,以确保这些操作在被执行之前已满足阈值规定数量。这样的操作可以包括交易、添加或删除其他用户等。不同的用户可以具有不同的访问控制作用(例如,仅查看、仅发起交易、可授权、必需)。ccs 1能够向每个可报告状况通知规定数量接受生命周期,但不能签署同意未被客户授权的操作。所有动作都被载入日志到仅追加分类账中,以用于所有账户交互的可审计性。
156.阈值化服务的一个功能是核实规定数量的授权用户已签署同意了所请求的操作。可能需要规定数量的合格操作例如可以包括:提出交易(例如,“取出300比特币”)、将用户添加到账户、更改用户的权限、将用户从账户中删除、以及更改阈值化逻辑。默认情况下,规定数量可被定义为绝对多数的用户(例如,5个中的3个),或者规定数量可以在客户加入时被设置为自定义规定数量。此外,授权用户可以配置规定数量,以要求某些特定用户对交易进行背书,以构成规定数量。ccs 1还可以允许跨多个所需组的阈值化。例如,在公司中,可能要求财务团队的大多数以及管理部门签署同意。
157.在一些实施例中,阈值化服务在其规定数量核实中实现了细粒度访问控制模型,其中不同用户可以具有不同的访问级别,这些访问级别可以包括以下的级别,例如:
[0158]-仅查看
[0159]-这是默认访问级别
[0160]-该级别的用户可以查看所有的资产位置
[0161]-该级别的用户可以标记任何交易
[0162]-该级别的用户可以冻结所有资产
[0163]-查看-授权
[0164]-该级别的用户可以充当趋向规定数量的动作的授权投票
[0165]-该级别的用户可以查看所有资产位置
[0166]-该级别的用户可以标记任何交易
[0167]-该级别的用户可以冻结所有资产
[0168]-查看-授权-必须
[0169]-该级别的用户是动作的所需投票
[0170]-该级别的用户可以查看所有资产位置
[0171]-该级别的用户可以标记任何交易
[0172]-该级别的用户可以冻结所有资产
[0173]
在一些实施例中,用户的访问级别可以仅随着通过阈值化服务核实的适当核实规定数量而改变。
[0174]
如上所述,用户对动作的批准可以由加密数字签名表示,以受益于不可抵赖性保证。加密资产托管机构可以确定持有私钥的关联用户确实是批准该动作的用户,因为数字签名是无法伪造的。在一些实施例中,用户的签名是从用户的移动装置中的ios安全指定位址空间生成的,并且由用户装置8中的ios应用编程接口(api)组件转发到ccs 1。可以对交
易内容的加密散列进行签名,以确保交易无法被篡改。可能需要所有用户对交易标识符(id)相同的相同散列进行签名,以便签名计入规定数量。阈值化服务可以提供供客户端签名的模板,并且可以核实ios客户端所完成的所有已完成签名。在至少一些实施例中,阈值化服务用用户的签名密钥的公共组件核实签名,但不持有这些用户签名密钥的私有组件。
[0175]
一旦满足了阈值,阈值化服务将相应的签名数据发布到风险分析阶段,以由风险分析阶段在签署同意之前进行进一步分析,并且将签名数据序列化为hsm签名服务所要消耗的有效载荷。可以将提供给阈值化服务和核实的各附加签名记录在仅追加日志服务中。这除了将提供阈值化服务的存储装置中所捕获到的元数据以外,还将提供附加审计和状况更新,这对于向用户客户端提供可消耗的更新将是至关重要的。
[0176]
维持规定数量活性
[0177]
假定规定数量的授权成员可用于对交易进行加密签名。因此,规定数量应保持“活跃”,即在任何给定时间,ccs 1都具有规定数量的所有潜在成员都维持拥有他们的安全装置密钥并且可以积极参与交易的合理置信度。在一些实施例中,ccs 1可以进行以下操作,以达到该级别的置信度:
[0178]
1.有权访问实现策略的规定数量所需的用户公钥的集合。
[0179]
2.设置策略的活性阈值,即时间量,在该时间量之后认为密钥存在不可用风险。这可以是固定的,或者可以与正常交易节奏相关。
[0180]
3.要求用户用他们的私钥周期性地对证明交易进行签名。这可以作为活性检查而是显式的,或者通过需要他们的密钥进行诸如登录等的常规操作而是隐藏/隐式的。
[0181]
4.记录任一个或多于一个用户的密钥的最新活跃时间。
[0182]
5.持续监测任何用户的活跃时间是否超过了活性阈值。
[0183]
6.使用上述信息来提示用户证明这些用户仍有权访问他们的签名密钥和/或向其他用户通知规定数量可能存在风险。
[0184]
风险分析阶段
[0185]
风险分析阶段4可以实现被称为风险api的api,并且还可以包括对所有交易的人工评审和管理用户操作。在一些实施例中,风险api驱动人工评审系统。风险api可以提供与内部风险仪表板的集成,以供加密资产托管机构的员工手动评审各交易。
[0186]
在一些实施例中,所有交易都由(一个或多于一个)指定员工手动批准;所有管理用户操作(添加、删除、权限更改)都由(一个或多于一个)指定的加密资产托管机构员工手动批准;在需要风险分析之前,可评审实体必须通过了自动核实处理;可评审实体必须提供与用户批准有关的稳健上下文,以便人工检查和进一步的自动化检查;以及风险批准和拒绝都被载入日志到仅追加分类账中以用于可审计性。
[0187]
风险api重新核实由阈值化服务确定的适当阈值。风险api还可以诸如在阈值化服务被简化的实施例中等处理附加业务逻辑:例如,如果阈值化服务仅检查规定数量,则风险api可以检查所需的签名者。这里所述的其他功能也可以在模块之间移动。
[0188]
风险api可以接收与在交易中涉及的各用户有关的上下文数据,以呈现给人和/或分类系统。该信息例如可以包括批准了交易的(一个或多于一个)用户、(一个或多于一个)批准的时间、(一个或多于一个)批准的地点、以及批准了交易的(一个或多于一个)装置/密钥id。该数据可被馈送到内部风险分析仪表板中,并且可能地被馈送到其他自动评审系统
中。
[0189]
在一些实施例中,如果交易通过了手动和自动风险评审,则风险api需要来自加密资产托管机构的一个或多于一个员工的人工批准。为了批准,员工在他或她批准交易/操作的情况下,可能被要求用加密密钥进行签名,并且将签名呈现给风险api以进行验证。此外,优选存在多个密钥(针对各风险评审员存在一个密钥),使得将进行了评审的人载入日志。优选地,在折中的情况下,容易转动风险批准密钥。
[0190]
物理计算环境的示例
[0191]
图9示出可用于实现ccs的一部分或全部,或(单独)任何用户装置、或这两者的处理系统的硬件架构的示例。ccs可以包括诸如图9所示等的架构的一个或多于一个实例,其中多个这样的实例可以经由一个或多于一个专用网络彼此耦接。
[0192]
所示的处理系统900包括包含cpu 910的一个或多于一个处理器、一个或多于一个存储器911(其至少一部分可被用作例如随机存取存储器(ram)的工作存储器)、一个或多于一个数据通信装置912、一个或多于一个输入/输出(i/o)装置913、以及一个或多于一个大容量存储914,所有这些经由互连器915彼此耦接。互连器915可以是或包括一个或多于一个导电迹线、总线、点对点连接、控制器、适配器、以及/或者其他传统连接装置。各处理器910控制处理装置900的操作的一部分,并且可以是或包括例如一个或多于一个通用可编程微处理器、数字信号处理器(dsp)、移动应用处理器、微控制器、专用集成电路(asic)或可编程门阵列(pga)等、或者这样的装置的组合。
[0193]
各存储器911可以是或包括一个或多于一个物理存储装置,其中物理存储装置可以采用以下项的形式:ram、只读存储器(rom)(其可以是可擦除和可编程的)、闪速存储器、小型硬盘驱动器或其他合适类型的存储装置、或者这样的装置的组合。各大容量存储914可以是或包括一个或多于一个硬盘驱动器、数字多功能盘(dvd)、或者闪速存储器等。各存储器911和/或大容量存储914可以(单独或共同)存储对(一个或多于一个)处理器910进行配置以执行用以实现上述技术的操作的数据和指令。各通信装置912可以是或包括例如以太网适配器、线缆调制解调器、wi-fi适配器、蜂窝收发器、基带处理器、或者蓝牙或蓝牙低功耗(ble)收发器等、或者它们的组合。根据处理系统900的特定性质和用途,各i/o装置913可以是或包括诸如显示器(其可以包括透明ar显示面)、音频扬声器、键盘、鼠标或其他指点装置、麦克风、照相机等的装置。然而,注意,如果处理装置900仅被体现为服务器计算机,则这样的i/o装置可能是不需要的。
[0194]
在用户装置的情况下,通信装置912可以是或包括例如蜂窝电信收发器(例如,3g、lte/4g、5g)、wi-fi收发器、基带处理器、蓝牙或ble收发器等、或者它们的组合。在服务器的情况下,通信装置912可以是或包括例如上述类型的通信装置、有线以太网适配器、线缆调制解调器或dsl调制解调器等中的任一个、或者这样的装置的组合。
[0195]
除非与物理可能性相反,否则设想:(i)可以以任何序列和/或以任何组合进行本文所述的方法/操作;以及(ii)可以以任何方式组合各个实施例的组件。
[0196]
上述机器实现的操作可以通过由软件和/或固件编程/配置的可编程电路实现,或者完全通过专用(“硬连线”)电路实现,或者通过这些形式的组合实现。这样的专用电路(如果有的话)可以采用例如一个或多于一个专用集成电路(asic)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、片上系统(soc)等的形式。
[0197]
用以实现这里介绍的技术的软件或固件可以存储在计算机可读存储介质上,并且可以由一个或多于一个通用或专用可编程微处理器执行。当在本文中使用术语“计算机可读介质”时,计算机可读介质包括可以以机器(机器可以是例如计算机、网络装置、蜂窝电话、个人数字助理(pda)、制造工具、具有一个或多于一个处理器的任何装置等)可访问的非暂时性形式有形地存储信息的任何机构。例如,计算机可读介质包括可记录/不可记录的介质(例如,ram或rom;磁盘存储介质;光存储介质;闪速存储器装置;等等)等。
[0198]
如本文所使用的术语“逻辑”意味着:i)专用硬接线电路,诸如一个或多于一个专用集成电路(asic)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、或(一个或多于一个)其他类似装置等;ii)用软件和/或固件编程的可编程电路,诸如一个或多于一个编程的通用微处理器、数字信号处理器(dsp)和/或微控制器、片上系统(soc)、或者(一个或多于一个)其他类似装置等;或者iii)在i)和ii)中所述的形式的组合。
[0199]
如本领域普通技术人员将显而易见的,除了以上另外陈述的程度、或者任何这样的实施例借助于上述特征和功能中的任何或全部的功能或结构可能不兼容的程度之外,上述特征和功能中的任何或全部可以彼此组合。除非与物理可能性相反,否则设想:i)可以以任何顺序和/或以任何组合进行本文所述的方法/操作;以及(ii)可以以任何方式组合各个实施例的组件。
[0200]
尽管已经用特定于结构特征和/或行为的语言描述了本主题,但应当理解,在所附权利要求书中定义的主题不一定局限于上述的具体特征或行为。相反,上述的具体特征和行为被公开为实现权利要求书的示例,并且其他等同的特征和行为也意在权利要求书的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献