基于区块链网络的身份认证方法、系统及服务器与流程

文档序号:12752671阅读:422来源:国知局
基于区块链网络的身份认证方法、系统及服务器与流程

本发明涉及互联网技术领域,具体涉及一种基于区块链网络的身份认证方法、系统、服务器及终端设备。



背景技术:

随着互联网和电子商务的发展,计算机网络应用已经渗透到各行各业,全球信息化已经成为人类发展的大趋势。而且很多网站或应用都会要求先登录网站账号之后,才能进行相应的操作,例如,用户想在XX网站上购买衣服,一般要求用户利用已有的账号登录该网站,再购买。在用户登录网站或应用时,需要对用户的身份进行认证,现有技术存在多种进行身份认证的方法,但大多数认证方法都是使用用户名和密码对用户身份进行认证,若用户输入的用户名、密码与服务器所存储的用户名、密码相匹配,则服务器对用户的身份认证成功。

然而,现有技术中存在服务器对认证记录造假或者服务器中存储的认证记录被篡改的情况,而且用户名和密码很容易被盗取,一旦盗取到用户名和密码就可以通过认证,所以这种认证方式的安全性不高。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于区块链网络的身份认证方法、服务器、终端设备和相应的基于区块链网络的身份认证系统。

根据本发明的一个方面,提供了一种基于区块链网络的身份认证方法,用于对区块链网络中的节点进行身份认证,方法包括:

接收节点发送的携带有用户名的登录请求;

向节点发送挑战信息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到区块链网络,其中,第一交易信息中包含挑战信息;

根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与用户名关联的第一区块链账户地址;

判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含挑战信息;

若是,则确认用户身份认证成功。

根据本发明的另一个方面,提供了一种基于区块链的身份认证方法,用于对区块链网络中的节点进行身份认证,方法包括:

向服务器发送携带有用户名的登录请求,以供服务器根据用户名获取与用户名关联的第一区块链账户地址;

接收服务器发送的挑战信息;

构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成第一交易后将第一交易信息发送至区块链网络,以供服务器进行身份认证,其中,第一交易信息包括挑战信息。

根据本发明的另一个方面,提供了一种服务器,用于对区块链网络中的节点进行身份认证,服务器包括:

接收模块,用于接收节点发送的携带有用户名的登录请求;

发送模块,用于向节点发送挑战信息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到区块链网络,其中第一交易信息中包含挑战信息;

区块链账户地址获取模块,用于根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与用户名关联的第一区块链账户地址;

判断模块,用于判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含挑战信息;

认证模块,用于在判断出区块链中存在第一交易信息且第一交易信息中包含挑战信息的情况下,确认用户身份认证成功。

根据本发明的另一个方面,提供了一种终端设备,终端设备为区块链网络的节点,终端设备包括:

发送模块,用于向服务器发送携带有用户名的登录请求,以供服务器根据用户名获取与用户名关联的第一区块链账户地址;

接收模块,用于接收服务器发送的挑战信息;

构建模块,用于构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成第一交易后将第一交易信息发送至区块链网络,以供服务器进行身份认证,其中,第一交易信息包括挑战信息。

根据本发明的另一个方面,提供了一种基于区块链网络的身份认证系统,包括上述的服务器以及终端设备。

根据本发明提供的技术方案,通过向节点发送挑战信息,判断区块链网络中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息,可以实现对用户身份的双重认证,由于保存在区块链中的交易信息是无法被篡改的并且可回溯查询,因此,提高了认证的安全性和认证过程的信用度,登录是无需用户输入密码,也就无需用户记忆密码,提高了便利性,而且防止了其他恶意人员利用所盗取的用户名和密码登录其他网站而造成的撞库攻击。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的基于区块链网络的身份认证方法的流程图;

图2示出了根据本发明一个实施例的基于区块链网络的身份认证方法的流程图;

图3示出了根据本发明一个实施例的基于区块链网络的身份认证方法的信令流程图;

图4示出了根据本发明一个实施例的服务器的结构框图;

图5示出了根据本发明另一个实施例的服务器的结构框图;

图6示出了根据本发明一个实施例的终端设备的结构框图;

图7示出了根据本发明一个实施例的基于区块链网络的身份认证系统的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了区块链网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块,一旦信息添加至区块链,就会永久的存储起来,除非能够同时控制住区块链网络中超过51%的节点,否则单个节点上对区块链的修改是无效的,因此区块链的数据稳定性和可靠性极高。本发明实施例利用了区块链中信息不可修改的特性,来对用户身份进行认证。

