发明内容
本发明提供了一种基于区块链网络的通信系统及其通信方法,采用如下的技术方案:
一种基于区块链网络的通信系统,包括:
第一客户端,用于供第一用户收发信息;
第一服务节点,用于接收第一客户端发送的经过第一用户的私钥数字签名的第一地址声明请求信息并通过自身的私钥对接收到的第一地址声明请求信息进行数字签名,第一地址声明请求信息包括第一用户的公钥和第一服务节点的IP地址;
区块链记账节点,用于对接收自第一服务节点的经过第一服务节点的私钥数字签名后的第一地址声明请求信息进行验证后将第一地址声明请求信息记录在区块链帐本中。
进一步地,第一客户端包括:
第一账户生成模块,第一用户通过第一账户生成模块随机生成第一用户的公钥和私钥。
进一步地,基于区块链网络的通信系统还包括:
第二客户端,用于供第二用户收发信息;
第二服务节点,用于接收第二客户端发送的经过第二用户的私钥数字签名的第二地址声明请求信息并通过自身的私钥对接收到的第二地址声明请求信息进行数字签名,第二地址声明请求信息包括第二用户的公钥和第二服务节点的IP地址;
区块链记账节点对接收自第二服务节点的经过第二服务节点的私钥数字签名后的第二地址声明请求信息进行验证后将第二地址声明请求信息记录在区块链帐本中。
进一步地,第二客户端包括:
第二账户生成模块,第二用户通过第二账户生成模块随机生成第二用户的公钥和私钥。
进一步地,第一服务节点和第二服务节点为同一服务节点。
一种基于区块链网络的通信方法,应用于基于区块链网络的通信系统,包括以下步骤:
第一客户端生成第一地址声明请求信息并通过第一用户的私钥对其进行数字签名后发送至第一服务节点,第一地址声明信息包括第一用户的公钥和第一服务节点的IP地址;
第一服务节点通过自身的私钥对第一地址声明请求信息进行数字签名后转发至区块链记账节点;
区块链记账节点对接收到的第一地址声明信息进行验证后将第一地址声明信息记录在区块链帐本中。
进一步地,第二客户端生成第二地址声明请求信息并通过第二用户的私钥对其进行数字签名后发送至第二服务节点,第二地址声明信息包括第二用户的公钥和第二服务节点的IP地址;
第二服务节点通过自身的私钥对第二地址声明请求信息进行数字签名后转发至区块链记账节点;
区块链记账节点对接收到的第二地址声明信息进行验证后将第二地址声明信息记录在区块链帐本中。
进一步地,第一客户端通过区块链网络查询第二用户绑定的第二服务节点的IP地址;
第一客户端根据查询到的第二用户绑定的第二服务节点的IP地址发送第一信息至第二服务节点;
第二服务节点将第一信息转发至第二客户端。
进一步地,第二客户端接收第一信息;
第二客户端通过区块链网络查询第一用户绑定的第一服务节点的IP地址;
第二客户端根据查询到的第一用户绑定的第一服务节点的IP地址发送第二信息至第一服务节点;
第一服务节点将第二信息转发至第一客户端。
进一步地,第一客户端通过区块链网络查询第二用户绑定的第二服务节点的IP地址的具体方法为:
第一客户端发送第一查询信息至第一服务节点,第一查询信息包括第二用户的公钥;
第一服务节点转发第一查询信息至区块链记账节点;
区块链记账节点根据第一查询信息中的第二用户的公钥从区块链帐本中查找到该公钥所对应的第二服务节点的IP地址并将查找到的第二服务节点的IP地址发送至第一服务节点;
第一服务节点将第二服务节点的IP地址发送至第一客户端;
第一客户端通过区块链网络查询第二用户绑定的第二服务节点的IP地址的具体方法为:
第二客户端发送第二查询信息至第二服务节点,第二查询信息包括第一用户的公钥;
第二服务节点转发第二查询信息至区块链记账节点;
区块链记账节点根据第二查询信息中的第一用户的公钥从区块链帐本中查找到该公钥所对应的第一服务节点的IP地址并将查找到的第一服务节点的IP地址发送至第二服务节点;
第二服务节点将第一服务节点的IP地址发送至第二客户端。
本发明的有益之处在于所提供的基于区块链网络的通信系统及其通信方法将用户的通信地址和其选择的服务节点的IP地址存储在区块链网络中,不会因为服务节点故障而产生信息丢失的风险。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
如图1所示为本发明的一种基于区块链网络的通信系统100,该基于区块链网络的通信系统100包括:第一客户端10、第一服务节点20和区块链记账节点30,具体而言,第一客户端10用于供第一用户收发信息,第一服务节点20用于为用户提供信息转发的服务,同时,它还能够接收第一客户端10发送的经过第一用户的私钥数字签名的第一地址声明请求信息并通过自身的私钥对接收到的第一地址声明请求信息进行数字签名,其中,第一地址声明请求信息包括第一用户的公钥和第一服务节点20的IP地址,每个服务节点都有一个IP地址,用于区分其他的服务节点。区块链记账节点30用于对接收自第一服务节点20的经过第一服务节点20的私钥数字签名后的第一地址声明请求信息进行验证后将第一地址声明请求信息记录在区块链帐本中。作为一种优选的实施方式,第一客户端10包括第一账户生成模块11,第一用户通过第一账户生成模块11随机生成第一用户的公钥和私钥。在本发明中,第一用户通过第一客户端10的第一账户生成模块11生成第一用户的公钥和私钥,私钥由用户保存,代表通信系统中账户的所有权,公钥作为通信系统中的收信地址,用于接收消息。在实际应用中,通信系统可以包含多个服务节点,用户可以根据自身的需求选择不同的服务节点为自己的账户提供信息转发的服务,在本发明中,第一用户首先将自己的公钥和第一服务节点20绑定,意味着第一用户选择第一客户端10通过第一服务节点20与其他用户进行信息收发。而区块链记账节点30属于区块链网络中的记账节点,其记录的数据将以交易区块的形式,永久存储在区块链网络中,即使第一服务节点20发生故障,也并不会丢失绑定在其上的用户信息,第一地址声明请求信息经过了第一客户端10和第一服务节点20的数字签名,区块链记账节点30通过验证第一地址声明请求信息上的数字签名来验证该请求的合法来源,验证通过后,将包含了第一用户的公钥和第一服务节点20的IP地址的第一地址声明请求信息记录在区块链账本中。
作为一种优选的实施方式,基于区块链网络的通信系统100还包括第二客户端40和第二服务节点50,第二客户端40用于供第二用户收发信息,第二服务节点50用于接收第二客户端发送的经过第二用户的私钥数字签名的第二地址声明请求信息并通过自身的私钥对接收到的第二地址声明请求信息进行数字签名,第二地址声明请求信息包括第二用户的公钥和第二服务节点的IP地址,区块链记账节点30对接收自第二服务节点的经过第二服务节点的私钥数字签名后的第二地址声明请求信息进行验证后将第二地址声明请求信息记录在区块链帐本中。在本发明中,第二客户端40包括第二账户生成模块41,第二用户通过第二账户生成模块41随机生成第二用户的公钥和私钥。
作为一种优选的实施方式,第一服务节点20和第二服务节点50为同一服务节点。可以理解的是,在本发明中,基于区块链网络的通信系统100可以包含多个服务节点,第一用户和第二用户分别选择服务节点为自己的账号转发信息,第一用户和第二用户可以选择不同的服务节点,也可以选择相同的服务节点。
本发明还揭示了一种基于区块链网络的通信方法,应用于上述的基于区块链网络的通信系统100,包括以下步骤:第一客户端10生成第一地址声明请求信息并通过第一用户的私钥对其进行数字签名后发送至第一服务节点20,第一地址声明信息包括第一用户的公钥和第一服务节点20的IP地址。第一服务节点20通过自身的私钥对第一地址声明请求信息进行数字签名后转发至区块链记账节点30。区块链记账节点30对接收到的第一地址声明信息进行验证后将第一地址声明信息记录在区块链帐本中。通过以上方法,第一用户将自己的公钥绑定至第一服务节点20,即选择第一服务节点20为自己的账号提供信息转发服务,具体是通过第一客户端10生成一包括第一用户的公钥和第一服务节点20的IP地址的第一地址声明请求信息,并通过第一用户的私钥对该第一地址声明请求信息进行数字签名后再将该信息发送至第一服务节点20,第一服务节点20也具有其自身的公钥和私钥,第一服务节点20用其自身的私钥对该第一地址声明请求信息进行数字签名再转发至区块链记账节点30,区块链记账节点30对该信息进行验证,验证通过后将包括第一用户的公钥和第一服务节点20的IP地址的第一地址声明请求信息记录在区块链帐本中。
进一步地,第二客户端40生成第二地址声明请求信息并通过第二用户的私钥对其进行数字签名后发送至第二服务节点50,第二地址声明信息包括第二用户的公钥和第二服务节点50的IP地址。第二服务节点50通过自身的私钥对第二地址声明请求信息进行数字签名后转发至区块链记账节点30。区块链记账节点30对接收到的第二地址声明信息进行验证后将第二地址声明信息记录在区块链帐本中。第二用户通过相同的方法将自己的公钥绑定至第二服务节点50。
当第一用户想要发送信息至第二用户,首先需要查询第二用户选择的服务节点。第一客户端10通过区块链网络查询第二用户绑定的第二服务节点50的IP地址,具体而言,第一客户端10发送第一查询信息至第一服务节点20,第一查询信息包括第二用户的公钥。第一服务节点20转发第一查询信息至区块链记账节点30。区块链记账节点30根据第一查询信息中的第二用户的公钥从区块链帐本中查找到该公钥所对应的第二服务节点50的IP地址并将查找到的第二服务节点50的IP地址发送至第一服务节点20。第一服务节点20将第二服务节点50的IP地址发送至第一客户端10。当获取到第二用户选择的第二服务节点50的IP地址后,第一客户端10根据查询到的第二用户绑定的第二服务节点50的IP地址发送第一信息至第二服务节点50。第二服务节点50将第一信息转发至第二客户端40。
第二客户端40接收到第一信息后,当第二客户想要给第一用户回复信息,首先也需要查询第一用户选择的服务节点。第二客户端40通过区块链网络查询第一用户绑定的第一服务节点20的IP地址,具体而言,第二客户端40发送第二查询信息至第二服务节点50,第二查询信息包括第一用户的公钥。第二服务节点50转发第二查询信息至区块链记账节点30。区块链记账节点30根据第二查询信息中的第一用户的公钥从区块链帐本中查找到该公钥所对应的第一服务节点20的IP地址并将查找到的第一服务节点20的IP地址发送至第二服务节点50。第二服务节点50将第一服务节点20的IP地址发送至第二客户端40。当获取到第一用户选择的第一服务节点20的IP地址后,第二客户端40根据查询到的第一用户绑定的第一服务节点20的IP地址发送第二信息至第一服务节点20。第一服务节点20将第二信息转发至第一客户端10。
通过本发明的基于区块链网络的通信系统100和通信方法,用户将自己的通信地址绑定至对应的服务节点,并通过区块链记账节点30将绑定信息记录在区块链账本中,每个用户的绑定信息永久存储在区块链网络中,不存在丢失的风险。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。