Bitcoin: Difference between revisions
→Generation: s/They/The/ |
m →Generation: s/in order/simply/ |
||
| Line 122: | Line 122: | ||
The proof-of-work problems are especially suitable to [[Graphics processing unit|GPUs]] and specialized hardware. Because of the growing computing power behind the system driving the difficulty to high levels individual contributors with typical CPUs are no longer likely to solve a block on their own but can still receive part of the bitcoin generated in a new block by contributing their processing power to a mining pool.<ref>{{cite web|url=https://en.bitcoin.it/wiki/Pooled_mining|title=Bitcoin Wiki: Pooled mining|accessdate=26 May 2011}}</ref> This increased difficulty makes it cost prohibitive for an attacker to perform double-spending attacks so it is beneficial to the system. |
The proof-of-work problems are especially suitable to [[Graphics processing unit|GPUs]] and specialized hardware. Because of the growing computing power behind the system driving the difficulty to high levels individual contributors with typical CPUs are no longer likely to solve a block on their own but can still receive part of the bitcoin generated in a new block by contributing their processing power to a mining pool.<ref>{{cite web|url=https://en.bitcoin.it/wiki/Pooled_mining|title=Bitcoin Wiki: Pooled mining|accessdate=26 May 2011}}</ref> This increased difficulty makes it cost prohibitive for an attacker to perform double-spending attacks so it is beneficial to the system. |
||
The amount of bitcoins created per block is never more than 50 BTC, and the awards are programmed to decrease over time down to zero, such that no more than 21 million will ever exist.<ref name=lwn /> As this payout decreases, the motive for users to run block-generating nodes is expected to change to earning [[#Transaction fees|transaction fees]], funding from supporting auxiliary block-chains<ref>{{cite web|url=http://forum.bitcoin.org/index.php?topic=7219.0|title=Bitcoin forum thread on auxiliary block chains|accessdate=26 May 2011}}</ref>, and |
The amount of bitcoins created per block is never more than 50 BTC, and the awards are programmed to decrease over time down to zero, such that no more than 21 million will ever exist.<ref name=lwn /> As this payout decreases, the motive for users to run block-generating nodes is expected to change to earning [[#Transaction fees|transaction fees]], funding from supporting auxiliary block-chains<ref>{{cite web|url=http://forum.bitcoin.org/index.php?topic=7219.0|title=Bitcoin forum thread on auxiliary block chains|accessdate=26 May 2011}}</ref>, and simply to improve the security of the public bitcoin infrastructure they depend on. |
||
===Transaction fees=== |
===Transaction fees=== |
||
Revision as of 22:56, 26 May 2011
| Developer(s) | Satoshi Nakamoto |
|---|---|
| Initial release | February 4, 2009 |
| Stable release | 0.3.21
/ April 27, 2011 |
| Written in | C++ |
| Operating system | Windows, Linux, Mac OS X |
| Available in | English, 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 has no central authority or issuer. Bitcoin uses a distributed database spread across nodes of a peer-to-peer network to journal transactions, and uses digital signatures and proof-of-work 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.
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.[1]
Economics
| ISO 4217 | |
|---|---|
| Demographics | |
| User(s) | Transnational, Internet-based |
| Issuance | |
| Central bank | None; decentralized, distributed |
| Valuation | |
| Inflation | Currently highly deflationary; predetermined currency supply limits[1] |
As of May 2011[update] there are just over 6.2 million bitcoins in existence. The Bitcoin economy is in an early stage of development. Bitcoins are currently accepted in some cases for online services, work for hire, tangible goods, and charitable donations.[4] The Free Software Foundation, Electronic Frontier Foundation and Singularity Institute accept Bitcoin donations.[5][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

As opposed to conventional fiat currency, Bitcoin has no centralized issuing authority.[12] There is a limited controlled expansion of the monetary base hardcoded in the Bitcoin software, but it is predictable and known to all parties in advance.[1] This lack of a central authority can be seen as an advantage, because inflation cannot be centrally manipulated to effect redistribution of value from general users. Others see it as a disadvantage, as a central bank can serve as a stabilizing influence and reduce exchange rate volatility. Most national currencies are also guaranteed to be usable in certain cases, such as paying the taxes of that nation; bitcoins have no such guaranteed use.
Transfers are facilitated directly without the use of a centralized financial processor between nodes. This type of transaction makes chargebacks impossible. Bitcoin transactions can represent many kinds of sophisticated operations such as pure peer to peer escrow and deposits[13] but user interface software for this advanced functionality is currently underdeveloped. The Bitcoin client broadcasts transactions to surrounding nodes who propagate them 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.[1]
The total number of bitcoins is programmed to approach 21 million over time. The money supply is expected to grow as a geometric series every 210,000 blocks (roughly 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 could experience systematic price deflation (increase in real value) because of 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.[14]
The diminishing geometric expansion combined with the expansion of Bitcoin users provides an incentive for early adopters, who obtained bitcoin at preferential exchange rates, to promote the success of the system. This benefit to early adopters has drawn criticism, some drawing comparisons to a ponzi scheme[15], but supporters of bitcoin advance the position that other finite commodities used for trading have properties similar to bitcoin.[16][17] The benefit for early adopters may be a necessary condition for a fully distributed system like bitcoin to gain adoption because a more equitable distribution of initial wealth would not compensate early adopters for the substantial risk developing for and accepting a new, untested, and obscure form of payment.
Bitcoin's design allows for pseudonymous ownership and transfers. Because of this, Bitcoin has anonymity properties somewhat less strong than cash but more strong than other electronic payment systems. Similar to cash, bitcoin transactions can be difficult to trace or regulate, potentially making them attractive to sellers of illegal products.[18]
Outcome
Proposed failure scenarios for Bitcoin include a currency devaluation, a declining user base, or a global governmental crackdown on the software. Succession to another similar cryptocurrency system is also possible, if a new one were to be created and considered to be more legitimate (e.g., backed by a large tech company or institution) or advantageous over Bitcoin in its current form (e.g., more scalable or user-friendly). It may not be possible to "ban all crypto-cash like Bitcoin."[19]
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."[19]
Bitcoin has a built-in deflation mechanism. As the supply of more bitcoins runs out and the 'Bitcoin economy' grows, the value of a single bitcoin increases. It is argued that the expectation that the value of bitcoins may grow may serve as an incentive to form an asset price bubble and a deterrent to using bitcoins as a "currency".[20] The USD exchange rate for bitcoins has increased by a hundredfold over the last eight months (from six cents to over six dollars), and by tenfold in bitcoin prices in the last six weeks.[21]
Technology

Bitcoin 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.[1]
Overview
Bitcoin relies on the transfer of amounts between public accounts using digital signatures. All transactions are public and stored in a distributed database which is used to confirm transactions and prevent double-spending.
Addresses
Any person participating in the Bitcoin network has a wallet containing an arbitrary number of cryptographic keypairs. The Bitcoin addresses, based on the user's public keys, act as the receiving endpoints for all payments. Their corresponding private keys authorize payments from that user only. Addresses contain no information about their owner and can be anonymously held.[14] Addresses in human-readable form are strings of random numbers and letters around 33 characters in length, always beginning with the number 1, of the form 175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W. 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/limited-use addresses helps preserve a user's anonymity.
Transactions
Bitcoins contain the current owner's address. When user A transfers some to user B, A relinquishes ownership on them by adding B’s address to those coins and signing them with the private key matching the address the coins were previously addressed to.[22] 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.
Because transactions are broadcast to the entire network, they are inherently public. Unlike regular banking, which preserves customer privacy by keeping transaction records private, transactional anonymity is accomplished in Bitcoin by keeping the ownership of addresses private, while at the same time publishing all transactions. As an example, if Alice sends 123.45 BTC to Bob, a public record is created that allows anyone to see that 123.45 was sent from one address to another. However, unless Alice or Bob make their ownership of these addresses publicly known in some way, it is difficult for anyone else to connect the transaction with them. However, if an address is connected to a user at any point it can be possible to follow back a series of transactions because each participant likely knows who paid them and may disclose that information on request or under duress. In this manner bitcoin, if used over an anonymization service like Tor, can provide effective anonymity which is similar to but somewhat less than traditional cash transactions but more than most other electronic transactions.
Block-chain and confirmations

To prevent double-spending, the network implements what Nakamoto describes as a peer-to-peer distributed timestamp server,[23] which assigns sequential identifiers to each transaction which are then hardened against modification using the idea of chained proofs of work (shown in the Bitcoin client as confirmations).
Any time a transaction is made, it immediately starts out showing unconfirmed. The confirmation status is reflective of the likelihood that the transaction could be successfully reversed in the event of a deliberate attempt to do so. Any transaction broadcast to other nodes does not become confirmed until acknowledged in a collectively maintained timestamped-list of all known transactions, the block chain.
In particular, each generating node collects all unacknowledged transactions it knows of in a file known as a block,[24] which references all recent transactions as well as 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.
When a transaction is first acknowledged in a block, it receives one confirmation. The transaction itself is only acknowledged once, but blocks themselves are acknowledged repeatedly as time passes and the chain grows. Each time that first block is acknowledged by future blocks, the transaction is considered to have received another confirmation. After six confirmations, the Bitcoin client switches from showing "unconfirmed" to "confirmed". Although a transaction is technically "confirmed" after a single confirmation, the client avoids reporting it until several confirmations later, just to ensure that it is overwhelmingly likely that the transactions are part of the main block chain rather than an orphaned one, and more importantly, practically impossible to reverse.
Eventually, the block-chain contains the cryptographic ownership history of all coins from their creator-address to their current owner-address.[25] Therefore, if a user attempts to reuse coins he had already spent, the network will reject the transaction.
The whole history of transactions must be stored inside the block chain database, which grows constantly as new records are added and never removed. By design, some but not all users need the entire database to use Bitcoin - some users only need the portion of the database that pertains to the coins they own or might receive in the future. Presently, the database is small enough (less than 200 MB as of April 2011) that all users of the Bitcoin software receive the entire database over the peer-to-peer network shortly after running the software the first time.
Nakamoto conceived that as the database became larger, applications for Bitcoin without the entire database on each user's computer would be desirable. To enable this, a Merkle tree is used to organize the transaction records in such a way that a future Bitcoin client can locally delete portions of its own database it knows it will never need in the future, such as earlier transaction records of bitcoins that have changed ownership multiple times, while keeping the cryptographic integrity of the remaining database intact.
Generation
In order to make sybil attacks against the block-chain consensus practically infeasible the the generation of a bitcoin block requires finding the solution to difficult a cryptographic proof-of-work problem. Nodes which are attempting to generate blocks repeatedly try solving instances of the problem though trial and error, each attempt having an equal and infinitesimal chance of being a correct solution. Because the chance of success is independent the system is not competitive, but the overall probability of success is adjusted automatically by the protocol to regulate the rate of new block creation. The rate at which a given user will solve blocks depends on the computing power that user contributes to the network relative to the computing power of all nodes combined.[26] All newly announced blocks are validated by all bitcoin nodes to ensure they conform to the protocol rules before they are accepted, added to the block chain, and forwarded on.
Because block solutions arise out of an independent random process the the bitcoin network creates a new block according to a poisson distribution. The protocol adjusts the problem difficulty so that the distribution mean is λ=2016 blocks per two-weeks, so there is roughly ten minutes between the creation of new blocks on average (the wait times between poisson distributed events follow an exponential distribution). The difficulty updates happen every 2016 blocks, setting it to the value which would have most likely caused the prior 2016 blocks take two weeks to complete given the same computational effort according to the timestamps recorded in the blocks.[27] All nodes perform and enforce the same difficulty calculation.
In addition to the pending transactions which are confirmed in the block a generating node adds a "generate" transaction which awards new bitcoins to operator of the node which generated the block. The payout of this generated transaction is set according to the inflation schedule programmed into the protocol. The process of solving blocks is often referred to as "mining", a term analogous to gold mining in reference to the coins brought into existence by the generate transactions.[1] The "miner" which generates a block also receives the surplus from any transactions that have input value in-excess of the output value, effectively a transaction fee which provides an incentive to give a transaction priority for faster confirmation.
The proof-of-work problems are especially suitable to GPUs and specialized hardware. Because of the growing computing power behind the system driving the difficulty to high levels individual contributors with typical CPUs are no longer likely to solve a block on their own but can still receive part of the bitcoin generated in a new block by contributing their processing power to a mining pool.[28] This increased difficulty makes it cost prohibitive for an attacker to perform double-spending attacks so it is beneficial to the system.
The amount of bitcoins created per block is never more than 50 BTC, and the awards are programmed to decrease over time down to zero, such that no more than 21 million will ever exist.[14] As this payout decreases, the motive for users to run block-generating nodes is expected to change to earning transaction fees, funding from supporting auxiliary block-chains[29], and simply to improve the security of the public bitcoin infrastructure they depend on.
Transaction fees
Because 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 blocks they solve.[14]
Alternative implementations
Besides the original C++ Bitcoin client, there is an open source implementation of the Bitcoin protocol in Java called BitCoinJ developed by Mike Hearn, a Google engineer.[30]
Alternative user interfaces include bitcoin-js-remote, a JavaScript web user interface for Bitcoin wallets,[31] as well as Spesmilo, a PySide interface more open to a diversity of users which can run independently of an external wallet.[32]
See also
- Complementary currency
- Anonymous Internet banking
- Crypto-anarchism
- DigiCash
- eCache
- Pecunix
- Ripple monetary system
- Yodelbank
- Digital gold currency
- Ven (currency)
References
- ^ a b c d e f Nakamoto, Satoshi (24 May 2009). Bitcoin: A Peer-to-Peer Electronic Cash System (PDF). Retrieved 14 December 2010.
- ^ "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".
- ^ "Bitcoin Trade". Bitcoin.org. Retrieved 22 December 2010.
- ^ Other ways to donate to the Free Software Foundation
- ^ 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
- ^ "Bitcoin forum: Designing distributed contracts". Retrieved 26 May 2011.
- ^ a b c d Nathan Willis (10 November 2010). "Bitcoin: Virtual money created by CPU cycles". LWN.net.
- ^ "Intelligent Designs – Erik Möller's Blog: Insert Bitcoin". Retrieved 26 May 2011.
- ^ "[FAQ] Is BitCoin a Ponzi or pyramid scheme?". Retrieved 26 May 2011.
- ^ "Bitcoin Wiki: Myths". Retrieved 26 May 2011.
- ^ http://www.forbes.com/forbes/2011/0509/technology-psilocybin-bitcoins-gavin-andresen-crypto-currency.html
- ^ a b O'Brien, Danny (26 November 2010). "Imagine your computer as a wallet full of Bitcoins". The Irish Times. Retrieved 19 December 2010.
- ^ http://www.quora.com/Is-the-cryptocurrency-Bitcoin-a-good-idea
- ^ http://bitcoinweekly.com/articles/causes-behind-the-bitcoin-price-rally
- ^ https://en.bitcoin.it/wiki/Transactions
- ^ In his white paper, Nakamoto wrote: "we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of 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.
- ^ "Bitcoin Wiki page on difficulty". Retrieved 26 May 2011.
- ^ "Bitcoin Wiki: Pooled mining". Retrieved 26 May 2011.
- ^ "Bitcoin forum thread on auxiliary block chains". Retrieved 26 May 2011.
- ^ angry tapir, timothy (23 March 2011). "Google Engineer Releases Open Source Bitcoin Client". Slashdot. Retrieved 18 May 2011.
- ^ tcatm. "bitcoin-js-remote". GitHub. Retrieved 18 May 2011.
- ^ Spesmilo, PySide Bitcoin client
External links
- Official website
- Bitcoin Forum (official)
- Bitcoin Wiki (official)
- Unofficial Bitcoin Wiki
- We Use Coins (simple Bitcoin explanation)
- Bitcoin Brasil (a Brazilian Bitcoin portal)
- Bitcoin France (French Bitcoin blog)
- Bitcoin Classifieds (Example of goods that can be bought with bitcoins)
- cryptography mailing list (Original Bitcoin announcement)
- Bitcoin Block Explorer (Used to search transactions inside the Bitcoin Block. Shows that transactions can be traced, possibly negating anonymity.)
- Bitbills: bitcoins you can hold.
- Bitcoin Infographic.