一种基于区块链的去中心化根域名服务方法及系统与流程

文档序号:15594813发布日期:2018-10-02 19:23阅读:345来源:国知局

本发明涉及通信领域,尤其涉及一种基于区块链的去中心化根域名服务方法及系统。



背景技术:

根域名服务器分布在世界各地,使世界上大部分dns(domainnamesystem)域名服务器都能就近找到一个编号为a~m的13台根据域名服务器。根域名服务器定期从隐藏主根域名服务器同步根区文件。

然而,根域名服务器一旦停止服务、发布虚假信息或者篡改消息实现访问的重定向,大量internet用户将无法正常访问域名。根域名镜像服务器提升域名解析效率的同时,还需将解析的细节传送到根域名服务器上,用户的信息私密无法得到保护。

另外,主根域名服务器如果屏蔽指定的域名,则它们的地址将无法解析,集中式的管理无法摆脱美国的控制。因此,需要一种更为安全有效的系统来集成世界各地的域名服务。



技术实现要素:

本发明旨在至少克服上述缺陷之一提供一种基于区块链的去中心化根域名服务方法及系统,以实现网络的平等互联。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明的一个方面提供了一种基于区块链的去中心化根域名服务方法,包括:设置基于区块链的去中心化根域名服务系统,基于区块链的去中心化根域名服务系统包括:n个本地子系统,每个本地子系统至少包括m个客户端、本地服务器集群以及一个本地根服务器;其中,本地服务器集群包括s个服务器,n≥1,m≥1,s≥1;联盟链,联盟链包括各个本地子系统中的本地根服务器;其中:任一本地子系统中,任一客户端、本地根服务器以及联盟链之间执行顶级域名变更流程,包括:客户端向本地根服务器发送域名变更请求;本地根服务器接收域名变更请求,向联盟链发送决议请求;联盟链中的各个本地根服务器接收决议请求,进行决议,并在决议通过后,将域名变更写入各自的区块链;本地根服务器在决议通过后,向客户端发送决议结果;任一本地子系统中,任一客户端、本地服务器集群以及本地根服务器之间执行域名解析流程,包括:客户端向本地服务器集群发送域名解析请求;本地服务器集群接收域名解析请求,递归解析缓存,在缓存中不存在域名时,向本地根服务器发送域名解析请求;本地根服务器接收域名解析请求,解析域名解析请求,在域名存在时,向本地服务器集群发送域名位置;本地服务器集群接收域名位置,向目标服务器集群发送解析申请,接收目标服务器集群解析后发送的解析结果,并向客户端发送解析结果;任一本地子系统中本地根服务器以及联盟链之间执行根服务器密钥变动流程,包括:本地根服务器向联盟链发送密钥变动请求;联盟链中的各个本地根服务器接收密钥变动请求,进行决议;本地根服务器决议通过后,执行密钥变动操作,并广播本地根服务器变动后的公钥;联盟链中的各个本地根服务器接收变动后的公钥,进行记录。

另外,本地根服务器接收域名变更请求,向联盟链发送决议请求包括:本地根服务器接收域名变更请求,在设置验证合法性的流程的情况下,验证域名变更请求的合法性;本地根服务器在域名变更请求合法的情况下,向联盟链发送决议请求。

另外,本地根服务器接收域名变更请求之后,验证域名变更请求的合法性之前,方法还包括:本地根服务器判断域名变更请求的所属范围,在域名变更请求属于本地根服务器的管辖范围的情况下,执行验证域名变更请求的合法性的步骤。

另外,任一本地子系统中,在设置验证流程的情况下,任一客户端、本地服务器集群以及本地根服务器之间执行验证流程,包括:客户端向目标服务器集群发送域名验证请求;本地服务器集群接收目标服务器集群发送的域名域,向本地根服务器发送验证请求;本地根服务器接收验证请求,向本地服务器集群发送验证信息;本地服务器集群接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果。

另外,验证请求包括签名查询请求;本地根服务器接收验证请求,向本地服务器集群发送验证信息包括:本地根服务器接收签名查询请求,查询域名的签名,并向本地服务器集群发送签名;本地服务器集群接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果包括:本地服务器集群接收签名,验证签名,并在验证通过后,向客户端发送验证结果。

