Namecoin project purpose and description
What is Namecoin?
Namecoin is an open-source blockchain platform that aims to improve resistance to censorship, privacy, security online and decentralization of access to the internet.
Apart from that, Namecoin was also built to help improve the speed of some components of the internet to make it more efficient, such as identities and DNS.
What is the problem that Namecoin Solves?
Over the years, there has been quite a lot of criticism against oppressive governments all over the world. Most of this criticism is often done online, and the governments find ways of clamping down on protestors.
This form of oppression and dictatorship has been castigated all over the world, especially when it infringes on the rights of people, and more importantly, the freedom of journalism.
Most people who come online to express their views are often tracked and punished. Many have lost their lives, some have been forced to flee for their lives. What Namecoin is doing, is to make the internet a safe place once again, where people can express their opinions without worrying about repercussions, especially against oppression and dictatorship.
How does Namecoin Solve the problem?
Namecoin is a unique blockchain platform. The description behind Namecoin is to use the benefits of blockchain to give back power to the people. While Bitcoin takes monetary freedom from the financial institutions like banks and puts it in the hands of the users, Namecoin frees technologies, identities, and DNS.
The following are some of the things that Namecoin is working at, which helps them tackle the freedom concern online.
Namecoin aims to make the internet a place where censorship can be resisted. This is eventually supposed to protect the right to free speech.
Users can attach identity information like OTR, GPG, Bitcoin, Keys and Bitmessage addresses to the identities that they choose.
When using Namecoin, users are able to choose .onion domains on Tor that they can use for whichever purpose online.
Namecoin is also bringing the benefits of blockchain, especially decentralization, to the validation of TLS (HTTPS) certificates. Therefore, with a decentralized internet where servers are not located centrally, it becomes difficult for someone to track down the user online. This decentralization is supported by blockchain consensus.
Domains that have often been blacklisted or have restricted access can now be accessed through .bit, a top-level domain.
To achieve the intended goals, the Namecoin software registers names and stores all the associated values in the blockchain. This way, the database is shared and distributed on a P2P network in a secure manner. It is only this software that can be eventually used to ask for information from this database and retrieve the data that is securely stored in it.
For security purposes, users are expected to update or renew their names after every 35,999 blocks. This translates to roughly every 200-250 days. After this duration, the name expires. While there are no fees charged for renewals, updates or registration on Namecoin, there are transaction fees that are applied.
What makes Namecoin better than the competitors?
The codebase for Namecoin is built on the Bitcoin codebase. There are simple changes, around 400 lines on the Bitcoin codebase, and additional lines of code that are aimed to improve on a few weaknesses in Bitcoin.
Therefore, Namecoin uses the same mining protocol as Bitcoin, though their block chains are not identical. This is also where they derived the name, Namecoin.
The reason for this is because the developers at Bitcoin were keen to create a viable currency on the blockchain, while the developers at Namecoin were more interested in coming up with a unique naming system.
As a result of the disparity in intended use case between these two projects, you will notice that protocol and consensus rules might be applicable in one but not always across the board, however much code they share between themselves.
The consensus rules at Namecoin are written to make sure that names are unique. This is not the case with Bitcoin. In fact, users are able to store data on Bitcoin, though Bitcoin on its part, does not enforce uniqueness. In fact, in theory, developers can build layers on Bitcoin that will discard any output that does not honor the uniqueness rule. This includes perhaps, an operation that is intended to use someone else’s name illegally. These rules, however, cannot be enforced by miners. For this reason, they cannot be supported by Proof of Work (PoW).
Consumers can expect a disparity in the fee structure when using Bitcoin vs. when using Namecoin. This is true because of the obvious disparity in the volume of transactions between these two platforms. The volume of financial transactions is greater than the volume of name registrations worldwide. This is also down to the fact that Bitcoin and Namecoin both have different block sizes.
Inflation can wield serious damage on a currency. However, inflation on a naming system might only be tantamount to a squatting attack, or a spamming. This is bad, but not anywhere close to the near-fatal attack that a currency might experience.
What this means, therefore, is that Namecoin is more robust and built to withstand the shock of an inflationary attack than Bitcoin. As a result, decisions on features that address inflationary risks will not always arrive at the same conclusions between Bitcoin and Namecoin.
Bitcoin and Namecoin might share a lot of code, but there are so many features in either that might not be applicable, or make sense to the other, especially with respect to their scripts.
A good example is the scriptPubKey. When allowed to restrict the scriptPubKeys, this feature on Namecoin might make it easy to update and renew names, making the process safer and more convenient. On Bitcoin or any other currency, this script might be harmful.
How can Namecoin be categorized?
Namecoin is a name currency. In fact, the developers at Namecoin try to reduce the patchset they have to use against Bitcoin as much as they possibly can. In case it makes sense to have a feature in Bitcoin, they can push it into Bitcoin, then merge the feature to Namecoin.
Differences in Bitcoin are only introduced to Namecoin when the changes might not make any sense to Bitcoin, especially in light of their different use cases. Theoretically, Namecoin can be used as a digital currency. However, the developers do not advise this. There are several digital currency projects, and users are advised to use those for currency purposes, not Namecoin.
What’s Namecoin’s vision on Security?
Namecoin developers have an active community who constantly monitor and report any errors that they notice in their profiles. The issues are debugged as soon as possible. The following are some of the reasons why Namecoin has managed to beef up security especially in light of being a blockchain platform that aims to fight censorship.
The developers actively monitor the default discovery nodes. Other than that, they add more computing power through CPU and RAM to the discovery nodes, to support their cause. As a result of this, it is virtually impossible to overwhelm the discovery nodes by sending or spamming them with requests.
Caching layers are used on the platform. This way, the DHT network is protected even if it is experiencing or recovering from a failure. In this manner, the read queries will still access nodes that use the caching layer, hence, users can still access the cached data.
The developers proactively monitor the blockchain from time to time. This is important in the sense that it helps them identify new data as and when it is available, and check whether the new data has been generated on the DHT network or not.
It is not easy to steal a Namecoin name. According to the developers at Namecoin, to do this is almost as difficult as stealing Bitcoins. The attacker would need to have a majority of the hashrate, which is virtually impossible to achieve.
The attacker would need to steal the private keys to the name, which is very difficult, especially for users who have put in place appropriate security measures. It is, therefore, upon the user to keep their private keys safe. If this does not happen, they could be highly vulnerable.
However, the script system that is native to Bitcoin and Namecoin are written in such a way that theft is naturally a difficult thing to execute.
There are features currently in development that are supposed to allow Namecoin users more flexibility in working with anti-theft protocols, which will eventually meet their individual needs.
The following are some of the security features that users should expect on Namecoin in the near future:
- Multisig – This is similar to the multisig system used in Bitcoin. This allows users to control changes to their names with M of N keys. These keys could be administered by company directors, or stored in secure locations, or by security service providers. The Namecoin protocol already has consensus rules that support this, though end-users are not fully exposed to it yet.
- Offline signing – This is also a protocol that is used on Bitcoin. Users can allow names that are controlled by keys stored in a secure computer like a virtual machine that is isolated offline, or a hardware wallet.
- Delegated renewal – This feature is specific only to Namecoin. It allows users to authorize a key to renew one name. However, this does not allow the key to change the owner of the name or the value of the name.
- Delegated alteration – This protocol would allow the key to get authorization and change the value of the name but does not change the owner of the name. It is already supported by Namecoin, though users are yet to be exposed to it fully. With a few improvements to this protocol, it will then be rolled out.
- Delegated partial alteration – This would allow a key to get authorization to alter a subset of one of the values of a name. for example, the key can change the IP address of the domain name, but not the TLS certificate.
Namecoin has the same risk exposure to 51% attacks as Bitcoin. Therefore, the only possible adversities that might affect Namecoin are an attacker preventing transactions from being confirmed, and an attacker who reverses transactions that have been sent for confirmation.
Reversed transactions can make it possible for registrations to be stolen, especially if the transaction that was reversed is a name_firstupdate.
The reason for this is because, before registration, all names on Namecoin are deemed as “anyone can spend”, which means that before it is registered, anyone who has access to the name has a fair stake in ownership as the person who registered the name.
Users are advised that Namecoin, like Bitcoin, are not anonymous. Bitcoin has several flaws in their anonymity properties, and as a result, it follows that Namecoin, that is primarily sharing the same code with Bitcoin, is not completely anonymous.
However, if the user were to properly use Namecoin alongside Tor, they can enjoy anonymity in lieu of their identity and location in so many use cases. In case any user feels that they need adverse anonymity for one reason or the other, they are advised to carefully evaluate the condition or situation specific to their needs.
It is also advisable to understand that the use of Namecoin on Tor might not automatically give someone 100% anonymity. Therefore, users are advised not to be reckless and irresponsible and assume that Namecoin is fully anonymous.
On their part, Namecoin is working together with projects that offer anonymity on the blockchain like Zcash and Monero, and hopefully, this feature will eventually be a reality on Namecoin.
Examples of Namecoin use cases/applications
The following are guidelines for using Namecoin for app developers.
Developers are advised to consider working on the Namecoin Testnet. This is a good way to prevent the test from bloating the production blockchain, and at the same time, allows the users to run tests without having to spend money on the names.
In case more than one implementation might benefit from the same use case, it is advisable that the user writes a spec in such a way that any implementations that are not compatible with similar ideas does not create a problem.