一种私钥找回的方法及服务器与流程

文档序号:17428939发布日期:2019-04-17 03:14阅读:475来源:国知局
一种私钥找回的方法及服务器与流程

本申请涉及区块链技术,尤其涉及一种私钥找回的方法及服务器。



背景技术:

区块链(blockchain)为分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链的应用过程中,可以使用户将产生的交易信息记载到该区块链上,以借助这样一个去中心化的系统完成交易信息的存储。

以以太坊为例,以太坊(ethereum)为一个开源的有智能合约功能的公共区块链平台。在用户初次访问以太坊时,用户可以借助第三方平台完成以太坊的账户注册。在完成注册后,以太坊会为用户分配以太坊账户、初始密码,以及私钥,供用户后续访问、应用以太坊时使用。其中,在用户将存储交易信息存储至区块链上时,可以使用该私钥对交易信息进行签名。在实际使用过程中,一旦用户将私钥丢失,则用户无法再通过注册时分配的以太坊的账户实现交易信息的存储,影响用户使用。

基于上述技术问题,目前亟需一种能够在用户丢失私钥后实现私钥找回的方法。



技术实现要素:

本申请提供一种私钥找回的方法及服务器,以解决用户丢失私钥后无法找回私钥的技术问题。

为解决上述问题,本申请提供的技术方案如下:

第一方面,本申请提供一种私钥找回的方法。区块链上存储有产品质量信息,目标平台用于查询区块链上存储的产品质量信息。该方法包括:目标平台对应的服务器接收用于找回私钥的请求,私钥为注册在区块链上的第一账户对应的私钥;确定发送请求的第二账户,第二账户为登录目标平台的账户;根据第二账户,从预存的对应关系中,查找与第二账户对应的私钥,作为找回的第一账户对应的私钥。

第二方面,本申请提供一种服务器。区块链上存储有产品质量信息,服务器提供目标平台,目标平台用于查询区块链上存储的产品质量信息。该服务器包括:通信模块,用于接收用于找回私钥的请求,私钥为注册在区块链上的第一账户对应的私钥。处理模块,用于确定发送请求的第二账户,第二账户为登录目标平台的账户。处理模块,还用于根据第二账户,从预存的对应关系中,查找与第二账户对应的私钥,作为找回的第一账户对应的私钥。

第三方面,本申请实施例提供一种服务器。该服务器包括存储器,一个或多个处理器,多个应用程序,以及一个或多个程序。其中,一个或多个程序被存储在存储器中;一个或多个处理器在执行一个或多个程序时,使得该服务器执行上述第一方面及其实现方式中任意一项的方法。

第四方面,本申请实施例提供一种可读存储介质。该可读存储介质中存储有指令,当指令在服务器上运行时,使得该服务器执行上述第一方面及其实现方式中任意一项的方法。

相比较于现有技术中,用户丢失私钥后无法再找回的情况而言,在本申请实施例提供的技术方案中,由于在区块链上使用的第一账户是由服务器注册的,且在完成第一账户的注册后,服务器能够将第一账户对应的私钥与第二账户之间的对应关系存储在本地,因此,在私钥丢失的情况下,服务器可以通过验证用户身份,以在用户能够成功登录目标平台的情况下,为用户找回丢失的私钥。由此可见,采用上述技术方案可以有效解决用户丢失私钥后无法找回私钥的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种网络系统的结构示意图;

图2为本申请实施例提供的一种私钥找回方法的流程图;

图3为本申请实施例提供的服务器的结构示意图一;

图4为本申请实施例提供的服务器的结构示意图二。

具体实施方式

为了更清楚的阐释本申请的整体构思,下面结合说明书附图以示例的方式进行详细说明。

本申请实施例提供一种网络系统,如图1所示,该网络系统中至少包括区块链,以及依附于该区块链的服务器。其中,依附于该区块链的服务器,指的是能够提供目标平台的服务器,即目标平台对应的服务器(下文统称为服务器)。在该网络系统中,还可以包括用于登录目标平台的设备。该目标平台用于查询该区块链上存储的产品质量信息,用户可以通过在该目标平台上注册的第二账户发送写入请求或是查询请求,以实现通过与该第二账户对应的在该区块链上注册的第一账户,在该区块链上进行产品质量信息的写入或是查询。

需要说明的是,考虑到在区块链上进行注册、访问等,对于用户而言,操作不便,且实现难度高,因此,在本申请实施例中,提供上述依附于该区块链的服务器,以为用户提供目标平台,从而为用户注册、访问该区块链提供便捷途径。

