用户私钥的备份与恢复方法、装置及电子设备与流程

文档序号:23230014发布日期:2020-12-08 15:17阅读:142来源:国知局
用户私钥的备份与恢复方法、装置及电子设备与流程

本申请涉及区块链技术领域,具体而言,本申请涉及一种用户私钥的备份与恢复方法、装置及电子设备。



背景技术:

在区块链的日常环境中,一般由用户保管自己的用户私钥,用于在发起交易请求对交易请求签名。

目前,在用户私钥丢失的情况下,一般由联盟链内的管理节点代用户发起请求,相应的签名使用的是管理节点的私钥,意味管理节点可以用自己的私钥直接影响或操作全局账本。虽然管理节点管理的是自己联盟内节点的账户,但却是全局账本的一部分,不利于同统一全局账本的管理逻辑。



技术实现要素:

本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:

第一方面,本申请实施例提供了一种用户私钥的备份方法,该方法包括:

生成随机盐值;

基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥;

基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息;

将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。

可选地,基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥,包括:

基于预设的哈希算法对用户私钥以及管理节点的管理节点公钥的乘积进行哈希运算,得到共享密钥。

可选地,将秘密信息拆分为预设个数的子秘密,包括:

基于shamir秘密分享算法,将秘密信息拆分为预设个数的子秘密。

第一方面,本申请实施例提供了一种用户私钥的恢复方法,该方法包括:

当接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求;

接收各备份节点返回的子秘密;

当接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。

可选地,基于接收到的子秘密恢复用户私钥,包括:

基于用户公钥以及区块链中的管理节点的管理节点私钥生成共享密钥;

基于接收到的子秘密生成随机盐值;

基于管理节点存储的备份信息、共享密钥以及随机信息,确定用户私钥。

可选地,上述方法还包括:

将用户私钥对应的账户进行功能限制,以使账户仅能够进行结算操作。

可选地,上述方法还包括:

将用户私钥返回给用户节点。

第三方面,本申请实施例提供了一种用户私钥的备份装置,该装置包括:

随机盐值生成模块,用于生成随机盐值;

共享密钥生成模块,用于基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥;

备份信息处理模块,用于基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息;

子秘密处理模块,用于将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。

可选地,共享密钥生成模块具体用于:

基于预设的哈希算法对用户私钥以及管理节点的管理节点公钥的乘积进行哈希运算,得到共享密钥。

可选地,子秘密处理模块在将秘密信息拆分为预设个数的子秘密时,具体用于:

基于shamir秘密分享算法,将秘密信息拆分为预设个数的子秘密。

第四方面,本申请实施例提供了一种用户私钥的恢复装置,该装置包括:

子秘密获取模块,用于在接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求;

子秘密接收模块,用于接收各备份节点返回的子秘密;

用户私钥恢复模块,用于在接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。

可选地,用户私钥恢复模块在基于接收到的子秘密恢复用户私钥时,具体用于:

基于用户公钥以及区块链中的管理节点的管理节点私钥生成共享密钥;

基于接收到的子秘密生成随机盐值;

基于管理节点存储的备份信息、共享密钥以及随机信息,确定用户私钥。

可选地,上述装置还包括:

账户功能限制模块,用于将用户私钥对应的账户进行功能限制,以使账户仅能够进行结算操作。

可选地,上述装置还包括:

用户私钥返回模块,用于将用户私钥返回给用户节点。

第五方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;

存储器,用于存储操作指令;

处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式或第二方面的任一实施方式中所示的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式或第二方面的任一实施方式中所示的方法。

本申请实施例提供的技术方案带来的有益效果是:

本申请实施例提供方案,通过生成随机盐值,并基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥,基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息,将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。基于本方案,能够为在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥提供了基础,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种用户私钥的备份方法的流程示意图;

图2为本申请实施例提供的一种用户私钥的恢复方法的流程示意图;

图3为本申请实施例提供的一种用户私钥备份的具体实施方式的流程示意图;

