CBP Study Guide
March 23, 2017 | Author: natecv8 | Category: N/A
Short Description
Certified Bitcoin Professional Study Guide...
Description
Certified Bitcoin Professional Study Guide Terry Woltman © 2015 Study guide for the key questions covered by the CryptoCurrency Certification Consortium Certified Bitcoin Professional Examination.
T e r r y W o l t m a n © 2 0 1 5 v 1 . 0
1
Acknowledgments
I very much want to thank those that helped review and edit this guide. As well, I want to thank the Bitcoin community and industry for the width and breadth of information available that allowed me to even put this guide together in the first place. And finally, a thank you to CryptoCurrency Certification Consortium team for putting together a program where Bitcoin professionals can certify their knowledge. Introduction When I first took the “Certified Bitcoin Professional” examination, I was concerned that even though I had dove deeply into learning as much as possible about Bitcoin, I may have misunderstood key topics or have gaps in my knowledge that would lead me to not pass the test. Since the exam is timed, one must have the understanding to pass the test in the allotted time and have reference documents at hand to quickly review concepts you may have missed or need immediate clarification on. What this guide isn’t: This guide is not a beginner’s intro to Bitcoin. I have had to assume the reader has a base level of knowledge to start from. You should have had a wallet of some type, been able to find or buy some bitcoin and maybe even transfer some around. If you are just starting out, I would suggest doing some initial learning before attempting this guide or the CBP examination here: • https://en.bitcoin.it/wiki/Introduction • https://en.bitcoin.it/wiki/Getting_started • https://en.bitcoin.it/wiki/FAQ This guide is also not a definitive guide to Bitcoin. It has been written to cover most of the topics you can expect in the CryptoCurrency Certification Consortium’s Certified Bitcoin Professional examination. I have tried to include links to more in-‐ depth information where appropriate so that you can learn more, though it should not be required for the test.
2
Contents
History of Money and Ledger-‐based Economics .......................................................................... 5 Centralized Ledgers ............................................................................................................................. 5 Functions of currency ......................................................................................................................... 5 Distributed Consensus ....................................................................................................................... 6 History of Bitcoin .................................................................................................................................. 6 Price Derivation .................................................................................................................................... 7 Basic Cryptography .................................................................................................................................. 8 Some Cryptography Terminology Basics ................................................................................... 8 Hash Functions ...................................................................................................................................... 8 Symmetric and Asymmetric Encryption .................................................................................... 9 Digital Signatures ................................................................................................................................. 9 Bitcoin Basics ............................................................................................................................................ 10 Bitcoin Community ............................................................................................................................ 10 Bitcoin Addresses and Keys ........................................................................................................... 10 Bitcoin Transactions ......................................................................................................................... 11 Bitcoin Blockchain Ledger .............................................................................................................. 12 bitcoin the Unit .................................................................................................................................... 13 Bitcoin the Network .......................................................................................................................... 14 Bitcoin Improvement Proposal (BIP) ....................................................................................... 14 Buying and Selling bitcoin .............................................................................................................. 14 Blockchain Explorers ........................................................................................................................ 15 Mining ........................................................................................................................................................... 16 Purpose and Function ....................................................................................................................... 16 Bitcoin Nodes ....................................................................................................................................... 16 Proof of Work Algorithm ................................................................................................................. 17 The Difficulty Metric .......................................................................................................................... 18 Mining Hardware ................................................................................................................................ 19 Mining Pools ......................................................................................................................................... 19 Wallets, Clients and Key Management ........................................................................................... 20 Wallet Types (Bitcoin Clients) ..................................................................................................... 20 Hierarchical Deterministic Wallets (BIP0032) ...................................................................... 21 Passphrase-‐protected private key (BIP0038) ....................................................................... 21 Back-‐up ................................................................................................................................................... 21 Using Bitcoin as a Merchant ........................................................................................................... 22 Bitcoin Payment Processors .......................................................................................................... 22 Payment Protocol (BIP0070) ........................................................................................................ 22 About the Author ..................................................................................................................................... 23 Glossary ....................................................................................................................................................... 24 Additional Resources ............................................................................................................................. 24
3
About the Certified Bitcoin Professional “A Certified Bitcoin Professional is knowledgeable about the Bitcoin blockchain, Bitcoin transactions, and how the Bitcoin network operates. CBPs are able to apply Bitcoin technology to their professional area of expertise and understand privacy aspects, double-‐spending, and other issues that relate to the currency. “ -‐ CryptoCurrency Certification Consortium The Certified Bitcoin Professional examination comprises 75 questions and is to be completed in less than the timed 20 minutes. Questions are in a true/false or multiple choice format covering topics such as the History of Money, Ledgers and Bitcoin; Basic Cryptology; Client and Key Management and Security; Key Bitcoin Improvement Proposals (BIPs); Mining, Distributed Consensus, the Bitcoin Blockchain and more. To apply for, and take the exam, please visit the CryptoCurrency Certification Consortium examination website at: https://cryptoconsortium.org/certifications/CBP Disclaimers Neither the author, nor anyone that assisted with the creation, editing or revision of this guide has any affiliation with the CryptoCurrency Certification Consortium or the Certified Bitcoin Professional. As well, this guide does not guarantee you will pass the Certified Bitcoin Professional examination, but should help you better prepare and have access to a reference should you need a quick refresher on a topic covered by the examination. We cannot guarantee that every question asked in the examination will have been covered by this material as CryptoCurrency Certification Consortium may update their examination without prior notification. We have not been permitted special access to the questions or topics that the exam covers, using only publically available information on topics that will covered.
4
History of Money and Ledger-‐based Economics “Proof-‐of-‐work has the nice property that it can be relayed through untrusted middlemen. We don’t have to worry about a chain of custody of communication. It doesn’t matter who tells you a longest chain, the proof-‐of-‐ work speaks for itself.” – Satoshi Nakamoto, Aug 7, 2010
Centralized Ledgers
A centralized ledger is an account book or database for recording historical transactions between parties. It can take the form of accounting books or an order book, like you would find on an exchange. It tracks the ownership of an asset through time as controlled by an entity that can make arbitrary updates and changes to the system. Examples of centralized ledgers would be products by Oracle or SAP for the management of customer deposit accounts held by a bank or a general accounting ledger utilized within a corporation to track revenue and expenditures.
Functions of currency Money is probably as old as human culture, providing an accounting of value transfer between persons. Since it is almost impossible to trade a cow for a chicken due to disparate values of each (and need for each), humanity has long had a need for an arbitrary method to account for who owes what to whom. From this we see the emergence of currencies that allowed people to freely trade between each other via a vehicle that can provide for an equalized value. Money abstracts the value from the goods or services to better facilitate trade. Many items have been used as currency throughout history from shells to beads to coins. It is believed that paper currency was first used in China, evolving from previously used promissory notes that were traded between people, a theory that continues today as all fiat is an IOU to all others who use the system to accept the value of the currency with an agreed on equal value of goods or services. Money generally requires several key properties to function as a usable currency: 1. Medium of exchange. 2. Unit of account. 3. Store of value. 4. Method of settling debt.
5
Distributed Consensus Distributed Consensus in Bitcoin removes the need for trust from centralized ledgers (such as banks and governments), instead allowing the currency to function as a wholly independent entity, but this is not without issues. Take for example the process of securing transactions on the blockchain. To achieve security and reliability, even though there are those that would wish to harm or defraud the network, the blockchain requires nodes to agree on some data value during computation. Bitcoin solves this problem via the “Proof of Work” algorithms that build the blockchain. By utilizing the work of hashing transactions into a blockchain, everyone on the network can validate the consensus of the blockchain by simply following the longest chain, and hence, the chain with the most work invested. Learn more: https://socrates1024.s3.amazonaws.com/consensus.pdf
History of Bitcoin The idea of a digital based currency system has been around for quite some time. Some precursors to Bitcoin are issuer based ecash systems and distributed digital protocols, such as hashcash, bit-‐gold and others. Satoshi Nakamoto, building on the work and ideas of those systems that came before, first released Bitcoin to the world in November 2008 via a whitepaper entitled “Bitcoin: A Peer-‐to-‐Peer Electronic Cash System”. The paper outlines the methods of using a peer-‐to-‐peer network to generate what is described as "…a system for electronic transactions without relying on trust." In January 2009 the Bitcoin network was launched with the release of the first Bitcoin reference client and the issuance of the first bitcoin via the Genesis Block. Satoshi Nakamoto is an obvious pseudonym for a person, or group of persons, that initially designed and developed the ideas and first implementations of the Bitcoin protocol and Bitcoin-‐Qt client. Their true identity remains a mystery today, though some people have put forth possible candidates such as Nick Szabo, Hal Finney or even Dorian Nakamoto, a man who’s life was rudely interrupted by a tragically mistaken (and surprisingly adamant) Newsweek reporter named Leah McGrath Goodman. These people have all denied that they are Satoshi. Download Bitcoin the whitepaper: https://bitcoin.org/bitcoin.pdf
6
Price Derivation Bitcoin’s exchange rate is like any other currency in that it fluctuates in value relative to all other currencies. Bitcoin has had drastic price volatility in the past, though it seems to have somewhat stabilized recently. Since there is no single centralized market, and bitcoin exchanges never close, its value is constantly changing. Every time a trade occurs on a public exchange, the buyer and seller agree to a price and it is recorded for all to see as the latest price. Some services then use this public price as spot rate. It is possible to trade bitcoin privately without public notification. Bitcoin is a truly floating currency in that there is no centralized system for pegging the price or government controlled centralized banks that can print or loan more to manipulate the money supply. The issuance of total units is restricted by the protocol to no more than 21 million bitcoin ever being produced. Bitcoin is valued through market supply and demand.
7
Basic Cryptography Some Cryptography Terminology Basics Bitcoin uses various cryptographic methods to accomplish its needs, thus you will need a basic understanding of a handful of terms, methods and key functions. Encryption is the process of encoding plaintext messages into ciphertext. The process of turning ciphertext back into plaintext is called decryption. Cryptography deals with the creation of encryption methods. Cryptoanalysis deals with decrypting ciphertext without knowing the encryption key (the private secret), in other words: trying to crack encryption. Cryptology is a branch of mathematics that covers both cryptography and cryptoanalysis. Cryptographic algorithm, or cipher, is a mathematical function that takes plaintext and the private encryption key to produce ciphertext as the output (and vice versa).
Hash Functions A cryptographic hash function must be considered “practically impossible“ to reverse, such as to extract the input data from its hash value alone. A hash function takes in data and outputs digital data of fixed size. This will create a small checksum that can prove that the source material has not changed during transmission or over time, as even a minor change to the input data will change the resulting hash drastically. Hash functions have four main properties: 1. 2. 3. 4.
Computationally easy to generate the hash value for any given message. Impractical to reversely generate the message from its hash. Impossible to change the input data without also changing the hash. Massively improbable to have different messages with the same hash.
Cryptographic hash functions have many applications, especially in digital signatures and thus are widely used in Bitcoin.
8
Symmetric and Asymmetric Encryption Symmetric algorithms use the same key to perform both encryption and decryption of messages. The key acts as a secret to maintain private information. If more than a single person must access the encrypted data then the key must be shared, and hence is a major disadvantage. Asymmetric algorithms, otherwise known as Public-‐key cryptography, utilizes two separate keys, one of which is secret (or private) and one of which is public. Although different, the two parts of this key pair are algorithmically linked. The public key is used to verify a digital signature; whereas the private key is used to create a digital signature. Asymmetric algorithms are used heavily in hash functions, and thus in Bitcoin. Learn more: https://en.wikipedia.org/wiki/Public-‐key_cryptography
Digital Signatures A digital signature is a method for proving the authenticity of a digital message or document, such as an output transaction in Bitcoin. A valid digital signature proves that the message was created by the holder of a specific private key, and that the information was not altered in transmission. Digital signatures are used for software download verification, financial transactions (such as Bitcoin transactions) and where ever it is important to detect tampering of data.
9
Bitcoin Basics Bitcoin Community Bitcoin can be most easily accessed on smartphones and laptops, so Bitcoin users usually use the Internet to transact with the Bitcoin network and each other, although other methods can and have been used. Bitcoin clients work similar to traditional currency eWallets in that they can be used to buy and sell goods and services or send money to friends and family, with some services even using the network to send encrypted messages to each other and store hashes of important data and documents. Some resources where you can interact directly with other Bitcoin users are: • • • •
Bitcoin Forum: https://bitcointalk.org/ Bitcoin Foundation informational site: http://bitcoin.org Bitcoin News: http://coindesk.com/ Bitcoin at Reddit: http://reddit.com/r/bitcoin/
Bitcoin Addresses and Keys Bitcoin addresses are generated as a hash of the public key. The private key is used to make the public key, which is then hashed further to become one of many possible Bitcoin addresses. It is designed so that the Bitcoin address can be calculated from the public key, but importantly, the address cannot be reversed to the private key (via asymmetric algorithms). Bitcoin addresses can be created on the fly and are virtually infinite. A Bitcoin address looks like this: 1LfexEtQx2RcSPU5eH5SqwFFGkiAtxvjnc (You can donate $5 worth of bitcoin to the author’s beer fund here!) Alternatively the address can be displayed as a QR Code, which most wallets can read either via a phone or web cam:
10
There are some rules defined by the protocol on how addresses are displayed. Most Bitcoin addresses are 34 characters, though it is possible to have ones that are shorter (down to 26 characters) and still be valid. The address will consist of random alphanumeric characters, with the exception of the uppercase "O", number "0", uppercase "I", and the lowercase "l". These are not used to prevent confusion, as they can look similar to each other in certain fonts. Designated parts of a Bitcoin address are used as a checksum so that any errors can be found and rejected by the client before bitcoin are lost. Bitcoin addresses can be created that require a more than 1 private key. These “multisig” addresses can be seen in Bitcoin addresses that start with a “3” instead of the standard “1”. Multisig addresses can be crafted with a required 2-‐of-‐3 signing keys to be valid, meaning 2/3rd of the keys used to create the address must sign any transactions for it to be valid. Some clients allow the creation of a wide range of multisig keys, from 1-‐of-‐2 to 7-‐of-‐13 and anything in between. Learn more: https://en.bitcoin.it/wiki/Address
Bitcoin Transactions A Bitcoin transaction is made up of one or more inputs, which are one or more previous outputs to an address and include a proof of ownership, which are one or more inputs, which are one or more outputs back through the blockchain to the beginning of the network. An input is the technical way of saying bitcoin that you have received and is currently available to be spent from your wallet. These inputs could have been received by various Bitcoin addresses tied to a private key, so in order to spend them the client will need to select which inputs to combine together to cover the amount being requested to send. Similarly, the outputs are where the bitcoin will be sent. Usually there will be at least 2 outputs created, though it is possible to create a transaction that has many recipients. This allows you to package multiple payments together into a single transaction. Of these two outputs, one will be the address you intend to send bitcoin to and the other a change address. A change address is required, as all associated inputs must be spent during the transaction. For example, if you had a bill for $5 but only had a single $10 note, you will receive change back in the form of $5. In Bitcoin, if you have an input of 1 bitcoin, but only wish to spend 0.5 bitcoin, there must be an address under your control for the network to return the remaining 0.5 bitcoin change to you. Your wallet will generally handle this automatically, so don’t be surprised if you see that your bitcoin has all been spent! Your wallet will show the returned balance as the transaction is confirmed by the network.
11
As well, you will likely want to include a transaction fee (mining fee) on any transaction you transmit to the network. Since May 2013 the default fee to send a Bitcoin transaction is 0.0001 bitcoin, though there are cases where a transaction may qualify to be included in the blockchain with no fee, or may require a higher fee if the output is over a certain size (in kilobytes, not value). This fee has changed in the past as the exchange rate of bitcoin has become stronger and will likely change further in the future. Learn more: https://en.bitcoin.it/wiki/Transaction_fees Since Bitcoin transactions are not encrypted by design, they must be signed by the associated private key that was used to generate the public key, proving ownership of the bitcoin on the blockchain in a way that can be verified by anyone on the network. In other words, spending comprises signing a transaction that transfers the bitcoin from previous transaction(s) to a new a bitcoin address(s).
Signing a Bitcoin transaction.
Learn more: https://en.bitcoin.it/wiki/Transaction
Bitcoin Blockchain Ledger Once your transaction has been crafted by your client it will need to be broadcast to the network so that the value transfer can be validated and included in a block on the global distributed Bitcoin ledger, the blockchain. As discussed previously, transactions are sent unencrypted so all transactions are visible in the blockchain. This is a necessity so that anyone and everyone can confirm the chain of ownership of the bitcoin. The blockchain is a chain of a hash of a hash of a hash and so on, and thus unchangeable without also changing the hash. The creation of the blockchain is completed by miners and transmitted via full nodes to achieve consensus.
12
The blockchain allows the participants to publically determine when a bitcoin amount has been validly spent in order to prevent double-‐spending in a network without central oversight. We will discuss the process of creating the blockchain further in subsequent sections.
bitcoin the Unit bitcoin (with a lowercase “b”) is used to denote Bitcoin as unit of currency. It is often abbreviated to “BTC” or ”XBT“. According to the protocol, no more than 21 million BTC will ever be mined. To deal with the hard upper limit of how many bitcoin will ever be minted, each BTC is divisible to 8 decimal places (0.00000001), allowing for growth of the utility of the currency. It is common to see the price of something in the format of: 0.001 BTC. Here is a break down, with common nomenclature, of different bitcoin values: Name Bitcoin deciBitcoin centiBitcoin milliBitcoin microBitcoin Finney Satoshi
Abbreviation BTC / XBT dBTC cBTC mBTC μBTC / bit -‐ -‐
Value 1 0.1 0.01 0.001 0.000001 0.0000001 0.00000001
Generally only BTC, bit and Satoshi are referenced in everyday usage. XBT is popular on exchanges as it follows the standard naming standards of non-‐government backed assets; Gold for example is XAU and silver is XAG. Bit has become somewhat popular recently as it is 100 Satoshi and easily represented in the standard 1.00 format (2 decimal places only), like dollars and cents. For example, one bit can be written as 1.00, but has an actual value of 0.000001 BTC. A short note about the bitcoin symbol: Generally, Bitcoin is symbolized as B⃦ (a B with 2 vertical lines through it), but there have been complaints within the community that it is too similar to the Thai Baht symbol ฿ and does not render well in many fonts and screens. There has been a vocal group within the community that is working to use the Ƀ symbol as the official symbol, which has been picked up by several prominent services in the ecosystem.
13
Bitcoin the Network Bitcoin (with a capital “B”) is used to denote the Bitcoin network and protocol. The Bitcoin network is based on decentralized trust rather than government issued currencies with central trusted authority. In Bitcoin, trust is achieved as an emergent property from the interactions of different participants in the Bitcoin system, such as nodes, miners and clients.
Bitcoin Improvement Proposal (BIP) A Bitcoin Improvement Proposal (abbreviated as: “BIP”) is a design document for introducing features or information to the Bitcoin core protocol. This is the standard way of communicating ideas since Bitcoin has no formal structure, being an open source project.
Bitcoin Improvement Proposal process
Learn more: https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals
Buying and Selling bitcoin As we covered previously in the “Price Derivation” section at the beginning of the guide, there is no centralized control of bitcoin and thus is freely exchangeable for fiat currencies, or even other Cryptocurrencies. It is not so much as buying and selling bitcoin, but rather exchanging bitcoin for other types of currency. Where and how you can exchange bitcoin is highly dependent on where you live in the world. In some places, like Mexico and the Philippines, bitcoin is unregulated and treated as a “digital asset”, much like an MP3 or eBook, whereas the US is working to regulate bitcoin as a type of currency, requiring governmental licensing of bitcoin exchanges with full AML/KYC (Anti-‐Money Laundering / Know Your Customer) processes similar to banks.
14
Wherever you happen to be, there are many resources for finding a local exchange, and failing that, there are resources like Localbitcoins for setting up person-‐to-‐ person trades.
For information on where to buy: http://howtobuybitcoins.info
Blockchain Explorers A blockchain browser (also called "blockchain explorer") is an application or site that lets you search and navigate every transaction within a blockchain, generally all the way back to the “genesis block”, or the first block of a blockchain that initialized the network. These sites are useful for viewing transactions and verifying amounts held by addresses; tracking histories of inputs and outputs; monitoring for transaction inclusion in a block and checking the hash rate and other statistics of the network.
15
Mining Purpose and Function Mining is the breakthrough that makes Bitcoin possible. It is the process of adding blocks (transaction records) to Bitcoin's public distributed ledger of historical transactions (blockchain) so that nodes can reach a distributed consensus about the state of the network. In addition to generating the validated chain of blocks, mining is also the method in which new bitcoin are released to the market via the block reward. The reward is the incentive that attracts miners to secure the network. When a block is solved, the miner may assign themselves all associated fees and also award themselves a specific number of bitcoin which is agreed upon by everyone in the network as determined in the protocol (this is called a coinbase transaction). Currently the block reward is 25 bitcoin, but halves every 210,000 blocks (~4 years), with the next halving to occur sometime in mid 2016. As the number of awarded bitcoin the miners are set to create in each block decreases, the transaction fees should theoretically make up a larger and larger portion of mining income, with the reward becoming less and less until such a date that the miners are incentivized almost entirely from fees rather than block awards. Mining is completed via a method called Proof Of Work, which is an economic disincentive meant to increase the costs of denial of service attacks and other service abuses by requiring some work, usually processing by a computer, from all participants, good or bad. A key feature of proof of work is its asymmetry, meaning the work must be a difficult computational problem that costs real resources to complete (in this case, equipment and electricity), but trivial for the nodes and other participants on the network to verify.
Bitcoin Nodes In addition to mining, full nodes are an important part of the network. Nodes are not incentivized like miners. Anyone that operates the Bitcoin reference client is acting as a node. Nodes do things like validate transaction syntax, relay transactions and new blocks to the network, watch for double-‐spend transactions and maintain copies of the blockchain for transmission to new clients or nodes that request it. The blockchain is distributed globally by full nodes using a peer-‐to-‐peer file sharing technology similar to the BitTorrent protocol. Setting up a full node can be a fun and rewarding way to inexpensively help secure and participate in the bitcoin network.
16
Proof of Work Algorithm “Proof-‐of-‐work has the nice property that it can be relayed through untrusted middlemen. We don’t have to worry about a chain of custody of communication. It doesn’t matter who tells you a longest chain, the proof-‐of-‐work speaks for itself.” – Satoshi Nakamoto Mining a block is a Computationally Difficult Problem because in order for the block to be accepted by the network as “solved”, the SHA-‐256 hash of a block's header must be lower than or equal to the target. In other words: The hash of a block must start with a certain number of zeros. For example, here is the solution to Block #304446: 00000000000000002388679fe503d715603b39ae7f965cdaec66dbe1de7071d4 The probability of calculating a hash that starts with many zeros is very low, therefore many attempts must be made. In order to generate a new hash each round, a nonce (an arbitrary number used only once in a cryptographic communication) is incremented. The nonce is what allows many miners to attempt to create a hash via a group of the same transactions and output many different values. If all miners used the same nonce and the same transactions, then they would always output the same values. A solved block will include the hash of the previous block in the chain, any transactions the miner has accepted and the nonce. The inclusion of the previous block’s hash ensures that the chain was built up from each block before it back until the genesis block. It is possible for more than one miner to find a block at the same time (or sufficiently near enough), which can cause the network to divide as different nodes relay the block from different sources and miners begin working on different chains. Majority consensus in bitcoin is represented by the longest chain of blocks, which required the greatest amount of effort to produce it, hence the Proof of Work. As miners work on solving the blocks, one chain will grow fastest and outpace any competing chains. Any blocks that were solved but not included in the main chain of blocks are called orphaned blocks. At some point miners will abandon these orphaned blocks and start working on the main branch once again as the network equalizes. This means that in order to modify a past block, an attacker would have to redo the proof of work of that block and all blocks after it until they surpass the work of the honest
17
miners. The probability of a slower attacker catching up diminishes exponentially as subsequent blocks are added to the blockchain. The proof of work method is used to make it economically infeasible to attempt to double-‐spend bitcoin on the network via raw hashing power. A double-‐spend is when bitcoin is included in 2 different transactions to attempt to defraud the receivers and the network. Since a bitcoin can only be spent once, an attacker with more than 51% of the computing power of the network could send an amount of bitcoin and then attempt to build a second unpublished chain, only to announce it when the first transaction was already accepted. This second blockchain would then become the longest chain and orphan all other blocks. The likelihood of a successful “51% attack” via this method would be astronomically expensive and is thus extremely unlikely as the amount of hashing power required to successfully compute the secret blocks more quickly than all others would require more hashing power than all other miners combined. Learn more: https://chrispacia.wordpress.com/2013/09/02/bitcoin-‐mining-‐explained-‐ like-‐youre-‐five-‐part-‐1-‐incentives/ http://en.wikipedia.org/wiki/Bitcoin_network#Bitcoin_mining https://en.bitcoin.it/wiki/Double-‐spending https://en.bitcoin.it/wiki/Weaknesses#Attacker_has_a_lot_of_computing_po wer
The Difficulty Metric Difficulty is the measure of how hard it is to solve a new block. Difficulty is recalculated every 2016 blocks to ensure that blocks are, on average, found once every ten minutes. As more hashing power joins the network the rate of block creation goes up. As the rate of block generation goes up, the difficulty will retarget to compensate which will cause the difficulty to readjust (the required leading number of zeros) to bring the rate of block creation back to the target block creation times. If the hashing rate decreases, the protocol can adjust to make the target easier as well. Any blocks released by a miner that do not meet the minimum required difficulty target will simply be rejected by the network. Learn more: https://en.bitcoin.it/wiki/Difficulty View: https://bitcoinwisdom.com/bitcoin/difficulty
18
Mining Hardware Since the launch of Bitcoin, many different computing platforms have been used to mine bitcoin. CPU Mining: The early Bitcoin-‐Qt client allowed users to use their CPU to mine. With the usage of faster technologies to mine bitcoin, the option was therefore removed from the core Bitcoin client's user interface. GPU Mining: Graphics Processing Unit mining uses the math processors on modern graphics cards to perform hashing and is drastically faster and more efficient than CPU mining. GPU mining is no longer profitable as ASIC mining has become far more efficient. Many of the GPU mining rigs were converted to mine for other cryptocurrencies, such as Litecoin and Dogecoin. FPGA Mining: Field-‐Programmable Gate Array mining is an efficient and fast way to mine, comparable to GPU mining and drastically outperforming CPU mining. Like with GPU mining though, these units are no longer profitable to mine Bitcoin. ASIC Mining: An Application-‐Specific Integrated Circuit is a microchip designed and manufactured for a singular purpose. ASICs consume much less electricity per GHS than any of the other previous technologies used to mine bitcoin. ASICs designed for use in mining Bitcoin, being application specific, can only be used for bitcoin or other SHA256 based Cryptocurrencies. Mining Services (Cloud mining): Cloud mining providers sell mining contracts that specify the mining services and performance of their service, generally backed by ASICs that the cloud mining provider owns or rents themselves. Often these contracts are sold on a GHS (gigahash per second) basis for a set period of time. For example: 10GHS for 1 month.
Mining Pools Due to the high competition within mining and the diminishing and highly sporadic returns of being able to mine alone, mining pools were created to reduce the variance in finding a block, providing more stable and predictable rewards to individual miners. The “pool” provides all the work (transactions and nonces) to the individual miners and when a block is found the reward is distributed on the basis of how many hashes each miner contributed towards finding that block as a percentage of the total hashing power of the pool.
19
Wallets, Clients and Key Management
Since Bitcoin is based on a private/public key structure, Bitcoin Wallets can be thought of as a cross between cryptographic key management systems and eWallets. The first wallet for Bitcoin was the Bitcoin-‐Qt client released by Satoshi Nakamoto. It included all the functionality required to interact with the network and was used to manage private/public keys, bitcoin addresses and also functioning as a full node and CPU miner for the network. This client, now referred to as Bitcoin Core, is still developed and released regularly, functioning as the official “reference client” for the Bitcoin protocol. Bitcoin Core is available for download for the Linux, Mac and Windows operating systems. Download: https://bitcoin.org/en/download
Wallet Types (Bitcoin Clients) Since the release of the first Bitcoin client, there have been multiple derivative and competing wallets released on a diverse range of computing platforms, each with different features, strengths and weaknesses. “Like cash, you don’t keep your entire net worth in your pocket, (you keep) walking around money for incidental expenses.” – Satoshi Nakamoto Mobile Wallets are generally any wallet available primarily via a mobile device, but in which the private key is under the control of the user. Web Wallets work similar to all other wallets, but are available as a service. Most services maintain control of the user’s private key, and thus are the ultimate holder of the associated bitcoin, though some use multisig technology to allow the user more control of the account and keys. Desktop Wallets would be any wallet that is available via a traditional computer or laptop as an application. There are generally 2 types of Desktop Wallets, a Full Client which stores a complete copy of the blockchain (currently about 39GB) and a SPV Wallet (Simplified Payment Verification) which only downloads a copy of the headers for all blocks, saving significant space. Most of these clients allow for backing up and encrypting the wallet data file (keys) in a variety of ways. Hardware Wallets are devices that store a part of a user's wallet securely in mostly-‐offline hardware. In hardware wallets the key is often stored in a protected area of a microcontroller and cannot be transferred out of the device in plaintext, allowing for a very secure method of storing keys. Paper Wallets are a document containing all of the data necessary to generate any number of Bitcoin private keys, forming a wallet of keys. However, people often use the term to mean any way of storing bitcoin keys and addresses offline as a physical
20
document. Storing bitcoin on paper wallets is not particularly safe unless very strict security precautions are undertaken during their initial preparation and subsequent storage. Learn more: https://bitcoin.org/en/choose-‐your-‐wallet No software is perfect and from time to time there may be security vulnerabilities found in your Bitcoin client as well. Be sure to keep your client updated with the latest bug fixes, especially when a new vulnerability is discovered.
Hierarchical Deterministic Wallets (BIP0032) Hierarchical Deterministic Wallets (HD) is a wallet type described in BIP0032 in which the private key is determined from a random 128 bit value seed of presented to the user as a 12 word mnemonic using common English words. Learn more: https://en.bitcoin.it/wiki/Deterministic_wallet
Passphrase-‐protected private key (BIP0038) BIP0038 covers a method for encrypting a private key via a password. Encrypted private key records are intended for use on back-‐ups, paper wallets and other offline or long-‐term storage solutions. Learn more: https://github.com/bitcoin/bips/blob/master/bip-‐ 0038.mediawiki
Back-‐up Just like any important information stored on your computer, it is imperative to back-‐up your wallet files. You can do this in most wallet software by either creating a digital or paper back-‐up. It is always a good idea to create your back-‐up via a BIP0038 compliant method with a strong password. Ensure that you store your back-‐up in a safe location, whether that is on an external hard drive or in a safety deposit box (or both). Some clients (such as Bitcoin Core) have known issues with change addresses and back-‐up files, so make sure to back-‐up your wallet again after every 90-‐100 transactions as needed. Generally, HD wallets do not have this issue. Learn more: https://en.bitcoin.it/wiki/Securing_your_wallet Learn more: https://bitcoin.org/en/secure-‐your-‐wallet
21
Bitcoin In Commerce Using Bitcoin as a Merchant Bitcoin puts the power of financial transactions into the hands of the merchant, no longer requiring them to rely on overpriced and unnecessary bank solutions, nor the necessity to gain permission from traditional payment processors. Accepting bitcoin as a merchant can be as simple as having customers send payment directly to a Bitcoin address of your choice. Merchant howto: https://en.bitcoin.it/wiki/Merchant_Howto
Bitcoin Payment Processors Over the last several years payment processing, point-‐of-‐sale solutions and e-‐ commerce plugins have become available that can generate invoices, track sales, process transactions off the blockchain network and even automatically convert bitcoin to the currency of your choice. List of services: https://en.bitcoin.it/wiki/Merchant_Howto#Services
Payment Protocol (BIP0070) BIP0070, Bitcoin Payment Protocol, adds several new features to enable processing bitcoin payments directly between a merchant’s server and a customer’s wallet. It can also add human readable payment destinations rather than a standard bitcoin address which can be difficult to copy and verify; secure proof of payment which can be used if there is a dispute; receipts; memos; refund addresses and payment received messages so the customer knows immediately that the merchant has received and has processed (or is processing) their payment.
Learn more: https://github.com/bitcoin/bips/blob/master/bip-‐ 0070.mediawiki
22
About the Author
Terry Woltman is Founder and CEO of BitcoinATM sales and service company BitcoinATM360. He has been involved in Bitcoin since October 2013 and has worked on several Bitcoin related projects, such as Philippines Bitcoin portal ManilaBitcoin.com and his latest project, RideTheBubble.com, a site of consolidated Bitcoin news, information and resources. Previous to his work in Bitcoin, he worked on next generation wireless networks, building the first national 4G deployment in the United States.
Terry received his CryptoCurrency Certification Consortium -‐ Certified Bitcoin Professional (CBP) certification in January 2015: #0d7893 To contact the author: http://ridethebubble.com/members/terry/ This guide, and any future updates are available at: http://ridethebubble.com/downloads/ If you have found this guide helpful, you can donate $5 here: 1LfexEtQx2RcSPU5eH5SqwFFGkiAtxvjnc
23
Glossary
For terms, see: http://ridethebubble.com/glossary/
Additional Resources
CryptoCurrency Certification Consortium – Certified Bitcoin Professional https://cryptoconsortium.org/certifications/CBP Mastering Bitcoin by Andreas M. Antonopoulos http://shop.oreilly.com/product/0636920032281.do https://github.com/aantonop/bitcoinbook/blob/develop/ch01.asciidoc Bitcoin Wiki https://en.bitcoin.it/wiki/Main_Page Bitcointalk forum https://bitcointalk.org/ Coindesk http://coindesk.com/ “Bitcoin: A Peer-‐to-‐Peer Electronic Cash System”, Satoshi Nakamoto https://bitcoin.org/bitcoin.pdf Bitcoin Core (Bitcoin-‐Qt) download https://bitcoin.org/en/download Find Bitcoin meetups http://bitcoin.meetup.com/ Princeton University: BTC-‐Tech: Bitcoin and Cryptocurrency Technologies https://piazza.com/princeton/spring2015/btctech/resources Bitcoin Protocol documentation https://en.bitcoin.it/wiki/Protocol_documentation
24
View more...
Comments