另外,任一本地子系统中,任一客户端以及本地根服务器之间执行顶级通用域名的下属域名申请流程,包括:客户端向本地根服务器发送获取域名位置请求;本地根服务器接收获取域名位置请求,解析获取域名位置请求,向客户端发送通用域名位置;客户端接收通用域名位置,向通用域名集群发送域名申请请求,并接收通用域名集群发送的处理结果。

本发明另一方面提供了一种基于区块链的去中心化根域名服务系统,包括:n个本地子系统,每个本地子系统至少包括m个客户端、本地服务器集群以及一个本地根服务器;其中,本地服务器集群包括s个服务器,n≥1,m≥1,s≥1;联盟链,联盟链包括各个本地子系统中的本地根服务器;其中:任一本地子系统中,任一客户端、本地根服务器以及联盟链之间执行顶级域名变更流程,其中:客户端,用于向本地根服务器发送域名变更请求;本地根服务器,用于接收域名变更请求,向联盟链发送决议请求;联盟链中的各个本地根服务器,用于接收决议请求,进行决议,并在决议通过后,将域名变更写入各自的区块链;本地根服务器,还用于在决议通过后,向客户端发送决议结果;任一本地子系统中,任一客户端、本地服务器集群以及本地根服务器之间执行域名解析流程,其中:客户端,用于向本地服务器集群发送域名解析请求;本地服务器集群,用于接收域名解析请求,递归解析缓存,在缓存中不存在域名时,向本地根服务器发送域名解析请求;本地根服务器,用于接收域名解析请求,解析域名解析请求,在域名存在时,向本地服务器集群发送域名位置;本地服务器集群,还用于接收域名位置,向目标服务器集群发送解析申请,接收目标服务器集群解析后发送的解析结果,并向客户端发送解析结果;任一本地子系统中本地根服务器以及联盟链之间执行根服务器密钥变动流程,其中:本地根服务器,用于向联盟链发送密钥变动请求;联盟链中的各个本地根服务器,用于接收密钥变动请求,进行决议;本地根服务器,还用于在决议通过后,执行密钥变动操作,并广播本地根服务器变动后的公钥;联盟链中的各个本地根服务器,还用于接收变动后的公钥,进行记录。

另外,本地根服务器通过如下方式接收域名变更请求,向联盟链发送决议请求:本地根服务器,还用于接收域名变更请求,在设置验证合法性的流程的情况下,验证域名变更请求的合法性;在域名变更请求合法的情况下,向联盟链发送决议请求。

另外,本地根服务器在接收域名变更请求之后,验证域名变更请求的合法性之前,还用于判断域名变更请求的所属范围,在域名变更请求属于本地根服务器的管辖范围的情况下,验证域名变更请求的合法性。

另外,任一本地子系统中,在设置验证流程的情况下,任一客户端、本地服务器集群以及本地根服务器之间执行验证流程,其中:客户端,用于向目标服务器集群发送域名验证请求;本地服务器集群,用于接收目标服务器集群发送的域名域,向本地根服务器发送验证请求;本地根服务器,用于接收验证请求,向本地服务器集群发送验证信息;本地服务器集群,还用于接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果。

另外,验证请求包括签名查询请求;本地根服务器通过如下方式接收验证请求,向本地服务器集群发送验证信息:本地根服务器,还用于接收签名查询请求,查询域名的签名,并向本地服务器集群发送签名;本地服务器集群通过如下方式接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果:本地服务器集群,还用于接收签名,验证签名,并在验证通过后,向客户端发送验证结果。

另外,任一本地子系统中,任一客户端以及本地根服务器之间执行顶级通用域名的下属域名申请流程,其中:客户端,用于向本地根服务器发送获取域名位置请求;本地根服务器,用于接收获取域名位置请求,解析获取域名位置请求,向客户端发送通用域名位置;客户端,还用于接收通用域名位置,向通用域名集群发送域名申请请求,并接收通用域名集群发送的处理结果。

由上述本发明提供的技术方案可以看出,通过本发明实施例提供的基于区块链的去中心化根域名服务方法及系统,可以不依赖于中心化的网络节点(服务器),从而实现各国的网络主权独立,实现自主可控,平等互联的网络世界。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的基于区块链的去中心化根域名服务系统的结构示意图;

图2为本发明实施例提供的基于区块链的去中心化根域名服务方法中的顶级域名变更流程图;

图3为本发明实施例提供的基于区块链的去中心化根域名服务方法中的域名解析流程图;

图4为本发明实施例提供的基于区块链的去中心化根域名服务方法中的验证流程图;