图4为本申请实施例提供的一种用户私钥恢复的具体实施方式的流程示意图;

图5为本申请实施例提供的一种用户账户注销的具体实施方式的流程示意图;

图6为本申请实施例提供的一种用户账户重置的具体实施方式的流程示意图;

图7为本申请实施例提供的一种用户私钥的备份装置的结构示意图;

图8为本申请实施例提供的一种用户私钥的恢复装置的结构示意图;

图9为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图1示出了本申请实施例提供的一种用户私钥的备份方法的流程示意图,如图1所示,该方法主要可以包括:

步骤s110:生成随机盐值;

步骤s120:基于用户私钥以及去区块链中的管理节点的管理节点公钥生成共享密钥;

步骤s130:基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息;

步骤s140:将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。

本申请实施例中,用户节点可以生成随机数作为随机盐值。

本申请实施例中,可以将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,备份节点可以存储相应的子秘密。

本申请实施例中,用户节点可以基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥,而后基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点。

通过由多个备份节点存储子秘密以及由管理节点存储备份信息,实现了对用户私钥的备份。

本申请实施例中,通过将用户私钥合理的备份在管理节点以及备份节点,为在用户私钥丢失时通过获取子秘密来恢复用户私钥提供了基础,进而可以通过恢复后的用户私钥针对账户操作进行签名,使得能够统一账户的管理逻辑,使得对账户的操作需要基于用户私钥签名进行。

通过生成随机盐值,并基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥,基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息,将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。基于本方案,能够为在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥提供了基础,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

本申请实施例的一种可选方式中,基于用户私钥以及去区块链中的管理节点的管理节点公钥生成共享密钥,包括:

基于预设的哈希算法对用户私钥以及管理节点的管理节点公钥的乘积进行哈希运算,得到共享密钥。

本申请实施例中,可以基于预设的哈希算法来计算用户节点与管理节点的共享密钥:

h=hash(k*gm);

其中h为共享密钥,hash()为预设的哈希函数,k是用户的私钥,gm是管理节点的公钥。

本申请实施例中,用户节点可以生成随机数r作为随机盐值。

可以基于随机盐值,用户私钥以及管理节点公钥,生成备份信息:

secret=k⊕r⊕h;

其中,secret为备份信息,⊕表示二进制异或运算。

用户节点指定参数(n,t),调用shamir秘密分享算法模块,将r分为n个子秘密;其中参数n是生成的子秘密的总数,t是阈值,表示至少收集t个子秘密即可恢复相应秘密。当t小于n时,意味着子秘密的存储有冗余,t越小,冗余越大。特别的,若n为联盟内节点总数,t就相当于联盟内投票的阈值。

基于shamir秘密分享算法,将秘密信息拆分为预设个数的子秘密的具体流程如下:

(1)初始化阶段:选择一个有限域gf(p),其中p是一个大素数,p的长度为256bit,且p>r。初始化n和t,在此有限域内选定n个子秘密对应的横坐标(x1,x2,…,xn);

(2)秘密计算阶段:根据阈值t随机生成t-1个参数,分别为(a1,a2,…,at-1),形成一个多项式:

秘密r=f(0)=a0,展开多项式,得出:

f(x)=a1x+a2x2+…+at-1xt-1+r

通过计算得到n个子秘密(x1,f(x1)),(x2,f(x2)),…,(xn,f(xn))。

本申请实施例中,用户节点可以向相应的管理节点发送私钥备份请求,将私钥备份请求携带有备份信息secret、参数(n,t)发送给,虽然管理节点可以计算出h,但是仍然不知道r,无法恢复私钥k。

图2示出了本申请实施例提供的一种用户私钥的恢复方法的流程示意图,如图2所示,该方法主要可以包括:

步骤s210:当接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求;

步骤s220:接收各备份节点返回的子秘密;

步骤s230:当接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。

本申请实施例中,当用户私钥发生丢失等情况时,可以通过用户节点向管理节点发出私钥恢复请求。管理节点可以对用户进行认证,在认证通过后,向各备份节点分被发送对用户私钥对应子秘密的获取请求。

