Namecoin is an old crypto-currency, one of the original forks of Bitcoin. It still exists today and has good security, primarily because it can be merge-mined with Bitcoin.

This means that Namecoin latches on to the mining power of the Bitcoin blockchain, and in return, Bitcoin miners are rewarded with Namecoin and Bitcoin at the same time. Namecoin isn't worth much, and there is currently only one exchange trading it, the NMC/BTC trading pair on livecoin.net (Looks like livecoin is no more, check the exchanges list on namecoin.org for alternatives). However, it's worth enough to be merge-mined, and that's a good thing, because it enables us to use Namecoin while enjoying the same strong consensus and proof-of-work guarantees that Bitcoin enjoys.

Brief Introduction to Bitcoin and crypto-currency in general

If you are unfamiliar with what Bitcoin is and how it works, the claims I'm about to make might be confusing or hard to believe. If that is the case for you, I would recommend reading the webcomic version of the original Bitcoin whitepaper on coinspice.io first.

Now, if you ARE familiar with Bitcoin, you may know that it's famous for being the 1st solution to a long-standing problem in computer science. In academia, this problem has been known as the Two Generals Problem or Byzantine Fault / Byzantine Generals Problem

Put simply, the problem asks:

How can two or more generals with geographically separated armies coordinate a synchronized attack, even if the generals don't necessarily trust each-other?

Note: The original version of this article had a highly inaccurate description of this problem. I have edited it with a better explanation.

It's a sort of game-theory problem where both self-interested parties have an incentive to cheat, but if they work together, the reward will be bigger.

Bitcoin solved this problem for the first time in 2009 by combining Public Key Cryptography and economically incentivized consensus, implemented as variably difficult Proof of Work that is incentivized, where the incentive "block reward" only continues to exist if others agree that the entire block (and all subsequent blocks) are valid. In general, this construction is referred to as a "Blockchain".

In a modern context, we can express the problem as:

How can we design software that allows multiple self-interested parties to read and write a shared database while eliminating the possibility of lying/cheating?

And that's exactly what Bitcoin does.

Why Namecoin? What problems does it solve?

Before Bitcoin, the Byzantine Generals Problem was unsolved. So all of the development of the internet and web technology that happened before then did not even attempt to guarantee no lying/cheating.

In general, problems where security was important, like

  • How can we make a global registry of domain names, and allow anyone to register a name?
  • How can HTTPS security certificates be proven authentic, while allowing anyone to get a certificate for their server?

were solved with appeals to authority. The scheme was something like,

  1. We will establish an authority organization, like a bank, to act as an intermediary.
  2. Users will ask this authority to enter a record in their database or sign a certificate.
  3. The client software (operating systems, embedded devices, web browsers, etc) will implicitly trust that whatever the authority says is true.

Some of these authority based solutions include:

These authority-solutions, primarily DNS, are used by governments around the world to monitor and censor internet use within and outside of their borders. Protestors in Turkey spray painted the IP addresses of Google's DNS servers on a wall, urging others to configure their computers to trust United States authorities for Domain Name information, rather than Turkish authorities, due to heavy censorship.

Within the United States, domains that host content which the government's corporate constituents don't like are regularly "seized". This means that the government threatens the DNS provider with legal action until the DNS provider (the technical "Authority", in this case) removes control of the DNS entry from the user and hands it over to the government. One government branch boasted over one million domains "seized" in 2018.

Secure Names Without Authority

However, now that we have a working solution to the Byzantine Generals Problem, we can actually do better at the technical level. Namecoin adds extra functionality on top of the payment functionality of Bitcoin, enabling users to participate in a distributed, secure, and global key-value database where keys and values cannot be "seized" or spoofed. Namecoin is a solution to another famous problem known as Zooko's Triangle, roughly expressed as:

Human-meaningful, Secure, and Decentralized. Pick Two.

With Namecoin, we can have all three.

This is a great improvement for modern and emerging web standards that have historically involved displaying large cryptographic numbers to users as a part of the protocol's user experience.

Examples include:

  • BitTorrent Magnet Links: magnet:?xt=urn:btih:5dee65101db281ac9c46344cd6b175cdcad53426
  • Bitcoin Addresses: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
  • Tor Hidden Services: http://3g2upl4pq6kufc4m.onion/
  • BitMessage Addresses: BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash
  • IPFS Name Records: /ipns/QmSrPmbaUKA3ZodhzPWZnpFgcPMFWF4QsxXbkWfEptTBJd

These are numbers, similar to IP addresses like 8.8.8.8 and 174.141.199.88, they are simply longer numbers that are encoded differently.

We can associate those long nonsense strings with human-meaningful names in Namecoin, and then anyone can access our resources by name as long as they have Namecoin-compatible client software on their computer.

Currently, support for Namecoin is being worked on within a number of projects, including the Tor Browser Project and IPFS!

So without further exposition, let's get into it!

Register a Namecoin .bit Domain easily, using Electrum-NMC

I did this on Linux, Ubuntu Focal (20) specifically, but it should work on Windows as well.

If you want to do this on Mac OS, you will probably run into problems. Some processes such as installing packages will be different, or may not work at all. If you have a Mac and you want to try this, it might be easier to simply use a Linux virtual machine. You can download a piece of software called VirtualBox for free from Oracle, which will allow you to run a Linux virtual machine from Mac OS or Windows.

Ingredients List

You are going to need:

  • Bitcoin or other cryptocurrency to trade for NMC
  • Bisq client / Exchange account to do the trade. (See the exchanges list on namecoin.org )
  • A computer or virtual machine running Linux or Windows, to run Electrum-NMC
  • Electrum-NMC software (Namecoin fork of Electrum Bitcoin Wallet)
  • Lots of time
    • Unfortunately due to software defaults that prioritize security over usability, several steps in this process require approximately two hours of waiting.
    • It's probably best to do this while you are doing something else.

Acquiring Bitcoin

Ask Satoshi Very Very Nicely.

JK. I'm not going to cover this here. There are plenty of other guides online regarding purchasing and storing Bitcoin. If all you want is to register a few names with Namecoin, you aren't going to need very much (Like, less than $10 worth). So security is not a very big deal here.

About Electrum and SPV Wallets

Electrum is one of the best Bitcoin wallets for new users, in my opinion. It is a Simple Payment Verification (SPV) wallet. This means that Electrum is not a Bitcoin "Full Node". It does not participate in the network by downloading and validating the entire bitcoin blockchain (Many gigabytes). Instead, it only downloads block headers and sparse transaction history for transactions that it cares about (addresses that it owns).

There are potential privacy concerns associated with SPV wallets, namely, that the wallet will contact a server in order to operate, and the person who owns that server will get to know that a specific IP address and/or client software profile owns specific addresses. This can be sensitive information, because with Bitcoin, Namecoin, and most other crypto-currencies, all transaction history is perfectly recorded and avaliable to the public forever.

But I don't care about that, I think it's fine for the world to know that I registered sequentialread.bit. Your use case may vary.

Aquiring and running Electrum-NMC

Electrum-NMC is a fork of Electrum which has been modified to support Namecoin instead of Bitcoin.

For more information, see: https://www.namecoin.org/docs/electrum-nmc/

You can download pre-compiled binaries of electrum-nmc for Linux and Windows here: https://www.namecoin.org/download/betas/#electrum-nmc

Unfortunately it looks like there are no official binaries for MacOS quite yet. If you have a Mac, you may be able to run it from the python source code easily enough, per the instructions on the README.

- Show [How to Run Electrum-NMC from Source] -

Comments