为了实现上述功能,该服务器在用户注册第二账户后,可以调用该区块链上预设的应用程序编程接口(applicationprogramminginterface,api),在区块链上为用户注册与第二账户对应的第一账户。并由区块链根据用户在目标平台上所输入的用户信息(如邮箱、联系方式等)、第二账户,以及与第二账户对应的密码等中的一项或是多项,生成第一账户对应的私钥。在服务器完成在区块链上的第一账户的注册之后,区块链可以向用户返回第一账户以及第一账户对应的私钥,供该服务器存储。

由于产品质量信息存储在区块链上,且服务器会为在目标平台上注册的用户自动申请区块链系统上的账户,因此,在第一账户对应的私钥丢失后,用户可以借助服务器提供的目标平台,以及在目标平台上注册的第二账户,实现私钥的找回。由此可见,对于用户而言,上述网络系统的搭建不仅可以方便用户访问区块链,还可以为用户的使用过程提供保障,以避免因丢失第一账户对应的私钥给用户带来的不便。

需要说明的是,图1所示的网络系统的结构示意图,仅为该网络系统的一种示例性的实现形式。在该网络系统中,可以包括多于或是少于图1示出的设备。

下面结合附图,对本申请实施例提供的私钥找回方法进行进一步说明。

如图2所示,为本申请实施例提供的一种私钥找回方法的流程图。该方法流程包括s101至s103。

s101、目标平台对应的服务器接收用于找回私钥的请求。

其中,私钥为注册在区块链上的第一账户对应的私钥。

用户可以在登录目标平台之后,在目标平台运行的相应界面中,发起找回私钥的请求。比如,用户可以通过点击相应界面的快捷按键,以触发私钥找回功能。

或者,用户可以在登录目标平台之前,在目标平台的登录界面中,发起找回私钥的请求,之后通过登录目标平台的方式来使该服务器确定用户试图找回的私钥为区块链上哪个账户对应的私钥,从而触发私钥找回过程。

需要说明的是,用户可通过点击快捷按键发送用于找回私钥的请求,或是通过输入语音指令的方式来发送用于找回私钥的请求。在本申请实施例中,对于该请求的发送方式等不予限定。

s102、确定发送请求的第二账户。

其中,第二账户为登录目标平台的账户。

在本申请实施例中,用于登录目标平台的账户可以由用户预先设定,或是用户在目标平台上注册时,由服务器为用户分配。在本申请实施例中,对于第二账户的生成方式、格式等不予限定。

s103、根据第二账户,从预存的对应关系中,查找与第二账户对应的私钥,作为找回的第一账户对应的私钥。

其中,预存的对应关系为服务器在为用户自动注册在区块链上的第一账户之后存储的对应关系。在本申请实施例中,对应关系中至少包括第二账户以及私钥之间的对应关系,其中,私钥为通过第二账户注册的第一账户对应的私钥。

在一种实现方式中,该预存的对应关系可以包括第二账户、第一账户,以及第一账户对应的私钥这三者之间的对应关系。这样服务器不仅可以根据第二账户找到相应的私钥,还可以从预存的对应关系中找到第一账户。

需要说明的是,上述第一账户、第二账户均具有唯一性。即在目标平台上注册的第二账户各不相同,且通过各第二账户在区块链上注册的第一账户也各不相同。

相比较于现有技术中,用户丢失私钥后无法再找回的情况而言,在本申请实施例提供的技术方案中,由于在区块链上使用的第一账户是由服务器注册的,且在完成第一账户的注册后,服务器能够将第一账户对应的私钥与第二账户之间的对应关系存储在本地,因此,在私钥丢失的情况下,服务器可以通过验证用户身份,以在用户能够成功登录目标平台的情况下,为用户找回丢失的私钥。由此可见,采用上述技术方案可以有效解决用户丢失私钥后无法找回私钥的技术问题。

考虑到查找与第二账户对应的私钥,是从预存的对应关系中进行查找,因此,在本申请实施例的一种实现方式中,在执行s103之前,还可以执行s201至s203。

s201、在目标平台上注册第二账户。

在用户初次登录目标平台时,用户可以在目标平台上注册第二账户。其中,在完成第二账户的注册后,用户可以通过第二账户登录目标平台。

s202、根据第二账户,在区块链上注册第一账户。

用户在注册第二账户时,可以根据目标平台上提供的提示,完成诸如邮箱、联系方式等用户信息的填写,以完成第二账户的注册过程。对于服务器而言,可以将用户注册第二账户时输入的用户信息、第二账户,以及与第二账户对应的密码等作为基础,在区块链上注册第一账户。