图1示出了根据本发明一个实施例的基于区块链网络的身份认证方法的流程图。图1所示的方法的执行主体可以是服务器,用于对区块链网络中的节点进行身份认证,如图1所示,本实施例的基于区块链网络的身份认证方法,具体可以包括以下步骤:

步骤S100,接收节点发送的携带有用户名的登录请求。

本实施例中的节点为区块链网络中的节点,例如可以是终端设备,终端设备可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、个人电脑(Personal Computer,PC)、可穿戴设备等。区块链网络可以是公有区块链网络、联盟区块链网络或私有区块链网络。公有区块链网络包括但不限于比特币网络和以太坊(Ethereum)网络,以及联盟区块链网络包括但不限于超级账本(Hyperledger)网络。

以用户利用终端设备登录某网站为例,用户通过终端设备向服务器发送登录请求,该登录请求中包括用于登录该网站的用户名,其中,用户名可以是用户的手机号、邮箱地址或者由至少一个字符组成,服务器接收终端设备发送的携带有用户名的登录请求。

步骤S101,向节点发送挑战信息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到区块链网络,其中,第一交易信息中包含挑战信息。

这里的挑战信息可供服务器对终端设备的身份进行确认。具体地,服务器在接收到终端设备发送的登录请求后,将挑战信息发送给终端设备,其中,挑战信息可以包括:随机数或字符串,终端设备在接收到服务器发送的挑战信息后,需要在构建交易过程中输入所接收到的挑战信息,所构建的交易付款地址为第一区块链账户地址,收款地址为预设的第二区块链账户地址,同时还输出上述挑战信息,终端设备在构建完成第一交易后,将第一交易信息发送到区块链网络,以供服务器根据挑战信息对终端设备进行身份确认。

步骤S102,根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与用户名关联的第一区块链账户地址。

第一区块链账户地址是用户的交易地址,而且是用户已有的交易地址,在本步骤中,第一区块链账户地址是用于进行付款交易的地址,其可以是比特币地址,其中,比特币地址是由多个字符串所组成的,例如1CeZ4EZamNQixcgPQ6tTXbgYkNfc5dDErB,这里仅是举例说明不做任何具体限定,第一区块链账户地址还可以是莱特币地址、无限币地址等,本领域技术人员可以根据实际需要选用合适的第一区块链账户地址。具体地,终端设备可以调用已安装的比特币钱包实现付款,或者具有比特币钱包功能的账户地址进行付款,这里不做具体限定。

在本实施例中,用户名与用户的比特币地址以映射方式预先存储于服务器,服务器可以存储很多用户名及与用户名关联的比特币地址,在接收到节点发送的携带有用户名的登录请求后,可以根据登录请求中的用户名获取到与该用户名关联的比特币地址。

步骤S103,判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含挑战信息,若是,则执行步骤S104。

本步骤中的第一交易是终端设备在接收到服务器发送的挑战信息后构建的,终端设备在构建完成第一交易后,将第一交易信息发送至区块链网络中。预设的第二区块链账户地址是用于收款的地址,可以是服务器指定的比特币地址,例如可以是服务器所拥有的比特币地址。

服务器在获知终端设备构建了第一交易后,可以根据第一区块链账户地址判断区块链中是否存在第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息,来对用户身份进行认证,若区块链中存在第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,且第一交易信息中包含挑战信息,则表明用户具有用户名的拥有权,确认其为合法用户,即用户身份认证成功,可以允许用户利用用户名登录到网站;若区块链中不存在第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,或者第一交易信息中不包含挑战信息,则表明用户对相应的用户名不具有拥有权,用户身份认证失败,不允许用户利用用户名登录到网站。

步骤S104,确认用户身份认证成功。

可选地,在本实施例的一个可能的实现方式中,在步骤S100之前,方法还包括:接收节点发送的注册请求,具体地,用户在登录网站或应用之前,需要先进行注册,用户通过终端设备向服务器发送注册请求。

