首页 / 专利库 / 资料储存系统 / 工作量证明 / 提供去中心化协议以找回加密资产的计算机实现的系统和方法

提供去中心化协议以找回加密资产的计算机实现的系统和方法

阅读:493发布:2020-05-18

专利汇可以提供提供去中心化协议以找回加密资产的计算机实现的系统和方法专利检索,专利查询,专利分析的服务。并且本 发明 描述了一种用于在丢失了用于 访问 一个或多个数字资产的相应私钥Sk之后,使由用户在公钥Pk下在 区 块 链 上持有的所述一个或多个数字资产得以找回的计算机实现的方法。所述计算机实现的方法包括:为在所述公钥Pk下在所述区块链上持有的、使用所述用户的相应私钥Sk能够访问的所述一个或多个数字资产设置访问权限,使得使用由所述区块链网络上的集体共享的私钥x也可以访问所述一个或多个数字资产,所述集体包括所述区块链网络上的一组用户,所述集体的每个成员都具有私钥份额xi,所述私钥份额xi用于 阈值 签名方案,其中至少私钥份额的阈值必须用于通过所述集体的部分签名的组合来生成有效的签名,从而代表所述用户访问所述一个或多个数字资产。如果所述私钥Sk丢失,则可以通知所述集体代表所述用户来访问所述一个或多个数字资产,所述用户通过提供找回密码向所述集体证明其身份。,下面是提供去中心化协议以找回加密资产的计算机实现的系统和方法专利的具体信息内容。

1.一种用于在丢失了用于访问一个或多个数字资产的相应私钥Sk之后,使由用户在公钥Pk下在链上持有的所述一个或多个数字资产得以找回的计算机实现的方法,所述计算机实现的方法包括:
为在所述公钥Pk下在所述区块链上持有的、使用所述用户的相应私钥Sk能够访问的所述一个或多个数字资产设置访问权限,使得使用由所述区块链网络上的集体共享的私钥x也可以访问所述一个或多个数字资产,所述集体包括所述区块链网络上的一组用户,所述集体的每个成员都具有私钥份额xi,所述私钥份额xi用于阈值签名方案,其中至少私钥份额的阈值必须用于通过所述集体的部分签名的组合来生成有效的签名,从而代表所述用户访问所述一个或多个数字资产;
从而,如果所述私钥Sk丢失,则所述用户可以通知所述集体使用所述阈值签名方案代表所述用户来访问所述一个或多个数字资产,所述用户通过提供找回密码RPw向所述集体证明其身份。
2.根据权利要求1所述的计算机实现的方法,
其中,所述找回密码RPw的熵低于所述私钥Sk的熵。
3.根据权利要求1或2所述的计算机实现的方法,
其中,所述找回密码RPw是不超过六位数的数字密码。
4.根据前述权利要求中的任意一项所述的计算机实现的方法,
其中,设置了找回保证金,当尝试找回所述一个或多个数字资产时需要提供所述找回保证金。
5.根据前述权利要求中的任意一项所述的计算机实现的方法,
其中,设置访问权限由发送到所述区块链网络上的集体的交易T1发起,所述区块链网络表明了建立所述找回密码的意愿,所述找回密码用于访问在所述公钥Pk下的一个或多个数字资产。
6.根据权利要求5所述的计算机实现的方法,
其中,设置访问权限包括将与所述找回密码RPw相关的数据映射到由所述区块链网络上的集体共享的私钥x相关的数据。
7.根据权利要求6所述的计算机实现的方法,
还包括将所述映射存储在所述区块链上,从而将访问所述一个或多个数字资产所需的信息在存储在公共的所述区块链上的映射和私用的由所述集体共享的所述私钥之间分配。
8.根据权利要求6或7所述的计算机实现的方法,
其中,所述映射包括将与所述找回密码RPw相关联的数据与与所述私钥x相关联的数据进行组合,所述私钥x由所述区块链网络上的集体共享。
9.根据权利要求8所述的计算机实现的方法,
其中,将与所述找回密码RPw相关联的数据与与所述私钥x相关联的数据进行组合,所述私钥x由所述集体共享,以构建从所述找回密码到所述由所述集体共享的私钥x的映射,其中所述映射本身不显示任何与由所述集体共享的私钥x或所述找回密码RPw相关的信息。
10.根据权利要求9所述的计算机实现的方法,
其中,使用与所述一个或多个数字资产相关联的公钥Pk对与所述每个私钥份额相关联的数据进行加密,或者将所述公钥Pk与区块头的散列串联
11.根据权利要求9或10所述的计算机实现的方法,
其中,所述与每个私钥份额相关联的数据包括量 每个包含所述量 的交易与所述集体的成员相关联。
12.根据权利要求11所述的计算机实现的方法,
其中,检验来自所述集体的每个成员的量 以确认所述每个量 一致。
13.根据权利要求12所述的计算机实现的方法,
其中,一旦检验了所述量 来确认所述量 是一致的,则
其中,gx是椭圆曲线上的点,Li是拉格朗日系数。
14.根据权利要求9至13中的任意一项所述的计算机实现的方法,
还包括对所述找回密码和与所述私钥份额相关联的数据执行异或XOR运算。
15.根据权利要求9至14中的任意一项所述的计算机实现的方法,
其中使用私钥Sk对所述映射数据进行签名,并将所述映射数据挖掘到所述账户所在的工作量证明区块链上。
16.一种计算机实现的方法,用于找回具有访问权的区块链上的一个或多个数字资产,所述区块链使用根据权利要求1至15中的任意一项所述的计算机实现的方法建立,所述计算机实现的方法包括:
当所述集体接收到表明了找回所述一个或多个数字资产的意愿的交易时,使用所述阈值签名方案来访问所述一个或多个数字资产。
17.根据权利要求16所述的计算机实现的方法,
其中,发送给所述集体的、表明了找回所述一个或多个数字资产的意愿的交易还标识了找回公钥,而且
在访问了所述一个或多个数字资产后,所述一个或多个数字资产被转移给所述找回公钥。
18.根据权利要求16或17所述的计算机实现的方法,
其中,发送给所述集体的、表明了找回所述一个或多个数字资产的意愿的交易还包括找回保证金。
19.根据权利要求16至18中的任意一项所述的计算机实现的方法,
其中,在接收了表明了找回所述一个或多个数字资产的意愿的交易后,所述集体发起质询阶段,在此期间,所述集体监视所述区块链来查看是否存在所述一个或多个资产的持有人的否决交易,从而如果观察到有效的否决交易,则中止对所述一个或多个数字资产的找回,并没收任何找回保证金。
20.根据权利要求19所述的计算机实现的方法,
其中,质询阶段之后,需要进行第二交易以对所述一个或多个数字资产进行找回。
21.根据权利要求20所述的计算机实现的方法,
其中,发送给所述集体的第二交易包括与所述找回密码RPw对应的数据。
22.根据权利要求21所述的计算机实现的方法,
其中,通过验证与所述找回密码相对应的数据来继续找回,如果验证为正确,则找回所述一个或多个数字资产,如果验证为不正确,则中止对所述一个或多个数字资产的找回,并没收任何找回保证金。
23.根据权利要求22所述的计算机实现的方法,
其中,所述集体发起股权证明临时区块链来验证对应于所述找回密码的数据。
24.一种包括计算机可执行指令的计算机可读存储介质,当执行所述计算机可执行指令时,将处理器用于执行权利要求1至23中的任意一项所述的方法。
25.一种电子设备,包括:
接口设备;
处理器,连接到所述接口设备;
存储器,连接到所述处理器,所述存储器存储有计算机可执行指令,当执行所述计算机可执行指令时,将所述处理器用于执行权利要求1至23中的任意一项所述的方法。