若用户私钥备份于联盟链的节点中,管理节点可以向联盟链内所有节点发送对子秘密的获取请求;若用户私钥备份于联盟链的节点中,管理节点可以将子秘密的获取请求发送至共识节点,获取请求在经过共识后上链,通过区块在区块链广播。

本申请实施例中,可以指定恢复条件,即指定上述的参数t,当收集到的子秘密数量大于t时,可根据子秘密恢复用户私钥。

本申请实施例提供方法,当接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求,接收各备份节点返回的子秘密,并在接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。基于本方案,能够在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

本申请实施例的一种可选方式中,基于接收到的子秘密恢复用户私钥,包括:

基于用户公钥以及区块链中的管理节点的管理节点私钥生成共享密钥;

基于接收到的子秘密生成随机盐值;

基于管理节点存储的备份信息、共享密钥以及随机信息,确定用户私钥。

本申请实施例中,备份节点将n个子秘密(x1,f(x1)),(x2,f(x2)),…,(xn,f(xn))发送给管理节点。管理节点根据收到的任意t个子秘密(xi1,f(xi1)),(xi2,f(xi2)),…,(xit,f(xit)),恢复相应的随机盐值r1。

秘密恢复过程:管理节点首先获得参数t,然后从n个子秘密中收集t个子秘密,使用拉格朗日插值公式,便可恢复出秘密r。拉格朗日插值公式如下:

公式中的(iv,yi)为某个子秘密。子秘密小于t个将无法恢复多项式,因此得不到关于秘密的任何消息。

本申请实施例中,管理节点可以计算共享密钥h1=hash(km*gu),其中km是管理节点的私钥,gu是用户的公钥;由椭圆曲线性质可知,h=h1,即h1(h)只有拥有相应私钥的用户和管理者才可以计算出来,其他备份节点均无法计算。

管理节点查询相应的备份信息secret,并通过计算恢复用户私钥k1=secret⊕r1⊕h1。

在计算得到恢复后的用户私钥k1后,可以验证恢复的用户私钥是否正确。

具体而言,可以通过k1计算对应的公钥gu1=k1*g,其中g为系统椭圆曲线基点参数,比较gu1与gu是否相等。如果传输数据无误,则gu1与gu相等,相应的r=r1,h=h1,则k1=secret⊕r1⊕h1=secret⊕r⊕h=k。

若验证出私钥恢复成功,则流程结束,否则,恢复失败,返回子秘密数据被破坏,流程结束。如需继续恢复,则需要重新收集r进行私钥恢复。

同时,h1只有管理节点通过其私钥才可以计算,所以也只有管理节点可以恢复用户私钥。

本申请实施例的一种可选方式中,上述方法还包括:

将用户私钥对应的账户进行功能限制,以使账户仅能够进行结算操作。

本申请实施例中,当用户私钥的恢复在联盟链内进行时,由于其不涉及其他的联盟链中的节点,可以不对用户的账户功能进行限制。

当用户私钥的恢复在区块链内进行时,为了确保用户私钥只被用户持有,一旦管理节点旦管理节点恢复私钥,可以对用户私钥对应的账户进行功能限制,以达到保护效果。

具体而言,管理节点可以将子秘密的获取请求发送至共识节点,获取请求在经过共识后上链,通过区块在区块链广播。区块链内所有节点在收到经过共识的区块后,解析获取请求,而后可以标记相应的账户,限制账户部分功能。账户被限制功能后,该账户不能进行正常交易,只允许结算等。结算包括资产下链或者将资产转移至新账户。

本申请实施例的一种可选方式中,上述方法还包括:

将用户私钥返回给用户节点。

本申请实施例中,当用户私钥的恢复在联盟链内进行时,在将恢复的用户私钥返回给用户节点后,可以不对用户的账户功能进行限制,用户可以正常使用用户私钥进行签名。