服务器在接收到终端设备发送的注册请求后,服务器向节点发送携带有预设的第二区块链账户地址的反馈消息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易并将第二交易信息发送到区块链网络,其中第二交易信息中包含用户名,这里的反馈信息可以包括第二区块链账户地址和交易金额,具体的反馈信息可以是根据第一区块链账户地址和交易金额所生成条形码或二维码,还可以是第一区块链账户地址和交易金额的文本信息,因此,终端设备可以通过扫描条形码或二维码来获得第一区块链账户地址和交易金额;当然,第一区块链账户地址和交易金额还可以由用户输入,这里不做具体限定。

本实施例是通过交易完成注册过程的,具体地,终端设备在接收到服务器发送的反馈消息后,构建从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易并将第二交易信息发送到区块链网络,在构建第二交易时,用户可以手动输入用于注册的用户名从而完成注册过程。

具体地,终端设备在交易的付款地址处输入第一区块链账户地址,在交易的收款地址处输入预设的第二区块链账户地址,在注册信息处输入用户名,构建从第一区块链账户地址到预设的第二区块链账户地址的付款交易,在构建完成第二交易后,终端设备将第二交易信息发送至区块链网络,使得区块链网络的其它节点获知完成一笔交易,以供服务器对用户进行身份认证。

服务器在接收到注册请求后,将第二区块链账户地址发送给终端设备,以使终端设备根据第二区块链账户地址构建第二交易,因此,终端设备可以根据已有的第二区块链账户地址构建第一交易。

具体地,对于服务器是区块链网络中的节点,终端设备可以通过广播方式发送交易通知消息,服务器接收终端设备通过广播方式发送的交易通知消息后,从区块链中获取从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易信息,将第一区块链账户地址和用户名关联存储,以在对用户身份进行验证时,可以根据用户名获取到与用户名关联存储的第一区块链账户地址,进而根据第一区块链账户地址判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息。

可选地,在本实施例的一个可能的实现方式中,在将用户名和第一区块链账户地址关联存储之前,方法还包括:根据用户名查询数据库中是否存储有与用户名相同的用户名;若否,则将用户名与第一区块链账户地址关联存储至数据库,并向节点反馈注册成功信息;若是,则向节点反馈注册失败信息。

一般情况下,服务器并无法区分是否是同一用户,因此一般一个用户名仅能注册一次,也就是说,不同用户所使用的用户名是不同的,因此,根据用户名查询数据库中是否存储有与用户名相同的用户名,以确定是否存在重复的用户名,在数据库中不存在相同的用户名的情况下,将用户名与用户名关联的第一区块链账户地址关联存储至数据库,并向终端设备反馈注册成功信息;在数据库中存在相同的用户名的情况下,向终端设备反馈注册失败信息。

本发明实施例是采用让第一区块链账户地址向第二区块链账户地址付款完成交易,完成注册以及实现对用户身份认证的目的,交易的数额是任意的,可能大于或等于0,然而,本实施例仅是对用户身份进行认证,很多用户可能并不希望有金钱损失,因此,在本实施例的一个可能的实现方式中,在第一区块链账户地址向第二区块链账户地址所付款项的数额大于0时,在确认用户身份认证成功之后,服务器还可以构建从预设的第二区块链账户地址付款到第一区块链账户地址的第三交易并将第三交易信息发送到区块链网络,以将预设的第二区块链账户地址的款项返回至第一区块链账户地址。

可选地,在本实施例的一个可能的实现方式中,第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址,方法还包括:将第三区块链账户地址与用户名关联存储。这里预先存储了下一次登录时交易的第三区块链账户地址,这样当用户下一次登录时,可利用第三区块链账户地址进行交易。

可选地,在本实施例的一个可能的实现方式中,在第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址,并将第三区块链账户地址与用户名关联存储后,还需要删除第一区块链账户地址与用户名的关联,使得用户下一次仅能利用第三区块链账户地址进行认证,而不能再用第一区块链账户地址进行认证,从而避免重复使用相同区块链账户地址进行认证,提高安全性。

可选地,在本实施例的一个可能的实现方式中,第一交易信息中还包含用于标识挑战信息的标识符,根据该标识符可以准确定位到挑战信息。

根据本发明上述实施例提供的方法,通过向节点发送挑战信息,判断区块链网络中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息,可以实现对用户身份的双重认证,由于保存在区块链中的交易信息是无法被篡改的并且可回溯查询,因此,提高了认证的安全性和认证过程的信用度,登录是无需用户输入密码,也就无需用户记忆密码,提高了便利性,而且防止了其他恶意人员利用所盗取的用户名和密码登录其他网站而造成的撞库攻击。