图5为本发明实施例提供的基于区块链的去中心化根域名服务方法中的顶级通用域名的下属域名申请流程图;

图6为本发明实施例提供的基于区块链的去中心化根域名服务方法中的根服务器密钥变动流程图。

具体实施方式

下面结合附图对本发明的实施方式进行详细说明。

图1示出了本发明实施例提供的基于区块链的去中心化根域名服务系统的结构示意图,参见图1,本发明实施例提供的基于区块链的去中心化根域名服务系统,包括:

n个本地子系统10,每个本地子系统10至少包括m个客户端101、本地服务器集群102以及一个本地根服务器103;其中,本地服务器集群102包括s个服务器,n≥1,m≥1,s≥1;

联盟链20,联盟链20包括各个本地子系统中的本地根服务器;

其中:

任一本地子系统10中,任一客户端101、本地根服务器103以及联盟链20之间执行顶级域名变更流程,包括:

客户端101,用于向本地根服务器103发送域名变更请求;

本地根服务器103,用于接收域名变更请求,向联盟链20发送决议请求;

联盟链20中的各个本地根服务器,用于接收决议请求,进行决议,并在决议通过后,将域名变更写入各自的区块链;

本地根服务器103,还用于在决议通过后,向客户端101发送决议结果;

任一本地子系统10中,任一客户端101、本地服务器集群102以及本地根服务器103之间执行域名解析流程,包括:

客户端101,用于向本地服务器集群102发送域名解析请求;

本地服务器集群102,用于接收域名解析请求,递归解析缓存,在缓存中不存在域名时,向本地根服务器103发送域名解析请求;

本地根服务器103,用于接收域名解析请求,解析域名解析请求,在域名存在时,向本地服务器集群102发送域名位置;

本地服务器集群102,还用于接收域名位置,向目标服务器集群发送解析申请,接收目标服务器集群解析后发送的解析结果,并向客户端101发送解析结果;

任一本地子系统10中本地根服务器103以及联盟链20之间执行根服务器密钥变动流程,包括:

本地根服务器103,用于向联盟链20发送密钥变动请求;

联盟链20中的各个本地根服务器,用于接收密钥变动请求,进行决议;

本地根服务器103,还用于在决议通过后,执行密钥变动操作,并广播本地根服务器103变动后的公钥;

联盟链20中的各个本地根服务器103,还用于接收变动后的公钥,进行记录。

由此可见,本发明架设了一个新的基于区块链的去中心化根域名服务系统,通过本发明实施例提供的基于区块链的去中心化根域名服务系统,可以不依赖于中心化的网络节点(服务器),从而实现各国的网络主权独立,实现自主可控,平等互联的网络世界。

其中,在应用上,各国都可以设置一台根服务器(各国根服务器的数据一致),各国依托于各个国家的根服务器的子集群由各个国家自主决定。

顶级的域名变更(包括申请与修改等)需要在联盟链进行提出决议,采用相关的共识算法来进行整体决议并记录。

域名请求解析,各国根服务器负责解析各国的请求,并返回结果,根据需求来选择是否进行安全性验证。

各个根服务器可以采用非对称加密的方式,拥有其他根服务器的公钥,公钥修改需要通过联盟链的决议来通过。

各个子集群的密钥由其上一级的服务器签名颁发,根服务器的密钥,则在开始时就确定,如需变动,需要联盟链的决议并且进行记录。

由此可见,由于使用分布式核算和存储,不存在中心化节点,系统中的数据块由整个系统中具有维护功能的节点(联盟链)来共同维护。

同时,应用本发明的系统,可以使得系统足够开放、透明,且区块链的数据对其中的所有节点公开。

系统的稳定性和可靠性更高,一旦信息经过验证并添加至区块链就会存储起来,除非能够同时控制超过51%的节点,否则单个节点上对数据库的修改是无效的,从而实现了数据的不可篡改,增强了数据的可信度。进一步,节点之间的数据交换遵循固定的智能合约进行操作。

此外,还避免了霸权主义国家对dns的独裁统治,构建平等互联的网络世界,极大的促进各国之间互通有无。

