Sunday, November 15, 2020

bchDNS and Generalizing Bitcoin 2020

Happy upgrade day everyone!

Now, as the drama is the past, and we have the best team of developers focusing on moving Bitcoin forward, I would like to bring up the topic that has first being brought up exactly 10 years ago on bitcointalk. That is, adding DNS capabilities to Bitcoin. The thread is in many ways wonderful and I recommend it as a reading if anyone missed it.

The (tl;dr) story

The decentralized dns was a dream long before Bitcoin was alive, and the problem was well formulated as u/zooko's triangle. I would dare say decentralized dns was as much desired as decentralized currency. It just so happened bitcoin came first.

So people began discussing how to utilize bitcoin to bring decentralized dns to life. There were different proposals like integrate it into bitcoin, or make it a separate blockchain. The discussion was hot, but then Satoshi came in and expressed his opinion that separate blockchain under the same cpu power was the way to go. The Namecoin was born a bit later as a separate chain to be merged mined with Bitcoin. Fun fact, this thread was one the last places where satoshi participated in discussions before leaving the forum.

Satoshi's proposal was extremely clever tech-wise, but it didn't turn well for Namecoin as it was basically forgotten, despite it's a coin with total hash rate that exceeded Bitcoin Core's during btc/bch oscillations. It may very well be the time has yet to come for Namecoin. One thing is for sure – if dns was integrated into bitcoin, the progress in that scene would have been much greater to this day. For example, the coin addresses would have been a thing of the past the same way ip addresses are. And all that today. And I would dare suppose many browsers and linux distros would have this system integrated. It's easy to see this from today's perspective, but it was impossible ten years ago.

What's following is a little insight around what's going on with namecoin today, my speculations about the foreseeable future and my proposal for the present.

Namecoin and Tor Browser

For the past several years enormous work has been done by u/biolizard89 and the team in terms of integrating namecoin name resolutions into a browser. This is all being done in the context of Tor Browser, because that's where decentralized domains are needed the most nowadays. Today, Namecoin name resolutions is an opt-in feature in nightly Tor Browser on gnu/linux builds. You can watch Jeremy Rand's talk to get the more detailed picture about the progress and design principles of that integration. I will just provide a high-level overview below.

This whole integration is basically an electrum wallet built into a browser, capable of resolving names through nmc-enabled electrumx servers. The client/server communication is tunneled through tor. The key thing here is that Jeremy made a fantastic work stripping everything fatty from electrum to achieve very browser friendly ~3mb binary.

Speculation

That being said, we are nearing the time namecoin is resurrected from ashes of coinmarketcap ratings. It's hard to time the events, but that will happen for sure. From there on the adoption will explode. In two-three years we will have Tor/Firefox/Brave to name a few browsers that will embrace decentralized dns. The question is, will other coins embrace Namecoin, or will they integrate it into their chains? The temptation would be too high for many projects to integrate it. For example, zcash may include name registrations much faster than namecoin will enable private transactions, thus zcash based dns will provide more value as the dns system for Tor.

Despite it's possible to have several tld's in a single chain, namecoin will more likely be focused on a single one, which is dot bit. Other coins will provide their own tld's, forming a fully parallel and independent (and even more decentralized) dns layer with many tlds, each providing benefits based on underlying blockchain value. For example, zcash-based tld will allow for fully anonymous domains etc.

Proposal

I propose to the Bitcoin community to reevaluate the decision made 10 years ago about not integrating the dns system into blockchain. The whole dns 'layer' is 3 new opcodes – name_new, name_firstupdate, and name_update and a little bit of code to glue that. The solution is truly battle tested, and if the community believes in idea that bitcoin must take and integrate all the best from the industry to compete and win, name registration is the well baked stuff.

By integrating the dns in our blockchain we may provide additional value and fix several mistakes. First, name registration in our TLD may be much more expensive, making it harder to namesquat the TLD. As Julian Assange pointed out in a famous interview from 2011:

JA OK, so, once you have a system of currency that is easy to use like that, then you can start to use it for things that you want to be scarce. What is the example of some things that we want to be scarce? Well, domain names. Names. We want names to be scarce. We want short names to be scarce, otherwise if they are not scarce, if it doesn’t take work to get them, as soon as you have a nice naming system, some arsehole is going to come along and register every short name themselves.

The short name scarcity was hard to implement ten years ago, it’s darn easy when underling currency is valuable. The .bch TLD may provide access to short names, while .bit may work well for general audience.

Second, we may have non-expiring names to solve financial and social id’s. That alone will solve a huge wallet usability problem in a nicest way possible. I am fully aware of u/jonald_fyookball CashAccounts, but they rely heavily on 3rd parties to provide indexing, while op_code based names can be resolved and verified using SPV, which is proven, robust and long term solution. Besides improving wallet UX, such naming system will greatly benefit maturing Memo protocol, where users will be able to have unique names.

The P2P ecash combined with decentralized naming system is the powerful mixture, if you think a bit!


No comments:

Post a Comment