图2示出了根据本发明一个实施例的基于区块链网络的身份认证方法的流程图。图2所示的方法的执行主体可以是终端设备,其为区块链网络中的节点,用于对区块链网络中的节点进行身份认证,如图2所示,本实施例的基于区块链网络的身份认证方法,具体可以包括以下步骤:

步骤S200,向服务器发送携带有用户名的登录请求,以供服务器根据用户名获取与用户名关联的第一区块链账户地址。

以用户利用终端设备登录某网站为例,用户通过终端设备向服务器发送登录请求,例如可以在该登录请求中包括用于登录该网站的用户名,其中,用户名可以是用户的手机号、邮箱地址或者由至少一个字符组成,终端设备可以采用多种方式向服务器发送登录请求,例如采用http协议或者其它合适的协议,这里不做具体限定。服务器接收终端设备发送的携带有用户名的登录请求后,可以根据用户名获取与用户名关联的第一区块链账户地址,具体地,可以根据用户名查询预先存储有用户名和第一区块链账户地址的数据库,获取与用户名关联的第一区块链账户地址。

步骤S201,接收服务器发送的挑战信息。

服务器在接收到终端设备发送的登录请求后,向终端设备发送挑战信息,其中,挑战信息可以包括:随机数或字符串。

步骤S202,构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成第一交易后将第一交易信息发送至区块链网络,以供服务器进行身份认证,其中,第一交易信息包括挑战信息。

具体的,终端设备在交易的付款地址处输入第一区块链账户地址,在交易的收款地址处输入预设的第二区块链账户地址,在输出部分还输入所接收到的挑战信息,构建从第一区块链账户地址到预设的第二区块链账户地址的付款交易,在构建完成第一交易后,终端设备将第一交易信息发送至区块链网络,使得区块链网络的其它节点获知完成一笔交易,以供服务器对用户进行身份认证,其中,第一交易信息包括挑战信息。

可选地,在本实施例的一个可能的实现方式中,在向服务器发送携带有用户名的登录请求之前,该方法还包括:向服务器发送注册请求,其中,终端设备可以采用多种方式向服务器发送的注册请求,例如采用http协议或者其它合适的协议,这里不做具体限定;服务器在接收到注册请求后,将携带有预设的第二区块链账户地址的反馈消息发送给终端设备,终端设备接收服务器发送的携带有预设的第二区块链账户地址的反馈消息,构建从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易,并在构建完成第二交易后将第二交易信息发送至区块链网络,以供服务器进行身份注册,其中第二交易信息中包含用户名。

本发明是通过让用户利用第一区块链账户地址向第二区块链账户地址付款完成交易,通过判断区块链中是否存在从第一区块链账户地址向第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息来对用户身份进行认证,因此,需要先利用用户名进行注册,这里注册过程是通过第一区块链账户地址向第二区块链账户地址付款交易完成注册的,在构建交易时,需要用户手动输入用于注册的用户名。

可选地,在本实施例的一个可能的实现方式中,第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址,该第三区块链账户地址可以用于下一次登录时对用户身份的认证。

根据本发明上述实施例提供的方法,通过向节点发送挑战信息,判断区块链网络中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息,可以实现对用户身份的双重认证,由于保存在区块链中的交易信息是无法被篡改的并且可回溯查询,因此,提高了认证的安全性和认证过程的信用度,登录是无需用户输入密码,也就无需用户记忆密码,提高了便利性,而且防止了其他恶意人员利用所盗取的用户名和密码登录其他网站而造成的撞库攻击。

图3示出了根据本发明一个实施例的基于区块链网络的身份认证方法的信令流程图。服务器用于对区块链网络中的节点进行身份认证,区块链网络中的节点可以是终端设备,如图3所示,本实施例的基于区块链网络的身份认证方法,具体可以包括以下步骤:

步骤S300,终端设备向服务器发送注册请求。

步骤S301,服务器根据注册请求向终端设备发送携带有预设的第二区块链账户地址的反馈消息。

步骤S302,终端设备根据所接收到的携带有预设的第二区块链账户地址的反馈消息,构建从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易,并在构建完成第二交易后将第二交易信息发送至区块链网络,以供服务器进行身份注册,其中第二交易信息中包含用户名。

步骤S303,服务器从区块链中获取从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易信息,并将第一区块链账户地址和用户名关联存储。

