CN113422767B - 一种基于区块链的域名注册管理方法及系统 - Google Patents
一种基于区块链的域名注册管理方法及系统 Download PDFInfo
- Publication number
- CN113422767B CN113422767B CN202110683511.8A CN202110683511A CN113422767B CN 113422767 B CN113422767 B CN 113422767B CN 202110683511 A CN202110683511 A CN 202110683511A CN 113422767 B CN113422767 B CN 113422767B
- Authority
- CN
- China
- Prior art keywords
- domain name
- chain
- registration management
- management
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于区块链的域名注册管理方法及系统,涉及域名安全技术领域。本发明的目的是通过设计域名注册管理链来实现域名注册数据的去中心化以及实现域名注册管理的透明化和规范化。技术要点:域名注册管理链架构,域名注册管理链是一个以增强域名数据安全为核心目标的域名注册管理系统,域名注册管理链是由域名注册管理联盟建立一个联盟式区块链,负责管理加入域名注册管理联盟的注册管理运行机构管辖范围内的所有域名数据;所有域名注册管理链节点组成域名注册管理链的运行终端网络。域名注册管理链底层区块链平台采用类Hyperledger Fabric的架构,由区块链平台提供成员管理、分布式共识、智能合约编程、数据库存储功能支持;域名注册管理链的逻辑结构主要包含以下部分,分别为域名数据、账簿、合约、角色。通过对域名注册管理链的智能合约进行静态代码测试和功能测试,以及对域名注册管理链网络进行性能测试,验证了域名注册管理链的有效性。
Description
技术领域
本发明涉及一种域名注册管理方法及系统,涉及域名安全技术领域。
背景技术
随着互联网的发展,域名成为一种重要的资产,域名安全受到越来越多的关注。域名系统(Domain Name System,DNS)是当今互联网的一项重要的基础服务,它将人类方便记忆的域名解析为机器可识别的IP地址,为人类使用互联网提供了巨大的便利。如今,域名已成为一种重要的互联网资源。域名的注册管理采用层级式中心化的形式。互联网名称与地址分配机构(The Internet Corporation for Assigned Names and Numbers,ICANN)将顶级域(Top Level Domain,TLD)的运营授权给注册管理运行机构(Registry Operator),注册管理运行机构又将域名注册及相关服务委托给域名服务机构(Registrar)。注册者(Registrant)通过注册服务机构或分销商注册域名,并将域名相关数据提交给对应的注册服务机构和顶级域注册管理运行机构,由这些管理机构统一管理。
在这种中心化域名注册管理方式中,蕴含域名管理机构权力滥用风险。注册管理运行机构唯一控制其管辖顶级域下的注册域名信息数据库,一旦注册管理运行机构的功能遭到破坏或者域名管理机构人员误操作,某些域名的可用性将受到威胁,例如域名数据被篡改或删除,导致域名无法正常解析。此外,注册服务机构把控域名注册及管理的平台,如果注册服务机构有意或无意地修改注册者提交的域名数据,也会导致域名安全问题。域名注册管理的不透明为权力滥用提供了操作空间。即使管理机构的管理方式不规范,其他人也无法获知其不规范行为。
因此说,当前的域名注册管理体系中,域名关联的域名数据完全由域名所属的域名注册管理运行机构和注册服务机构控制维护,存在注册管理运行机构被攻击导致的单点故障或工作人员误操作导致的数据被更改或删除风险。此外,域名注册管理流程的不透明给域名的规范化注册管理带来了不可控因素。
区块链技术的出现为去中心化域名注册管理提供了一种解决方案。区块链是一种不依赖可信中心节点的分布式账簿技术,它利用密码学上严格的交易验证规则和严谨的链式数据结构,保证账簿中数据无法被轻易篡改,同时利用共识算法在对等网络环境中实现账簿数据共享。结合区块链技术针对域名注册管理过程中存在的安全问题设计去中心化解决方案,采用区块链的分布式账簿存储域名数据,替代注册管理运行机构维护的域名数据库;根据各方共识制定域名注册管理的规则并将规则写成智能合约,利用区块链不可篡改且可追溯的特性保证域名注册管理流程的透明性,从而防范中心式域名注册管理方案中蕴含的权力滥用风险。
由于本发明主要研究利用区块链重构域名注册管理体系,背景技术中梳理结合区块链技术的分布式域名注册管理服务的研究现状。
Namecoin[1]是首个将域名服务和区块链结合的项目,利用区块链建立一个去中心化的域名系统。Namecoin支持在特定名字空间下注册名字,以及更新名字绑定的数据、转让名字、重置名字失效时间等操作。Namecoin中注册名字采用两阶段提交方法,首先提交名字的哈希值预定名字,之后再提交真实的注册名字。这种方式可以防止名字注册操作未被确认前被抢先注册。Namecoin包含一个“.bit”名字空间,类似于顶级域,用户注册的名字均在此名字空间下。但是,“.bit”排除在ICANN域名系统之外,其注册域名只能通过Namecoin提供的特殊浏览器解析。Muneeb等[2]在Namecoin开发和运维经验的基础上提出Blockstack,利用分层和虚拟链等技术将域名服务迁移到比特币系统中。在Blockstack用户采用“预定-注册”两步骤获得名字所有权。与Namecoin不同的是,注册不同名字的花费不是固定的。Blockstack中采用价格函数,根据名字的长度和字符定价,避免短域名和有意义的域名被大量注册。以太坊名称服务(Ethereum Name Service,ENS)[3]是一个基于以太坊区块链的分布式的、开放并且可扩展的命名系统,主要功能是将人类可读的名字映射为机器可读的标识符。ENS由两部分组成:注册和解析。注册由一个智能合约完成,该合约维护所有域名以及子域的列表,并存储三个关键信息:域名所有者,域名解析器和该域名记录的缓存时间。域名所有者可以是外部用户,也可以是智能合约,所有者可以设置域名解析器和缓存生存期,将域名所有权转移到另一个地址,以及更改子域的所有权。Handshake[4]是由比特币闪电网络的创始人Joseph Poon在2018年建立的开源区块链域名项目,聚焦于顶级域名注册、交易、解析以及域名所有权认证,旨在改变目前域名集中化的治理格局。Handshake的目标是以分布式的形式维护根区文件并取代根服务器Handshake兼容现有DNS。系统初始包含ICANN根区中所有域名以及Alexa排名前10万的域名,这些域名被称为保留域名。Handshake利用DNSSEC证明的方式将保留域名所有者迁移到系统中,从而绕过域名拍卖。BlockDNS[5]也是一个基于区块链的名称系统,旨在解决DNS的中心化问题和数据的真实性问题。BlockDNS允许用户申请二级域名,域名与域名所有者的公钥绑定,域名所有者可以转让、续期域名和更新域名数据。
综上可以看出,现有技术中并没人提出通过域名注册管理链来实现域名注册数据的去中心化以及实现域名注册管理的透明化和规范化。
发明内容
本发明要解决的技术问题是:
本发明的目的是提供一种基于区块链的域名注册管理方法及系统,通过域名注册管理链来实现域名注册数据的去中心化以及实现域名注册管理的透明化和规范化。
本发明的技术构思如下:
在当前的域名注册管理体系中,层级式中心化的管理结构在技术上缺乏对域名管理机构的制约机制,存在管理机构权力滥用的风险。一旦管理机构有意或无意的行为导致域名数据被修改或删除,将威胁域名所有者对域名的所有权。基于以上安全考虑,本发明提出一种新的域名注册管理架构——域名注册管理链(Domain Name RegistrationManagement Chain,DNRMC),旨在改善现有域名注册管理体系的中心化问题。本发明的主要研究内容分为以下几点:
(1)域名注册管理链架构设计
本发明依托区块链技术设计域名注册管理链架构,实现域名数据多方分布式存储。域名注册管理链由一系列域名管理机构维护,主要负责存储顶级域下所有注册域名数据,并记录域名注册管理操作。与现有域名注册管理体系相比,域名注册管理链中域名数据采用多参与方分布式存储,且域名操作不可篡改、不可伪造,增加了域名的安全性。
(2)域名生命周期管理智能合约技术
本发明将域名生命周期管理与区块链智能合约结合,提出域名生命周期管理智能合约技术。该技术通过制定域名生命周期管理的共识协定,并将共识写入智能合约在区块链中执行,从而保证域名生命周期管理流程的规范化与透明化。域名生命周期管理智能合约技术在当前域名生命周期管理方案的基础上规定了域名生命周期各阶段的具体时间节点,且支持域名注册、续费、赎回、注销、转让、域名监管等功能,为域名注册管理链提供了可信的域名注册管理的方案。
(3)基于区块链的域名所有权证明技术
为兼容当前的域名注册管理体系中的注册域名,本发明提出基于区块链的域名所有权证明技术。针对待证明域名部署DNSSEC的不同情况,本发明设计了两种域名所有权证明方案,分别是依赖DNSSEC的所有权证明方案和依赖区块链预言机的所有权证明方案。将域名所有权技术融入域名注册管理链,实现当前域名注册管理体系的域名所有者到域名注册管理链的迁移,从而达到域名注册管理链管理所有注册域名的目的。
本发明为解决上述技术问题所采用的技术方案为:
一种基于区块链的域名注册管理方法,所述基于区块链的域名注册管理方法通过域名注册管理链来实现,域名注册管理链的设计过程为:
步骤一、域名注册管理链架构设计
域名注册管理链是一个以增强域名数据安全为核心目标的域名注册管理系统,域名注册管理链是由域名注册管理联盟建立一个联盟式区块链,负责管理加入域名注册管理联盟的注册管理运行机构管辖范围内的所有域名数据;
域名注册管理联盟是由一系列注册管理运行机构和注册服务机构组成的一个合作组织;联盟中的成员就域名注册管理的规则和流程达成共识,根据共识管理域名,共同维护顶级域下的域名数据;
域名注册管理链节点由域名注册管理联盟中的成员提供,或者成员委托服务提供商执行链节点的运维职责;所有域名注册管理链节点组成域名注册管理链的运行终端网络,每个域名注册管理链节点中都存储一份域名数据的完整副本以及域名注册管理链网络中发生的所有事务数据,各节点之间通过共识机制达成一致性;
域名数据是与注册域名相关的注册管理运行机构和注册服务机构负责维护的数据,域名数据分为域名注册数据和域名资源记录数据;
步骤二、域名注册管理链逻辑设计
域名注册管理链底层区块链平台采用类Hyperledger Fabric的架构,由区块链平台提供成员管理、分布式共识、智能合约编程、数据库存储功能支持;
域名注册管理链的逻辑结构主要包含以下部分,分别为域名数据、账簿、合约、角色,成员(用户)根据各自的“角色”执行不同的“合约”程序对“账簿”进行操作,从而实现对账簿中“域名数据”的管理;
(1)域名数据:域名数据域名注册管理以及域名使用过程中的必要数据;域名数据划分为域名注册数据和域名资源记录,两部分的访问权限不同;
(2)角色:用于赋予成员权限,域名注册管理链中采用基于角色的权限管理,通过协议显式地将身份和角色绑定在一起,从而实现对各类账簿的访问控制;
(3)账簿:域名注册管理链的数据库,记录域名注册管理链的成员信息、成员间的域名注册管理相关协议以及域名数据;根据存储数据功能,将账簿划分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿;
(4)合约:实现域名注册及域名管理逻辑的程序,合约由成员提交的事务触发执行,执行结果是对账簿的操作;根据域名注册管理链的功能划分,有成员管理合约、域名数据合约、域名管理合约、域名交易合约、域名监管合约。
进一步地,在域名注册管理链逻辑设计中,所述域名数据具体包含:
根据数据的用途,将域名数据分为两类,一类是域名注册数据,一类是域名资源记录数据,
域名注册数据是域名的WHOIS信息,可用来查询域名是否已被注册以及注册域名的详细信息;域名注册数据包含的数据名称及含义如下表:
域名资源记录数据是指添加到上级顶级域的区域中的记录,用于域名解析,域名注册管理链中涉及的资源记录数据及对应的资源记录类型如下表所示:
进一步地,在域名注册管理链逻辑设计中,成员身份与角色分类如下:
域名注册管理链采用基于角色的权限控制,根据成员的角色对系统内事务进而对账簿进行强制访问控制;
成员的身份(ID)表示为在现实世界的机构名称或个体注册名称,由域名注册管理链认证的证书颁发机构(Certificate Authority,CA)进行身份认证并颁发证书;CA保证其认证的每个成员身份的唯一性;对成员的身份鉴别在链外实现,被认证的成员记录在链上;
每个的成员身份绑定一种角色,成员角色由其他成员在系统外审批确定,身份与角色的绑定本身是在域名注册管理链中实现;
域名注册管理链中的角色分为以下五类:
(1)注册管理运行机构:作为顶级域名的管理机构和其他注册管理运行机构或注册服务机构一起建立域名注册管理联盟,审核其他新加入的注册管理运行机构和注册服务机构;负责将其管辖范围内顶级域名下的注册域名数据上传到域名注册管理链;如果有更新的域名数据提交到注册管理机构,注册管理运行机构负责将更新的数据上传到域名注册管理链;注册管理运行机构还具有域名监管权,可以对注册域名进行强制操作;
(2)注册服务机构:注册服务机构是经ICANN认证允许销售域名的组织;注册服务机构可以加入域名注册管理联盟,提供接入域名注册管理链的节点;注册服务机构负责将域名注册管理链外注册的域名或域名更新数据提交到域名注册管理链上;注册服务机构还拥有一定的域名监管权,但只限于监管通过其注册的域名;
(3)注册者:注册者可以通过域名注册管理链注册域名,并管理其持有的域名,包括更新域名数据、转让域名、续约、赎回域名、注销域名;链外注册域名的注册者可以在域名注册管理链内申明域名所有权;
(4)监管者:监管者拥有域名监管权,由第三方监管部门担任,负责监管域名在注册及管理使用过程中是否违反法律法规,并发布强制执行协议;
(5)支付机构:支付机构是域名交易双方之间建立的一个公共的、可以信任的中介,负责将域名注册管理链外进行的域名交易双方的资金往来上传到链上;支付机构是支付机构实体或支持的接口程序。
进一步地,在域名注册管理链逻辑设计中,账簿类别及对应的存储内容如下:
账簿根据数据的用途,分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿;
每个账簿包含一组关联性比较强的数据,账簿中包含若干张表,每张表包含若干条记录,每条记录由唯一主键(key)标识,同一张表中的记录的主键标识具有相同的前缀,且后缀为相同类型字段;当需要存、取、删除状态信息时,合约通过主键标识访问这些状态;账簿及其主要数据表信息如下表所示,
其中记录主键“{}”代表记录中对应字段的值;
(1)成员账簿
成员账簿中记录成员身份(机构名称或个人名称)及其角色类型,其中身份与角色绑定;每个成员账簿包含一个成员表;
成员表存储域名注册管理链中所有成员的身份信息;成员由域名注册管理链认可的证书权威(CA)进行身份认证并颁发证书,成员表的记录内容主要包含成员ID、证书发行者ID、角色,每条记录的主键标识后缀为成员ID;
(2)域名数据账簿
域名数据账簿记录域名注册管理链中的域名数据,主要包含两个数据表:
域名联系人信息表存储域名的联系人信息;域名联系人信息表的记录内容包括域名注册者、域名管理员、域名技术员的联系方式,细分为地址、电话、传真、电子邮件等,每条记录的主键标识为域名字符串;
域名资源记录表存储域名的资源记录组;表中每条记录的主键标识为域名字符串;
(3)域名管理账簿
域名管理账簿记录域名管理过程中需要的相关数据,包括域名注册管理运行机构或注册服务机构在域名注册及管理过程中与注册者之间的协议以及域名要提交给注册管理机构的资源记录;域名管理账簿中包含顶级域协议表、域名注册协议表、域名状态协议表和强制执行协议表;
顶级域协议表记录顶级域与其对应的注册管理运行机构的绑定关系;顶级域与注册管理运行机构的绑定协议在链外签署,域名注册管理链中只记录结果;顶级域协议表的记录内容包括顶级域的注册管理运行机构ID,顶级域是否在域名注册管理链中开放注册,每条记录的主键标识后缀为TLD字符串;
注册协议表是注册服务机构与注册者之间的协议,授予注册者对注册域名的所有权;注册协议表的记录内容包括域名注册者ID、域名创建时间、域名生命周期、域名更新时间,域名失效时间,每条记录的主键标识后缀为域名字符串;
域名状态协议表记录注册管理运行机构或注册服务机构与注册者之间的协议,为域名赋予不同的状态;域名状态协议表的主要记录内容包括域名状态、状态生效时间、状态失效时间,每条记录的主键标识后缀为域名字符串;
强制执行协议表记录注册管理运行机构或注册服务机构对域名的强制操纵,从而改变域名数据或者域名的状态或生命周期;强制执行协议表的主要记录内容包括执行证明、执行操作、执行机构、执行时间等,每条记录的主键标识后缀为域名字符串;
(4)域名交易账簿
域名交易账簿存储域名交易过程的相关数据,其中包括域名转让协议表、域名竞价协议表、付款协议表和收款协议表;
域名转让协议表记录交易双方之间的协议,转让方将域名所有权转让给被转让方;主要记录内容包括交易双方的ID、交易金额、交易双方对交易的确认信息等,每条记录的主键标识后缀为域名字符串;
域名竞价协议表记录域名拍卖过程中竞价者与注册服务机构之间的协议,竞价者承诺自己的出价;主要内容包括域名底价、竞价者的出价、注册服务机构等信息,每条记录的主键标识后缀为域名字符串;
付款协议表记录付款方与第三方支付机构之间的协议,支付机构确认付款方是否已支付;主要内容包括付款方ID、付款域名、付款金额、支付机构ID、支付机构确认信息,每条记录的主键标识后缀为域名字符串和付款方ID的拼接字符串;
收款协议表记录支付机构与收款方之间的协议,收款方确认是否收到支付机构的付款;主要内容包括收款方ID、支付机构ID、收款方确认信息等,每条记录的主键标识后缀为域名字符串和收款方ID的拼接字符串;
从存储内容类型的角度划分,所有账簿中的数据表可分为三类,成员表、协议表和域名数据表,成员表存储域名注册管理链中的成员信息;协议表存储成员之间在域名注册管理过程中达成的协议,从而完成域名注册管理;域名数据表存储域名数据。
进一步地,在域名注册管理链逻辑设计中,合约的管理规则为:
合约是实现域名注册及注册域名管理逻辑的程序,合约由成员提交的事务触发执行,以事务的参数作为输入,以对账簿的操作作为输出,并根据事务提交者的角色实现访问控制,基于账簿的当前状态来执行程序;
根据操作数据表的类型划分,合约分为数据变更合约和协议合约;对于数据变更合约,提交事务后正常执行操作域名数据表;对于协议合约,提交事务后操作协议账簿;协议双方签订协议有两种不同的模式,一种是“提交即生效”,协议一方提交协议提案后,协议立即生效;另一种是“双方确认生效”,协议一方提交协议提案后,需要双方确认才能完成协议签订,如果双方中任意一方拒绝签订协议,则协议无效;
根据合约实现的功能划分,合约分为成员管理合约、域名数据合约、域名管理合约、域名交易合约和域名监管合约,各合约的类型及操作数据表对应的账簿如下表所述:
进一步地,在合约的管理规则中,各种合同的定义为:
(1)成员管理合约
成员管理合约提供用户加入域名注册管理链的程序;
注册管理运行机构或注册服务机构的加入采用链外审核链上登记的方式,注册管理运行机构成员在域名注册管理链外审批成员资格,审批通过后由注册管理运行机构成员提交成员加入事务;
注册者的加入采用链外认证链上登记的方式,由CA认证成员身份,注册者提供CA证书并提交成员加入事务;
(2)域名数据合约
域名数据合约负责域名数据管理相关的事务,包括上传域名数据,更新域名数据,删除域名等操作;
(3)域名管理合约
域名管理合约负责域名注册管理相关的事务,包括注册管理运行机构对顶级域的管理以及对下级域名的管理,注册服务机构对域名的管理,注册者注册域名以及在域名生命周期内对注册域名的管理,包括域名续费、域名赎回;
对域名生命周期的管理为协议合约,协议合约采用提交即生效的模式;
(4)域名交易合约
域名交易合约负责域名交易相关的事务,包括域名拍卖、域名转让,以及域名交易过程中涉及的支付行为;域名交易合约只记录双方的资金往来,并不参与具体的支付;
域名交易合约中涉及到域名买卖与资金支付的协议,采用双方确认生效的模式;对于协议一方发起的协议申请,协议另一方可采取三种态度:
1)确认:同意签署协议,协议双方均确认后协议生效;
2)拒绝:协议一方拒绝签署协议,协议无效;
3)默认生效:协议一方发起协议的一段时间内,协议另一方没有对协议进行操作,即没有确认协议也没有拒绝协议;一段时间后默认另一方同意签订协议,协议生效;
(5)域名监管合约
域名监管合约执行对域名的监管;对于恶意使用或者侵害他人权益的域名,有监管权的成员可以执行监管合约,提出对域名的执行办法;域名监管合约与域名管理合约联合使用,域名监管合约提交域名强制执行操作,域名管理合约实际操作域名;
域名监管合约采用提交即生效的模式。
进一步地,在合约的管理规则中,不同角色执行各种合约权限为:
注册管理运行机构角色的成员可执行成员管理合约、域名数据合约、域名管理合约、域名监管合约;注册服务机构角色的成员可执行域名数据合约、域名管理合约、域名监管合约;注册者角色的成员可执行成员管理合约、域名数据合约、域名管理合约、域名交易合约;监管者角色的成员可执行域名监管合约;支付机构角色的成员可执行域名交易合约。
进一步地,在域名管理合约中,域名注册采用维克里拍卖的形式。
进一步地,所述域名管理合约还负责实现当前体系下的域名注册者向域名注册管理链的迁移。
一种基于区块链的域名注册管理系统,所述基于区块链的域名注册管理方法通过域名注册管理链来实现,域名注册管理链包括:
域名注册管理链架构模块,域名注册管理链是一个以增强域名数据安全为核心目标的域名注册管理系统,域名注册管理链是由域名注册管理联盟建立一个联盟式区块链,负责管理加入域名注册管理联盟的注册管理运行机构管辖范围内的所有域名数据;域名注册管理联盟是由一系列注册管理运行机构和注册服务机构组成的一个合作组织;联盟中的成员就域名注册管理的规则和流程达成共识,根据共识管理域名,共同维护顶级域下的域名数据;域名注册管理链节点由域名注册管理联盟中的成员提供,或者成员委托服务提供商执行链节点的运维职责;所有域名注册管理链节点组成域名注册管理链的运行终端网络,每个域名注册管理链节点中都存储一份域名数据的完整副本以及域名注册管理链网络中发生的所有事务数据,各节点之间通过共识机制达成一致性;域名数据是与注册域名相关的注册管理运行机构和注册服务机构负责维护的数据,域名数据分为域名注册数据和域名资源记录数据;
域名注册管理链逻辑模块,域名注册管理链底层区块链平台采用类HyperledgerFabric的架构,由区块链平台提供成员管理、分布式共识、智能合约编程、数据库存储功能支持;域名注册管理链的逻辑结构主要包含以下部分,分别为域名数据、账簿、合约、角色,成员(用户)根据各自的“角色”执行不同的“合约”程序对“账簿”进行操作,从而实现对账簿中“域名数据”的管理;
(1)域名数据:域名数据域名注册管理以及域名使用过程中的必要数据;域名数据划分为域名注册数据和域名资源记录,两部分的访问权限不同;
(2)角色:用于赋予成员权限,域名注册管理链中采用基于角色的权限管理,通过协议显式地将身份和角色绑定在一起,从而实现对各类账簿的访问控制;
(3)账簿:域名注册管理链的数据库,记录域名注册管理链的成员信息、成员间的域名注册管理相关协议以及域名数据;根据存储数据功能,将账簿划分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿;
(4)合约:实现域名注册及域名管理逻辑的程序,合约由成员提交的事务触发执行,执行结果是对账簿的操作;根据域名注册管理链的功能划分,有成员管理合约、域名数据合约、域名管理合约、域名交易合约、域名监管合约。
本发明具有以下有益技术效果:
为防范背景技术中所述的风险,本发明提出一种基于区块链的域名注册管理架构,称为域名注册管理链。域名注册管理链利用区块链的去中心化、分布式账簿存储、不可篡改等特性,实现域名数据的多参与方去中心化管理以及域名注册管理流程的透明化和规范化。
本发明提出域名生命周期管理智能合约技术,作为域名注册管理链中的域名注册管理方案,以实现域名注册管理的透明化和规范化。该技术利用区块链的智能合约规范域名生命周期各阶段的时长以及不同生命周期阶段转换的规则,并规定不同阶段可执行的域名操作并基于区块链智能合约实现域名操作内部逻辑。域名操作包括域名注册、域名续费、域名赎回、域名删除、域名转让和域名监管。
本发明提出基于区块链的域名所有权证明技术,旨在域名注册管理链兼容当前域名注册管理体系下的注册域名。该技术共包含两种域名所有权证明方案,一种是依赖DNSSEC的域名所有权证明方案,针对区域已成功部署DNSSEC的域名。该方案要求域名所有者使用DNSSEC密钥对包含特定数据的资源记录签名,由链上智能合约验证签名真实性;另一种是依赖区块链预言机的域名所有权证明方案,这是针对无法部署DNSSEC的区域提供的补充方案。该方案采用“挑战应答”的形式,域名所有者在本区域添加“挑战”内容作为“应答”,由区块链预言机链外验证。
域名注册管理链架构结合域名生命周期管理智能合约技术与域名所有权证明技术,支持新域名注册以及当前域名注册管理体系中已注册域名的迁入管理。本发明依托Hyperledger Fabric区块链框架实现域名注册管理链,部署域名注册管理链的组织架构和网络环境。并通过对域名注册管理链的智能合约进行静态代码测试和功能测试,以及对域名注册管理链网络进行性能测试,验证了域名注册管理链的有效性。
附图说明
图1为域名注册管理相关实体示意图,图2为域名注册管理链架构示意图,图3为域名注册管理链逻辑设计结构图,图4为角色执行合约权限示意图,图5为域名生命周期示意图,图6为域名竞拍流程示意图,图7为域名转让流程示意图,图8为依赖DNSSEC的域名所有权证明过程示意图,图9为依赖预言机的域名所有权证明过程示意图,图10为预言机验证流程示意图,图11为提案测试事务吞吐量对比图,图12为提案测试事务延迟对比图,图13为查询测试事务吞吐量对比图,图14为查询测试事务延迟对比图。
具体实施方式
下面结合附图对本发明的实现进行如下描述:
一、域名系统与区块链
1.1域名系统
域名系统(Domain Name System,DNS)是当今互联网使用的命名服务,负责域名和IP地址的相互映射。
DNS采用层次化的域名空间,最顶层为根区(root zone),通常使用“.”表示,域名被组织在根域的子级中,每个标签对应不同的层级。域名的第一级为顶级域名(Top-LevelDomain),顶级域名之下又继续分为二级域名、三级域名。每个域名标识了一组资源信息,与特定域名相关联的资源信息集由单独的资源记录(resource record,RR)组成。
DNS以“区域”作为最小管理单元,每个区域委托给不同的管理者。管理者将区域信息以资源记录的形式整合成区域文件,包括域名到IP地址的映射或其他信息。资源记录常用的类型包括SOA、NS、A、AAAA等[6]。
由于DNS缺乏对应答信息真实性和完整性的验证,攻击者可能伪造DNS应答,使用户或递归服务器获得错误的DNS信息。针对DNS的安全问题,域名系统安全扩展(DNSSecurity Extension,DNSSEC)[7-9]采用密码学的方式验证DNS应答信息的来源真实性与数据完整性。区域使用区域私钥对本区域的资源记录签名,解析器使用区域公钥验证签名,验证失败即表明DNS应答遭到破坏。
为实现资源记录的签名和验证,DNSSEC在现有DNS协议的基础上,新增了一些资源记录类型[9],DNSKEY类型用于记录区域公钥信息;DS类型记录公钥的摘要,存储在父区域中;RRSIG类型记录资源记录集的签名信息;NSEC类型用于否定存在验证。
1.2域名注册管理
对于二级域名或者某些国家和地区顶级域下的三级域名,对外界开放注册。图1展示了DNS域名注册管理涉及的相关实体[10]。
ICANN负责管理和协调国际互联网络域名系统。ICANN与某个顶级域的注册管理运行机构签署《注册管理机构协议》[11],将顶级域的管理权委托给注册管理运行机构。
注册管理运行机构负责维护其管辖范围内顶级域下所有注册域名数据,同时负责运营顶级域的权威服务器以及生成区域文件。顶级域下注册域名的主数据库被称为注册管理机构(Registry)。注册管理运行机构可以将注册管理机构的某些职能托管给后端注册管理机构。
注册服务机构是由ICANN授权,并得到注册管理运行机构认证可以销售域名的实体。注册服务机构与ICANN签订《注册服务机构委任协议》[12],并履行注册服务机构职责。
除注册服务机构外,域名分销商也可以对外销售域名。分销商是注册服务机构下属的或与注册服务机构签订了合同的机构,通常还提供其他服务,例如网络托管、电子邮箱服务等等。
注册者是注册域名的组织或个人。注册者注册域名时需要向一个域名注册服务机构或域名分销商提交申请。注册者受到其注册域名的注册服务机构规定条款和条件的约束。
域名注册遵循“先申请先注册”的原则。注册者向注册服务机构或域名分销商提交域名申请,注册服务机构验证申请的域名是否符合注册要求以及是否是未注册域名,之后向注册管理运行机构提交注册申请。注册者需要向注册服务机构提供域名注册数据(Domain Name Registration Data,DNRD)[13],包括:
1)注册人、管理联系人及技术联系人的姓名及(注册人代表公司时)公司职务;
2)注册人、管理联系人及技术联系人的邮政地址;
3)注册人、管理联系人及技术联系人的电子邮件地址;
4)注册人、管理联系人及技术联系人的电话号码;
5)WHOIS规范项下所规定的WHOIS信息;
这些信息由注册服务机构负责维护,用于提供WHOIS服务,便于公众或其他应用程序查询域名是否被注册以及注册域名的详细信息。WHOIS信息还包括域名注册日期、失效日期、域名状态、DNS服务解析器等。
注册服务机构还需将部分域名数据提交给域名注册管理运行机构,然后导入注册管理运行机构维护的域名数据库。这些数据包括:
1)申请注册的域名;
2)注册域名的主要域名服务器和辅助域名服务器的名称及IP地址;
3)注册服务机构身份信息;
4)注册域名失效时间;
5)注册管理运行机构要求提交的任何其他数据;
完成注册并在注册管理运行机构备案后,注册者可以正常使用域名。若注册者需更新域名数据,应将更新后的数据信息提交给注册服务机构,注册服务机构在七个工作日内将数据信息提交到域名注册管理运行机构,或将数据信息导入注册管理机构数据库。
1.3区块链
Nakamoto[14]于2008年提出了一种加密数据货币,被称为比特币。作为比特币中的关键技术,区块链技术去中心化和不可篡改的特性,吸引了广泛的关注。区块链通过密码学方式在点对点网络中构建一个去中心化的、不可篡改、不可伪造的分布式账簿。账簿采用链式结构,记录了区块链网络的所有数据操作,并按时间顺序存储,具有可追溯性和高可信性。区块链网络不依赖中心节点进行权限控制,每个节点都可以读写账簿,避免了中心化结构存在的权力滥用和单点失效等问题。
1.3.1区块链技术
简单地说,区块链是一种去中心化的分布式账簿数据库,它利用链式数据结构存储和验证数据,利用分布式节点间的共识算法更新数据,利用密码学手段保证数据传输和访问的安全,利用由自动化脚本代码编成的智能合约操作数据。
区块链系统中,交易数据存储于区块中,区块以链式结构组成账簿。每个区块由区块头和区块体两部分组成。区块头记录上一个区块的区块头的哈希值等信息,区块体记录本区块包含的全部交易信息。这种链式结构使得篡改区块的代价十分庞大。如果想要篡改某个区块的数据,必须同时修改该区块后方的所有区块。
根据区块链的去中心化程度以及对账簿的读写权限,区块链分为三种类型:公有链、私有链和联盟链。以比特币为代表的公有链完全去中心化,网络中的节点可以自由加入或退出,所有用户都能参与记账竞争和区块交易。私有链由组织控制写入权,并设置数据读取的访问限制,网络中节点的加入或退出必须获得组织许可,这种区块链组建方式安全且高效,适合在组织内部使用。联盟链的开放程度介于二者之间。联盟链由多个组织共同组建,节点需加入不同组织,并通过身份授权加入网络,所有组织的节点共同维护区块链网络的运行。这种方式既保留了一定的写入控制权,又维护了区块链的去中心特性。本发明提出的域名注册管理链选择以联盟链的形式组建区块链网络。
1.3.2区块链平台
目前有三种主流的区块链平台,分别是比特币(Bitcoin)、以太坊(Ethereum)和超级账本(Hyperledger)。Hyperledger是由Linux基金会发起的开源区块链项目,旨在发展商业区块链平台。Fabric是其中一个发展较好的子项目。本部分主要讨论HyperledgerFabric的相关理论。
Hyperledger Fabric[15]是针对联盟链设计的区块链底层基础框架。
智能合约和账簿是Hyperledger Fabric系统应用开发的核心,账簿包含与业务对象的当前和历史状态有关的事实,智能合约定义了生成追加到账簿中的事实的可执行逻辑。
Hyperledger Fabric的账簿系统中,存在两个组件:世界状态(world state)和事务日志。世界状态代表所有账簿状态当前的值,是总账的数据库;事务日志记录了构成世界状态的所有交易,是世界状态的更新历史。交易数据被打包成区块且经共识确认后,先追加到事务日志中,再写入到世界状态。在大多数情况下,智能合约只与世界状态数据库交互。
Hyperledger Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码,运行在链码安全容器中。系统链码实现系统层面的功能,负责Fabric节点的处理逻辑,包括系统配置、背书、校验等工作。用户链码实现用户的应用功能,通过Fabric提供的接口与账簿平台交互。一个智能合约定义在一个链码中,或多个智能合约同时定义在一个链码中,以链码为单位编译成一个独立的应用程序,部署到区块链网络中。通过开发不同交易逻辑的智能合约,在Hyperledger Fabric框架上实现不同的功能。
1.3.3区块链预言机
区块链系统的最佳实践是建立一个确定的、封闭的系统环境,内部与外部世界隔离,智能合约无法访问区块链网络之外的数据。但是某些情况下区块链智能合约需要请求关于真实世界状态的数据。区块链预言机(oracle)[16]是为区块链智能合约提供外部数据的第三方服务,架起了区块链与外部世界的桥梁。当区块链中的智能合约需要请求外部数据时,预言机智能合约接收到数据请求后,请求链外的接口收集数据,并将数据返回给请求的智能合约。
根据功能和特征,预言机划分为不同的类型,分类如表1所示。
表1区块链预言机分类表[17]
软件预言机又称为确定性预言机,与在线数据源交互并将数据传递给区块链智能合约。软件预言机的数据源包括在线数据库、服务器、网站等。它从这些数据源获取数据,并可实时传输数据,是最常见的区块链预言机类型。硬件预言机从物理世界获取数据并将可用数据传递到智能合约,数据源包括环境传感器、IoT等信息读取设备。软件预言机和硬件预言机统称为自动化预言机,当有数据获取请求时,预言机收集信息并传递给区块链。人类预言机是以特定领域拥有专业知识技能的人作为数据来源。专业人士研究和验证不同数据源信息的真实性,并将信息转换为智能合约需要的数据形式。不同于自动化预言机,人类预言机不仅收集数据,还可以创造数据;不仅可以处理确定性的查询请求组,还可以响应任意问询,这很难由机器完成。
集中式预言机由一个实体控制,并且该实体是预言机唯一的信息提供源,因此对信息源的任何恶意干扰都会对智能合约产生直接影响。集中式预言机的主要问题是存在单点故障,使得合约对漏洞和攻击的弹性降低。分布式预言机又称为共识预言机,不依赖单一的数据源。智能合约通过查询多个预言机确定数据的有效性和准确性,大大提高了信息的可靠性。例如,可能使用5个预言机响应的平均值,或者根据7个预言机中的5个决定一个事件的结果。
请求-响应式预言机常用于数据空间较大并且用户只需要其中一部分的情况。该模式中,链上智能合约向预言机发起请求,预言机的链下基础设施负责监听请求、检索并返回数据。发布-订阅式预言机多用于提供数据广播服务。当有新信息或标志订阅者可用的新数据时,预言机更新内容。订阅者可以轮询预言机以检查信息是否更新,或者监听预言机智能合约的更新并在预言机更新时操作。即时读取式预言机用于需要根据数据做出实时决定的情况。此类预言机将数据存储在智能合约存储中,并且实时更新。其他智能合约向预言机智能合约发起获取预言机数据的请求,也可以由支持区块链的应用程序直接向预言机请求数据。
流入预言机将信息从外部数据源传递到智能合约,流出预言机将信息从智能合约发送到外部世界。
预言机扩大了智能合约的可操作范围,也降低了区块链系统的安全性和稳定性。必须谨慎使用区块链预言机,选择安全的预言机。
二、域名注册管理链架构设计
2.1设计目标
现有的域名注册管理体系中,不同的顶级域归属不同的注册管理机构负责,并由ICANN委托注册管理运行机构提供注册管理机构服务,服务内容包括管理注册管理机构数据库,发布区域文件,运作DNS和DNSSEC,制定顶级域名营销策略和分配政策。这种由一个注册管理运行机构管理顶级域的中心化管理方式不可避免地引发了一些安全担忧。
(1)权力滥用问题。如果注册管理运行机构恶意操纵注册管理机构数据库,篡改或删除注册管理机构中的域名数据,可能会导致注册域名无法解析或指向错误的IP地址,给域名注册人带来巨大的损失。注册服务机构是注册者和注册管理运行机构之间的中介组织,如果注册服务机构恶意篡改注册者提交的域名数据或失误提交给注册管理运行机构错误的域名数据,也会造成注册者的损失。
(2)数据安全问题。中心化管理数据库增加了数据被攻击的风险。如果攻击者攻击了中心数据库,可能会出现“单点失效”,导致数据库无法提供服务。即使注册管理运行机构采用分布式数据库,只是将数据存储在多个节点,数据库仍然是由一个组织控制,数据的来源仍然只有一份,如果主数据库的数据被篡改,辅助数据库的信息也会被篡改。
(3)透明性不足问题。当前域名注册管理流程不透明,为权力滥用提供了可操作性,增加了域名管理机构不规范管理域名的隐患。即使域名被注册,域名所属的域名管理机构仍可以操控域名数据。如果域名管理机构擅自更改域名数据,例如域名状态等,域名所有者无法获知这类操作。
基于对现有域名注册管理方案的安全考虑,本发明设计了一个多方参与的域名注册管理系统,主要用于解决域名数据管理中的中心化问题,为域名数据提供一种不可篡改、不可伪造的分布式存储方法。
域名注册管理链的设计目标是:
(1)域名数据管理去中心化。域名注册管理链的核心目标是实现域名数据管理去中心化,即某一顶级域下的域名数据不再只由单一组织或机构维护。多个认证组织共同维护一份域名数据,只有某些有权限的组织或实体才能操作域名数据。
(2)域名注册管理透明化。透明化要求对域名的所有操作都记录在区块链中。要保证域名数据的去中心化管理,以及多方共享域名数据的一致性,需要以透明化作为支撑。域名注册管理透明性以各参与方共识为基础,利用共识制定域名注册管理规则,并将规则程序化。
(3)域名注册管理可兼容。域名注册管理链应兼容当前注册管理体系下的注册域名,保证不管是域名注册管理链中的注册域名还是当前注册管理体系下的注册域名,其所有者都可以使用域名注册管理链管理域名,且注册域名不冲突。
(4)域名注册管理可监管。域名管理可监管是维持域名注册管理链良性长久发展的必要条件。对于违反国家法律法规或注册管理运行机构或注册服务机构规定等无法由程序判定的域名注册管理操作,引入监管功能进行人工裁定,并记录裁决结果。域名监管也要保证透明性,裁决结果的生效执行采用程序化域名管理流程。
2.2域名注册管理链架构设计
域名注册管理链是一个以增强域名数据安全为核心目标的域名注册管理系统,旨在取代当前注册管理运行机构与注册服务机构的注册管理模式。域名注册管理链架构的中心思想是由域名注册管理联盟建立一个联盟式区块链,负责管理加入域名注册管理联盟的注册管理运行机构管辖范围内的所有域名数据。图2展示了域名注册管理链的架构。
(1)域名注册管理联盟:是由一系列注册管理运行机构和注册服务机构组成的一个合作组织。联盟中的成员就域名注册管理的规则和流程达成共识,根据共识管理域名,共同维护顶级域下的域名数据。
(2)域名注册管理链节点:由域名注册管理联盟中的成员提供,或者成员委托服务提供商执行链节点的运维职责。所有节点组成了域名注册管理链的运行终端网络,每个节点中都存储了一份域名数据的完整副本以及域名注册管理链网络中发生的所有事务数据。各节点之间通过共识机制达成一致性。
(3)域名数据:与注册域名相关的注册管理运行机构和注册服务机构负责维护的数据,分为域名注册数据和域名资源记录数据。域名注册管理链只关注域名数据的存储,域名数据如何使用不在域名注册管理链的目标职责内。
域名注册管理链将域名注册管理与区块链结合,利用区块链的分布式账簿和共识记账的特性,实现域名数据的去中心化管理以及域名的透明化注册管理。域名注册管理链底层区块链平台采用类Hyperledger Fabric的架构,即执行-排序-验证-更新,由区块链平台提供成员管理、分布式共识、智能合约编程、数据库存储等功能支持。域名注册管理链的设计结构如图3所示,设计包含四部分,分别为域名数据、账簿、合约、角色,系统的运行方式总结为一句话:成员根据各自的“角色”执行不同的“合约”程序对“账簿”进行操作,从而实现对账簿中“域名数据”的管理。
(1)域名数据:域名数据域名注册管理以及域名使用过程中的必要数据。域名数据划分为域名注册数据和域名资源记录,两部分的访问权限不同。
(2)角色:实现成员与权限绑定的中间的抽象。域名注册管理链中采用基于角色的权限管理,通过协议显式地将身份和角色绑定在一起,从而实现对各类账簿的访问控制。
(3)账簿:域名注册管理链的数据库,记录域名注册管理链的成员信息、成员间的域名注册管理相关协议以及域名数据。根据存储数据功能,将账簿划分为成员账簿、域名管理账簿、域名交易账簿。
(4)合约:实现域名注册及域名管理逻辑的程序。合约由成员提交的事务触发执行,执行结果是对账簿的操作。根据域名注册管理链的功能划分,有成员管理合约、域名管理合约、域名交易合约、域名监管合约。
2.2.1域名数据
域名数据的去中心化管理是域名注册管理链的核心目标之一。域名注册管理链中,根据数据的用途,将域名数据分为两类,一类是域名注册数据,一类是域名资源记录。
表2域名注册数据及含义表
域名注册数据是域名的WHOIS信息,可用来查询域名是否已被注册以及注册域名的详细信息。域名注册管理链中涉及的域名注册数据如表2所示。
域名资源记录是指添加到上级顶级域的区域中的记录,用于域名解析。域名注册管理链中涉及的资源记录数据及对应的资源记录类型如表3所示。
表3资源记录数据及类型表
2.2.2身份与角色
域名注册管理链采用基于角色的权限控制,根据成员的角色对链内事务进而对账簿进行强制访问控制。
成员的身份(ID)表示为在现实世界的机构名称或个体注册名称,由域名注册管理链认证的证书颁发机构(Certificate Authority,CA)进行身份认证并颁发证书。CA保证其认证的每个成员身份的唯一性。对成员的身份鉴别在链外实现,被认证的成员记录在链上。
成员的角色参考现有域名管理注册体系。每个身份绑定一种角色,成员角色由其他成员在链外审批确定,身份与角色的绑定本身是在域名注册管理链中实现。
域名注册管理链中的角色分为以下五类:
(1)注册管理运行机构:作为顶级域名的管理机构和其他注册管理运行机构或注册服务机构一起建立域名注册管理联盟,审核其他新加入的注册管理运行机构和注册服务机构。负责将其管辖范围内顶级域名下的注册域名数据上传到域名注册管理链。如果有更新的域名数据提交到注册管理机构,注册管理运行机构负责将更新的数据上传到域名注册管理链。此外,注册管理运行机构有域名监管权,可以对注册域名进行强制操作,例如强制撤销域名,但是强制操作之前必须发布执行依据。
(2)注册服务机构:注册服务机构是经ICANN认证允许销售域名的组织。注册服务机构可以加入域名注册管理联盟,提供接入域名注册管理链的节点。注册服务机构负责将域名注册管理链外注册的域名或域名更新数据提交到链上。除此之外,注册服务机构拥有一定的域名监管权,但只限于监管通过其注册的域名。
(3)注册者:注册者可以通过域名注册管理链注册域名,并管理其持有的域名,包括更新域名数据、转让域名、续约、赎回域名、注销域名。链外注册域名的注册者可以在域名注册管理链内申明域名所有权。
(4)监管者:监管者拥有域名监管权,由第三方监管部门担任,负责监管域名在注册及管理使用过程中是否违反法律法规,并发布强制执行协议。
(5)支付机构:支付机构是域名交易双方之间建立的一个公共的、可以信任的中介,负责将域名注册管理链外进行的域名交易双方的资金往来上传到链上。支付机构可以是支付机构实体,也可以是支持的接口程序。
2.2.3账簿
域名注册管理链中数据对象存储为若干账簿。账簿的设计思路是以数据功能为依据,分离不同用途的数据。根据数据的用途,账簿分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿。
每个账簿包含一组关联性比较强的数据,最新数据称为世界状态。账簿中包含若干张表,每张表包含若干条记录,每条记录由唯一主键(key)标识,同一张表中的记录的主键标识具有相同的前缀,且后缀为相同类型字段。当需要存、取、删除状态信息时,合约通过主键标识访问这些状态。账簿及其主要数据表信息如表5所示,其中记录主键“{}”代表记录中对应字段的值。
表4域名注册管理链账簿及主要数据表
(1)成员账簿
成员账簿中记录成员身份(机构名称或个人名称)及其角色类型,其中身份与角色绑定。成员账簿包含一个成员表。
成员表存储域名注册管理链中所有成员的身份信息。成员由域名注册管理链认可的证书权威(CA)进行身份认证并颁发证书,成员表的记录内容主要包含成员ID、证书发行者ID、角色等。
(2)域名数据账簿
域名数据账簿记录域名注册管理链中的域名数据。主要包含两个数据表。
域名联系人信息表存储域名的联系人信息。域名联系人信息表的记录内容包括域名注册者、域名管理员、域名技术员的联系方式,细分为地址、电话、传真、电子邮件等。
域名资源记录表存储域名的资源记录组。。
(3)域名管理账簿
域名管理账簿记录域名管理过程中需要的相关数据,包含顶级域协议表、域名注册协议表、域名联系人信息表、域名资源记录表、域名状态协议表和强制执行协议表。
顶级域协议表记录顶级域与其对应的注册管理运行机构的绑定关系。顶级域与注册管理运行机构的绑定协议在链外签署,域名注册管理链中只记录结果。顶级域协议表的记录内容包括顶级域的注册管理运行机构ID,顶级域是否在域名注册管理链中开放注册。
注册协议表是注册服务机构与注册者之间的协议,授予注册者对注册域名的所有权。注册协议表的记录内容包括域名注册者ID、域名创建时间、域名生命周期、域名更新时间,域名失效时间等。
域名状态协议表记录注册管理运行机构或注册服务机构与注册者之间的协议,为域名赋予不同的状态。域名状态协议表的主要记录内容包括域名状态、状态生效时间、状态失效时间等。
强制执行协议表记录注册管理运行机构或注册服务机构对域名的强制操纵,从而改变域名数据或者域名的状态或生命周期。强制执行协议表的主要记录内容包括执行证明、执行操作、执行机构、执行时间等。
(4)域名交易账簿
域名交易账簿存储域名交易过程的相关数据,其中包括域名转让协议表、域名竞价协议表、付款协议表和收款协议表。
域名转让协议表记录交易双方之间的协议,转让方将域名所有权转让给被转让方。主要记录内容包括交易双方的ID、交易金额、交易双方对交易的确认信息。
域名竞价协议表记录域名拍卖过程中竞价者与注册服务机构之间的协议,竞价者承诺自己的出价。主要内容包括域名底价、竞价者的出价、注册服务机构等信息。
付款协议表记录付款方与第三方支付机构之间的协议,支付机构确认付款方是否已支付。主要内容包括付款方ID、付款域名、付款金额、支付机构ID、支付机构确认信息等。
收款协议表记录支付机构与收款方之间的协议,收款方确认是否收到支付机构的付款。主要内容包括收款方ID、支付机构ID、收款方确认信息等。
从存储内容类型的角度划分,表可分为三类,成员表、协议表和域名数据表。成员表存储域名管理链中的成员信息;协议表存储成员之间在域名注册管理过程中达成的协议,从而完成域名注册管理;域名数据表存储域名数据。
2.2.4合约
合约是实现域名注册及注册域名管理逻辑的程序。合约由成员提交的事务触发执行,以事务的参数作为输入,以对账簿的操作作为输出,并根据事务提交者的角色实现访问控制,基于账簿的当前状态来执行程序。
根据操作数据表的类型划分,合约分为数据变更合约和协议合约。对于数据变更合约,提交事务后正常执行操作域名数据表。对于协议合约,提交事务后操作协议账簿。协议双方签订协议有两种不同的模式,一种是“提交即生效”,协议一方提交协议提案后,协议立即生效;另一种是“双方确认生效”,协议一方提交协议提案后,需要双方确认才能完成协议签订,如果双方中任意一方拒绝签订协议,则协议无效。
表5合约类型及操作账簿
根据合约实现的功能划分,合约分为成员管理合约、域名数据合约、域名管理合约、域名交易合约和域名监管合约。表5展示了各合约的类型及操作账簿。
(1)成员管理合约
成员管理合约提供用户加入域名注册管理链的程序。
注册管理运行机构或注册服务机构的加入采用链外审核链上登记的方式,注册管理运行机构成员在域名注册管理链外审批成员资格,审批通过后由注册管理运行机构成员提交成员加入事务。
注册者的加入采用链外认证链上登记的方式,由CA认证成员身份,注册者提供CA证书并提交成员加入事务。
(2)域名数据合约
域名数据合约负责域名数据管理相关的事务,包括上传域名数据,更新域名数据,删除域名等操作。
(3)域名管理合约
域名管理合约负责域名注册管理相关的事务,包括注册管理运行机构对顶级域的管理以及对下级域名的管理,注册服务机构对域名的管理,注册者在域名生命周期内对注册域名的管理,包括域名续费、域名赎回等。
对域名生命周期的管理为协议合约,协议合约采用提交即生效的模式。
(4)域名交易合约
域名交易合约负责域名交易相关的事务,包括域名拍卖、域名转让,以及域名交易过程中涉及的支付行为。域名交易合约只记录双方的资金往来,并不参与具体的支付。
域名交易合约中涉及到域名买卖与资金支付的协议,采用双方确认生效的模式。对于协议一方发起的协议申请,协议另一方可采取三种态度:
1)确认:同意签署协议,协议双方均确认后协议生效;
2)拒绝:协议一方拒绝签署协议,协议无效;
3)默认生效:协议一方发起协议的一段时间内,协议另一方没有对协议进行操作,即没有确认协议也没有拒绝协议;一段时间后默认另一方同意签订协议,协议生效;
(5)域名监管合约
域名监管合约执行对域名的监管。对于恶意使用或者侵害他人权益的域名,有监管权的成员可以执行监管合约,提出对域名的执行办法。域名监管合约与域名管理合约联合使用,域名监管合约提交域名强制执行操作,域名管理合约实际操作域名。
域名监管合约采用提交即生效的模式。
图4描述了不同角色有权限执行的合约。
三、域名生命周期管理智能合约技术
3.1引言
域名生命周期管理定义了域名生命周期各阶段的转移规则及生命周期内进行的域名操作。针对现有域名生命周期管理过程的不规范和不透明,本部分提出一种基于区块链的域名生命周期管理智能合约技术。该技术通过区块链智能合约定义域名生命周期的转移规则和域名操作,保证域名生命周期管理的规范性;通过将域名操作编码到区块链交易并打包区块中,保证域名操作的透明性和不可抵赖性。
3.2域名生命周期
域名生命周期是指域名从未被注册到域名被释放重新进入可注册状态的一系列阶段,如图5所示。
域名生命周期的初始阶段是可注册(Available)阶段,此阶段域名允许注册者注册。
域名被注册者注册后,域名进入已注册(Registered)阶段,此阶段域名所有者可以正常使用域名。域名注册者并不能永久使用域名,已注册阶段规定一定期限,域名注册管理链中注册期为一年。
域名即将过期时,注册者可以续费,续费后域名的已注册阶段延长。如果域名过期前注册者没有续费,域名进入保留期(RetentionPeriod)。保留期为30天,此阶段域名注册者仍可以域名续费,重新获得域名的所有权,域名重新进入已注册阶段。保留期内域名可以正常解析,域名所有者不可转让域名或更新域名数据。
如果保留期内域名所有者仍没有域名续费,域名进入赎回期(RedemptionPeriod)阶段。赎回期为30天,期间域名无法正常解析,域名所有者不可转让域名或更新域名数据。如果域名所有者要重新获得域名的所有权,需赎回域名,赎回后域名重新进入已注册阶段。
如果赎回期结束前注册者没有赎回,域名进入等待删除(PendingDelete)阶段。等待删除阶段为5天,此阶段域名无法正常解析,对域名的任何操作请求都会被拒绝。等待删除阶段结束后,域名被释放,域名数据被删除,域名重新进入可注册阶段。
3.3域名注册
域名注册是注册者获得一个新域名所有权的过程。基于区块链的域名注册方法,可以最大可能地保证域名注册的公平性,注册者依照合约中的注册规则公平竞争域名所有权。
3.3.1域名注册形式
传统的域名注册采用先到先得的方式,先申请域名的注册者获得域名的所有权。这种域名注册方式存在域名恶意抢注的风险。
为尽可能防止域名抢注发生,基于区块链的域名注册方法采用维克里拍卖的形式。维克里拍卖又称次价密封拍卖,规定时间内竞拍者提交密封的交易价格,出价最高者获胜,但获胜者只需支付所有出价中的第二高价。
3.3.2域名拍卖流程
生命周期为可注册阶段的域名可以进行拍卖,注册者的竞拍流程如图6。总的来说,竞拍流程分为八个环节:开启竞拍、支付保证金、盲出价、公开出价、结束竞拍、支付费用、转移域名和赎回保证金。
(1)开启竞拍
域名的拍卖流程由某个注册者开启。开启竞拍后,域名进入拍卖流程,域名交易账簿的竞价协议表中增加一条新记录。记录包含域名的拍卖底价,域名的拍卖周期,以及一个空的出价列表。拍卖底价由价格函数计算得出。拍卖周期中记录域名开标时间、竞价结束时间、揭标结束时间和拍卖结束时间。出价列表中每个元素表示一个竞价者的出价信息,出价包括的具体内容如表6所示。
表6出价信息表
(2)支付保证金
竞价者出价之前,需要提交一笔金额为域名底价的保证金。保证金由竞价者链外支付给第三方支付机构,支付机构将竞价者的付款信息发布到链上。域名交易账簿的付款协议表中新增一条付款协议记录,记录写明付款方身份ID、付款域名、付款金额、付款时间等信息。
(3)盲出价
域名竞价时间为3天。竞价期间注册者根据自己对域名的价值判断出价,出价必须高于底价。竞价者出价时提供保证金对应的付款协议记录,以及出价金额和盐值的散列值,并记录竞价者出价时所使用的区块链节点的归属组织作为该域名的注册服务机构。这些出价信息组织成出价列表的一个元素添加到出价列表并写入域名竞价协议表。每个注册者对一次竞拍流程的域名只能出价一次。
(4)公开出价
域名竞价结束后,域名进入揭标期,揭标结束时间为2天后。揭标期不再接受注册者的出价,已出价的注册者需公开出价。竞价者将出价散列的盐值与出价金额发布到链上,验证通过后写入竞价者的出价信息。如果揭标期竞价者未及时公开真实的出价,则认作竞价者的本次竞价无效。
(5)结束竞拍
域名揭标结束后,域名进入结标期,5天后域名拍卖结束。揭标结束时系统根据竞价者公开的出价决定竞拍的获胜者。出价列表中公开出价最高的竞价者为获胜者,如果有两人或多人的出价同为最高价,最早出价的一方为获胜者,获胜者的身份ID写入域名竞价协议记录的获胜者字段中,第二高的出价写入域名竞价协议记录的最终价格字段中。
(6)支付费用
获胜者将域名的竞拍金额在链外转给支付机构,付款信息由获胜者提交到链上,即域名交易账簿的付款协议表中新增一条获胜者付款记录,等待支付机构确认后生效;或获胜者支付后由支付机构将获胜者的付款信息发布到链上,支付机构确认生效。
(7)转移域名
获胜者需与注册服务机构签订域名转让协议。获胜者提供付款协议记录与注册服务机构签订域名转让协议,注册服务机构为注册者出价列表中的注册服务机构。域名交易账簿的域名转让协议表中新增一条记录,信息包括域名、域名价格即域名竞拍的第二高价,受让方即竞拍获胜者的身份ID,付款协议记录,转让方即注册服务机构的身份ID。交易双方确认后协议生效。如果获胜者确认转让协议的5天内注册服务机构没有对转让协议操作,则默认注册服务机构确认交易,协议生效。
域名转让协议生效后,域名状态协议表中添加一条新记录,该域名的状态信息变为“PendingTransfer”。等待转让期为期5天,期间域名不能重新开启域名竞拍。如果获胜者和注册服务机构对转让协议未有异议,等待转让期结束后,域名正式归属获胜者。域名管理账簿的注册协议表中增加该域名的注册记录,注册信息包括域名注册者、域名生命周期、域名注册服务机构等。
(8)赎回保证金
对于竞价者提前支付的保证金,竞拍者可以赎回。域名揭标结束后,拍卖决出获胜者,收款协议表中增加所有拍卖失败者的收款协议记录,其中付款信息指向失败者保证金的付款记录,并通知相应的支付机构将保证金退还竞拍失败者。
3.3.3域名价格函数
价格函数决定一个域名的价格。价格函数以域名为输入,以两位小数的浮点数作为输出,根据域名的形式决定价格。价格函数公式如(1)所示。
域名的最终注册价格为基础价格与增值价格之和。基础价格由顶级域对应的注册管理运行机构指定。增值价格根据域名的形式决定。域名的字符越多,增值价格越低;域名的字符种类越多,增值价格越低。
3.4域名续费
域名续费是域名注册者延长注册域名的使用期限的一种方法。域名已注册阶段到期前的15天内,注册者可申请续费,续费价格为域名注册价格。域名续费时注册者与注册时的注册服务机构签订转让协议,转让协议生效后域名的注册期延长,为原注册到期时间的1年后。
如果域名到期前注册者没有续费,域名进入为期30天的保留期。保留期内域名可以正常解析,域名所有者不能转让、注销或者更新域名数据,注册者可以申请续费域名。如果保留期未能成功续费,域名进入30天的赎回期。
3.5域名赎回
如果注册者错过域名保留期间的域名续费,域名进入赎回期。赎回期为30天,期间域名无法正常解析,域名所有者不能转让、注销或者更新域名数据。
赎回期内注册者可以高价赎回域名。价格为域名定价的4倍。注册者进行域名赎回操作时需与注册服务机构签订域名转让协议,并支付赎回的费用。
3.6域名删除
域名删除是指域名所有者失去域名的所有权并且删除域名所有的数据。根据删除操作者的不同,域名删除分为三类:主动删除、到期删除、被动删除。
3.6.1主动删除
主动删除是域名所有者主动放弃域名的所有权。域名处于已注册阶段时,域名所有者可以注销域名。注销操作后域名管理账簿的域名状态协议表中该域名的状态更新为“等待删除”(PendingDelete)状态。等待删除状态持续5天,期间域名无法正常解析,域名所有者不可以进行任何域名操作。如果域名所有者放弃注销域名,可以撤销域名删除操作,域名将解除等待删除状态。
等待删除状态结束后,域名的生命周期转为等待删除(PendingDelete)。等待删除阶段域名所有者对域名的所有操作都将被拒绝,包括撤销删除,更新或转让域名等操作。生命周期的等待删除阶段结束后,域名数据被删除,域名管理账簿的注册协议表、注册联系人表和域名资源记录表中该域名的记录被删除。
3.6.2到期删除
到期删除是指域名注册时间到期且域名所有者没有任何操作,域名自动删除。
域名生命周期的赎回期阶段,域名所有者没有赎回域名,域名的生命周期转为等待删除。等待删除阶段,域名所有者不能再对域名续费或赎回,只能等待域名被删除。等待删除阶段结束后,域名的生命周期回到可注册阶段,域名数据被删除,域名管理账簿的注册协议表、注册联系人表和域名资源记录表中该域名的记录被删除。
3.6.3强制删除
强制删除是指注册管理运行机构或注册服务机构在域名未到期前强制撤销域名,删除域名的注册信息和域名数据。域名注册管理运行机构或注册服务机构执行强制删除域名操作后,域名状态协议表中的域名状态变为等待删除状态,状态的失效时间是更新时间的5天后。
3.7域名转让
域名转让是指域名所有者将域名所有权转让给其他注册者。域名转让必须是域名生命周期的已注册阶段进行。域名转让的正常流程如图7所示。
3.7.1域名转让申请
交易一方发起域名转让协议申请,域名交易账簿的域名转让协议表中添加一条域名转让协议记录,记录内容包括待转让的域名、域名转让方、域名受让方、转让金额,域名转让方必须是域名所有者,转让金额为交易双方商定的域名价格。
3.7.2转让协议确认
受让方将域名转让费用支付给第三方支付机构,支付机构将受让方的付款信息写入到付款协议表。转让方验证转让协议后确认,协议生效。如果交易一方拒绝签署协议,则交易失败,域名转让协议表中的记录被删除。如果一方拒绝签署协议时受让方已支付转让费用且支付机构已将付款协议写入链上,受让方可申请退款,由支付机构将费用退回受让方并写入收款协议表。
3.7.3域名注册者转移
转让协议双方确认生效后域名状态协议表中域名状态变为等待转让,状态持续5天。等待转让状态下,域名所有者仍为转让前的注册者,但注册者不能对域名进行任何操作,包括更新域名数据、删除域名等。
3.8域名争议解决
域名争议是指域名在注册或使用的过程中引发的争议,例如域名抢注、域名被恶意转让、域名恶意使用而侵害他人权益等。
链上不负责解决域名争议,只在通告域名争议仲裁结果并执行裁决。监管者将裁决发布到链上,并在域名管理账簿的强制执行协议表中新增一条记录,包括执行证明以及执行操作。
除解决域名争议外,如果域名所有者使用域名的过程中违反国家法律、ICANN政策、主管部门指令,或注册管理运行机构和注册服务机构的要求时,注册管理运行机构和注册服务机构有权写入强制执行协议记录后可对域名进行强制操作。
四、基于区块链的域名所有权证明技术
4.1域名所有权证明
域名所有权证明是指域名持有者通过某些方式向第三方证明其所有权的过程。域名注册管理链的目标之一是兼容当前域名注册管理体系中的注册域名,所有的注册者都可以通过域名注册管理链管理自己持有的域名。对于在域名管理链注册的域名,注册者可以直接在域名管理链中管理域名。对于在域名注册管理链外注册的域名,必须将域名与域名注册管理链中的某一注册者绑定,由绑定注册者管理域名。
域名注册管理链中提供域名所有权证明的功能。域名注册管理链外的注册域名不必在链内重新注册,注册者可以直接声明对域名的所有权,从而将域名的后续管理迁移到域名注册管理链中。
4.2依赖DNSSEC的域名所有权证明
利用DNSSEC证明域名所有权,要求域名所有者使用DNSSEC的ZSK私钥对特定资源记录签名,合约验证签名的真实性。这种方案采用“链下验证,链上申明”的形式,注册管理运行机构或注册服务机构链下验证域名所有者的身份,并将区域的KSK摘要信息发布到链上。注册管理运行机构或注册服务机构保证KSK密钥的所有者即域名所有者。
依赖DNSSEC的域名所有权证明分为两步,首先域名所有者发起所有权申明,之后链上合约验证所有权申明的有效性,证明过程如图8所示。
4.2.1证明前提
使用DNSSEC证明域名所有权,必须满足两个前提条件。
第一,待申明的域名必须在域名注册管理链中保留。对于其他体系下的注册域名,域名所属的注册管理运行机构或注册服务机构将域名注册信息发布到链上。这些域名称为保留域名。保留域名无法在域名注册管理链中注册。
第二,待申明的域名内部署DNSSEC,并将KSK的相关信息以DS记录的格式提交到注册服务机构,注册服务机构验证所有者身份后将DS记录上传到链上或链外提交给注册管理运行机构,由注册管理运行机构将DS记录上传到链上。
4.2.2域名所有权申明
域名所有者利用区域ZSK对一条申明信息签名,并提交相关数据。申明所有权的输入如表7所示。
表7依赖DNSSEC所有权申明输入数据
DNSKEYs字段是DNSKEY资源记录集。DNSKEYSig是DNSKEY资源记录集的签名记录。ClaimStr字段表示一个特定结构的字符串,构成为“DNRMS-{Domainname}-{域名所有者身份ID}–{签名时间}”,{}表示对应的具体的值。ClaimSig字段表示使用有效ZSK对ClaimStr的签名。ClaimTime字段表示域名所有者发起域名申明的时间。
4.2.3域名所有权验证
域名所有者发起所有权申明后,合约验证申明的有效性,验证步骤如下:
(1)查询域名资源记录表,获得域名的DS记录,利用DS记录验证申明输入中的DNSKEYs记录。如果资源记录表中没有DS记录或者DNSKEY验证失败,退回所有权申明申请。
(2)使用验证通过的KSK验证DNSKEY资源记录集的RRSIG签名记录。如果验证错误,所有权申明失败,退回所有权申明申请。
(3)利用DNSKEY资源记录集中的ZSK验证申明字符串签名ClaimSig的正确性。如果验证错误,所有权申明失败,退回所有权申明申请。
(4)域名所有权申明成功。
依赖DNSSEC的所有权证明方案通过DNSSEC来保障安全性,由域名注册服务机构和注册管理运行机构负责验证所有者的身份。除非成功伪造域名所有者的身份信息并通过域名管理机构的验证,或者获得所有者的真实DNSSEC私钥,攻击者很难冒充所有者在域名注册管理链上证明域名所有权。
4.3依赖预言机的域名所有权证明
针对无法部署DNSSEC的域名,可以选择利用预言机实现域名所有权证明。依赖预言机的域名所有权证明采用“链上申请,链外验证”的方式,首先域名所有者在链上发起所有权申明申请,合约返回所有权证明的挑战,挑战是一个随机字符串,需要域名所有权在本区域添加包含挑战内容的资源记录。域名所有者完成挑战后,合约请求预言机外部验证是否达成所有权证明的条件,验证通过后,域名所有权证明完成,域名在域名注册管理链中与所有者绑定。域名所有权证明过程如图9所示。
4.3.1证明前提
依赖区块链预言机实现域名所有权证明,要求待申明的域名是域名注册管理链中的保留域名。
域名注册服务机构或注册管理运行机构将其他域名注册体系下的注册域名上传到域名注册管理链,并且域名注册协议表中对应记录的注册者字段为空值。
4.3.2域名所有权申明
保留域名的所有者可以在域名注册管理链中申明所有权。
域名所有者发起域名申明,申明的输入数据包括待申明的域名和域名所有者身份ID等信息。
发起所有权申明申请后,合约检查申明的合法性后记录相关信息并返回一个随机字符串。域名所有者对本区域进行操作,添加一条TXT类型的资源记录,资源记录的数据部分为返回的随机字符串内容。资源记录添加到区域文件并能正常解析后,所有者发起域名所有权验证申请。
4.3.3域名所有权验证
域名所有权发起所有权验证申请后,合约调用预言机系统验证所有权申明是否满足条件。为保证预言机的安全性和数据的准确性,采用分布式预言机,预言机合约向多个服务器请求数据。使用预言机的验证流程如图10所示。
验证步骤如下:
(1)合约获取所有权申明返回的随机字符串,调用预言机智能合约。
(2)预言机智能合约向外部接口发起调用请求,提供的参数包括待申明的域名、随机字符串。
(3)外部系统请求查询域名区域的TXT类型资源记录,检查是否存在数据部分为随机字符串的记录。
(4)外部系统将查询结果返回预言机智能合约,如果未查询到正确的资源记录,返回验证失败;否则返回该条TXT资源记录。
(5)合约验证预言机智能合约返回结果;如果返回结果为验证失败或资源记录错误,则所有权验证失败。
(6)域名所有权申明成功。
由于外部环境的不确定性,为降低预言机被攻击导致的风险,布置多个外部请求链接,分属不同的外部服务器,预言机系统分别向所有的外部链接请求资源记录验证。在攻击者无法在域名区域添加真实资源记录的条件下,攻击者很难伪造所有验证节点与预言机或者半数以上预言机外部验证的通信数据流,因此伪造域名所有者并验证通过的概率很低。
五、域名注册管理链实现与测试
5.1引言
根据前面三章的设计,本部分对域名注册管理链进行系统实现和测试分析。域名注册管理链以Hyperledger Fabric作为底层框架,本部分在Hyperledger Fabric的基础上编写智能合约并部署区块链网络。为验证域名注册管理链的可用性和安全性,本部分利用GoReporter和gosec进行代码测试,利用gotest进行功能测试,利用Hyperledger Caliper进行性能测试并分析测试结果。
5.2系统实现
域名注册管理链基于Hyperledger Fabric框架实现,应用的Hyperledger Fabric的版本为2.0。
5.2.1智能合约实现
域名注册管理链架构的四部分中,重点开发账簿和合约部分。域名数据部分融入账簿中,身份与角色管理融入合约部分。域名生命周期管理技术和域名所有权证明技术作为域名注册管理链的一部分在合约中实现。
以Hyperledger Fabric框架作为底层区块链平台,账簿基于couchDB数据库实现,智能合约利用Fabric提供的方法实现,开发语言为Go语言,开发环境的操作系统为Ubuntu18.04。
域名注册管理链共开发5个合约,分别为成员合约、域名数据合约、域名管理合约、域名交易合约、域名监管合约。智能合约定义了区块链接口并实现接口内部逻辑。不同智能合约的接口定义如表8所示。
表8智能合约接口定义表
接口输入采用Protobuf的格式串行化传入合约,接口输出以json格式返回给调用者。
5.2.2系统部署
成员管理合约打包成链码MembershipCC、域名数据合约、域名管理合约和域名监管合约打包成链码ManagementCC,域名交易合约打包成链码TransactionCC,3个链码部署在Hyperledger Fabric区块链网络的一个通道中。区块链网络包含10个参与组织,每个机构提供一个peer节点,另外还有3个排序节点。各节点间采用Fabric提供的Raft共识算法达成共识。每个peer节点使用CouchDB作为状态数据库存储一份区块链网络中的交易数据。
5.3静态代码测试
静态代码测试是在不执行代码程序的条件下,基于一系列规则对源码进行分析,找出代码缺陷。静态代码测试直接面向源码,可以检测所有的代码可执行路径组合,并分析多种问题,但是误报率高,需要结合人工审计。目前,主流的静态代码测试工具包括govet、gosec等,利用这类工具,对域名注册管理链的智能合约代码进行质量分析和安全性分析。
5.3.1代码质量分析
GoReporter是一个开源的Golang工具,可以进行代码静态分析、单元测试、代码审查,并生成代码质量报告。GoReporter集成了一系列Go语言代码检查工具,并发运行检测并规范化输出到报告中。下载GoReporter后,,执行goreporter命令,生成html格式的检测报告。报告显示,测试代码共有7个包,总共40个文件,代码开发量为6140行,注释量为975行,共有856个函数。所有函数的循环复杂度平均值3.7,循环复杂度超过10的有7个函数,大部分函数的循环复杂度在2-3之间。代码错误项检查和优化项检查均未检查出问题
5.3.2代码安全分析
gosec是开源的Go语言代码安全分析工具,通过扫描Go的抽象语法树(abstractsyntax code,AST)来检查源码中的安全问题。利用gosec检查智能合约代码,检测出14个安全等级为“低”问题,均为“错误未处理”,现已对代码进行修正。
5.4系统功能测试
功能测试是根据系统的预期功能对系统进行测试,验证系统是否满足需求和规范。Go语言标准库testing包提供自动化测试功能,包括单元测试、基准测试等。
Hyperledger Fabric为智能合约的单元测试提供支持。Fabric提供的MockStub类可模拟链码执行,不需要启动任何网络节点,通过测试文件即可在本地对链码的接口进行调用测试。
结合testing包的单元测试方法,对编写的智能合约进行功能测试。
分别对域名注册管理链的四个智能合约中所有接口功能进行测试,共实现5个测试文件25个测试函数,测试结果均符合预期。使用“go test”统计测试覆盖率,测试函数对目标函数的覆盖率均为100%。
5.5系统性能测试
Caliper是一个区块链性能测试框架,它允许用户构造自定义的测试用例,使用灵活的测试方案,测试多种区块链并获取性能测试结果。本部分使用Caliper对域名注册管理链部署网络进行性能测试,测试指标分别3点:
(1)事务读写的吞吐量;
(2)事务读写延迟(可测延迟的最大值,最小值,平均值);
(3)区块链节点资源占用(可测CPU,内存,网络I/O和磁盘I/O);
5.5.1测试过程
Caliper可以根据用户的定义自动化生成测试用例,并按照指定速率向区块链网络发起事务请求。本发明采用固定负载控制,在目标负载下驱动测试。固定负载测试中,通过修改事务发送速率,维护系统内的交易积压,以达到获取固定挂起事务负载的条件下的最大吞吐量。
将提案事务和查询事务分别作为一个整体进行测试,并指定测试事务总数和测试速率。
为提案和查询设置多轮测试,每轮测试设置不同的负载量和测试用例数,测试用例按照规定格式随机生成。表9展示了多轮测试的相关测试参数。
表9提案测试与查询测试参数
5.5.2测试结果
分别对提案事务和查询事务进行性能测试,测试结果如下。图11和图12分别展示了提案事务测试中的事务吞吐量和事务延迟,在维持系统中事务负载逐步增加的条件下,事务发送速率和事务吞吐量呈现出先增加后降低的趋势。这是由于前几轮测试固定负载少,系统可以在保持这些负载的同时正常工作,且负载越多,事务发送率可以更高。后几轮测试的固定负载过多,系统无法正常工作,因此事务吞吐量降低。随着系统负载的增加,事务延迟也在增加。第6轮测试事务负载为500时最大延迟达到23.58s,相比于前几轮测试,延迟明显增加,但是平均延迟为0.38s,仍在可接受范围内。其他几轮测试平均事务延迟均在0.3s之下,满足可用要求。
表10展示了提案事务测试的资源消耗,包括CPU、内存、网络IO、磁盘IO等指标。表中每一轮的资源消耗值为10个组织peer节点的平均值。可以看出,随着系统内负载的增加,各节点的内存使用量、网络的流入流出量、磁盘的写入大致呈现上升的趋势。
表10提案事务测试资源消耗
图13和图14分别展示了查询事务测试中的事务吞吐量和事务延迟。查询测试中吞吐量的发展趋势如提案测试中的趋势一致。查询事务整体吞吐量比提案测试中高出很多,一般在400TPS以上,事务延迟也比提案事务小很多,平均延迟为0.01s。查询事务是只读事务,且较于提案事务逻辑简单,因此对系统的压力小,系统可同时处理的查询事务更多。
表11展示了查询事务的资源消耗。查询事务的CPU占用率明显低于提案事务的CPU占用率,网络IO和磁盘IO也比提案事务少。由于查询事务需要查询各节点的状态数据库,内存使用量偏多。
表11查询事务测试资源消耗
综合以上测试结果,域名注册管理链系统符合预期,达到预期的性能要求。
本部分小结:本部分介绍了域名注册管理链的实现方案和测试方案,以及测试结果。域名注册管理链基于Hyperledger Fabric区块链框架实现,并将域名生命周期智能合约技术和域名所有权证明技术作为域名注册管理链合约的一部分实现。本部分利用Goreporter和gosec分析智能合约代码,结果表明代码无安全问题,且无可优化项。利用gotest测试智能合约功能,结果表明智能合约以达到预期功能目标。利用HyperledgerCaliper对域名注册管理链网络进行性能测试,测试结果显示域名注册管理链网络可以较好地响应事务请求,提案事务吞吐量在100TPS以上,查询事务吞吐量在400TPS以上,能够满足系统事务需求。
本发明中援引的参考文献如下:
[1]Namecoin[EB/OL].http://namecoin.info
[2]Ali M,Nelson J,Shea R,Freedman M J.Blockstack:A global naming andstorage system secured by blockchains.[C]Proceedings of the 2016 USENIXAnnual Technical Conference.2016:181-194.
[3]Nick J.Ethereum Domain Name Service–Specification.[EB/OL]2016[2021-05-30].https://github.com/ethereum/EIPs/blob/master/EIPS/eip-137.md#abstract
[4]Handshake project paper.[EB/OL]https://handshake.org/files/handshake.txt
[5]Ren S,Liu B,Yang F,et al.BlockDNS:Enhancing Domain Name Ownershipand Data Authenticity with Blockchain[C].2019 IEEE Global CommunicationsConference(GLOBECOM).IEEE,2020:1-6.
[6]Mockapetris P.RFC 1035:Domain names-implementation andspecification.[EB/OL].https://www.rfc-editor.org/info/rfc 1035,1987.
[7]Arends R,Austein R,Larson M,Massey D,Rose S.RFC 4033:DNS SecurityIntroduction and Requirements.[EB/OL].https://www.rfc-editor.org/infolrfc4033,2005.
[8]Arends R,Austein R,Larson M,Massey D,Rose S.RFC 4034:ResourceRecords for the DNS Security Extensions,[EB/OL].https://www.rfc-editor.org/infolrfc4034,2005.
[9]Arends R,Austein R,Larson M,Massey D,Rose S.RFC 4035:ProtocolModifications for the DNS Security Extensions.[EB/OL].https://www.rfc-editor.org/infolrfc4035,2005.
[10]ICANN.Domain Name Industry[EB/OL].(2017-06-20)[2021-4-25].https://www.icann.org/resources/pages/domain-name-industry-2017-06-20-en.
[11]ICANN.Generic Top-Level Domain(gTLD)Registry Agreements[EB/OL].[2021-4-25].https://www.icann.org/en/registry-agreements?first-letter=a&sort-column=top-level-domain&sort-direction=asc&page=1.
[12]ICANN.2013Registrar Accreditation Agreement[EB/OL].[2021-4-25].https://www.icann.org/resources/pages/approved-with-specs-2013-09-17-en.
[13]ICANN.About WHOIS[EB/OL].[2021-4-25].https://whois.icann.org/en/about-whoishttps://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en
[14]Nakamoto,S.Bitcoin:A peer-to-peer electronic cash system.2008.
[15]Androulaki E,Manevich Y,Muralidharan S,et al.Hyperledger fabric:adistributed operating system for permissioned blockchains[C].The ThirteenthEuroSys Conference.2018:1-15.
[16]Xu X.The Blockchain as a Software Connector.[C]2016 13th WorkingIEEE/IFIP Conference on Software Architecture(WICSA),2016:182-191.
[17]Al-Breiki H,Rehman M H U,Salah K,Svetinovic D.TrustworthyBlockchain Oracles:Review,Comparison,and Open Research Challenges.[J]IEEEAccess.2020.
Claims (10)
1.一种基于区块链的域名注册管理方法,其特征在于,所述基于区块链的域名注册管理方法通过域名注册管理链来实现,域名注册管理链的设计过程为:
步骤一、域名注册管理链架构设计
域名注册管理链是一个以增强域名数据安全为核心目标的域名注册管理系统,域名注册管理链是由域名注册管理联盟建立一个联盟式区块链,负责管理加入域名注册管理联盟的注册管理运行机构管辖范围内的所有域名数据;
域名注册管理联盟是由一系列注册管理运行机构和注册服务机构组成的一个合作组织;联盟中的成员就域名注册管理的规则和流程达成共识,根据共识管理域名,共同维护顶级域下的域名数据;
域名注册管理链节点由域名注册管理联盟中的成员提供,或者成员委托服务提供商执行链节点的运维职责;所有域名注册管理链节点组成域名注册管理链的运行终端网络,每个域名注册管理链节点中都存储一份域名数据的完整副本以及域名注册管理链网络中发生的所有事务数据,各节点之间通过共识机制达成一致性;
域名数据是与注册域名相关的注册管理运行机构和注册服务机构负责维护的数据,域名数据分为域名注册数据和域名资源记录数据;
步骤二、域名注册管理链逻辑设计
域名注册管理链底层区块链平台采用类Hyperledger Fabric的架构,由区块链平台提供成员管理、分布式共识、智能合约编程、数据库存储功能支持;
域名注册管理链的逻辑结构主要包含以下部分,分别为域名数据、账簿、合约、角色,成员(用户)根据各自的“角色”执行不同的“合约”程序对“账簿”进行操作,从而实现对账簿中“域名数据”的管理;
(1)域名数据:域名数据域名注册管理以及域名使用过程中的必要数据;域名数据划分为域名注册数据和域名资源记录,两部分的访问权限不同;
(2)角色:用于赋予成员权限,域名注册管理链中采用基于角色的权限管理,通过协议显式地将身份和角色绑定在一起,从而实现对各类账簿的访问控制;
(3)账簿:域名注册管理链的数据库,记录域名注册管理链的成员信息、成员间的域名注册管理相关协议以及域名数据;根据存储数据功能,将账簿划分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿;
(4)合约:实现域名注册及域名管理逻辑的程序,合约由成员提交的事务触发执行,执行结果是对账簿的操作;根据域名注册管理链的功能划分,有成员管理合约、域名数据合约、域名管理合约、域名交易合约、域名监管合约;
步骤三、基于区块链的域名所有权证明
域名注册管理链的目标之一是兼容当前域名注册管理体系中的注册域名,所有的注册者都可以通过域名注册管理链管理自己持有的域名;对于在域名管理链注册的域名,注册者可以直接在域名管理链中管理域名;对于在域名注册管理链外注册的域名,必须将域名与域名注册管理链中的某一注册者绑定,由绑定注册者管理域名;域名注册管理链中提供域名所有权证明的功能;域名注册管理链外的注册域名不必在链内重新注册,注册者可以直接声明对域名的所有权,从而将域名的后续管理迁移到域名注册管理链中;设计两种域名所有权证明方案,分别是依赖DNSSEC的所有权证明方案和依赖区块链预言机的所有权证明方案;
利用DNSSEC证明域名所有权,要求域名所有者使用DNSSEC的ZSK私钥对特定资源记录签名,合约验证签名的真实性;这种方案采用“链下验证,链上申明”的形式,注册管理运行机构或注册服务机构链下验证域名所有者的身份,并将区域的KSK摘要信息发布到链上;注册管理运行机构或注册服务机构保证KSK密钥的所有者即域名所有者;
针对无法部署DNSSEC的域名,可以选择利用预言机实现域名所有权证明;依赖预言机的域名所有权证明采用“链上申请,链外验证”的方式,首先域名所有者在链上发起所有权申明申请,合约返回所有权证明的挑战,挑战是一个随机字符串,需要域名所有权在本区域添加包含挑战内容的资源记录;域名所有者完成挑战后,合约请求预言机外部验证是否达成所有权证明的条件,验证通过后,域名所有权证明完成,域名在域名注册管理链中与所有者绑定。
3.根据权利要求1或2所述的一种基于区块链的域名注册管理方法,其特征在于,在域名注册管理链逻辑设计中,成员身份与角色分类如下:
域名注册管理链采用基于角色的权限控制,根据成员的角色对系统内事务进而对账簿进行强制访问控制;
成员的身份(ID)表示为在现实世界的机构名称或个体注册名称,由域名注册管理链认证的证书颁发机构(CertificateAuthority,CA)进行身份认证并颁发证书;CA保证其认证的每个成员身份的唯一性;对成员的身份鉴别在链外实现,被认证的成员记录在链上;
每个的成员身份绑定一种角色,成员角色由其他成员在系统外审批确定,身份与角色的绑定本身是在域名注册管理链中实现;
域名注册管理链中的角色分为以下五类:
(1)注册管理运行机构:作为顶级域名的管理机构和其他注册管理运行机构或注册服务机构一起建立域名注册管理联盟,审核其他新加入的注册管理运行机构和注册服务机构;负责将其管辖范围内顶级域名下的注册域名数据上传到域名注册管理链;如果有更新的域名数据提交到注册管理机构,注册管理运行机构负责将更新的数据上传到域名注册管理链;注册管理运行机构还具有域名监管权,可以对注册域名进行强制操作;
(2)注册服务机构:注册服务机构是经ICANN认证允许销售域名的组织;注册服务机构可以加入域名注册管理联盟,提供接入域名注册管理链的节点;注册服务机构负责将域名注册管理链外注册的域名或域名更新数据提交到域名注册管理链上;注册服务机构还拥有一定的域名监管权,但只限于监管通过其注册的域名;
(3)注册者:注册者可以通过域名注册管理链注册域名,并管理其持有的域名,包括更新域名数据、转让域名、续约、赎回域名、注销域名;链外注册域名的注册者可以在域名注册管理链内申明域名所有权;
(4)监管者:监管者拥有域名监管权,由第三方监管部门担任,负责监管域名在注册及管理使用过程中是否违反法律法规,并发布强制执行协议;
(5)支付机构:支付机构是域名交易双方之间建立的一个公共的、可以信任的中介,负责将域名注册管理链外进行的域名交易双方的资金往来上传到链上;支付机构是支付机构实体或支持的接口程序。
4.根据权利要求3所述的一种基于区块链的域名注册管理方法,其特征在于,在域名注册管理链逻辑设计中,账簿类别及对应的存储内容如下:
账簿根据数据的用途,分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿;
每个账簿包含一组关联性比较强的数据,账簿中包含若干张表,每张表包含若干条记录,每条记录由唯一主键(key)标识,同一张表中的记录的主键标识具有相同的前缀,且后缀为相同类型字段;当需要存、取、删除状态信息时,合约通过主键标识访问这些状态;账簿及其主要数据表信息如下表所示,
其中记录主键“{}”代表记录中对应字段的值;
(1)成员账簿
成员账簿中记录成员身份(机构名称或个人名称)及其角色类型,其中身份与角色绑定;每个成员账簿包含一个成员表;
成员表存储域名注册管理链中所有成员的身份信息;成员由域名注册管理链认可的证书权威(CA)进行身份认证并颁发证书,成员表的记录内容主要包含成员ID、证书发行者ID、角色,每条记录的主键标识后缀为成员ID;
(2)域名数据账簿
域名数据账簿记录域名注册管理链中的域名数据,主要包含两个数据表:
域名联系人信息表存储域名的联系人信息;域名联系人信息表的记录内容包括域名注册者、域名管理员、域名技术员的联系方式,细分为地址、电话、传真、电子邮件等,每条记录的主键标识为域名字符串;
域名资源记录表存储域名的资源记录组;表中每条记录的主键标识为域名字符串;
(3)域名管理账簿
域名管理账簿记录域名管理过程中需要的相关数据,包括域名注册管理运行机构或注册服务机构在域名注册及管理过程中与注册者之间的协议以及域名要提交给注册管理机构的资源记录;域名管理账簿中包含顶级域协议表、域名注册协议表、域名状态协议表和强制执行协议表;
顶级域协议表记录顶级域与其对应的注册管理运行机构的绑定关系;顶级域与注册管理运行机构的绑定协议在链外签署,域名注册管理链中只记录结果;顶级域协议表的记录内容包括顶级域的注册管理运行机构ID,顶级域是否在域名注册管理链中开放注册,每条记录的主键标识后缀为TLD字符串;
注册协议表是注册服务机构与注册者之间的协议,授予注册者对注册域名的所有权;注册协议表的记录内容包括域名注册者ID、域名创建时间、域名生命周期、域名更新时间,域名失效时间,每条记录的主键标识后缀为域名字符串;
域名状态协议表记录注册管理运行机构或注册服务机构与注册者之间的协议,为域名赋予不同的状态;域名状态协议表的主要记录内容包括域名状态、状态生效时间、状态失效时间,每条记录的主键标识后缀为域名字符串;
强制执行协议表记录注册管理运行机构或注册服务机构对域名的强制操纵,从而改变域名数据或者域名的状态或生命周期;强制执行协议表的主要记录内容包括执行证明、执行操作、执行机构、执行时间等,每条记录的主键标识后缀为域名字符串;
(4)域名交易账簿
域名交易账簿存储域名交易过程的相关数据,其中包括域名转让协议表、域名竞价协议表、付款协议表和收款协议表;
域名转让协议表记录交易双方之间的协议,转让方将域名所有权转让给被转让方;主要记录内容包括交易双方的ID、交易金额、交易双方对交易的确认信息等,每条记录的主键标识后缀为域名字符串;
域名竞价协议表记录域名拍卖过程中竞价者与注册服务机构之间的协议,竞价者承诺自己的出价;主要内容包括域名底价、竞价者的出价、注册服务机构等信息,每条记录的主键标识后缀为域名字符串;
付款协议表记录付款方与第三方支付机构之间的协议,支付机构确认付款方是否已支付;主要内容包括付款方ID、付款域名、付款金额、支付机构ID、支付机构确认信息,每条记录的主键标识后缀为域名字符串和付款方ID的拼接字符串;
收款协议表记录支付机构与收款方之间的协议,收款方确认是否收到支付机构的付款;主要内容包括收款方ID、支付机构ID、收款方确认信息等,每条记录的主键标识后缀为域名字符串和收款方ID的拼接字符串;
从存储内容类型的角度划分,所有账簿中的数据表可分为三类,成员表、协议表和域名数据表,成员表存储域名注册管理链中的成员信息;协议表存储成员之间在域名注册管理过程中达成的协议,从而完成域名注册管理;域名数据表存储域名数据。
5.根据权利要求4所述的一种基于区块链的域名注册管理方法,其特征在于,在域名注册管理链逻辑设计中,合约的管理规则为:
合约是实现域名注册及注册域名管理逻辑的程序,合约由成员提交的事务触发执行,以事务的参数作为输入,以对账簿的操作作为输出,并根据事务提交者的角色实现访问控制,基于账簿的当前状态来执行程序;
根据操作数据表的类型划分,合约分为数据变更合约和协议合约;对于数据变更合约,提交事务后正常执行操作域名数据表;对于协议合约,提交事务后操作协议账簿;协议双方签订协议有两种不同的模式,一种是“提交即生效”,协议一方提交协议提案后,协议立即生效;另一种是“双方确认生效”,协议一方提交协议提案后,需要双方确认才能完成协议签订,如果双方中任意一方拒绝签订协议,则协议无效;
根据合约实现的功能划分,合约分为成员管理合约、域名数据合约、域名管理合约、域名交易合约和域名监管合约,各合约的类型及操作数据表对应的账簿如下表所述:
。
6.根据权利要求5所述的一种基于区块链的域名注册管理方法,其特征在于,在合约的管理规则中,各种合同的定义为:
(1)成员管理合约
成员管理合约提供用户加入域名注册管理链的程序;
注册管理运行机构或注册服务机构的加入采用链外审核链上登记的方式,注册管理运行机构成员在域名注册管理链外审批成员资格,审批通过后由注册管理运行机构成员提交成员加入事务;
注册者的加入采用链外认证链上登记的方式,由CA认证成员身份,注册者提供CA证书并提交成员加入事务;
(2)域名数据合约
域名数据合约负责域名数据管理相关的事务,包括上传域名数据,更新域名数据,删除域名等操作;
(3)域名管理合约
域名管理合约负责域名注册管理相关的事务,包括注册管理运行机构对顶级域的管理以及对下级域名的管理,注册服务机构对域名的管理,注册者注册域名以及在域名生命周期内对注册域名的管理,包括域名续费、域名赎回;
对域名生命周期的管理为协议合约,协议合约采用提交即生效的模式;
(4)域名交易合约
域名交易合约负责域名交易相关的事务,包括域名拍卖、域名转让,以及域名交易过程中涉及的支付行为;域名交易合约只记录双方的资金往来,并不参与具体的支付;
域名交易合约中涉及到域名买卖与资金支付的协议,采用双方确认生效的模式;对于协议一方发起的协议申请,协议另一方可采取三种态度:
1)确认:同意签署协议,协议双方均确认后协议生效;
2)拒绝:协议一方拒绝签署协议,协议无效;
3)默认生效:协议一方发起协议的一段时间内,协议另一方没有对协议进行操作,即没有确认协议也没有拒绝协议;一段时间后默认另一方同意签订协议,协议生效;
(5)域名监管合约
域名监管合约执行对域名的监管;对于恶意使用或者侵害他人权益的域名,有监管权的成员可以执行监管合约,提出对域名的执行办法;域名监管合约与域名管理合约联合使用,域名监管合约提交域名强制执行操作,域名管理合约实际操作域名;
域名监管合约采用提交即生效的模式。
7.根据权利要求6所述的一种基于区块链的域名注册管理方法,其特征在于,在合约的管理规则中,不同角色执行各种合约权限为:
注册管理运行机构角色的成员可执行成员管理合约、域名数据合约、域名管理合约、域名监管合约;注册服务机构角色的成员可执行域名数据合约、域名管理合约、域名监管合约;注册者角色的成员可执行成员管理合约、域名数据合约、域名管理合约、域名交易合约;监管者角色的成员可执行域名监管合约;支付机构角色的成员可执行域名交易合约。
8.根据权利要求7所述的一种基于区块链的域名注册管理方法,其特征在于,在域名管理合约中,域名注册采用维克里拍卖的形式。
9.根据权利要求8所述的一种基于区块链的域名注册管理方法,其特征在于,所述域名管理合约还负责实现当前体系下的域名注册者向域名注册管理链的迁移。
10.一种基于区块链的域名注册管理系统,其特征在于,所述基于区块链的域名注册管理方法通过域名注册管理链来实现,域名注册管理链包括:
域名注册管理链架构模块,域名注册管理链是一个以增强域名数据安全为核心目标的域名注册管理系统,域名注册管理链是由域名注册管理联盟建立一个联盟式区块链,负责管理加入域名注册管理联盟的注册管理运行机构管辖范围内的所有域名数据;域名注册管理联盟是由一系列注册管理运行机构和注册服务机构组成的一个合作组织;联盟中的成员就域名注册管理的规则和流程达成共识,根据共识管理域名,共同维护顶级域下的域名数据;域名注册管理链节点由域名注册管理联盟中的成员提供,或者成员委托服务提供商执行链节点的运维职责;所有域名注册管理链节点组成域名注册管理链的运行终端网络,每个域名注册管理链节点中都存储一份域名数据的完整副本以及域名注册管理链网络中发生的所有事务数据,各节点之间通过共识机制达成一致性;域名数据是与注册域名相关的注册管理运行机构和注册服务机构负责维护的数据,域名数据分为域名注册数据和域名资源记录数据;
域名注册管理链逻辑模块,域名注册管理链底层区块链平台采用类HyperledgerFabric的架构,由区块链平台提供成员管理、分布式共识、智能合约编程、数据库存储功能支持;域名注册管理链的逻辑结构主要包含以下部分,分别为域名数据、账簿、合约、角色,成员(用户)根据各自的“角色”执行不同的“合约”程序对“账簿”进行操作,从而实现对账簿中“域名数据”的管理;
(1)域名数据:域名数据域名注册管理以及域名使用过程中的必要数据;域名数据划分为域名注册数据和域名资源记录,两部分的访问权限不同;
(2)角色:用于赋予成员权限,域名注册管理链中采用基于角色的权限管理,通过协议显式地将身份和角色绑定在一起,从而实现对各类账簿的访问控制;
(3)账簿:域名注册管理链的数据库,记录域名注册管理链的成员信息、成员间的域名注册管理相关协议以及域名数据;根据存储数据功能,将账簿划分为成员账簿、域名数据账簿、域名管理账簿、域名交易账簿;
(4)合约:实现域名注册及域名管理逻辑的程序,合约由成员提交的事务触发执行,执行结果是对账簿的操作;根据域名注册管理链的功能划分,有成员管理合约、域名数据合约、域名管理合约、域名交易合约、域名监管合约;
基于区块链的域名所有权证明模块,域名注册管理链的目标之一是兼容当前域名注册管理体系中的注册域名,所有的注册者都可以通过域名注册管理链管理自己持有的域名;对于在域名管理链注册的域名,注册者可以直接在域名管理链中管理域名;对于在域名注册管理链外注册的域名,必须将域名与域名注册管理链中的某一注册者绑定,由绑定注册者管理域名;域名注册管理链中提供域名所有权证明的功能;域名注册管理链外的注册域名不必在链内重新注册,注册者可以直接声明对域名的所有权,从而将域名的后续管理迁移到域名注册管理链中;设计两种域名所有权证明方案,分别是依赖DNSSEC的所有权证明方案和依赖区块链预言机的所有权证明方案;
利用DNSSEC证明域名所有权,要求域名所有者使用DNSSEC的ZSK私钥对特定资源记录签名,合约验证签名的真实性;这种方案采用“链下验证,链上申明”的形式,注册管理运行机构或注册服务机构链下验证域名所有者的身份,并将区域的KSK摘要信息发布到链上;注册管理运行机构或注册服务机构保证KSK密钥的所有者即域名所有者;
针对无法部署DNSSEC的域名,可以选择利用预言机实现域名所有权证明;依赖预言机的域名所有权证明采用“链上申请,链外验证”的方式,首先域名所有者在链上发起所有权申明申请,合约返回所有权证明的挑战,挑战是一个随机字符串,需要域名所有权在本区域添加包含挑战内容的资源记录;域名所有者完成挑战后,合约请求预言机外部验证是否达成所有权证明的条件,验证通过后,域名所有权证明完成,域名在域名注册管理链中与所有者绑定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110683511.8A CN113422767B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的域名注册管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110683511.8A CN113422767B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的域名注册管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422767A CN113422767A (zh) | 2021-09-21 |
CN113422767B true CN113422767B (zh) | 2022-04-19 |
Family
ID=77789403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110683511.8A Active CN113422767B (zh) | 2021-06-21 | 2021-06-21 | 一种基于区块链的域名注册管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422767B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113935072B (zh) * | 2021-09-26 | 2024-04-30 | 网易(杭州)网络有限公司 | 发行者注册方法、装置、计算机设备及存储介质 |
CN115277147B (zh) * | 2022-07-21 | 2024-06-11 | 深圳壹账通智能科技有限公司 | 文件溯源验证方法、电子设备及可读存储介质 |
US20240095733A1 (en) * | 2022-09-21 | 2024-03-21 | 3Dns, Inc. | Blockchain-based domain name registrar and management system |
CN117408848A (zh) * | 2023-12-15 | 2024-01-16 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种基于区块链的高校实验教学管理系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10848322B2 (en) * | 2017-03-24 | 2020-11-24 | Cable Television Laboratories, Inc | System and method for distributed PKI root |
US10721060B1 (en) * | 2018-06-29 | 2020-07-21 | Verisign, Inc. | Domain name blockchain user addresses |
CN110061838B (zh) * | 2019-04-28 | 2022-07-19 | 广州大学 | 一种dns资源记录的去中心化存储系统及其实现方法 |
CN112468602B (zh) * | 2019-09-06 | 2023-09-22 | 傲为有限公司 | 一种基于区块链的去中心化域名注册系统及方法 |
CN110880966B (zh) * | 2019-11-22 | 2022-05-06 | 哈尔滨工业大学 | 一种域名解析系统搭建和域名查询方法 |
CN111711711A (zh) * | 2020-05-28 | 2020-09-25 | 北京邮电大学 | 基于区块链的顶级域名管理和解析方法及系统 |
CN112363991B (zh) * | 2020-11-10 | 2024-03-22 | 上海保险交易所股份有限公司 | 区块链数据登记方法和装置 |
-
2021
- 2021-06-21 CN CN202110683511.8A patent/CN113422767B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113422767A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113422767B (zh) | 一种基于区块链的域名注册管理方法及系统 | |
US11899817B2 (en) | Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information | |
US11205172B2 (en) | Factom protocol in blockchain environments | |
US11038771B2 (en) | Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT) | |
US20200126075A1 (en) | Confidential transaction auditing using an authenticated data structure | |
Vo et al. | Internet of blockchains: Techniques and challenges ahead | |
Carvalho et al. | When good blocks go bad: Managing unwanted blockchain data | |
US20220156837A1 (en) | Distributed ledger implementation for entity formation and monitoring system | |
Tkachuk et al. | A survey on blockchain-based telecommunication services marketplaces | |
Zeng et al. | A consortium blockchain paradigm on hyperledger-based peer-to-peer lending system | |
Alzahrani et al. | A new product anti‐counterfeiting blockchain using a truly decentralized dynamic consensus protocol | |
Angieri et al. | A distributed autonomous organization for internet address management | |
CN110990879B (zh) | 一种基于区块链的数据存证方法 | |
CN112199448A (zh) | 基于区块链的工商注册登记方法及系统 | |
US20140013447A1 (en) | Method for User Access Control in a Multitenant Data Management System | |
Lin et al. | The challenges of existence, status, and value for improving blockchain | |
JP2023027775A (ja) | プライバシーを維持した監査可能アカウントのためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム(プライバシーを維持した監査可能アカウント) | |
Zhang et al. | Blockchain‐Based DNS Root Zone Management Decentralization for Internet of Things | |
Furfaro et al. | An infrastructure for service accountability based on digital identity and blockchain 3.0 | |
Quamara et al. | An in-depth security and performance investigation in hyperledger fabric-configured distributed computing systems | |
García-Martínez et al. | Design and implementation of inblock—a distributed ip address registration system | |
Xu et al. | Study on a security intelligence trading platform based on blockchain and IPFS | |
CN113067836B (zh) | 一种基于去中心化dns根区管理的智能合约系统 | |
Pustišek et al. | Blockchain: Technology and Applications for Industry 4.0, Smart Energy, and Smart Cities | |
CN112400298A (zh) | 验证交易系统和方法用于加至电子区块链 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |