Bitcoin and Namecoin
Overview and technical discussion
Allan Cecil
Welcome!
- This presentation was given at NBLUG.org on 2011-08-09.
- Since you're viewing this online, you'll probably want to swith to Outline mode, which will show you additional notes that are not visible in Presentation mode.
- To switch viewing modes at any time, Press "T" or move your mouse to the lower right corner and click on the "
0
" button.
Covered in this talk:
- Introduction to Bitcoin
- Live demonstration of Linux client and mining tools
- Technical overview
- Market state and legal standing
- Namecoin overview
- Live demonstration of Namecoin DNS
- Security and anonymity considerations
- Q and A
Notes:
Sections that are only visible in this outline / handout mode will have Notes: as the first line. These sections contain additional information, links, and commentary that isn't viewable in presentation mode.
What is Bitcoin?
Bitcoin is a decentralized, distributed digital currency
- Decentralized: No trusted third-party involved
- Distributed: Unstructured peer-to-peer network
- Digital: Public transaction database using public/private keypairs
- Currency: A Bitcoin (BTC) is a unit of account worth what the market perceives it to be worth
- Good intro video at weusecoins.com
- Some clarification, context, and caution is needed here
Notes:
There are a wide variety of resources for learning more about Bitcoins; a good place to start is
http://bitcoin.org, especially the
wiki.
Transactions
Meet Alice and Bob. They want to make a transaction.
- Alice is a consumer. Bob has a widget that Alice wants.
- Alice has some Bitcoins. Bob is willing to take them as payment.
- Alice has a digital wallet, but it contains key pairs, not coins.
- Alice knows Bob's public key and creates a transaction that she signs with her private key.
- The transaction is made public, confirmed over time, and kept forever.
Live Demo
Clients are available for Windows, Linux, and Mac OS X
- The Linux client can be found as a .tar.gz file on bitcoin.org
- Precompiled 32-bit and 64-bit binaries are included
- Command-line bitcoind as well as a bitcoin GUI are available
- First launch will connect to peers using IRC and download the entire block chain (currently several hundred MB in size)
Details!
Bitcoin: Easy to use, complicated to understand fully
- Block chain: A growing list of all transactions
- Controlled, predefined rate of generation: 2,016 blocks every two weeks, or 1 block every 10 minutes
- When a block is found a new block is started using the hash of the previous block
- Peers will ignore any block that is invalid for any reason
- Orphaned blocks are possible; the network of peers will eventually settle on the longest (most difficult) block chain
Details!
- Transactions are broadcast by peers and are recorded in what will become the next block
- Transactions rely heavily on public/privite keysigning and hashes of previous transactions
More details!
Block generation, i.e. mining
- New bitcoins are put in circulation every time a block is created
- When generating a block, hashes are repeatedly created from:
- The block is accepted when a hash is found that meets a specific difficulty
More details!
Mining: It's a lottery
- Every time a miner tries a hash, there is an equal chance of finding a hash that meets the current target
- The difficulty can be visually understood by looking at a random block on blockexplorer.com
- The number of 0's at the beginning of the hash increases as the target difficulty rises
- The current difficulty makes pooled mining with GPU's the only practical option with FPGA and ASIC's on the horizon
More details!
There are a lot more technical details to Bitcoin's design:
Notes:
Brian Warner's talk was especially helpful in preparing these slides.
The Bitcoin Economy
Bitcoins are being used anywhere a digital currency makes sense
- Online payments for goods and services
- Microtransactions
- 1 BTC is divisible to .00000001 places, commonly referred to as "1 Satoshi"
- Tips to anonymous people with public addresses
- Currency exchange (between fiat currencies as well as online currencies such as Linden Dollars)
The Bitcoin Economy
People have said some very conflicting things about Bitcoin...
The Bitcoin Economy
The Bitcoin market has been extremely volatile
- Early June: 1 BTC = $32 USD
- Mid-June: MtGox exchange site hacked, significant drop
- July: Gradual decline to 1 BTC = $7 USD
- As of August 9th, 1 BTC = ~$10 USD with large fluctuations (chart)
- A random sampling in a Bitcoin-related IRC channel showed continued optimism
- (Unscientific biased sampling at its finest)
Notes:
The IRC channels I polled were #eligius and #bitcoin with the question "In regard to the the value of Bitcoin in relation to other currencies, are you optimistic or pessimistic?". Every response I got back was "Optimistic", some with convincing personal arguements as to why.
The Bitcoin Economy
Some sanity
- Common sense. It's a good thing.
- Probably a bad idea: "...you should also take out loans to buy bitcoin..." - "Astrohacker", with Rick Falkvinge of the Pirate Party doing exactly that
- If you plan on using Bitcoin as an investment, research is a Good Thing(TM)
- If you decide to generate bitcoins, count the equipment and power costs
The Bitcoin Economy
Legal standing
- Bitcoin is decentralized and cannot be controlled by any one government
- If attackers controlled 50%+ of the network the worst they could do is double-spend
- Bitcoin usage for purchases of illegal goods has raised the attention of more than one senator
- Governments are still attempting to determine how to proceed
- Bitcoins could be accepted by merchants with taxes handled the same way as USD
Namecoin
Namecoin uses the Bitcoin foundation for a distributed DNS for the .bit TLD
- Triggered in part by four rounds of domain name seizures by US ICE officials, irritating many people
- Namecoin uses a different block chain than Bitcoin
- Namecoin adds RPC commands to create and update domain names
- Only the creator of the domain can change it
- Uses .bit TLD, not recognized by ICANN
Notes:
An interesting thought question is what would happen if ICANN used the .bit namespace themselves.
Namecoin
- A name_new request is sent for free (or an optional transaction fee)
- After 12 blocks, a name_firstupdate creates the name and charges a network fee (initially high to preserve namespace for late adopters)
- Names must be updated occasionally (every 12,000 blocks) but can be updated at any time for any reason for free (or an optional transaction fee)
Notes:
The minimum time between updates are required is scheduled to increase at a future date.
Namecoin
- People who wish to resolve your .bit name must use a proxy or meddle with their DNS servers list
Anonymity and security
By default, you are neither truly anonymous or safe from your wallet being stolen
- Transactions are generally anonymous because there is no obvious link between who owns an address but it is possible to track transactions or otherwise establish ownership
- Private keys are stored in wallet.dat which is unencrypted by default
- If your wallet is stolen the thief can spend your coins
- Encrypting or otherwise securing your wallet is highly recommended
- Wallet services that secure your wallet for you will likely mature with time
Summary and Q&A
- Bitcoin is a decentralized currency useful for online transactions
- Wild west: The Bitcoin market is still highly volatile
- Security and anonymity precautions are needed
- The fate of Bitcoin is still undecided by the market
Notes:
The sections above are littered with links, so feel free to navigate to those areas or search this document for the subject you need more information on. As always, a good search engine is your friend. This presentation can be reused in any way with attribution.
Enjoy,
A.C.
******