步骤S304,终端设备向服务器发送携带有用户名的登录请求。

步骤S305,服务器向终端设备发送挑战信息。

步骤S306,终端设备构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成第一交易后将第一交易信息发送至区块链网络,以供服务器进行身份认证其中,第一交易信息包括挑战信息。

步骤S307,服务器在接收到终端设备发送的携带有用户名的登录请求后,根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与用户名关联的第一区块链账户地址。

步骤S308,服务器判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含挑战信息,若是,则确认用户身份认证成功。

本实施例中各方法步骤的具体实现方式与图1和图2所示实施例中对应步骤类似,这里不再赘述。

图4示出了根据本发明一个实施例的服务器的结构框图。如图4所示,本实施的服务器400,具体可以包括:接收模块410、发送模块420、区块链账户地址获取模块430、判断模块440和认证模块450。

接收模块410,用于接收节点发送的携带有用户名的登录请求。

发送模块420,用于向节点发送挑战信息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到区块链网络,其中第一交易信息中包含挑战信息。

区块链账户地址获取模块430,用于根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与用户名关联的第一区块链账户地址。

判断模块440,用于判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含挑战信息。

认证模块450,用于在判断出区块链中存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易且第一交易信息中包含挑战信息的情况下,确认用户身份认证成功。

图5示出了根据本发明一个实施例的服务器的结构框图。如图5所示,本实施的服务器500,具体可以包括:接收模块510、发送模块520、区块链账户地址获取模块530、判断模块540和认证模块550。

接收模块510,用于接收节点发送的携带有用户名的登录请求。

发送模块520,用于向节点发送挑战信息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到区块链网络,其中第一交易信息中包含挑战信息。其中,挑战信息可以包括:随机数或字符串。

区块链账户地址获取模块530,用于根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与用户名关联的第一区块链账户地址。

判断模块540,用于判断区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含挑战信息。

认证模块550,用于在判断出区块链中存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易且第一交易信息中包含挑战信息的情况下,确认用户身份认证成功。

此外,接收模块510进一步用于:接收节点发送的注册请求;

发送模块520进一步用于:向节点发送携带有预设的第二区块链账户地址的反馈消息,以供节点构建从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易并将第二交易信息发送到区块链网络,其中第二交易信息中包含用户名。

服务器还包括:交易获取模块560,用于从区块链中获取从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易信息;以及

数据库570,用于关联存储第一区块链账户地址和用户名。

为了确保每个注册的用户名都不相同,服务器还包括:查询模块580,用于根据用户名查询数据库中是否存储有与用户名相同的用户名;

数据库570进一步用于:在根据用户名查询数据库中未存储有与用户名相同的用户名的情况下,关联存储用户名与第一区块链账户地址;

服务器还包括:反馈模块590,用于在根据用户名查询数据库中未存储有与用户名相同的用户名的情况下,向节点反馈注册成功信息;在根据用户名查询数据库中存储有与用户名相同的用户名的情况下,向节点反馈注册失败信息。

另外,服务器还包括:构建模块591,用于构建从预设的第二区块链账户地址付款到第一区块链账户地址的第三交易并将第三交易信息发送到区块链网络,以将预设的第二区块链账户地址的款项返回至第一区块链账户地址。

此外,第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址,数据库570进一步用于:关联存储第三区块链账户地址与用户名。

在将第三区块链账户地址与用户名关联存储后,服务器还包括:删除模块592,用于删除第一区块链账户地址与用户名的关联。

此外,第一交易信息中还包含用于标识挑战信息的标识符,根据该标识符可以准确定位到挑战信息。

根据本发明上述实施例提供的服务器,通过向节点发送挑战信息,判断区块链网络中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息,可以实现对用户身份的双重认证,由于保存在区块链中的交易信息是无法被篡改的并且可回溯查询,因此,提高了认证的安全性和认证过程的信用度,登录是无需用户输入密码,也就无需用户记忆密码,提高了便利性,而且防止了其他恶意人员利用所盗取的用户名和密码登录其他网站而造成的撞库攻击。

图6示出了根据本发明一个实施例的终端设备的结构框图。如图6所示,本实施的终端设备600,具体可以包括:发送模块610、接收模块620、构建模块630。

发送模块610,用于向服务器发送携带有用户名的登录请求,以供服务器根据用户名获取与用户名关联的第一区块链账户地址。

接收模块620,用于接收服务器发送的挑战信息。