说明书全文

提供去中心化协议以找回加密资产的计算机实现的系统和

方法

技术领域

[0001] 本发明主要涉及在私钥丢失时用于找回加密资产的去中心化协议。本发明特别适合用于但不限于比特币链。

背景技术

[0002] 在本文中,使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本,包括基于共识的区块链和交易链技术、许可及未许可的账本、共享账本及其变型。虽然也已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币账本。虽然出于方便和说明的目的,本文中涉及的是比特币,但应当指出的是,本发明不限于用于比特币区块链,其他的区块链实施方式和协议也落入本发明的范围内。
[0003] 区块链是基于共识的电子账本,该账本实现为由区块组成的基于计算机的去中心化的分布式系统,而区块由交易和其它信息组成。在比特币的情形下,每个交易是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,包括至少一个输入和至少一个输出。每个区块包含前一区块的散列,如此,这些区块被链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至所述交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
[0004] 为了将交易写入区块链,必须对其进行“验证”。一些网络节点充当矿工并执行工作以确保每个交易有效,而无效交易则被网络拒绝。例如,安装在节点上的软件客户端对引用未花费的交易输出(UTXO)的交易执行此验证工作。可以通过执行其定和解锁脚本来执行验证。如果锁定和解锁脚本的执行评估为真(TRUE),并且如果满足某些其他条件,则该交易有效,并且可以将该交易写入区块链。因此,为了将交易写入区块链,交易必须被:i)接收交易的节点进行验证——如果交易得到验证,则该节点将其中继到网络中的其他节点;ii)添加到矿工建造的新区块中;iii)挖掘,即添加到过去交易的公共账本中。当将足够数量的区块添加到区块链以使交易实际上不可逆时,将该交易视为已验证。
[0005] 尽管区块链技术最有名的实施方式是使用加密货币,但数字企业家已经开始探索既使用比特币所基于的加密安全系统,又使用可以存储在区块链上的数据来实施新系统。如果可以将区块链用于不限于加密货币领域的自动化任务和流程,那将是非常有利的。这样的解决方案将能够利用区块链的好处(例如,事件、分布式处理等的永久的防篡改记录),同时在其应用程序中更具通用性。
[0006] 研究的领域之一是使用区块链来实施“智能合约”。智能合约是被设计用来自动执行机器可读合约或协议条款的计算机程序。与以自然语言编写的传统合同不同,智能合约是一种机器可执行程序,其包含可处理输入以产生结果的规则,然后可根据这些结果执行操作。
[0007] 与区块链相关的另一个领域是使用“代币”(或“彩色硬币”)来表示并通过区块链来转移现实世界的实体。潜在的敏感或秘密物品可以用没有明显含义或价值的代币表示。因此,代币用作标识符,允许从区块链引用现实世界的事物。
[0008] 下文公开了与区块链技术的阈值签名方案和备份方法有关的背景信息。
[0009] 在PratyushDikshit和Kunwar Singh(“Efficient weighted threshold ECDSA for securing bitcoin wallet”,ISEA Asia Security and Privacy,2017)中公开了用于比特币钱包的阈值签名方案,更确切地说,是这样一种阈值签名方案:其中不同的参与组要求其他参与者的数量不同,从而达到所述阈值签名方案的阈值。
[0010] Goldfeder(“Securing Bitcoin wallets via a new DSA/ECDSA threshold signature scheme”,8March 2015)中也描述了一种阈值签名方案,在此阈值签名方案中,数字资产仅可以被一组参与者中阈值数量的成员使用私钥份额方案来访问。
[0011] 比特币论坛(Bitcointalk)上的用户etoheipi的两篇帖子与一种方案有关,在这种方案中,可以将钱包的硬纸备份副本拆分为多个不同的片段,以便用户可以根据需要使用阈值数量的硬拷贝备份片段来重建钱包。

发明内容