当用户私钥的恢复在区块链内进行时,在将恢复的用户私钥返回给用户节点后,由于可以对账户进行了功能限制,用户可以发起注销请求或者重置请求,通过用户私钥对注销请求进行签名。

在恢复用户私钥后,对用户进行账户注销的流程如下:

(1)用户通过管理节点的认证(链下验证)之后,管理节点调用私钥恢复流程,恢复相应的私钥,并触发相应的账户被限制;

(2)管理节点把恢复私钥返回给用户;

(3)用户发起注销请求,并用该私钥签名,注销请求上链,通过全网广播,经过共识打包进区块;

(4)各节点收到经过共识的区块后,解析注销请求;证书管理节点注销证书(由管理节点发起该请求);其他节点注销账户;存储有相应子秘密的节点,清理存储的子秘密。

(5)注销成功,管理节点返回注销结果给用户,完成资产下链,同时管理节点清理相应的私钥备份信息。

在恢复用户私钥后,对用户进行账户重置的流程如下:

(1)用户通过管理节点的认证(链下验证)之后,管理节点调用私钥恢复流程,恢复相应的私钥,并触发相应的账户被限制;

(2)管理节点把恢复的私钥返回给用户;

(3)用户通过证书管理节点申请新的证书;

(4)证书管理节点生成新的证书并返回给用户;

(5)用户根据收到的新证书生成对应的新账户信息;

(6)用户发起重置请求,并用原私钥签名,重置请求上链,通过全网广播,经过共识打包进区块;该请求中包含新账户、新证书等信息;

(7)各节点解析重置请求;管理节点解析请求,清理备份的相应信息。所有节点解析请求,生成新的账户并把用户原账户资产全部转移到新账户上,注销原账户;

(8)管理节点发起注销请求到证书节点;

(9)证书管理节点注销成功,发送注销结果到所有节点;其他节点通过证书管理节点查询后,获知证书已注销;

(10)其他节点将注销证书添加到无效证书列表中,存储有相应子秘密的节点,清理存储的子秘密。

(11)用户节点和管理节点更新账户,更新账户过程可以参考上述步骤(7)。

图3示出了本申请实施例提供的一种用户私钥备份的具体实施方式的流程示意图。如图3中所示:

该示例中,有限域gf(p)中的p取了一个小素数61,长度为6比特。

(1)节点2(即用户节点)准备发送私钥备份请求的数据:

a)调用random函数生成随机盐值r=49;

b)计算节点2与管理节点1的共享密钥h:h=hash(k*gm),k是用户的私钥,gm是管理节点1的公钥;

c)计算发送给管理节点1的备份信息secret:secret=k⊕r⊕h,其中⊕表示二进制异或运算,k是用户的私钥,r是节点2生成的随机盐值49,h是节点2与管理节点1的共享密钥。

(2)节点2自己设置参数(n=4,t=2),将r分为4个子秘密,阈值t设置为2,表示至少收集2个子秘密即可恢复相应秘密。

节点2调用秘密分享shamir算法:

a)初始化:在0-60范围的数内选取4个不同的非零元素,例如选取1,2,3,4作为4个子秘密的横坐标;

b)根据要分发的秘密r=49,构成t-1阶多项式,当t为2时,在0-60范围的数中任意选取t-1=1个元素a1=7:

f(x)=a0+a1xmodp,其中秘密r=f(0)=a0=49;

f(x)=r+a1xmodp=49+7xmod61;

c)将任取的4个数1,2,3,4分别带入多项式得到:

f(1)=56,

f(2)=2,

f(3)=9,

f(4)=16,

(3)节点2发送私钥备份请求,将备份信息secret以及参数(n=4,t=2)发送给管理节点1。

(4)秘密分发:随机选取4个节点:节点1,节点3,节点4和节点5,节点2分别发送子秘密(1,56),(2,2),(3,9),(4,16)到选取的节点。

图4示出了本申请实施例提供的一种用户私钥恢复的具体实施方式的流程示意图。如图4中所示:

此案例沿用图3中示例的测试数据;

