论文部分内容阅读
域名系统(Domain Name System,DNS)的所有根域名服务器保存的是同一份根区域文件,这个根区域文件,由一家名为“互联网名称与数字地址分配机构”的国际性组织维护并发布。这种由一家组织集中决策的管理方式,导致根区域文件的管理上可能存在公正性、透明性等方面的隐患。Blockstack设计并实现了一种基于区块链的域名存储系统,能够实现去中心化的域名管理,但无法保证对域名的修改是可信的。 域名修改将导致域名的状态发生转换。要实现可信的域名修改,需要对去中心化条件下的状态转换合法性进行验证。本文深入调研了去中心化环境关于状态验证的相关研究。状态验证的研究分为两大部分:单节点验证和多节点验证。论文介绍了两阶段提交和实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)这两个典型协议的实现细节。论文综合了这两种状态验证方法,在区块链的状态转换中引入了中间状态和法定人数投票,任何一个状态转换首先进入到中间状态,只有通过法定人数的一致同意,才能达到最终状态。论文对这种协议的一致性进行了理论证明,在通信延迟给定的情况下,具备状态合法性验证的区块链一致性协议在有效运行时间内,恶意出错节点容错比例为38%,单个诚实节点的容错率为25%。 论文最后基于多节点验证的区块链一致性协议,实现了DNS根区域文件管理系统,保证了根区域文件的去中心化管理和可信的域名修改。在测试环境下,向系统提出可信域名注册和不可信域名注册请求,统计其注册成功的域名数目。通过实验结果可以看出,给定恶意出错节点比例,本文提出的改进后的多节点验证方法,可信域名修改接受比例和不可信域名修改拒绝比例,在单个诚实节点出错率为0%,10%,20%的三组实验条件下,相比两阶段提交和PBFT协议均有很大改进。