Jeremy Rand (gave presentation)

ElectrumX server maintains database indexes. Data that returned is not blindly trusetd. The ElectrumNMC client asks the server I'd like to see the transactions for a particular name. Client asks for Merkle proof that ties it to a blockchain. Client can verify that transaction did come from the block chain. Getting down to 1 round trip requires a protocol extension.

Client doesn't have to trust what it's talking to -- it gets the proof that it can verify. PoW is verified by client. Merkle proof that ties the transaction to the longest chain. Both verified by the client. An extra layer of security that could be enabled in the future, where you could request not just the latest transaction and the Merkle proof for that, plus pervious set of transactions going to a checkpoint. That checkpoint would be set by namecoin devs or tbb devs. Once you have chain of transactions that goes back to bvefore checkpoint, you can verify the stream of transactions that goes up to the name. You can also be certain that the signatures on the transaction match the public key that is known to have controlled the name beyond the checkpoint. In practice already quite secure. Don't think adding a layer of security is a crticial blocker at that point.

Rob: What's the process to getting a name in namecoin? Jeremy: If you want to register a domain in namecoin and point to onion service. Download a namecoin wallet: 1 is namecoin core and downloads the full blockchoin with egvery transaction. Alternatively, run ElectrumNMC which is lighter-weight. Still quite secure; private keys stay on your own computer, but doesn't download every single transaction of all of history. In either case, there's a tab on the wallet UI called "Buy Names". Go to that, enter what name you want. Deduct a certain number of nmc from your balance and you would have the name. To get NMC in your balance, you can trade bitcoins for namecoins. All users of onion services who want to have a name would have to pay for cash or mine. Trying to mine it with a general purpose gpu and cpu.

Rob: Unreasonable for users of onion services to register namecoin.

Jeremy: We worked on tor browser/namecoin ux first. Not super difficult to obtain namecoins and register a name for it. Not super difficult. One of the caveats there is that registering a name anonymously is a little tricky right now because

  1. If you buy nmc on an exchange and exchange knows who you are or can trace you back. They can figure out who controls the name
  2. NMC wallets that exist right now are not very good at keeping multiple names in the wallet on the blockchain. Both issues are fixable and have a fairly detailed roadmap on how to fix that. Video of 34C3 Chaos west stage. Registering names anonymously was lower priority than getting to work at all with just Tor Browser. For some people location anonymity is good enough. So far has not been the highest priority.

Alex: What info can you add in the transaction? Metadata? Jeremy: Basically just an opaque binary blob up to 520 bytes. In theory anything you want. In practice, it's a JSON string that contains different fieldes for different kinds of DNS value. Also a map field for subdomains. If you want to put extra data into your record, you can do that. Can be seen as a directory. Imagine if people start adding their onino services. Could be seen as a way to discover onion services. Like a sort of search engine for onion services.

J: Did actually create script and walk the entire block chain and text file could be imported into a search engine to index all of them. If you want to be able to get a list of all the publicly-known onion services that are in the namecoin block chain, that's something you can do. If you want it to be discoverable, nmc block chain is good for that use case.

J: Price of registering. Right now it's a little bit under 2 namecents. 1 Namecoin is roughly 80 cents. So a couple of cents to register a domain. J: There's a misconecption that nmc is heavily squatted. J: Right now it's 1 MB per block. But we're going to do a soft fork to decrease that. Side effect is if you try to do a lot of transactions at once. If you run into that limit on the block size that basically means you have to pay higher frees. If someone tries to start mass squatting on things, they will very quickly run into the block size limit and they will have to pay much higher fees. The limit is network-wide. If someone starts trying to register a huge number of names, then everyone who is buying or renewing names, all users will have

Alex: Scalability challenge? J: Blockchains don't scale super-well in general. NMC does have advantages over BTC in trems of scaling. People tend to renew domain names far less often. Namecoin will have a much lower transaction volume than btc even if the have the same number of users. There is a trick that can be done which allows the values that were attached to names that have since expired or been replaced or expired. Feasible for the network to throw away old values. There would still be a Merkle root, but the network would be able to throw it away. That means that instead of having the size of the blockchain grow linearly even if the usage is constant, it would be able to throw away the data that's more than a year old. That's something bitcoin can't do, because bitcoins don't expired like name coins do. BTC does have a different advatage, that has lightning network and payment channels, whereas with nmc you can't really do that. You need the entire network to know which names currently exixt, for the registration rules. Tradeoffs both ways. The number of onion services that currently exist in the Tor network that I don't anticipate any horrifying scaling nightmares. If namecoin were to replace the entire DNS, that would run into scaling issues right now. Those might be solvable in the future (not yet). Might result for more demand for buying namecoins, which pushes it higher. Even if it goes up noticeably, it's going to be a problem for people registering a few names.

Bandwith improvements: JSON to CBOR gives ~50%, deflate -> noticeable. Stripping redundant info --> not as much. Latency improvements are likely to improve UX more than bandwidth improvements. Tor amplifies latency quite a lot. Latency is something that happens at lookup time.

Mostly this talks to Tor Browser without modifying the Tor daemon or any significant modifications to Firefox.

Last modified 15 months ago Last modified on Jul 19, 2019, 4:17:03 PM