构建模块630,用于构建从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成第一交易后将第一交易信息发送至区块链网络,以供服务器进行身份认证,其中,第一交易信息包括挑战信息。

此外,发送模块610进一步用于:向服务器发送注册请求。

接收模块620进一步用于:接收服务器发送的携带有预设的第二区块链账户地址的反馈消息。

构建模块630进一步用于:构建从第一区块链账户地址向预设的第二区块链账户地址付款的第二交易,并在构建完成第二交易后将第二交易信息发送至区块链网络,以供服务器进行身份注册,其中,第二交易信息中包含用户名。

其中,第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址。

根据本发明上述实施例提供的终端设备,通过向节点发送挑战信息,判断区块链网络中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息,以及第一交易信息中是否包含挑战信息,可以实现对用户身份的双重认证,由于保存在区块链中的交易信息是无法被篡改的并且可回溯查询,因此,提高了认证的安全性和认证过程的信用度,登录是无需用户输入密码,也就无需用户记忆密码,提高了便利性,而且防止了其他恶意人员利用所盗取的用户名和密码登录其他网站而造成的撞库攻击。

图7示出了根据本发明一个实施例的基于区块链网络的身份认证系统的结构框图。如图7所示,该系统700包括服务器500以及终端设备600。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于区块链网络的身份认证设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:

A1、一种基于区块链的身份认证方法,用于对区块链网络中的节点进行身份认证,其特征在于,所述方法包括:

接收节点发送的携带有用户名的登录请求;

向所述节点发送挑战信息,以供所述节点构建从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到所述区块链网络,其中,所述第一交易信息中包含所述挑战信息;

根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与所述用户名关联的第一区块链账户地址;

判断所述区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含所述挑战信息;

若是,则确认用户身份认证成功。

A2、根据A1所述的方法,其特征在于,在所述接收节点发送的携带有用户名的登录请求之前,所述方法还包括:

接收所述节点发送的注册请求;

向所述节点发送携带有所述预设的第二区块链账户地址的反馈消息,以供所述节点构建从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第二交易并将第二交易信息发送到所述区块链网络,其中所述第二交易信息中包含所述用户名;

从所述区块链中获取从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第二交易信息;以及

将所述第一区块链账户地址和所述用户名关联存储。

A3、根据A2所述的方法,其特征在于,在将所述用户名和第一区块链账户地址关联存储之前,所述方法还包括:

根据所述用户名查询数据库中是否存储有与所述用户名相同的用户名;

若否,则将所述用户名与第一区块链账户地址关联存储至数据库,并向所述节点反馈注册成功信息;

若是,则向所述节点反馈注册失败信息。

A4、根据A1-A3任一项所述的方法,其特征在于,在确认用户身份认证成功之后,所述方法还包括:

构建从所述预设的第二区块链账户地址付款到所述第一区块链账户地址的第三交易并将第三交易信息发送到所述区块链网络,以将所述预设的第二区块链账户地址的款项返回至所述第一区块链账户地址。

A5、根据A1-A3任一项所述的方法,其特征在于,所述第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址,所述方法还包括:

将所述第三区块链账户地址与所述用户名关联存储。

A6、根据A5所述的方法,其特征在于,所述方法还包括:

删除所述第一区块链账户地址与所述用户名的关联。

A7、根据A1所述的方法,其特征在于,所述挑战信息包括:随机数或字符串。

A8、根据A1所述的方法,其特征在于,所述第一交易信息中还包含用于标识挑战信息的标识符。

B9、一种基于区块链的身份认证方法,用于对区块链网络中的节点进行身份认证,其特征在于,所述方法包括:

向服务器发送携带有用户名的登录请求,以供服务器根据所述用户名获取与所述用户名关联的第一区块链账户地址;

接收所述服务器发送的挑战信息;

构建从所述第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成所述第一交易后将第一交易信息发送至所述区块链网络,以供服务器进行身份认证,其中,所述第一交易信息包括挑战信息。

B10、根据B9所述的方法,其特征在于,所述方法还包括:

向所述服务器发送注册请求;

接收所述服务器发送的携带有所述预设的第二区块链账户地址的反馈消息;

构建从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第二交易,并在构建完成所述第二交易后将第二交易信息发送至所述区块链网络,以供服务器进行身份注册,其中,所述第二交易信息中包含所述用户名。

