10.02.2016 Views

Bitcoin and Cryptocurrency Technologies

1Qqc4BN

1Qqc4BN

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

10.2 A Few Altcoins in Detail<br />

Now we’re going to focus on a few of the oldest altcoins <strong>and</strong> study their features in more detail.<br />

Namecoin.​We’ve seen how <strong>Bitcoin</strong>’s block chain is a secure, global database. Once data has been<br />

written to it, it is tamper‐proof <strong>and</strong> its inclusion can be proved forever. Could we modify <strong>Bitcoin</strong>’s<br />

design to support other applications of secure global databases, such as a naming system?<br />

We’ll need a few ground rules to make this database more useful for non‐currency applications. First,<br />

we agree to view data entries as name/value pairs, with names being globally unique. This allows<br />

everyone to look up the value mapped to a name, just like a hash table or a database with a<br />

primary‐key field. To enforce the global uniqueness of names, if a name/value pair has the same<br />

name as a previous database entry, then we view it as an update to the value rather than a new entry.<br />

Second, we agree that only the user who initially created the entry for a particular name is allowed to<br />

make updates to that name. We can easily enforce this by associating each name with a <strong>Bitcoin</strong><br />

address <strong>and</strong> requiring the update transactions to be signed by the private key for that address.<br />

We could do all this on top of <strong>Bitcoin</strong>, just as we said in Chapter 9 that we could build any overlay<br />

currency using <strong>Bitcoin</strong> as an append‐only log. But it’s simpler to do it in an altcoin because we can<br />

take this gentleman’s agreement <strong>and</strong> write it into the rules of the altcoin. These rules would then be<br />

inviolable <strong>and</strong> enforced by the miners, rather than requiring each user (i.e., full node) to check the<br />

rules for itself <strong>and</strong> independently decide what to do if they are violated. Done right, it would even<br />

allow SPV‐style proofs: a lightweight client would be able to submit a query (i.e, a name) to a server<br />

running a full node, <strong>and</strong> the server would return a value for that name, along with a proof that the<br />

returned value in fact the latest update for that name in the database.<br />

That’s Namecoin in a nutshell. It’s a global name/value store where each user can register one or<br />

more names (for a nominal fee) <strong>and</strong> then issue updates to the values of any of their names. Users can<br />

also transfer control of their names to others. In fact, you can make a transaction that transfers your<br />

domain to someone, <strong>and</strong> at the same time, transfers units of the Namecoin currency from them to<br />

you. Since this is a single atomic transaction, it’s a secure way to sell your domain to someone you’ve<br />

never met <strong>and</strong> don’t trust. As of 2015 Namecoin doesn’t support secure lightweight clients, but an<br />

extension that supports this has been proposed.<br />

Namecoin’s goal is to provide a decentralized version of the Domain Name System (DNS), the names<br />

in the database being domain names <strong>and</strong> the values being IP addresses. You can’t use this by default<br />

with an unmodified browser, but you can download a browser plugin for say Firefox or Chrome that<br />

would allow you to type in an address like example.bit — any domain name that ends in .bit — <strong>and</strong> it<br />

will look up the location in the Namecoin registry instead of the traditional DNS.<br />

270

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!