Namecoin Integration in Whonix

It’s a rate-limiting / anti-spam mechanism for name registrations. If there weren’t a cost to register names, then one spammer could, for example, pipe the entire trademark database of every country into a Bash script and grab all those names for themself without any cost.

When Namecoin was originally being designed in 2010 (under the name BitDNS), the original design (by Appamatto) didn’t involve a currency; instead, users would use PoW directly to mine blocks that contained name registrations. However, it was pointed out (by Theymos) that this would be both a UX and security issue: a UX issue because users would need to be a miner to register a name (and would need to wait until they mined a block before they’d get their name), and a security issue because the UX issue would result in miners offering to register names on behalf of non-miner users, becoming a trusted 3rd party that could frontrun the names instead. So the solution was to have a “domain credits” pseudo-currency that miners would generate, which could be transferred around (similar to bitcoins) so that non-miners could register names in a trustless manner.

No; resolving names is gratis; it does not require spending or possessing any coins or creating any kind of blockchain transaction.

The concept of using cryptocurrency created on one blockchain to issue transactions on another blockchain is called a pegged sidechain. It is a cool concept, and I would like to see it implemented in theory. But, no one has figured out how to make it work in practice. The closest thing that’s been deployed in the real world is Blockstream Liquid, which uses a federated peg, i.e. there is a centralized set of validators who sign the transfers between chains. Namecoin values decentralization, so we don’t think that approach is acceptable for our use cases.

There are also scalability concerns with using bitcoins to register Namecoin names, specifically that this would require full Namecoin nodes to also be full Bitcoin nodes. Appamatto’s original BitDNS design involved putting both Bitcoin and Namecoin into a single blockchain (which he called BitX); Bitcoin founder Satoshi Nakamoto was very much against that, and argued that users of one system shouldn’t need to download the blockchain of the other system: “Piling every PoW quorum system into one dataset doesn’t scale.” Satoshi instead recommended that they use separate blockchains that share miners, and he proposed the system of merge-mined sidechains to achieve this, which Namecoin implemented. As a result of Namecoin being a merge-mined sidechain of Bitcoin, Bitcoin miners can mine Namecoin as well at approximately no additional cost; for this reason, Namecoin has a very high hashrate (the majority of Bitcoin hashrate also mines Namecoin, and there have even been a few rare instances where Namecoin’s hashrate exceeded that of Bitcoin).

That said, it is possible to exchange bitcoins for namecoins in a decentralized way. The simplest way to do this is via a decentralized Bitcoin exchange (Bisq supports exchanging bitcoins for namecoins), but a more interesting approach is cross-chain atomic trades, which utilize some interesting features of Bitcoin/Namecoin transactions to allow trading bitcoins for namecoins atomically, i.e. there is no counterparty risk since either both sides of the trade go through, or neither does. Right now, I’m not aware of any atomic cross-chain trade systems that support Tor, but we are very much open to the concept of implementing such support in the future.

One other benefit of Namecoin not using bitcoins to register names is anonymity. Bitcoin is vulnerable to graph analysis to deanonymize transactions, so if Namecoin names were registered via bitcoins, that would lead to deanonymization of Namecoin name owners. In contrast, since namecoins can be purchased on an exchange for arbitrary currencies, users who care about anonymously registering names can buy namecoins on an exchange using an anonymity-friendly cryptocurrency like Monero, which means that if someone tries to trace the owner of a Namecoin wallet via graph analysis, all they’ll figure out is that it was purchased via Monero, at which point the trail goes cold (assuming that Monero’s anonymity works as intended). I gave a talk at 34C3 that goes into more detail about anonymity in Namecoin; video is here, and slides are here.

Hopefully that answers those questions.

1 Like