bitcoin and the future of cryptocurrency
DESCRIPTION
Presented at NDC London - 6th December 2013TRANSCRIPT
@Ben_Hall [email protected] Blog.BenHall.me.uk
Hacker in Residence at #1seed
Bitcoin & The Future of Cryptocurrency
Agenda
1. What is Bitcoin and how does it work?2. Integrating Bitcoin into your website3. Bitcoin Mining4. Alternatives & the future
AND NOT A SHIT WAS GIVEN
Intro to Cryptocurrencies
“A cryptocurrency is a peer-to-peer, decentralized, digital currency whose implementation relies on the principles of cryptography to validate the transactions and generation of the currency itself” ~ Wikipedia
Bitcoin
• Bitcoin or BTC is an online currency that holds value in all countries and isn't controlled by banks.
• “A new kind of money” Bitcoin.org• Trade to/from Fiat currencies
Bitcoin
• Instant Peer-to-Peer transactions• Zero or low processing fees• Banks are scared.
Who created it?
• Satoshi Nakamoto - pseudonymous person or group of people
• Guardian person of the year 2013• Paper == November 2008• First “block” in January 2009
• Worked on it until 0.3.19
BIPs
• BIP stands for Bitcoin Improvement Proposal• https://github.com/bitcoin/bips
• Current version is 0.8.5
Coin
• 1 BTC == 100m Satoshis. • 0.00000001 BTC• Current price for 1 BTC === $1073• Current price for 1 mBTC === $1.073
• Technically no bitcoins, only records of bitcoin transactions.
Transaction
• An input. This is a record of which bitcoin address was used to send the bitcoins to Alice in the first place (she received them from her friend, Eve).
• An amount. This is the amount of bitcoins that Alice is sending to Bob.
• An output. This is Bob’s bitcoin address
Wallets
• A wallet is a computer file which holds Bitcoins. Bitcoins are sent between wallets; each is represented by one or more addresses.
Addresses
• A wallet's Bitcoin address is a public identifier for sending money to that wallet, just like an email address directs email to your account.
• Bitcoin addresses look like this: 1LF7MLgPVVTfa9ySp5UUWA7y4TGpNc6ny6.
Public / Private Key
• Private key stored in wallet. Public key is your address.
• Think SSH.• Lose your private key, you’re f—ked. Lose all
bitcoins.• Who controls private key, controls bitcoin.
More than one address
• Each address should only be used for a single transaction.
• Not enforced.• Single wallet handles all addresses
Storing coins
• Online Wallets – Likely to be hacked.• Mobile Wallets (Blockchain Wallet)• Paper Wallets / Cold Storage
THE ONLY REASON QR CODES EXIST?
ESPN
The future?
Making your first trade…
• Create a wallet. Create an address. • Receive an amount from another address
• Public block chain• https://blockchain.info/address/
1BTCorgHwCg6u2YSAWKgS17qUad6kHmtQW
Double Spending
• Double-spending is the result of successfully spending some money more than once.
• Bitcoin protects against double spending by verifying each transaction added to the block chain to ensure that the inputs for the transaction had not previously already been spend
• The block chain is a shared public ledger
Block Chain
Nodes
Common use-cases?
Just about anything.
Buying Bitcoin
• https://quickbitcoin.co.uk/• https://bitbargain.co.uk/buy
• REALLY DIFFICULT!
Exchanges
Bank of America Merrill Lynch
Accepting Bitcoin payments
Simple as giving someone a QR code
• Blockchain API• Callback to site when money transferred
Generating Receiving Addresses
• https://blockchain.info/api/receive?method=create&address=$receiving_address&callback=$callback_url
• { "fee_percent":0, "destination":"1A8JiWcwvpY7tAopUkSnGuEYHmzGYfZPiq", "input_address":"1KZoUuPWFAeyVySHAGqvTUDoX6P3ntuLNF", "callback_url":"http://yoururl.com" }
Implementing The Callback• value
– The value of the payment received in satoshi. Divide by 100000000 to get the value in BTC.
• input_address – The bitcoin address that received the transaction.
• confirmations – The number of confirmations of this transaction.
• {Custom Parameters} – Any parameters included in the callback URL will be passed back to the callback URL in
the notification. • transaction_hash
– The transaction hash.• input_transaction_hash
– The original paying in hash before forwarding. • destination_address
– The destination bitcoin address. Check this matches your address.
CONFIRMATIONSAim for 6. Why 6? Stop double spending.
Blockchain API
• https://blockchain.info/api/
• Realtime notifications• https://blockchain.info/api/api_websocket
• Get transaction details• http://blockchain.info/rawtx/$tx_hash
Bitcoin JS
• BitcoinJS is a set of open-source libraries designed to let you quickly realize your custom Bitcoin project
• Highly optimized version of the node, i.e. the P2P part of Bitcoin. Its main intended use is as a server component to give lighter clients access to the data in the block chain (in real-time.)
• https://github.com/bitcoinjs/bitcoinjs-server
Coinbase
Vanity Bitcoin Addresses
• Vanitygen command line tool
• ./vanitygen 1Seed• 1Seed9wVtrKZTBbAZqz1XiTmboYyvpD3t
• Bruteforce. Generates millions, returns only the ones matching prefix.
Price?
• Gets confusing.• Need to keep changing toreflect exchange
• 0.4595 BTC
• 1 BTC === 1000 mBTC• 459 mBTC
Mining Bitcoin
What are you mining for?
• Mining is the process of adding transaction records to Bitcoin's public ledger of past transactions.
• As a reward for their services, Bitcoin miners can collect transaction fees for the transactions they confirm, along with newly created bitcoins
Searching for a coin
• Only 21m in total. Currently 12m mined.• Once all mined then transaction fees will be
incentive. • Need miners for network to work.
1. New transactions are broadcast to all nodes. 2. Each miner node collects new transactions into a block. 3. Each miner node works on finding a difficult proof-of-work
for its block. 4. When a node finds a proof-of-work, it broadcasts the block
to all nodes.5. New bitcoins are successfully collected or "mined" by the
receiving node which found the proof-of-work. 6. Nodes accept the block only if all transactions in it are
valid and not already spent.7. Nodes express their acceptance of the block by working on
creating the next block in the chain, using the hash of the accepted block as the previous hash.
8. Repeat.
Mining for bitcoins
• Difficulty is a measure of how difficult it is to find a new block compared to the easiest it can ever be.
• Changes every 2016 blocks.• Blocks just keep getting added to the end of
the chain at an average rate of one every 10 minutes
Hash Rate
• The hash rate is the measuring unit of the processing power of the Bitcoin network
• Current network hash rate is 6,618,000 GH/s
• 1 GH/s is 1,000,000,000 hashes per second.
Hardware
• ASIC (Application-specific integrated circuits) chipsets – do one thing and one thing only. Mine bitcoins (SHA256 cryptocurrencies)
• No-one uses GPU now.• Speed measured in hashrate • 30 GH/s = 0.0213 BTC in 24 hours.• 3000 GH/s = 2.155 BTC in 24 hours.
Kncminer Neptune - $12,995.00Breakeven == 12 days?
3 month profit = $133k ?
DAYS OF RUNNING IT ON A LAPTOP ARE OVER :’(
Alternatives
42 different variations
• Bitcoin algorithm based on SHA256 • Litecoin based on Scrypt
• Litecoin is Silver to Bitcoins Gold.
Litecoin
• Currently $30
• Litecoin ASIC Mining hasn’t been released yet.• Difficulty much lower. More potential profit?
When Bitcoin sneezes, the altcoins catch a cold
The Future?
Bitcoin all the way down
Reddit.
Money Transfer
• Western Union, M-Pesa etc. • All irrelevant.
Icecoin
The future for Iceland too?
1BTC === $100,000
9 months ahead of schedule.
Finally…
Thank you.