Just days after his EDCON announcement that the Ethereum Name Service (ENS) would launch on the mainnet on March 14, Nick Johnson, who works for the Ethereum Foundation, published a blog post on Medium today. The recent post was titled: “How you can help deploy ENS,” and it was more than just a call to action. It was announcing the fact that you could be the lucky user who literally deploys ENS by helping to find a “vanity address” for the smart contract.
The Ethereum Name Service is meant to act like a DNS, or domain name service. A DNS turns an IP address like “188.8.131.52” into something human-readable like “YouTube.com.” After ENS goes live, long, cryptographic addresses (like 0x32b724f073ec346edd64b0cc67757e4f6fe42950) will regularly be replaced by a simpler “.eth” designation.
Since ENS will help do away with long addresses, the Ethereum Foundation thinks that it would be appropriate to host the ENS smart contract at a unique address. In his blog post, Johnson says:
“ENS aims to be a general purpose name registry for the Ethereum blockchain, and potentially for wider applications too. It aspires to be the last address you ever have to deal with, and as such, we figure it deserves a nice (vanity) address.”
In the world of blockchains, cryptographic addresses are a common sight. They are long, and generally look like a string of random numbers and letters. They’re longer than IP addresses, and certainly look more daunting. So making them more human-readable is integral to increasing widespread adoption of Ethereum and blockchain technology.
For an address to be valid, it must adhere to certain standards; it cannot simply be a randomly generated set of numbers and letters. An address consists of a precisely generated pair of public and private addresses, known as keys; this is known as asymmetric cryptography, or more commonly, public-key cryptography. Generating an address is not random, as it must be created through a specific algorithm. A simple program handles this task. This led to the creation of vaniteth, a program written by Johnson, which allows a user to create vanity Ethereum addresses.
Like a vanity license plate, a vanity cryptographic address allows a user to add a level of customization to an address, as a way to personalize the seemingly-random string of characters. A vanity address can start with sequential or repeated numbers, or basically anything the human brain would recognize as familiar. It doesn’t just stop at ordered numbers either. You can also have a certain word in the beginning of an address.
Creating a specific address, however, becomes exponentially harder the more characters you attempt to specify. This is due to how cryptographic keys are generated. If it were easier to generate a valid address, it would be possible to use brute force to calculate the private key of a public address. So a user could attempt to generate an address through vaniteth that begins with the letters ENS with relative ease, but the higher the level of customization, the exponentially longer it would take to generate a proper address.
Even with a computer capable of looking through 1 million keys per second, finding a key that starts with six specific characters might take a few minutes, while finding a key with eight specific characters at its beginning could take days on end. Try to fully customize an address and you may end up waiting a few trillion millennia.
Why have the community generate an address for ENS? Johnson previously explained to ETHNews that ENS is very much a community effort. The Ethereum Foundation nurtured the development of the Ethereum Name Service software, but “the deployment and administration of the new domain will be a community-driven effort.” This is in line with the Ethereum Foundation’s goals of increased outreach and community involvement. Johnson continued in his post:
“Here’s the deal: post your best addresses in this Reddit post, and in the runup to March 14, I’ll select the most upvoted address and invite that user to deploy ENS, and transfer ownership of the contract to the root multisig. If there’s any problem contacting the most upvoted submission, we’ll go for the next best, and so forth. Don’t forget to save the private key for any submissions somewhere!”
If you’re computer savvy enough, or simply feel adventurous, check out Johnson’s blog post for instructions on how to start generating vanity addresses. He’s done all the hard work of writing the program; now you just have to run it.
For a blockchain network to succeed, it must have a robust community supporting it. That’s a big part of Ethereum’s attraction: its organic community of developers and enthusiasts that keep the network alive and growing.