[0012] 私钥丢失后找回加密资产是加密货币中一个尚未解决的著名问题。人们一般认为,缺乏能够实现这一目标的安全有效的去中心化机制,是对该机制广泛采用的最大障碍之一。
[0013] 本说明书涉及一种用于在丢失了用于访问数字资产的相应私钥SK之后,使由用户在公钥PK下在区块链上持有的所述数字资产得以找回的方法。所述方法涉及:为在所述公钥Pk下在所述区块链上持有的、使用所述用户的相应私钥Sk能够访问的所述数字资产设置访问权限,使得使用由区块链网络上用户集体(Congress)共享的私钥也可以访问所述数字资产,所述区块链网络运用阈值签名方案。当所述用户丢失他们的私钥SK,则所述用户可以通知所述集体使用所述阈值签名方案代表所述用户来访问所述数字资产,所述用户通过提供找回密码RPW向所述集体证明其身份。
[0014] 根据本文描述的一个方面,提供了一种用于在丢失了用于访问一个或多个数字资产的相应私钥Sk之后,使在公钥Pk下在区块链上持有的所述一个或多个数字资产得以找回的计算机实现的方法,所述计算机实现的方法包括:
[0015] 为在所述公钥Pk下在所述区块链上持有的、使用所述用户的相应私钥Sk能够访问的所述一个或多个数字资产设置访问权限,使得使用由所述区块链网络上的集体共享的私钥x也可以访问所述一个或多个数字资产,所述集体包括所述区块链网络上的一组用户,所述集体的每个成员都具有私钥份额xi,所述私钥份额xi用于阈值签名方案,其中至少私钥份额的阈值必须用于通过所述集体的部分签名的组合来生成有效的签名,从而代表所述用户访问所述一个或多个数字资产;
[0016] 从而,如果所述私钥Sk丢失,则所述用户可以通知所述集体使用所述阈值签名方案代表所述用户来访问所述一个或多个数字资产,所述用户通过提供找回密码RPw向所述集体证明其身份。
[0017] 上述方法使用集体形式的阈值签名方案来找回资产。此方法与更标准的多签名方法之间的区别在于,设置了一个账户,以便单个用户可以使用其私钥对其进行访问,并且仅在用户丢失了其私钥而无法亲自访问其资产时,在用户的请求下,集体使用其共享私钥系统对其进行访问。这样,用户访问其资产通常不需要多个签名,除非在用户丢失其私钥的情况下。在这种情况下,然后可以通知集体代表用户访问该账户。该系统具有一定程度的安全性,其安全性在于:要求达成共识,才能在被要求访问资产并提供了正确的找回密码的情况下,代表用户访问资产。也就是说,在可以访问资产之前,成员的阈值可以确认用户请求的有效性。这样,该系统将单个签名系统的易用性与多签名系统的安全性结合在一起。集体可以配置为:如果观察到就此决定达成了共识,则集体将仅使用私钥份额来生成和输出部分签名。
[0018] 可以提供更高级别的安全性和激励措施,来提高系统应对攻击的鲁棒性。例如,可以设置一个找回密码,该密码被用作有效性检查协议的一部分,用于用户请求集体访问资产。可以由在区块链上发送给集体的交易T1发起建立对数字资产的访问的过程,该交易T1表示希望建立找回密码以访问在公共密钥Pk下持有的一个或多个数字资产。可以设置找回保证金,当尝试找回一个或多个数字资产时需要提供此找回保证金。就这一点而言,可以在交易T1中提供找回保证金数据,例如,在交易T1的元数据中。也就是说,找回保证金的声明可以作为元数据包含在T1中。如果找回成功(付给集体的成员的找回费用较少),则可以取回找回保证金,但是如果找回失败,则找回保证金丢失。因此,可以设置找回保证金,以确保将阻止任何攻击者执行多次尝试访问该账户的操作,因为他们每次尝试失败都会损失其找回保证金。
[0019] 建立对数字资产的访问的过程还可以包括:将与所述找回密码RPw相关的数据映射到由所述区块链网络上的集体共享的私钥x相关的数据。所述映射可包括:将与所述找回密码RPw相关联的数据与与所述私钥x相关联的数据进行组合,所述私钥x由所述区块链网络上的集体共享。例如,将与所述找回密码RPw相关联的数据可以与与所述私钥x相关联的数据进行组合,所述私钥x由所述集体共享,以构建从所述找回密码到所述由所述集体共享的私钥x的映射,其中所述映射本身不显示任何与由所述集体共享的私钥x或所述找回密码RPw相关的信息。然后,可以将所述映射存储在所述区块链上,从而将访问所述一个或多个数字资产所需的信息在存储在公共的所述区块链上的映射和私用的由所述集体共享的所述私钥之间分配。另外,构造保存在区块链上的映射,使得所述映射本身不显示任何与由所述集体共享的私钥x或所述找回密码RPw相关的信息。
[0020] 使用这样的组合、映射、和/或找回保证金程序可以实现找回系统,在该系统中,用户可以通过提供密码来向集体证明其身份。该密码可以为任意低的熵(因此很容易记忆),同时协议保持安全(尤其是防止对找回密码的暴攻击)。例如,找回密码RPw的熵可以小于私钥Sk的熵,并且6位数、5位数、4位数、3位数或甚至2位数的密码足使系统安全(例如,只要找回保证金已适当固定)。
[0021] 用于实现上述从找回密码到现有秘密量(集体私钥)的映射的方法的示例可包括以下一个或多个步骤:
[0022] 使用与一个或多个数字资产相关联的公共密钥Pk对与每个私钥份额相关联的数据进行加密,或者将公钥Pk与区块头的散列进行串联
[0023] 其中,与每个私钥份额相关联的数据包括量 每个包含量 的交易与集体的成员相关联;
[0024] 检验以确认来自集体的每个成员的量 都一致;
[0025] 一旦检验并确认量 一致,则构成:
[0026]
[0027] 其中,gx是椭圆曲线上的点,Li是拉格朗日系数;以及
[0028] 对所述找回密码和与所述私钥份额相关联的数据执行异或(XOR)运算以生成映射。
[0029] 在生成映射后,可以使用私钥Sk对所述映射数据进行签名,并将所述映射数据挖掘到所述账户所在的工作量证明区块链上。例如,通过引用账户的公钥Pk将映射数据挖掘到工作量证明区块链上。
[0030] 上述过程可用于建立找回密码。然后提供一种计算机实现的方法,用于在区块链上找回一个或多个数字资产,所述区块链可访问前述建立的找回密码。该方法包括:当用户丢失用于访问资产的私钥,当所述集体接收到用户表明的找回所述一个或多个数字资产的意愿的交易时,使用所述阈值签名方案来访问所述一个或多个数字资产。注意,假定仅当用户丢失其私钥时才使用该替代方法,因为与使用私钥Sk相比,使用替代方法来启动资产转移更为昂贵。
[0031] 发送到集体的表征找回一个或多个数字资产的意愿的交易也可以标识找回公钥。因此,在访问账户之后,可以将所述一个或多个数字资产转移到找回公钥。此外,发送至集体的表征找回一个或多个数字资产的意愿的交易还可以包括找回保证金。如前所述,如果找回成功(付给集体的成员的找回费用较少),则可以取回找回保证金,但是如果找回失败,则找回保证金丢失。因此,可以设置找回保证金,以确保将阻止任何攻击者执行多次尝试访问该账户的操作。例如,在接收了表征找回所述一个或多个数字资产的意愿的交易后,所述集体发起质询阶段,在此期间,所述集体监视所述区块链来查看是否存在所述一个或多个资产的持有人的否决交易,从而如果观察到有效的否决交易(由Sk签名的否决交易),则中止对所述一个或多个数字资产的找回,并没收任何找回保证金。如果未观察到有效的否决交易,则可以通过验证与找回密码相对应的数据、与私钥份额相关联的数据、以及映射数据是否都一致来进行找回。如果一致,则集体将使用其阈值密钥份额系统来找回账户中的一个或多个数字资产。如果不一致,将中止帐户中所述一个或多个数字资产的找回,并没收任何找回保证金。
[0032] 在一种配置中,在质询阶段之后,需要进行第二交易以对所述一个或多个数字资产进行找回。发送给所述集体的用于找回资产的第二交易可包括与所述找回密码RPw对应的数据。可通过验证与所述找回密码相对应的数据来继续找回,如果验证为正确,则找回所述一个或多个数字资产,如果验证为不正确,则中止对所述一个或多个数字资产的找回,并没收任何找回保证金。集体可发起股权证明临时区块链(例如下文讨论的所谓的幽灵链(Ghost Chains))来验证对应于所述找回密码的数据。
[0033] 本文所述计算机实现的方法可以通过提供计算机可读存储介质来实施,所述计算机可读存储介质包括计算机可执行指令,当执行所述计算机可执行指令时,将处理器用于执行本文所述的方法。此外,可提供电子设备,所述电子设备包括:接口设备;耦合到所述接口设备的处理器;耦合到所述处理器的存储器,所述存储器存储有计算机可执行指令,当执行所述计算机可执行指令时,将所述处理器用于执行本文所述的方法。
[0034] 本文描述的本发明与下文阐述的背景技术部分中讨论的现有技术是不同的。
[0035] 在PratyushDikshit和Kunwar Singh(“Efficient weighted threshold ECDSA for securing bitcoin wallet”,ISEA Asia Security and Privacy,2017)中公开了用于比特币钱包的阈值签名方案,更确切地说,是这样一种阈值签名方案:其中不同的参与组要求其他参与者的数量不同,从而达到所述阈值签名方案的阈值。没有公开或建议:为在所述公钥Pk下在所述单个用户的区块链上持有的、使用所述单个用户的相应私钥Sk能够访问的所述数字资产设置访问权限;仅当所述私钥Sk丢失,则所述用户可以通知所述集体使用阈值签名方案代表所述用户来访问所述一个或多个数字资产,所述用户通过提供找回密码RPw向所述集体证明其身份。
[0036] Goldfederet al.(“Securing Bitcoin wallets via a new DSA/ECDSA threshold signature scheme”,8March 2015)中也描述了一种阈值签名方案,在此阈值签名方案中,数字资产仅可以被一组参与者中阈值数量的成员使用私钥份额方案来访问。同样,没有公开或建议:为单次访问帐户提供相关联的公钥和私钥;仅当私钥丢失并且用户通知集体代表用户使用阈值签名方案访问数字资产时才使用阈值签名方案,用户通过提供找回密码RPW向集体证明其身份。
[0037] 前述两个文件都针对阈值签名方案,其中阈值签名方案总是用于访问资产,并且需要来自区块链网络上阈值数量的用户的签名。这样的阈值签名方案在本领域中是已知的,并且对于提高安全性和防止单个用户访问和移动数字资产是有用的。这种方案还具有另外的效果,即如果一组用户中的单个成员丢失了其私钥,则仍然可以通过阈值数量的其余用户来访问数字资产。然而,这种配置的缺点在于,总是需要多个用户来访问数字资产,因此该系统对于希望建立一种这样的系统的单个用户而言是不便的:在这种系统中,用户自身可以在不需要任何其他用户的情况下访问数字资产,但是用户仍然需要一种在丢失其私钥的情况下可以访问其数字资产的方法。本发明解决此私钥丢失问题的方法是:通过利用阈值签名方案作为在丢失单个用户的私钥的情况下找回资产的方法,所述单个用户通过找回密码来验证其身份。
[0038] 比特币论坛(Bitcointalk)上的用户etoheipi的两篇帖子与一种方案有关,在这种方案中,可以将钱包的硬纸备份副本拆分为多个不同的片段,以便用户可以根据需要使用阈值数量的硬拷贝备份片段来重建钱包。这些公开均不涉及包括区块链网络上的一组用户的集体的使用,集体的每个成员具有用于阈值签名方案的密钥份额。没有公开或建议:当用户丢失其私钥时,他们可以通知集体成员使用阈值签名方案来代表用户访问数字资产,并由用户通过提供找回密码RPW向集体证明其身份。这两个帖子确实涉及单个用户无法访问其数字资产的问题。提供备份系统的现有技术方法是私有数字密钥的印刷纸副本的形式。但是,如果这种纸质副本被盗,则存在安全险。这些帖子中描述的方法提供了一种解决方案,即用户将备份副本拆分为多个片段,并且这些片段可以由用户重建。这是与本说明书中提供的解决方案不同的解决方案,本说明书中提供的解决方案利用了涉及区块链网络上的多个用户的阈值签名方案。附图说明
[0039] 参考本文描述的实施例,本发明的这些和其他方面将变得显而易见。现在将参考附图仅通过举例的方式描述本发明的实施例,其中:
[0040] 图1示出了密码设置过程的方案;和
[0041] 图2示出了密码找回协议的方案。

