![]() | |
Developer(s) | Satoshi Nakamoto, Gavin Andresen |
---|---|
Initial release | February 4, 2009 |
Stable release | 0.3.20.2
/ March 3, 2011 |
Written in | C++ |
Operating system | Windows, Linux, Mac OS X |
Size | 5.2 MiB - 9.7 MiB |
Available in | German, Spanish, French, Dutch, Portuguese, Italian and Russian. |
Type | Electronic money |
License | MIT License |
Website | www |
Bitcoin is a digital currency created in 2009 by Satoshi Nakamoto. The name also refers to the open source software he designed that uses it, and the peer-to-peer network that it forms. Unlike most currencies, bitcoin does not rely on trusting any central issuer. Bitcoin uses a distributed database spread across nodes of a peer-to-peer network to journal transactions, and uses cryptography in order to provide basic security functions, such as ensuring that bitcoins can only be spent by the person who owns them, and never more than once.
Bitcoin's design allows for anonymous ownership and transfers of value. Bitcoins can be saved on a personal computer in the form of a wallet file or kept with a third party wallet service, and in either case Bitcoins can be sent over the Internet to anyone with a Bitcoin address. Bitcoin's peer-to-peer topology and lack of central administration make it infeasible for any authority, governmental or otherwise, to manipulate the value of bitcoins or induce inflation by producing more of them.
Bitcoin is one of the first implementations of a concept called cryptocurrency, first described in 1998 by Wei Dai on the cypherpunks mailing list.[1][citation needed]
Overview
editBitcoin relies on the transfer of amounts between public accounts using public key cryptography. All transactions are public and stored in a distributed database. To prevent double-spending, the network implements a distributed time server, using the idea of chained proofs of work. The whole history of transactions must be stored inside the database and to reduce the size of storage, a Merkle tree is used.
Economics
editDemographics | |
---|---|
User(s) | Supranational, Internet-based |
Issuance | |
Central bank | None; decentralized, distributed |
Valuation | |
Inflation | Approximately predetermined[4] |
The Bitcoin economy is still small relative to long-since established economies and the software is still in the beta stage of development. But real goods and services, such as used cars and freelance software development contracts, are now being traded. Bitcoins are accepted for both online services and tangible goods.[5] The Electronic Frontier Foundation and Singularity Institute accept bitcoin donations.[6][7] Traders exchange regular currency (including US dollars, Russian rubles, and Japanese yen) for bitcoins through exchange sites.[8][self-published source?][9] Anyone can view the block-chain and observe transactions in real-time. Various services facilitate such monitoring.[10][11]
Monetary differences
editAs opposed to conventional fiat currency, the bitcoin differs in that no overseer can control the value due to its decentralized nature,[12] mitigating possible instability caused by central banks. There is a limited controlled inflation hardcoded in the Bitcoin software, but it is predictable and known to all parties in advance.[4] Inflation cannot therefore be centrally manipulated to affect redistribution of value from general users.
Transfers are facilitated directly without the use of a financial processor between nodes. This type of transaction makes chargebacks impossible. The Bitcoin client broadcasts the transaction to surrounding nodes who propagate the payment across the network. Corrupted or invalid transactions are rejected by honest clients. Transactions are mostly free, however a fee may be paid to other nodes to prioritize transaction processing.[4]
The total number of bitcoins tends to 21 million over time. The money supply grows as a geometric series every 4 years; by 2013 half of the total supply will have been generated, and by 2017, 3/4 will have been generated. As it approaches that mark the value of bitcoins will likely begin to experience price deflation (increase in real value) due to the lack of new introduction. Bitcoins, however, are divisible to eight decimal places (giving 2.1 x 1015 total units), removing practical limitations to downward price adjustments in a deflationary environment.[13] Rather than relying on the incentive of newly-created bitcoins to record transactions into blocks, nodes in this period are expected to depend on their ability to competitively collect transaction fees to process transactions.[4]
Outcome
editPossible failure scenarios for Bitcoin include a currency devaluation, a declining user base, or a global governmental crackdown on the software. However, it may not be possible to "ban all crypto-cash like Bitcoin."[14] The decentralization and anonymity embodied by Bitcoin appears to be a reaction to the U.S. government's prosecution of digital currency companies like e-gold and Liberty Dollar.[15] In an Irish Times investigative article Danny O'Brien reported "When I show people this Bitcoin economy, they ask: 'Is this legal?' They ask: 'Is it a con?' I imagine there are lawyers and economists struggling to answer both questions. I suspect you will be able to add lawmakers to that list shortly."[14]
In February 2011, the coverage at Slashdot and the subsequent Slashdot effect affected the value of the bitcoin and the availability of some related sites.[16][17][citation needed]
Technology
editBitcoin is a peer-to-peer implementation of Wei Dai's b-money proposal and Nick Szabo's Bitgold proposal. The principles of the system are described in Satoshi Nakamoto's 2008 Bitcoin whitepaper.[4]
Addresses
editAny person participating in the bitcoin network has a wallet containing an arbitrary number of cryptographic keypairs. The public keys, or bitcoin addresses, act as the sending or receiving endpoints for all payments. Their corresponding private keys authorize payments from that user only. Addresses contain no information about their owner and are generally anonymous.[13] Addresses in human-readable form are strings of random numbers and letters around 33 characters in length, of the form 1rYK1YzEGa59pI314159KUF2Za4jAYYTd
. Bitcoin users can own multiple addresses, and in fact can generate new ones without any practical limit, as generating a new address requires relatively little computing, simply equivalent to generating a public/private key pair, and requires no contact with any nodes of the network. Creating single-purpose/single-use addresses can help preserve a user's anonymity.[citation needed]
Transactions
editBitcoins contain the current owner's public key (address). When user A transfers some to user B, A relinquishes ownership on them by adding B’s public key (address) to those coins and signing them with his own private key.[18] He then broadcasts these bitcoins in an appropriate message, the transaction, on the peer-to-peer network. The rest of the network nodes validate the cryptographic signatures and the amounts of the transaction before accepting it.
Block-chain
editAny transaction broadcasted to other nodes does not become immediately official until acknowledged in a collectively-maintained timestamped-list of all known transactions, the block chain. This acknowledgment is based on a proof-of-work system to prevent double spending and counterfeiting.
In particular, each generating node collects all unacknowledged transactions it knows of in a candidate block, a file which among others[19], contains the cryptographic hash of the previous valid-block known to that node. It then tries to produce a cryptographic hash of that block with certain characteristics, an effort that requires on average a predictable amount of repetitious trial and error. When a node finds such a solution, it announces it to the rest of the network. Peers receiving the new solved-block validate it before accepting it, adding it to the chain.
Eventually, the block-chain contains the cryptographic ownership history of all coins from their creator-address to their current owner-address.[20] Therefore, if a user attempts to reuse coins he had already spent, the network will reject the transaction.
Generating bitcoins
editThe Bitcoin network creates and distributes a batch of new bitcoins approximately six times per hour at random to somebody running the software with the "generate coins" option selected. Any user can potentially receive a batch by running it, or an equivalent program specialized for the equipment the user owns. Generating bitcoins is often referred to as "mining", a term analogous to gold mining.[4] The probability that a given user will receive a batch depends on the computing power he contributes to the network relative to the computing power of all nodes combined.[21] The amount of bitcoins created per batch is never more than 50 BTC (plus transaction fees), and the awards are programmed to decrease over time down to zero, such that no more than 21 million will ever exist.[13] As this payout decreases, the motive for users to run block-generating nodes is expected to change to earning transaction fees.
All generating nodes of the network are competing to be the first to find a solution to a cryptographic problem about their candidate-block, a problem that requires repetitious trial and error. When a node finds such a valid solution, it announces it to the rest of the network and claims a new batch of bitcoins. Peers receiving the new solved-block validate it before accepting it, adding it to the chain. Nodes can employ their CPUs using the standard client or use other software to take advantage of their GPUs.[13][22][23] Users can also generate bitcoins collectively.[24]
So that one block gets generated every ten minutes, each node separately readjusts the difficulty of the problem it tries to solve every two weeks according to any changes of the collective CPU-power of the peer-to-peer network.[citation needed]
Transaction fees
editBecause nodes have no obligation to include transactions in the blocks they generate, Bitcoin senders may voluntarily pay a transaction fee. Doing so will speed up the transaction and provide incentive for users to run nodes, especially as the difficulty of generating bitcoins increases or the reward per block amount decreases over time. Nodes collect the transaction fees associated with all transactions included in their candidate block.[13]
Alternative implementations
editBesides the official C++ Bitcoin client and library, there is an open source implementation of the Bitcoin protocol in Java called BitCoinJ developed by a Mike Hearn, a Google engineer.[25]
Alternative user interfaces include bitcoin-js-remote, a JavaScript web user interface for the official Bitcoin daemon.[26]
See also
editReferences
edit- ^ http://weidai.com/bmoney.txt
- ^ "Current currency & funds code list". SNV-SIX Interbank Clearing. Retrieved 10 February 2010.
- ^ Bitcoin website. Main page, FAQ, and (extensively) Trade page all use the abbreviation "BTC".
- ^ a b c d e f Nakamoto, Satoshi (24 May 2009). Bitcoin: A Peer-to-Peer Electronic Cash System (PDF). Retrieved 14 December 2010.
- ^ "Bitcoin Trade". Bitcoin.org. Retrieved 22 December 2010.
- ^ EFF Bitcoin donation page
- ^ SIAI donation page
- ^ Bitcoin Charts
- ^ Thomas, Keir (10 October 2010). "Could the Wikileaks Scandal Lead to New Virtual Currency?". PC World. Retrieved 10 October 2010.
- ^ bitcoinwatch.com
- ^ bitcoinmonitor.com
- ^ Bitcoin FAQ
- ^ a b c d e Nathan Willis (10 November 2010). "Bitcoin: Virtual money created by CPU cycles". LWN.net.
- ^ a b O'Brien, Danny (26 November 2010). "Imagine your computer as a wallet full of Bitcoins". The Irish Times. Retrieved 19 December 2010.
- ^ Herpel, Mark (6 December 2010). "2011 Observations on the Digital Currency Industry". SSRN (Article for DGC magazine Jan2011). Retrieved 19 December 2010.
- ^ Online-Only Currency Bitcoin Reaches Dollar Parity via Slashdot.
- ^ Bitcoin Charts
- ^ https://en.bitcoin.it/wiki/Transactions
- ^ "Bitcoin Wiki: Block Hashing Algorithm".
- ^ "Bitcoin Block Explorer".
- ^ Luongo, Thomas (23 July 2010). "The FED's Real Monetary Problem". LewRockwell.com. Retrieved 12 October 2010.
- ^ DiabloMiner, OpenCL miner for BitCoin
- ^ poclbm, Python OpenCL bitcoin miner
- ^ Bitcoin Pooled Mining
- ^ angry tapir, timothy (23 March 2011). "Google Engineer Releases Open Source Bitcoin Client". Slashdot. Retrieved 29 March 2011.
- ^ tcatm. "bitcoin-js-remote". GitHub. Retrieved 29 March 2011.
External links
edit- Official website
- Community Bitcoin Wiki
- Bitcoin Forum
- Bitcoin Wiki
- What is Bitcoin? animation by weusebitcoins
- Digital Currency Exploring Bitcoin