需要说明的是,该服务器代替用户自动在区块链上进行注册。在完成第一账户的注册后,区块链可以向服务器返回第一账户,以及区块链为第一账户生成的私钥。之后服务器可以将第一账户,以及第一账户对应的私钥呈现给用户,以使用户可以使用第一账户及第一账户对应的私钥在区块链上执行相应操作,比如,访问区块链上存储的内容、在区块链上存储相应内容等。

s203、建立注册第一账户对应的私钥与第二账户之间的对应关系并存储。

为了方便用户在丢失私钥时能够找回,服务器需要建立第一账户对应的私钥与第二账户之间的对应关系并存储。

需要说明的是,对于服务器而言,为了方便用户通过第二账户在目标平台上查询产品质量信息,在本申请实施例中,在服务器代替用户在区块链上完成第一账户的注册之后,服务器需要建立第二账户与第一账户之间的对应关系。

这样,在用户通过第二账户登录目标平台之后,一旦用户触发相应的查询过程,服务器就可以通过查找与第二账户对应的第一账户,使用第一账户从区块链上查找相应内容。

由此可见,结合实际查询需求,在执行s203时,服务器还可以建立第一账户、第二账户及第一账户对应的私钥这三者之间的对应关系。这样在后续查询过程中,也可以用到预存的对应关系。

在实际应用过程中,用户除了可以通过目标平台注册第一账户,还可以通过第三方平台注册第一账户,或是直接在区块链上注册第一账户。考虑到用户自主注册第一账户(即通过第三方平台注册第一账户,或是直接在区块链上注册第一账户),也需要保障私钥的可找回性才能进一步提高用户的使用便捷度,因此,在本申请实施例的一个实现方式中,对于用户已经注册的第一账户及第一账户对应的私钥,用户可以在目标平台上完成第一账户及第一账户对应的私钥的录入,从而将用户自主申请的第一账户及第一账户对应的私钥绑定到用户在目标平台上注册的第二账户上,即建立第二账户与第一账户对应的私钥之间的对应关系。这样在用户丢失自主在区块链上注册的第一账户对应的私钥时,用户也可以借助目标平台找回私钥。

为了进一步提升私钥找回的安全性,在本申请实施例的一个实现方式中,对于找回私钥的用户的身份可以选择性进行进一步的身份验证。即在执行s103之前,还可以执行s204。

s204、对使用第二账户的用户身份进行验证,并确定验证通过。

其中,当通过第二账户输入的验证码与服务器针对第二账户下发的验证码相同时,确定验证通过;和/或,当通过第二账户输入的答案与针对第二账户保存的提示问题对应的答案相同时,确定验证通过。

在用户试图找回私钥之前,用户可以登录目标平台,之后在目标平台上进行身份验证,待验证通过后,目标平台对应的服务器从预存的对应关系中查找相应的私钥,并通过目标平台呈现给用户。或者,用户可以在登录目标平台的界面上进行身份验证,若验证通过,则用户后续可以进行私钥找回,并由目标平台将找回的私钥呈现给用户,否则,用户即便可以登录目标平台,也无法进行私钥找回。

针对后一种情况,考虑到用户身份验证过程已经达到了对用户身份进行验证的效果,因此,在服务器确定用户身份通过验证之后,可以使用户登录目标平台后实现私钥找回,或是使用户在不登录目标平台的情况下实现私钥找回。

对于用户未登录目标平台的情况而言,服务器可以将用户身份验证过程中用户输入的信息作为参照,结合用户在目标平台上注册时所输入的内容,找到用户在区块链上注册的全部账户(包括第二账户)。对于全部账户为一个的情况,可以直接将这一个账户确定为与用户身份对应的第二账户;对于全部账户为多个的情况,可以提示用户输入第二账户。这样,用户就可以在不登录目标平台的情况下,仅仅依靠自主输入的第二账户或是服务器确定的第二账户,来实现私钥找回。

下面结合例举的三种验证用户身份的方式,对用户身份验证的实现过程进行阐述:

比如,用户可以在目标平台上输入注册第二账户时所提供的手机号、邮箱等,之后服务器可以向输入的手机号、邮箱等发送验证码,以使用户将接收到的验证码通过目标平台输入。当通过第二账户输入的验证码与服务器针对第二账户下发的验证码相同时,确定用户身份通过验证。

再比如,用户可以在目标平台上输入注册的第二账户,从而使服务器,通过目标平台向用户呈现用户预先设置的提示问题。其中,提示问题可以是用户注册第二账户或是登录了第二账户时设置的。用户可以根据提示问题,在目标平台上输入答案,当通过第二账户输入的答案与针对第二账户保存的提示问题对应的答案相同时,确定用户身份通过验证。