具体实施方式

[0042] 概述
[0043] 据估计,由于硬盘驱动器崩溃或私钥丢失,实际丢失了超过2700个比特币[https://www.cryptocoinsnews.com/thousands-bitcoins-lost-time/]。一旦证书丢失,可能有价值数十亿美元的比特币将被锁定在无法使用的钱包中。
[0044] 使用容易记忆的密码进行钱包找回似乎是可行且更有效的途径。所谓的“大脑钱包”利用简单的密码(可以在用户的“大脑”中存储这些密码)来在私钥丢失的情况下找回资金。但是,黑客和研究人员证明,在密码简单的情况下,暴力攻击以找回密码和窃取资金相对更容易进行。
[0045] 密钥延伸(Key Stretching)技术多次使用难以优化的散列函数,从简单密码中推导出私钥,这有助于使攻击的计算更昂贵,但不能保证将来的安全性。实际上,可以生产具有增强的计算能力的新硬件,因此,就成本和可行性而言,使计算挑战更加可承受。此外,账户中资金的任何价值升值(以法定货币为单位,假设计算机时间按法定货币计价)都会使延伸密钥的安全性降低,因为如果将其破解,收益将是需要将其破解的投资的较多倍。
[0046] 本说明书提出了第一个用于在丢失私钥的情况下找回资金的完全不信任解决方案,该解决方案保持了针对暴力破解攻击的恒定安全级别。我们感兴趣的是特定情况下的用户,这些用户失去了通过“常规方式”授权转移资金的能力(更确切地说,已经失去了对私钥的控制),并希望找回这些资金。我们的解决方案利用了集体和幽灵链协议,以通过达成共识的成本有效地替换密钥延伸的计算成本,只有在尝试找回资金失败时才需要支付该成本。
[0047] 加密货币操作的安全性和功能在很大程度上取决于安全私钥的存储和保存。主要问题是用户私钥被盗或丢失。无法找回丢失的密码、私钥或资金被认为是对加密货币的广泛采用的重大障碍(Extance,A.(2015).Bitcoin and beyond.Nature,526(7571),21.http://www.nature.com/polopoly_fs/1.18447!/menu/main/topColumns/topL eftColumn/pdf/526021a.pdf)。实际上,表面上看起来,丢失比特币私钥与丢失网上行密码类似。但是,二者至少有两个重要的区别:(i)在银行系统中,交易是可追溯且可逆的,并且可以通过逆转欺诈性交易来追回被盗资金(Eskandari,S.,Barrera,D.,Stobert,E.,&Clark,J.(2015,February).A first look at the usability of bitcoin key management.In  Workshop  on  Usable  Security(USEC).https://
users.encs.concordia.ca/~clark/papers/2015_usec.pdf)。对于加密货币例如比特币来说,这显然是不可能的,因为交易是不可逆的,并且没有中心机构可以在发生欺诈时进行仲裁;(ii)只要用户向银行证明其身份,银行密码是可以找回的。本说明书为加密系统(尤其是基于共识的分布式账本)提供了与(ii)等效的解决方案。
[0048] 为了解决这些问题,已经提出了不同的解决方案:用户可以从各种类型的钱包中进行选择,例如提供密钥管理服务的网络钱包(Web Wallets),或者使用冷存储(Cold Storage)来存储其私钥,即将其密钥放置在互联网无法访问的位置。但是,这些服务需要对提供者建立信任(Antonopoulos,A.M.(2014).Mastering Bitcoin:unlocking digital cryptocurrencies.O'Reilly Media,Inc.;http://www.coindesk.com/information/how-to-store-your-bitcoins/)。万一密码丢失,提供密码找回服务(例如钱包找回服务(Wallet Recovery Service[http://www.coindesk.com/meet-man-will-hack-long-lost-bitcoin-wallet-money/]))的在线服务通常成功率很低,约为30%,具体取决于用户提供的信息;在成功找回的情况下,为该服务支付的费用达到钱包价值的20%。请注意,此类服务仅在账户持有者保留其私钥的加密功能,但丢失了对其解密所需的密码的情况下才有效。
[0049] 大脑钱包(Brainwallets)的思想是非常引人兴趣的(https://blog.ethereum.org/2014/10/23/information-theoretic-account-secure-brainwallets/),通过大脑钱包,通过散列足够长的由用户直接创建的密码(Password或Passphrase)来生成私钥(Franco,P.(2014).Understanding Bitcoin:Cryptography,engineering and economics.John Wiley&Sons)。该解决方案试图解决密钥存储问题,因为不需要将密码存储在钱包本身中,而是可以将其保存在“用户的大脑”中。如果给定密码和其它条件(用作散列单向函数的其他输入的任意数据),在线平台(例如https://brainwallet.io/和https://paper.dash.org/等)可以轻松生成确定性的加密货币地址
[0050] 大脑钱包的密码必须安全且易于记忆:安全性是基于攻击者破解密码所需的时间和必须记住的信息量。显然,这两个方面是负相关的,并且取决于所选密码的熵(Franco,P.(2014).Understanding Bitcoin:Cryptography,engineering and economics.John Wiley&Sons)。
[0051] 这些类型的钱包的主要问题之一肯定是试图破解密码的强烈动机,因为这将使攻击者能够完全访问锁定在钱包本身中的资金。攻击者使用暴力破解算法,尝试使用许多密码,并检查生成的地址是否存在并包含资金:使用当前技术,芯片每秒可以执行约236次尝试。在(Courtois,N.,Song,G.,&Castellucci,R.(2016).Speed Optimizations in Bitcoin Key Recovery Attacks.IACR Cryptology ePrint Archive,2016,103.https://eprint.iacr.org/2016/103.pdf;https://github.com/ryancdotorg/brainflayer)示出了即使使用复杂的密码,大脑钱包也是不安全的。现已提供了新的且更快的算法,在这种新的且更快的算法中,对区块链进行扫描来查找比较弱的密钥:所述攻击能够每秒在每个线程上找到16,250个密码,并破解超过18,000个大脑钱包地址。此外,如上所述,随着硬件的改进,大脑钱包的破解变得更加容易且更加有利可图(如果加密资产升值的话),在迄今为止所有领先的加密货币的情况下,这都是极为重要的。
[0052] 此外,近来,已经有数百万现实世界中泄露的密码可以被黑客利用,黑客可以利用这些密码来重构用户的习惯并设计更快的算法(https://arstechnica.com/security/2012/08/passwords-under-assault/)。
[0053] 当源自相同密码的大脑钱包地址作为交易脚本的一部分存储在区块链上时,可能会进一步出现漏洞。如果多个地址从同一个种子派生,猜测密码变得更加容易。
[0054] 为了减少对系统进行反向操作的机会,同时仍将密码的熵保持在较低平,一种选择是使用硬密钥派生功能。此过程也称为密钥延伸,是基于连续多次(通常约为1000次)重复应用难以优化的散列函数(例如SHA256,SHA1等),(https://en.wikipedia.org/wiki/Key_stretching)。这样,检查单个密码花费的时间更长,并且成本更高,从而增加了攻击者的工作量。但是,这些解决方案似乎是不足的,因为不能应对未来可能出现的挑战。
[0055] 假设一台个人计算机每秒可以执行约6500个SHA-1散列,则可以很容易地证明密钥延伸方案很快变得不安全。密钥延伸程序可使用6500次散列,并将用户延迟大约一秒钟。从攻击者的度来看,由于任何常规密码测试通常都需要进行一次散列操作,因此使用密钥延伸将其工作量增加了216倍(相当于在常规密码中增加了16位熵)。根据摩尔定律,计算机在速度方面的性能应每1.5年翻一番,这意味着可以很容易确定,密钥强度可能每1.5年会增加一些。为了保持稳定的安全水平,密钥延伸次数应每1.5年翻一番,但这将需要:(i)用户执行密钥延伸的计算成本更高;(ii)密钥延伸算法的设计者应考虑这一方面,并确定系统的寿命。区块链矿工还可以用于在“挖矿时”执行密钥延伸过程的计算任务,从而几乎不会产生额外费用;此外,可以在不向矿工透露用户密码的情况下完成此操作(https://en.wikipedia.org/wiki/Key_stretching)。但是,这样的设置还允许矿工试图“免费”暴力破解用户的密码,这违反了密钥延伸的整体目标。
[0056] 此外,加密货币升值的增加可进一步刺激大脑钱包密码被强行使用,并且对该钱包的安全构成严重威胁,而且更难以预测。
[0057] 本说明书中提出的解决方案不依赖于密钥延伸技术,而是使用共识机制来检索用户的密码:根据用户的请求和找回保证金的支付情况(如果成功找回,则可以从中扣除费用),集体的成员可以验证请求并解锁资金,然后将其移到新地址,请求者可以知悉其私钥。
[0058] 在讨论当私钥丢失时用于找回加密资产的去中心化协议的细节之前,先描述集体和幽灵链协议,因为这些协议用于本文所述的加密资产找回协议的配置中。
[0059] 集体
[0060] 在区块链网络中可以形成集体。集体是一个开放式成员组,在向与集体相关联的池提交足够的股份后,区块链网络中的任何节点均可加入。例如,节点可以通过将数字资产例如数字货币(例如比特币)、代币、其他股份或价值转移到与集体相关联的资源(例如账户)来加入集体。可以部分地通过分布式生成私钥份额来保护集体。每个私钥份额都可以由其持有者使用以生成用于交易的部分签名。阈值签名方案可用于至少使用部分签名的阈值来为此交易生成有效签名。如有恶意行为,成员保证金可能会被没收。
[0061] 通过使用密钥份额的分布式生成和其他安全功能,可以保护密钥份额,以防止组成员或非组成员进行恶意活动。这种安全性加上阈值签名方案的使用,允许形成自治的、去中心化的组,并且该组可用于多种目的中的任何一种。更具体地,阈值签名方案允许该组控制由与该组相关联的公钥所阻碍的数字资产。在本说明书中,这种集体组用在去中心化协议中,用来当私钥丢失时找回加密资产。
[0062] 可以按以下方式形成集体:(i)区块链网络中的节点广播将一个或多个数字资产转移到与集体公钥相关联的公共组地址的交易,所述公共组地址与一个或多个其它数字资产相关联,所述一个或多个其它数字资产与集体的其他成员相关联;(ii)生成要用于阈值签名方案的私钥份额,在该阈值签名方案中,必须至少有一个私钥份额的阈值用于代表集体通过部分签名的组合来生成有效签名,其中,所述私钥份额的其他持有者是集体的其他成员,这些成员是通过将各自的数字资产转移到公共组地址来加入集体的;(ii i)使用私钥份额来配合地为来自公钥地址的交易生成有效签名。
[0063] 在一些实施方式中,阈值签名方案是椭圆曲线数字签名算法。
[0064] 在一些实施方式中,该计算机实现的方法可以进一步包括:(i)检测恶意方的恶意活动,其中该恶意方是集体的其他成员之一;(ii)没收至少一部分先前由恶意方转移到公共组地址的数字资产。
[0065] 在一些实施方式中,该计算机实现的方法可以进一步包括:(i)检测重新分配请求;(ii)与其他集体成员合作,将公共组地址中的所有数字资产转移到与新公钥相关联的新公共地址;(iii)生成新的私钥份额。
[0066] 集体的显著特点:
[0067] ·共享公钥,称作集体公钥(Congress Public Key,简称CPK)。
[0068] ·要求将资金存放在阈值签名的控制下意味着集体可以由诚实成员的阈值组成自治组,其中合作行为是通过威胁没收不合作的(或有恶意的)成员的任何子组的所有或部分保证金来实施的。
[0069] ·分布式生成私钥是集体的关键特征,因为其目标是创建自治的去中心化的实体。
[0070] ·离开集体伴随着资金的撤出,这必须由现任成员的阈值授权。加入集体可能需要也可能不需要当前成员的同意,具体取决于实施情况。
[0071] 幽灵链
[0072] 幽灵链通常是用于仲裁(例如,解决争端)的区块链。例如,对于当前应用程序,节点通过发出找回请求来声明他们是账户的所有者,并以RPw的形式提供证据。该证据必须由集体评估,这可以理解为仲裁。找回请求和/或RPw的有效性可能存在争议,也可能没有争议。
[0073] 幽灵链只是暂时存在的,是为响应父级区块链(父链)上的争议而部署的;幽灵链(幽灵)要求相关各方提供各种证据,根据固定的标准进行仲裁,并相应地分配父链上的资金。一旦争执的结果提交到主链(连同可选的中间计算状态的默克尔根的散列一起),那么幽灵就会关闭。幽灵链可以通过股权证明(POS)受到保护。这是比工作量证明(POW)更适合幽灵链的安全模型,因为POS允许使用比POW更可预测的块时间的更高频率的区块链,使得收集证据的过程更加高效。
[0074] 幽灵链可通过以下方式实现:(i)节点通过将数字资产存放到公共组地址中而加入组,以成为组成员(即集体的成员),该组与阈值签名方案相关联,所述节点为该阈值签名方案控制私钥份额,数字资产的存放在工作证明区块链网络上进行;(i i)该节点与该组中的其他节点进行合作。例如,合作可涉及检测需要仲裁的请求,部署幽灵链以解决仲裁请求(该幽灵链是股份证明区块链,其中幽灵链的矿工是该组的成员),并且在所述仲裁解决后终止该幽灵链。
[0075] 与传统区块链相比,幽灵链因此可以是临时区块链,其可以用于在执行或满足一个或多个标准、目标、或指定目的时终止,消失和/或过期。也就是说,幽灵链可以是单一用途的区块链,一旦实现其目的,该区块链将不复存在。
[0076] 本说明书描述了如何将集体和幽灵链结合起来,以便在丢失私钥时提供去中心化协议,用于找回加密资产。
[0077] 使用找回密码锁定资产
[0078] 设想Alice想要将一些加密资产存放在具有签名(私有)密钥Sk的账户中。她担心自己可能会丢失签名密钥Sk,因此,如果发生灾难袭击,她想使用另一种方法来找回资金。在本节中,我们将说明Alice如何通过提供找回密钥(Recovery Password,简称RPw)来配置她的账户,使得可以找回她的资金(可能需要少许费用),所述找回密钥可以简单易记。所述费用将由市场决定,更具体地,由向幽灵链的矿工支付的市场价格决定(读者可以通过以太坊(Ethereum)中的“天然气”的概念了解共识协议中计算步骤的市场定价的更多详细信息:
https://ethereum.gitbooks.io/frontier-guide/content/costs.html)。可以看到,只要在尝试找回资金时要求了足够多的保证金,即使选择了非常简单的找回密码RPw,也可以认为Alice的账户是安全的。如果密码RPw的找回成功,大部分保证金都可以被找回(取决于费用)。
[0079] 在本说明书中,集体和幽灵链协议的实现包括以下内容:
[0080] ·集体成员在工作量证明(POW)区块链M(爱丽丝的账户所在的区块链)上持有安全保证金。作为对这些保证金的回报,按比例分配这些保证金,集体成员将获得私钥中一个或多个份额。
[0081] ·集体的成员挖掘股份证明(POS)备用链A。例如,备用链A可以是“幽灵链”。
[0082] ·存在静态集体公钥(CPK),并且该集体的成员i在可信任执行环境(TEE)内的相应私钥x中持有份额xi,因此所述成员无法直接访问xi。配置TEE,以使它们不会输出任何可能揭示有关xi的信息的量。
[0083] ·当TEE在A上达成共识认为TEE只会输出从xi得出的数量时,则TEE只输出从xi得出的数量(例如部分签名)。
[0084] 我们用Pk表示公钥,用Sk表示相应的签名密钥。令G为质数阶较大的循环组,其中i离散对数问题较难。令H1:{0,1}*→G和H2:{0,1}*→{0,1}, 是抗冲突散列函数,假定它们在计算上求逆不可行。令 表示两个二进制字符串(按位,mod 2加法)之间的XOR运算,而令○表示串联。
[0085] 协议
[0086] 在本节中,我们将介绍找回密码的建立和资产找回阶段的主要步骤。我们还将介绍密码重置过程。关于安全的讨论将在后面的部分涉及。
[0087] 建立
[0088] 1.Alice使用特殊交易T1发送资金,该交易向集体表明她希望为该账户设置RPw。T1的输出可以(i)由Alice花费并锁定在Pk下,或(ii)由集体花费并锁定在CPK下。该交易记录了尝试找回资产时需要提供的找回保证金(rd)的金额。可以说,T1被挖掘到M块Bn中。除非另有说明,否则我们会将任何相关信息或对其他交易的引用存储为元数据。
[0089] 2.集体的每个成员都秘密地向Alice发送(用Pk加密) 量,其中且m>n依惯例确定。当然,例如,Pk也可以与Bm的区块头的散
列串联在一起。包含 的每个交易都将与属于该成员的单个TEE的共享ID相关联,并由相应的私钥签名。交易中还包含某些盲量(Blinded Quantities),因此可以验证xi的一致性。
[0090] 3.一旦Alice确信其从成员那里收到的数量是一致的,便构成:
[0091]
[0092] 其中,Li是适当的拉格朗日系数(Lagrange Coefficient)。可以使用可验证秘密共享协议(https://en.wikipedia.org/wiki/Verifiable_secret_sharing)或该协议的可公开验证版本(Stadler,M.(1996,May).Publicly verifiable secret sharing.In International Conference on the Theory and Applications of Cryptographic Techniques(pp.190-199).Springer Berlin Heidelberg.ftp://ftp.inf.ethz.ch/pub/crypto/publications/Stadle96.pdf)来执行所述一致性检验。该协议可用于:i)识别不一致的份额;ii)检查“秘密发送”给一方的份额与广播的盲份额是否不同。
[0093] 4.Alice现在采用她的RPw的二进制表示(ASCII)并如此对其进行填充,以使填充字符串的长度等于gx的长度,例如,通过将一个1后面跟一个零进行串联:然后,爱丽丝用gx对“填充密码”进行异或运算(XOR)。该 由Sk签
名,并通过标记的引用了Pk的交易T2挖掘为M。现在已设置Alice的RPw。gx是EC上的一个点,因此具有两个坐标。将gx转换为二进制字符串有多种方法,所述二进制字符串是两个坐标的函数。可能最简单的方法是将两个坐标的串联用符号进行散列: 其中
x
表示g的x、y分量。在整个论文中,我们较多使用了一种表示法,即认为EC上的任何点都已转换为二进制字符串,不论上下文在何时明显地暗示了这一点。
[0094] 资产找回:
[0095] 1.如果Alice失去了Sk,则她可以按照以下方式使用RPw来找回她的资金:Alice广播一个预找回交易(PRT),该交易引用了T1,并将所需的找回保证金发送给CPK。PRT包含:其中RPw表示找回公钥(Recovery Public Key),它应是仅Alice知道的
(在此阶段)新生成的公钥;(ii)向幽灵链A的矿工提供的找回费用(Recovery Fee(rf))的声明,以执行找回协议(rf从rd中扣除)。如果找回成功,rd-rf重新调整为Alice,则资金将重新锁定在RPk下。交易由保证金签名密钥(Deposit Signing Key(DSk))签名,对应于从中支付保证金的账户的公共密钥DPk。
[0096] 2.响应遵守PRT的要求,存入正确的保证金,并提供他们认为足够的找回费用,集体发起了一个质询阶段(ChallengePeriod),持续固定数量的区块。在质询阶段,集体监视M来查看:(i)进一步的PRT,试图找回相同的账户;(ii)挖掘由Sk签署的否决交易(VetoTransaction)。如果观察到否决交易,则中止找回协议,并没收与PRT相关的找回保证金。
[0097] 3.如果在质询期间未观察到有效签署的否决交易,则集体将实例化幽灵链。先前已发送PRT的任何一方现在都可以将引用PRT的找回交易RT发送到幽灵链。RT应包含:(i)RPw;(ii)RPk,并由DSk签名。验证者现在必须检查 是否散列到引用的PRT中的值:如果没有,则没收与该PRT相关的找回保证金,扣除找回费,并毁掉任何剩余的保证金。
[0098] 4.如果存在 的散列与相应PRT中的值匹配的一个RT,则集体成员广播现在,任何人都可以重建gx(m),然后尝试验证: 如果验证:(i)成功,则集体(可选地,使用找回机制)将资金重新锁定在RPk下,找回费用从保证金中扣除,剩余的保证金退还给Alice;或(i i)失败,则必须重置RPw。由于在检查过程中会显示真实的RPw,因此需要进行重置。但是请注意,我们不会期望对RPw的猜测在此阶段获得成功,因为如果账户持有者意识到欺诈性的找回资金的企图,则账户持有者将在质询阶段发出否决交易。因此,假设及时做出响应,则无需进行重置。
[0099] 重置RPw:Alice必须选择新的RPw。集体和Alice重复设置阶段的第2-4步,不同之处在于使用 其中Bm′通常是商定的M区块(Bm′也可能是A区块或其散列;关键是,它必须是在提出设置找回密码的请求之前无法预测的随机量),在确定找回尝试已失败(即 未能验证)之后,已对M区块挖掘
了一段时间。RPw现在已重置。该过程的费用从与加速了重置的PRT相关的保证金中扣除。任何剩余的保证金都会被毁掉。请注意,这意味着找回保证金的下限应该是执行重置的成本。
[0100] 评论:在维护找回工具的同时,资产可从账户中支出并存入账户。当发生这种情况时,还可以更改找回保证金rd(这对于保持恒定的安全级别是必要的)。支付给“PK或CPK”的任何UTXO都可以找回。这些交易还引用T2,以表示集体已经为Pk设置了密码。如果这些UTXO的rd不同,则选择最大的rd。因此,例如,Alice可以通过她的账户进行付款,花费所有锁定在Pk下的UTXO,将“找零”返还给支付给“Pk或CPK”的UTXO,并且通常会指定不同的rd(这很可能是较低的rd)。如果Alice希望将资产添加到她的账户中,那么她将通过具有输出支付的交易将这些资产发送给“Pk或CPK”。此交易可以指定增加的rd,,然后将其应用于她账户中的所有资产。
[0101] 设计选择和协议的安全性
[0102] 一个主要目标是利用集体的性质,同时避免给成员带来大的额外负担。集体私钥是存储在成员“集体记忆”中的秘密,因此,随着成员的加入和离开,秘密中的份额将被重新分配和删除。其思想是导出从RPw到秘密x(更确切地说,是使用单向函数从x导出的量)的映射(XOR),并将此映射存储在区块链中。这样,重构RPw所需的信息在XOR(公共)和x(私有)之间有效分配,这样就无法从公共部分获得有关RPw的信息。这种方法意味着成员无需在其TEE中存储任何其他秘密信息——唯一的要求是保留x的集体记忆,而这是本来也要进行的。
[0103] 关于协议各个步骤的安全性的评论:
[0104] 建立:
[0105] 1.找回保证金可表示为账户中总资金的一部分,并且应足够大,以使攻击者对猜测RPw的尝试是不划算的(也就是说,猜测的预期收益应为负)。请注意(与导言中介绍的密钥延伸技术形成鲜明对比),这使我们的方案完全经得起考验,因为给定的RPw和找回保证金(占总资金的比例)的熵不会随着时间而改变。方案要经得起考验,还要求找回费用应与PRT一起提供,而不是在早期阶段提供。
[0106] 2.将成员的身份与 相关联意味着他们可以因提供此服务而获得报酬。
[0107] 3.此外,这也意味着如果显示出它们提供不一致的 则可以对他们进行经济处罚。
[0108] 4.假设gx是随机的,则 是随机的。特别地,在不了解gx的情况下,无法从XOR导出有关RPw的信息。注意,RPw的长度被填充过程所遮蔽。
[0109] 图1示出了密码设置过程的方案。密码设置过程由请求者通过发送T1发起,以将资金锁定在集体公钥(CPK)和请求者的Pk下。然后,集体成员发送从其私钥推导出的加密份额,该份额允许请求者计算gx,然后将其与他/她选择的密码RPw进行XOR运算,然后在T2中广播结果。
[0110] 资金找回
[0111] 1. 同时保证RPw和RPk。而且,假设RPk(在此阶段)仅Alice知道,并且具有典型的熵(有效地随机且足够长),即使对于非常低的熵RPw,RPw和RPk也不能从散列中退出。所提供的找回费用已在此阶段说明,并且可以根据当前的计算市场比率而有所不同。
[0112] 2.我们必须考虑到对手可能“抢占先机”进行交易,剥离某些信息并以此构建可能被首先挖掘的恶意交易。例如,大型挖掘者实现这一目标的概率很大。因此,在观察到第一个PRT之后,我们必须留出时间来挖掘其他PRT,因为在此阶段尚无办法确定真正的PRT。需知(假设其中之一是真实的,即Sk确实丢失了)Alice无法构建有效的否决交易。
[0113] 3.仅当RT对应于已确认的PRT(PRT保证RPw和RPk,并且必须包含找回保证金)时,才考虑RT,如果验证失败,则所有找回保证金都会丢失。攻击者无法在挖掘PRT时获取有关RPw的信息。因此,只要找回保证金与要找回的资产数量和RPw的熵相比足够大,该协议就是安全的。
[0114] 4.通过验证或尝试验证RPw的最后一步,将会显示真实的RPw。
[0115] RPw重置:在检查过程中显示了真实的RPw。但是请注意,假设Alice对否决交易做出了及时回应,我们不会期望对猜测RPw的尝试在此阶段获得成功。加密货币领域普遍假设账户持有者可以监控M并及时对尝试的盗窃做出响应。例如,在闪电网络(Lightning Network)中发布违规补偿交易(J.Poon,T.Dryja.The Bitcoin Lightning Network:Scalable Off-Chain Instant Payments,(Draft version 0.5.9.2).可在线获取:
https://lightning.network/lightning-network-paper.pdf)。但是,与闪电网络的情况相反(在闪电网络中,账户中的所有资金都可能丢失),我们的协议不能及时响应的后果很轻微:重置RPw即可。
[0116] 图2示出了密码找回协议的方案,包含两个阶段:找回前阶段和找回阶段。在找回前阶段,集体收到密码找回请求。在所谓的质询阶段内,集体还监视钱包所有者是否已提交否决交易以停止该程序。如果未提交否决,则启动幽灵链,请求者提交找回交易,并检查其一致性(如资产找回协议说明中所述)。如果成功,资金将转移到由请求者控制的新地址。欺诈性企图反而会导致保证金被没收。
[0117] 密码安全
[0118] 密码的强度通常用攻击者猜测出密码所需的预期数量的计算步骤来衡量。如前所述,对于随机生成的密码,通常使用暴力攻击,尝试一定长度的所有可能的字符组合。这意味着,给定长度为L的n个字符组成的密码,攻击者将在nL个步骤中找到正确的密码。
[0119] 在我们的解决方案中,我们关联每次失败的尝试的成本(即所谓的找回保证金),所述找回保证金可以表示为地址中存储的资金的百分比。这样,对于试图进行攻击将有很大的障碍。
[0120] 例如,可以使用阿拉伯数字作为符号集来考虑长度为L=3的密码,即n=10,且保证金rd=0.01*F,,其中F是从密码中得出的钱包中可用的资金量。要破解密码,攻击者将进行103次尝试,这将使攻击者平均损失103*0.01*F=10F,是账户中存储资金的十倍。因此,增加找回保证金对应于阻止恶意攻击者的随机尝试并提高钱包安全性。注意,即使产生密码排列的计算成本和相关联加密资产的值发生变化,该方案的安全性仍保持不变。
[0121] 在我们的协议中,对于攻击者而言,估计破解密码所需的尝试次数甚至更为复杂,并且上文显示的计算对于计算与攻击相关的成本的下限可能很有用。确实,由于在设置阶段(第4点)中所述的“填充过程”,即RPw的二进制表示通过将1和0串联起来等于gx的长度来填充,因此攻击者不会知道所选密码的确切长度。因此,攻击者将不得不对每个L=1,…,length(gx)重复平均nL次,直到找到有效长度和密码本身为止。
[0122] 总结与结论
[0123] 我们已经提出了第一个完全不信任的解决方案,用于在丢失私钥的情况下找回资金,该解决方案可以保持恒定的安全级别,以防止暴力破解攻击。
[0124] 由于我们会在找回资金时在我们的方案中显示RPw,因此仅在发生“罕见事件”(例如私钥丢失)的情况下才适用。例如将其用作授权交易的常规方法是不合适的,因为这会产生较高的费用,并且每次都需要重置密码(这意味着:(i)密码更有可能被忘记;(ii)如果有可能识别出所选密码,那么密码可以为任何模式)。
[0125] 另一个缺点是,全面安全性要求账户所有者监视区块链,以观察是否有尝试欺诈的找回资金的行为,并在质询阶段做出否决交易的回应。但是,失败的结果很可能是密码重置(例如,与资金损失相反)。
[0126] 应当说明,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(comprises)”意指“包括(includes)或由......组成(consists of)”,“包括(comprises)”意指“包括(including)或由......组成(consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