(1)用户在线下通过管理节点1验证后,由管理节点1发出恢复私钥请求给节点2,此交易进行全网广播,最终经过共识打包进区块;

(2)各节点在收到区块后,解析出恢复私钥请求,相应备份节点节点1、节点3、节点4、节点5将子秘密发送给管理节点1;同时,所有节点(节点1、节点2、节点3、节点4、节点5、节点6、节点7等)将标记相应账户,限制账户部分功能。即该账户不能进行正常交易,只允许结算等。结算包括资产下链或者转移至新账户;

(3)4个子秘密中只要收集到2个子秘密就可以恢复秘密r,管理节点1根据收到的两个子秘密(1,56),(2,2)利用拉格朗日插值公式恢复多项式(即方案2中的(4)),进而得到秘密r1:

(4)管理节点1计算与节点2的共享密钥h1=hash(km*gu),km是管理节点的私钥,gu是用户的公钥;

(5)管理节点1查询相应备份信息secret;

(6)通过计算恢复账户私钥k1=secret⊕r1⊕h1;其中r1=49=r;

(7)验证恢复结果是否正确:通过k1计算对应的公钥gu1=k1*g,其中g为系统椭圆曲线基点参数,比较gu1与gu是否相等。如果数据无误,即r=r1,h=h1,则k1=secret⊕r1⊕h1=secret⊕r⊕h=k。

图5示出了本申请实施例提供的一种用户账户注销的具体实施方式的流程示意图。如图5中所示:

此案例沿用图3中示例的测试数据;

(1)用户节点2通过管理节点1的认证(链下认证),管理节点1调用密钥恢复模块,恢复账户私钥,各节点限制相应账户部分功能;

(2)管理节点1把用户私钥返回给节点2;

(3)节点2发起注销请求包含交易id、账户id、注销请求标识字段、数字签名(用该私钥签名),{aaa001,xxx01、‘zx’、签名},注销请求上链,此交易进行全网广播,进而最终经过共识打包进区块;

(4)各节点接收最新区块:

a.证书管理节点注销xxx01的证书;

b.其他各节点进行账户注销操作、记录注销时间,包括交易id、账户id、账户状态1-销户、交易时间:

{aaa001,xxx01、1、20200701};

c.存储子秘密的节点(节点1、节点3、节点4、节点5)清理相应的子秘密;

d.管理节点清理备份的信息。

图6示出了本申请实施例提供的一种用户账户重置的具体实施方式的流程示意图。如图6中所示:

此案例沿用图3中示例的测试数据;

(1)用户节点2通过管理节点1的认证(链下认证),管理节点1调用密钥恢复模块,恢复相应的私钥,各节点限制相应账户部分功能;

(2)管理节点1把用户私钥返回给用户节点2;

(3)用户节点2向证书管理节点申请新证书;

(4)证书管理节点生成新证书返回给用户节点2;

(5)管理节点1发起重置请求,重置请求包含交易id、账户id、账户重置请求标识字段、新账户、数字签名(用该私钥签名),{aaa001,xxx01、‘zhcz’、新账户1、签名},重置请求上链,此交易进行全网广播,进而最终经过共识打包进区块;

(6)各节点解析重置请求:

a.各节点生成新账户,新账户信息为新账户1,并记录生成时间;

交易id、新账户、账户状态0-开户、交易时间:

aaa001,新账户1、0、20200701

b.完成从账户xxx01(原账户)到新账户进行资产转移;

c.管理节点发送注销原证书请求到证书管理节点1,同时清理相应的备份信息;

d.证书管理节点1注销原证书,并通知其他节点;

e.各节点将注销证书添加到无效证书列表里;

f.存储子秘密的节点(节点1、节点3、节点4、节点5)清理子秘密。

(7)管理节点1重置成功,返回重置结果给节点2。

该流程可以不强制备份节点2的私钥,留待节点2自行选择是否备份。

基于与图1中所示的方法相同的原理,图7示出了本申请实施例提供的一种用户私钥的备份装置的结构示意图,如图7所示,该用户私钥的备份装置30可以包括:

随机盐值生成模块310,用于生成随机盐值;

共享密钥生成模块320,用于基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥;

备份信息处理模块330,用于基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息;

子秘密处理模块340,用于将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。

本申请实施例提供装置,通过生成随机盐值,并基于用户私钥以及区块链中的管理节点的管理节点公钥生成共享密钥,基于随机盐值,用户私钥以及管理节点公钥,生成备份信息,并将备份信息发送给管理节点,以使管理节点存储备份信息,将随机盐值拆分为预设个数的子秘密,并将各子秘密分别发送给备份节点,以使备份节点存储相应的子秘密。基于本方案,能够为在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥提供了基础,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

可选地,共享密钥生成模块具体用于:

基于预设的哈希算法对用户私钥以及管理节点的管理节点公钥的乘积进行哈希运算,得到共享密钥。

可选地,子秘密处理模块在将秘密信息拆分为预设个数的子秘密时,具体用于:

基于shamir秘密分享算法,将秘密信息拆分为预设个数的子秘密。

可以理解的是,本实施例中的用户私钥的备份装置的上述各模块具有实现图1中所示的实施例中的用户私钥的备份方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述用户私钥的备份装置的各模块的功能描述具体可以参见图1中所示实施例中的用户私钥的备份方法的对应描述,在此不再赘述。

基于与图2中所示的方法相同的原理,图8示出了本申请实施例提供的一种用户私钥的恢复装置的结构示意图,如图8所示,该用户私钥的恢复装置40可以包括:

子秘密获取模块410,用于在接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求;

子秘密接收模块420,用于接收各备份节点返回的子秘密;

用户私钥恢复模块430,用于在接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。

本申请实施例提供装置,当接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求,接收各备份节点返回的子秘密,并在接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。基于本方案,能够在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

可选地,用户私钥恢复模块在基于接收到的子秘密恢复用户私钥时,具体用于:

基于用户公钥以及区块链中的管理节点的管理节点私钥生成共享密钥;

基于接收到的子秘密生成随机盐值;

基于管理节点存储的备份信息、共享密钥以及随机信息,确定用户私钥。

可选地,上述装置还包括:

账户功能限制模块,用于将用户私钥对应的账户进行功能限制,以使账户仅能够进行结算操作。

可选地,上述装置还包括:

用户私钥返回模块,用于将用户私钥返回给用户节点。

可以理解的是,本实施例中的用户私钥的恢复装置的上述各模块具有实现图2中所示的实施例中的用户私钥的恢复方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述用户私钥的恢复装置的各模块的功能描述具体可以参见图2中所示实施例中的用户私钥的恢复方法的对应描述,在此不再赘述。

本申请实施例提供了一种电子设备,包括处理器和存储器;

存储器,用于存储操作指令;

处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的方法。

作为一个示例,图9示出了本申请实施例所适用的一种电子设备的结构示意图,如图9所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。

其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。

处理器2001可以是cpu(centralprocessingunit,中央处理器),通用处理器,dsp(digitalsignalprocessor,数据信号处理器),asic(applicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器2003可以是rom(readonlymemory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscreadonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的方法。

本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。

本申请实施例提供了一种电子设备,与现有技术相比,当接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求,接收各备份节点返回的子秘密,并在接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。基于本方案,能够在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的方法。

本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。

本申请实施例提供了一种计算机可读存储介质,与现有技术相比,当接收到用户节点发送的对用户私钥的私钥恢复请求时,向各备份节点分被发送对用户私钥对应子秘密的获取请求,接收各备份节点返回的子秘密,并在接收到的子秘密满足预设的恢复条件时,基于接收到的子秘密恢复用户私钥。基于本方案,能够在用户私钥丢失时通过获取备份的子秘密来恢复用户私钥,以便通过恢复后的用户私钥进行签名,避免通过管理节点的私钥影响或操作全局账本,有利于统一全局账本的管理逻辑。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1