又比如,结合上述两种例举的验证情况,为了进一步提升验证过程的可靠性,可以在对用户身份进行验证的过程中,既采用验证码进行验证,又通过提示问题进行验证,即当通过第二账户输入的验证码与服务器针对第二账户下发的验证码相同,且通过第二账户输入的答案与针对第二账户保存的提示问题对应的答案相同时,确定用户身份通过验证。

需要说明的是,对于用户身份未通过验证的情况,服务器可以通过目标平台返回验证失败的结果。或者,对于用户身份未通过验证的情况,服务器可以通过目标平台提示用户再次进行身份验证。比如,目标平台可以提示用户采用相同的验证方式再次进行验证,或是为用户提供其他验证方式重新验证用户身份。并且,在身份验证连续失败的次数达到预设失败次数时,服务器可以通过目标平台返回验证失败的结果。其中,预设失败次数可以预先设定,预设失败次数可以结合具体应用场景进行设置,在本申请实施例中,对于预设失败次数的设置方式、取值等不予限定。

另外,在本申请实施例中,用于衡量用户身份是否通过验证的方式,包括但不限于上述例举的三种情况。在实现过程中,还可以参考现有的身份验证方式,或是其他能够实现身份验证的实现手段,对用户身份进行验证,在此不予赘述。

用户在目标平台上完成第二账户的注册之后,用户可以通过该目标平台,将产品质量信息写入区块链。具体实现过程可以包括s301和s302。

s301、接收通过第二账户发送的用于写入产品质量信息的写入请求。

在用户使用第二账户登录目标平台后,可以在目标平台上输入试图存储到区块链上的产品质量信息,以实现通过目标平台向服务器发送写入请求。

其中,产品质量信息指的是与产品的质量存在关联的内容。在本申请实施例中,产品质量信息包括但不限于产品的标识、产品的追溯信息及产品的检测信息等中的一项或是多项。其中,产品的追溯信息指的是反映产品生产及销售过程的信息。在本申请实施例中,产品的追溯信息可以包括但不限于产品的生产信息、出入库信息以及销售信息等中的一项或是多项。

s302、通过第一账户以及第一账户对应的私钥,将写入请求中携带的产品质量信息写入区块链。

服务器可以根据用户登录的第二账户与第一账户之间的对应关系,使用相应的第一账户访问该区块链。之后服务器可以使用第一账户对应的私钥,对写入请求中请求写入的产品质量信息进行签名,之后将签名后的产品质量信息写入区块链。

需要说明的是,在一种实现方式中,该区块链指的可以是诸如以太坊等公有链,或者,该区块链还可以为私有链或是联盟链。也就意味着,可以采用上述实现方式将产品质量信息写入私有链或是联盟链上。在本申请实施例中,对于服务器依附的区块链的类型不做限定。

由此可见,服务器可以代替用户访问区块链,并使用户通过目标平台将试图写入区块链的产品质量信息存储到区块链上,从而完成产品质量信息的上链过程。并且,在访问区块链的过程中,由于目标平台代替用户使用第一账户访问区块链,以及代替用户使用第一账户对应的私钥对产品质量信息进行签名。因此,从用户的角度而言,用户仅需要在登录目标平台后,向目标平台提供试图写入区块链的产品质量信息即可,无需用户干预后续操作,就可以实现产品质量信息的上链过程。

用户在目标平台上完成第二账户的注册之后,用户可以通过该目标平台,查询产品质量信息。具体实现过程可以包括s303和s304。

s303、接收通过第二账户发送的用于查询产品质量信息的查询请求。

对于用户而言,在目标平台上完成第二账户的注册之后,就可以通过第二账户登录目标平台,之后通过输入诸如质量码、产品序列号等能够有效区分各产品的标识,来实现指定产品的产品质量信息的查询。

其中,该查询请求中可以携带上述用于区分各产品的标识。

s304、根据查询请求中携带的标识,通过第一账户,在区块链上查找与标识对应的产品质量信息并返回。

服务器可以通过与第二账户对应的第一账户访问区块链上的内容,并以查询请求中携带的标识作为依据,在该区块链上查找与该标识对应的产品质量信息,之后可以通过该目标平台呈现给用户。

需要说明的是,服务器在区块链上进行查询时,可以采取遍历各区块链的方式,获取所有查询到的与该标识的产品质量信息,之后选择性对获取到的产品质量信息进行汇总。比如,采用列表的形式,按照产品质量信息上链的时间顺序等进行排列,并以列表的形式返回到该目标平台上向用户呈现。其中,汇总各项产品质量信息的方式可以包括但不限于上述例举的列表形式,在本申请实施例中,对于查找以及返回产品质量信息的方式不予限定。