B11、根据B9或B10所述的方法,其特征在于,所述第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址。

C12、一种服务器,用于对区块链网络中的节点进行身份认证,其特征在于,所述服务器包括:

接收模块,用于接收节点发送的携带有用户名的登录请求;

发送模块,用于向所述节点发送挑战信息,以供所述节点构建从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第一交易并将第一交易信息发送到所述区块链网络,其中所述第一交易信息中包含所述挑战信息;

区块链账户地址获取模块,用于根据预先存储的用户名与第一区块链账户地址之间的对应关系,获取与所述用户名关联的第一区块链账户地址;

判断模块,用于判断所述区块链中是否存在从第一区块链账户地址向预设的第二区块链账户地址付款的第一交易信息且第一交易信息中是否包含所述挑战信息;

认证模块,用于在判断出所述区块链中存在第一交易信息且第一交易信息中包含所述挑战信息的情况下,确认用户身份认证成功。

C13、根据C12所述的服务器,其特征在于,所述接收模块进一步用于:接收所述节点发送的注册请求;

所述发送模块进一步用于:向所述节点发送携带有所述预设的第二区块链账户地址的反馈消息,以供所述节点构建从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第二交易并将第二交易信息发送到所述区块链网络,其中所述第二交易信息中包含所述用户名;

所述服务器还包括:交易信息获取模块,用于从所述区块链中获取从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第二交易信息;以及

数据库,用于关联存储所述第一区块链账户地址和所述用户名。

C14、根据C12所述的服务器,其特征在于,所述服务器还包括:查询模块,用于根据所述用户名查询数据库中是否存储有与所述用户名相同的用户名;

所述数据库进一步用于:在根据所述用户名查询所述数据库中未存储有与所述用户名相同的用户名的情况下,关联存储所述用户名与第一区块链账户地址;

所述服务器还包括:反馈模块,用于在根据所述用户名查询所述数据库中未存储有与所述用户名相同的用户名的情况下,向所述节点反馈注册成功信息;在根据所述用户名查询所述数据库中存储有与所述用户名相同的用户名的情况下,向所述节点反馈注册失败信息。

C15、根据C12-C14任一项所述的服务器,其特征在于,所述服务器还包括:

构建模块,用于构建从所述预设的第二区块链账户地址付款到所述第一区块链账户地址的第三交易并将第三交易信息发送到所述区块链网络,以将所述预设的第二区块链账户地址的款项返回至所述第一区块链账户地址。

C16、根据C12-C14任一项所述的服务器,其特征在于,所述第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址,所述数据库进一步用于:关联存储所述第三区块链账户地址与所述用户名。

C17、根据C16所述的服务器,其特征在于,所述服务器还包括:

删除模块,用于删除所述第一区块链账户地址与所述用户名的关联。

C18、根据C12所述的服务器,其特征在于,所述挑战信息包括:随机数或字符串。

C19、根据C12所述的服务器,其特征在于,所述第一交易信息中还包含用于标识挑战信息的标识符。

D20、一种终端设备,所述终端设备为区块链网络的节点,其特征在于,所述终端设备包括:

发送模块,用于向服务器发送携带有用户名的登录请求,以供服务器根据所述用户名获取与所述用户名关联的第一区块链账户地址;

接收模块,用于接收所述服务器发送的挑战信息;

构建模块,用于构建从所述第一区块链账户地址向预设的第二区块链账户地址付款的第一交易,并在构建完成所述第一交易后将第一交易信息发送至所述区块链网络,以供服务器进行身份认证,其中,所述第一交易信息包括挑战信息。

D21、根据D20所述的终端设备,其特征在于,所述发送模块进一步用于:向所述服务器发送注册请求;

所述接收模块进一步用于:接收所述服务器发送的携带有所述预设的第二区块链账户地址的反馈消息;

所述构建模块进一步用于:构建从所述第一区块链账户地址向所述预设的第二区块链账户地址付款的第二交易,并在构建完成所述第二交易后将第二交易信息发送至所述区块链网络,以供服务器进行身份注册,其中,所述第二交易信息中包含所述用户名。

D22、根据D20或D21所述的终端设备,其特征在于,所述第一交易信息中包含用于下一次登录时进行交易的第三区块链账户地址。

E23、一种基于区块链网络的身份认证系统,其特征在于,所述系统包括:C12-C19任一项所述的服务器以及D20-D22任一项所述的终端设备。

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