The domain coin (Namecoin, NMC) is an experimental open-source technology that provides functionalities similar to traditional DNS (Domain Name System) service providers, characterized by security, uncensorability, privacy, and speed. Namecoin was the first fork of Bitcoin and remains one of the most innovative "altcoins." It was the first to implement merged mining and decentralized DNS features.
1. Project Applications
Namecoin is the first fork of Bitcoin and still one of the most innovative "altcoins." It was the first to implement merged mining and decentralized DNS. Namecoin also provided the first solution to Zookos Triangle, a long-standing problem of creating a naming system that is simultaneously secure, decentralized, and human-meaningful. Specific applications include:
• Protecting online freedom of speech rights by making the web less susceptible to censorship.
• Attaching identity information (such as GPG and OTR keys, as well as email, Bitcoin, and Bitmessage addresses) to your chosen identity.
• Human-meaningful Tor .onion domains.
• Decentralized TLS (HTTPS) certificate validation backed by blockchain consensus.
• Accessing websites via the .bit top-level domain.
• Proposed ideas such as file signatures, voting, bonds/stocks/shares, webs of trust, notary services, and proof of existence.
2. Relationship Between Namecoin and Bitcoin
The Namecoin codebase consists of the Bitcoin codebase with relatively minor changes (approximately 400 lines) and additional features built on top. The mining process is the same, but the blockchains are separate, hence the creation of Namecoin. This approach was adopted because Bitcoin developers wanted to focus almost exclusively on making Bitcoin a viable currency, while Namecoin developers were interested in building a naming system. Due to the different expected use cases between the two projects, consensus and protocol rules may make sense for one but not the other. Examples of places where different protocols or consensus rules apply include:
• Namecoin’s consensus rules require the enforcement of name uniqueness. While data can be stored in Bitcoin (e.g., key/value pairs in OP_RETURN outputs), Bitcoin does not enforce uniqueness. In theory, it is possible to build a layer on top of Bitcoin that discards OP_RETURN outputs that do not respect uniqueness (e.g., name operations that steal someone else’s name), but miners would not enforce any such layer. If miners do not enforce transaction validity rules, Proof-of-Work does not back them up, meaning SPV-based lightweight clients cannot implement these validity rules.
• Consumers expect different fees for financial transactions versus name registrations, and due to the differing volumes of global financial transactions versus global name registrations, the optimal block size for Namecoin and Bitcoin may differ.
• Inflation attacks are fatal in currencies but are just spam or squatting attacks in naming systems: bad, but not nearly fatal. Therefore, decisions about features such as anonymity based on zk-SNARKs (which carries the risk of inflation attacks) might lead to different conclusions between Namecoin and Bitcoin.
• Some script features that make sense for Namecoin might not for Bitcoin, such as allowing scriptPubKeys to limit the scriptPubKeys of any spending transactions. In a naming system, features like this can make updating and revoking names more convenient and secure, but in a currency, they could undermine fungibility.
• The commitment of Coinbase to the name database can be enforced through Namecoin consensus rules, allowing the creation of SPV proofs that a name does not exist.
• Generally, Namecoin developers try to minimize the patch set against Bitcoin. If a feature can be implemented in Bitcoin, we attempt to add it to Bitcoin and then merge it into Namecoin. Namecoin introduces distinctions from Bitcoin only when the feature doesn’t make sense for Bitcoin due to differing use cases. Although Namecoin could theoretically be used as a general-purpose currency, Namecoin developers do not encourage using this use case. There are many cryptocurrency projects dedicated to this purpose (e.g., Bitcoin). If you are looking for a currency, you should use one of those projects.
Related Links:
https://www.namecoin.org/docs/faq/