由此可见,对于用户而言,可以在登录目标平台后发起查询请求,以使服务器根据该查询请求中携带的标识,在区块链上完成产品质量信息的查询并返回。也就意味着,用户无需直接通过在区块链上注册的账户来访问该区块链上的内容,而是由目标平台作为中间媒介,代替用户完成内容的查询。

如图3所示,为本申请实施例提供一种服务器。区块链上存储有产品质量信息,服务器提供目标平台,目标平台用于查询区块链上存储的产品质量信息。服务器40包括:

通信模块41,用于接收用于找回私钥的请求,私钥为注册在区块链上的第一账户对应的私钥。

处理模块42,用于确定发送请求的第二账户,第二账户为登录目标平台的账户。

处理模块42,还用于根据第二账户,从预存的对应关系中,查找与第二账户对应的私钥,作为找回的第一账户对应的私钥。

在一种实现方式中,处理模块42,还用于在目标平台上注册第二账户;根据第二账户,在区块链上注册第一账户;建立注册第一账户对应的私钥与第二账户之间的对应关系。

服务器40还可以包括存储模块43。

存储模块43,用于存储建立的对应关系。

在一种实现方式中,处理模块42,还用于对使用第二账户的用户身份进行验证,并确定验证通过。

其中,当通过第二账户输入的验证码与服务器针对第二账户下发的验证码相同时,确定验证通过;和/或,当通过第二账户输入的答案与针对第二账户保存的提示问题对应的答案相同时,确定验证通过。

在一种实现方式中,通信模块41,还用于接收通过第二账户发送的用于写入产品质量信息的写入请求。

存储模块43,用于通过第一账户以及第一账户对应的私钥,将写入请求中携带的产品质量信息写入区块链。

在一种实现方式中,通信模块41,还用于接收通过第二账户发送的用于查询产品质量信息的查询请求。

处理模块42,还用于根据查询请求中携带的标识,通过第一账户,在区块链上查找与标识对应的产品质量信息并返回。

需要说明的是,通信模块可以实现为通信接口,处理模块可以实现为处理器,存储模块可以实现为存储器。如图4所示,为本申请实施例提供一种服务器。服务器50可以包括通信接口51、处理器52,以及存储器53。在本申请实施例中,总线54可以将通信接口51、处理器52,以及存储器53连接,以使通信接口51、处理器52,以及存储器53这三者之间实现数据传输。

在本申请实施例中,区块链上存储有产品质量信息,目标平台用于查询区块链上存储的产品质量信息。

通信接口51,用于接收用于找回私钥的请求,私钥为注册在区块链上的第一账户对应的私钥。

处理器52,用于确定发送请求的第二账户,第二账户为登录目标平台的账户;并根据第二账户,从预存的对应关系中,查找与第二账户对应的私钥,作为找回的第一账户对应的私钥。

在一种实现方式中,在查找与第二账户对应的私钥之前,处理器52,还用于在目标平台上注册第二账户;根据第二账户,在区块链上注册第一账户;并建立注册第一账户对应的私钥与第二账户之间的对应关系并存储。

在一种实现方式中,在查找与第二账户对应的私钥之前,处理器52,还用于对使用第二账户的用户身份进行验证,并确定验证通过。其中,当通过第二账户输入的验证码与服务器针对第二账户下发的验证码相同时,确定验证通过;和/或,当通过第二账户输入的答案与针对第二账户保存的提示问题对应的答案相同时,确定验证通过。

在一种实现方式中,通信接口51,还用于接收通过第二账户发送的用于写入产品质量信息的写入请求。

存储器53,还用于通过第一账户以及第一账户对应的私钥,将写入请求中携带的产品质量信息写入区块链。

在一种实现方式中,通信接口51,还用于接收通过第二账户发送的用于查询产品质量信息的查询请求。

处理器52,还用于根据查询请求中携带的标识,通过第一账户,在区块链上查找与标识对应的产品质量信息并返回。

本申请实施例提供了一种服务器。该服务器包括存储器,一个或多个处理器,多个应用程序,以及一个或多个程序;其中,一个或多个程序被存储在存储器中;一个或多个处理器在执行一个或多个程序时,使得该服务器执行上述任意一项的方法。

本申请实施例提供了一种可读存储介质。该可读存储介质中存储有指令,当指令在服务器上运行时,使得该服务器执行上述任意一项的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于实体实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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