作为本发明实施例的一个可选实施方式,本地根服务器103通过如下方式接收域名变更请求,向联盟链20发送决议请求:本地根服务器103,还用于接收域名变更请求,在设置验证合法性的流程的情况下,验证域名变更请求的合法性;在域名变更请求合法的情况下,向联盟链20发送决议请求。通过在本地根服务器103上设置是否需要验证域名变更请求的合法性,可以实现验证的自主可控性。进一步地,本地根服务器103在接收域名变更请求之后,验证域名变更请求的合法性之前,还用于判断域名变更请求的所属范围,在域名变更请求属于本地根服务器103的管辖范围的情况下,验证域名变更请求的合法性。通过事先判断域名变更请求的所属范围,可以在不属于所属范围的情况下不需要进行后续处理,只有在属于所属范围的情况下才进行后续处理,提高了程序执行效率。

作为本发明实施例的一个可选实施方式,任一本地子系统10中,在设置验证流程的情况下,任一客户端101、本地服务器集群102以及本地根服务器103之间执行验证流程,其中:客户端101,用于向目标服务器集群发送域名验证请求;本地服务器集群102,用于接收目标服务器集群发送的域名域,向本地根服务器103发送验证请求;本地根服务器103,用于接收验证请求,向本地服务器集群102发送验证信息;本地服务器集群102,还用于接收验证信息,对验证信息进行验证,并在验证通过后,向客户端101发送验证结果。由此可以使得客户端101对目标服务器进行验证,提高了目标服务器的真实性,以保证后续数据交互的安全性。进一步地,验证请求包括签名查询请求;本地根服务器103通过如下方式接收验证请求,向本地服务器集群102发送验证信息:本地根服务器103,还用于接收签名查询请求,查询域名的签名,并向本地服务器集群102发送签名;本地服务器集群102通过如下方式接收验证信息,对验证信息进行验证,并在验证通过后,向客户端101发送验证结果:本地服务器集群102,还用于接收签名,验证签名,并在验证通过后,向客户端101发送验证结果。由此可以通过签名和验签的方式,验证目标服务器的真实性,以提高后续数据交互的安全性。

作为本发明实施例的一个可选实施方式,任一本地子系统10中,任一客户端101以及本地根服务器103之间执行顶级通用域名的下属域名申请流程,其中,客户端101,用于向本地根服务器103发送获取域名位置请求;本地根服务器103,用于接收获取域名位置请求,解析获取域名位置请求,向客户端101发送通用域名位置;客户端101,还用于接收通用域名位置,向通用域名集群发送域名申请请求,并接收通用域名集群发送的处理结果。由于各国的负责区域的域名变更由各国自行处理,因此保证了各国对各国自身的域名管理的自主性。

图2至图5示出了本发明实施例提供的基于区块链的去中心化根域名服务方法中的各个流程图,本发明实施例提供的基于区块链的去中心化根域名服务方法应用于上述系统,以下仅对本发明实施例提供的基于区块链的去中心化根域名服务方法进行简单说明,其他未尽事宜,具体参见上述系统的相关说明。参见图2至图5,本发明实施例提供的基于区块链的去中心化根域名服务方法,包括:

设置基于区块链的去中心化根域名服务系统,基于区块链的去中心化根域名服务系统包括:

n个本地子系统,每个本地子系统至少包括m个客户端、本地服务器集群以及一个本地根服务器;其中,本地服务器集群包括s个服务器,n≥1,m≥1,s≥1;

联盟链,联盟链包括各个本地子系统中的本地根服务器;

其中:

任一本地子系统中,任一客户端、本地根服务器以及联盟链之间执行顶级域名变更流程,包括:

客户端向本地根服务器发送域名变更请求;

本地根服务器接收域名变更请求,向联盟链发送决议请求;

联盟链中的各个本地根服务器接收决议请求,进行决议,并在决议通过后,将域名变更写入各自的区块链;

本地根服务器在决议通过后,向客户端发送决议结果;

任一本地子系统中,任一客户端、本地服务器集群以及本地根服务器之间执行域名解析流程,包括:

客户端向本地服务器集群发送域名解析请求;

本地服务器集群接收域名解析请求,递归解析缓存,在缓存中不存在域名时,向本地根服务器发送域名解析请求;

本地根服务器接收域名解析请求,解析域名解析请求,在域名存在时,向本地服务器集群发送域名位置;

本地服务器集群接收域名位置,向目标服务器集群发送解析申请,接收目标服务器集群解析后发送的解析结果,并向客户端发送解析结果;

任一本地子系统中本地根服务器以及联盟链之间执行根服务器密钥变动流程,包括:

本地根服务器向联盟链发送密钥变动请求;

