GNS

The GNU Name System

Motivation

The Domain Name System today enables traffic amplification attacks, censorship (i.e. China), mass surveillance (MORECOWBELL) and offensive cyber war (QUANTUMDNS).
Unfortunately, band aid solutions such as DoT, DoH, DNSSEC, DPRIVE and the like will not fix this. This is why we built the GNU Name System (GNS), a secure, decentralized name system built on top of GNUnet.

Overview

The GNU Name System (GNS) is a decentralized database that enables users to securely resolve names to values. Names can be used to identify other users (for example, in social networking), or network services (for example, VPN services running at a peer in GNUnet, or purely IP-based services on the Internet). Users interact with GNS by typing in a hostname that ends in a top-level domain that is configured in the “GNS” section, matches an identity of the user or ends in a Base32-encoded public key.

Features

The GNU Name System (GNS) is secure and decentralized naming system. It allows its users to register names as top-level domains (TLDs) and resolve other namespaces within their TLDs.
GNS is designed to provide:

  • Censorship resistance
  • Query privacy
  • Secure name resolution
  • Compatibility with DNS

Resources

Videos giving an overview of most of the GNS and the motivations behind it is available in our videos section.
Read more about GNS in the respective section of our handbook.

For protocol details, we maintain a technical specification which can be used to implement resolvers for GNS.