Ethereum Name Service (ENS), a distributed, open, and extensible naming system based on the Ethereum blockchain, announced that it now supports the resolution of Tor .onion addresses.
The Tor network is a part of the internet that hides the IP addresses of users. It can be accessed with the Tor Browser, managed by the Tor Project. Anyone can set up websites that are only accessible via the Tor network, called onion services. Tor-only web addresses end with “.onion,” but otherwise the rest of the address is randomly generated.
For example, to access the onion version of the privacy-centric search engine Duck Duck Go, in a Tor Browser (this will not work in a normal browser) go to https://3g2upl4pq6kufc4m.onion/.
Enter the ENS Solution
Trying to get human-readable .onion addresses has been an ongoing problem for many years, given concerns over security. Since ENS is a decentralized naming service that runs as a set of smart-contracts on the Ethereum blockchain, ENS can be a helpful tool to solve this problem.
- Open the Tor Browser
- Enable the Ethereum browser extension MetaMask
- Enter the following example ENS name into the address bar and hit Enter: duckduckgotor.eth (the ENS team set this up recently to show off the new capability)
- Wait a few seconds while ENS, Metamask, and the Tor Browser process the information, and soon the onion version of Duck Duck Go will load successfully.
How it Works
A look under the hood:
After entering duckduckgotor.eth in the address bar of the Tor Browser, MetaMask recognizes that duckduckgotor.eth is an ENS name and so prevents the browser from treating it as a search or normal DNS name.
- MetaMask does a look-up on ENS on Ethereum, grabbing the .onion address for Duck Duck Go in the “Content” field (the same field that also accepts IPFS and Swarm hashes) in the ENS record for duckduckgotor.eth and returning it to the address bar in the Tor Browser.
- Since what is returned is a .onion address, the Tor Browser then navigates to the onion website at that address.
To set up an ENS name to resolve to a .onion address, one first needs to get an ENS name. The .eth name can be registered with the ENS Manager in an Ethereum-enabled browser and some Ether (ETH) will be needed.
Secondly, set up an ENS record. This can also be done with the ENS Manager in an Ethereum-enabled browser and some ETH. For the ENS record, set the Resolver to the “Public Resolver” (the standard ENS recordset).
Then set a “Content” record that says “onion:// (insert .onion address without the .onion ending).
Once the data set to this record is confirmed, the process is complete. Now, when opening up the Tor Browser with MetaMask enabled, type in the ENS name, and it should immediately be ready to resolve to the .onion address placed in the record.