联盟链中的各个本地根服务器接收密钥变动请求,进行决议;

本地根服务器在决议通过后,执行密钥变动操作,并广播本地根服务器变动后的公钥;

联盟链中的各个本地根服务器接收变动后的公钥,进行记录。

由此可见,本发明在架设了一个新的基于区块链的去中心化根域名服务系统的前提下,通过本发明实施例提供的基于区块链的去中心化根域名服务方法,可以不依赖于中心化的网络节点(服务器),从而实现各国的网络主权独立,实现自主可控,平等互联的网络世界。

其中,在应用上,各国都可以设置一台根服务器(各国根服务器的数据一致),各国依托于各个国家的根服务器的子集群由各个国家自主决定。

顶级的域名变更(包括申请与修改等)需要在联盟链进行提出决议,采用相关的共识算法来进行整体决议并记录。

域名请求解析,各国根服务器负责解析各国的请求,并返回结果,根据需求来选择是否进行安全性验证。

各个根服务器可以采用非对称加密的方式,拥有其他根服务器的公钥,公钥修改需要通过联盟链的决议来通过。

各个子集群的密钥由其上一级的服务器签名颁发,根服务器的密钥,则在开始时就确定,如需变动,需要联盟链的决议并且进行记录。

由此可见,由于使用分布式核算和存储,不存在中心化节点,系统中的数据块由整个系统中具有维护功能的节点(联盟链)来共同维护。

同时,应用本发明的方法,可以使得系统足够开放、透明,且区块链的数据对其中的所有节点公开。

系统的稳定性和可靠性更高,一旦信息经过验证并添加至区块链就会存储起来,除非能够同时控制超过51%的节点,否则单个节点上对数据库的修改是无效的,从而实现了数据的不可篡改,增强了数据的可信度。进一步,节点之间的数据交换遵循固定的智能合约进行操作。

此外,还避免了霸权主义国家对dns的独裁统治,构建平等互联的网络世界,极大的促进各国之间互通有无。

作为本发明实施例的一个可选实施方式,本地根服务器接收域名变更请求,向联盟链发送决议请求包括:本地根服务器接收域名变更请求,在设置验证合法性的流程的情况下,验证域名变更请求的合法性;本地根服务器在域名变更请求合法的情况下,向联盟链发送决议请求。通过在本地根服务器上设置是否需要验证域名变更请求的合法性,可以实现验证的自主可控性。进一步地,本地根服务器接收域名变更请求之后,验证域名变更请求的合法性之前,还包括:本地根服务器判断域名变更请求的所属范围,在域名变更请求属于本地根服务器的管辖范围的情况下,执行验证域名变更请求的合法性的步骤。通过事先判断域名变更请求的所属范围,可以在不属于所属范围的情况下不需要进行后续处理,只有在属于所属范围的情况下才进行后续处理,提高了程序执行效率。

作为本发明实施例的一个可选实施方式,任一本地子系统中,在设置验证流程的情况下,任一客户端、本地服务器集群以及本地根服务器之间执行验证流程,包括:客户端向目标服务器集群发送域名验证请求;本地服务器集群接收目标服务器集群发送的域名域,向本地根服务器发送验证请求;本地根服务器接收验证请求,向本地服务器集群发送验证信息;本地服务器集群接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果。由此可以使得客户端对目标服务器进行验证,提高了目标服务器的真实性,以保证后续数据交互的安全性。进一步地,验证请求包括签名查询请求;本地根服务器接收验证请求,向本地服务器集群发送验证信息包括:本地根服务器接收签名查询请求,查询域名的签名,并向本地服务器集群发送签名;本地服务器集群接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果包括:本地服务器集群接收签名,验证签名,并在验证通过后,向客户端发送验证结果。由此可以通过签名和验签的方式,验证目标服务器的真实性,以提高后续数据交互的安全性。

作为本发明实施例的一个可选实施方式,任一本地子系统中,任一客户端以及本地根服务器之间执行顶级通用域名的下属域名申请流程,包括:客户端向本地根服务器发送获取域名位置请求;本地根服务器接收获取域名位置请求,解析获取域名位置请求,向客户端发送通用域名位置;客户端接收通用域名位置,向通用域名集群发送域名申请请求,并接收通用域名集群发送的处理结果。由于各国的负责区域的域名变更由各国自行处理,因此保证了各国对各国自身的域名管理的自主性。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上的实施例仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通工程技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

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