Jump to content

Bitcoin

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Gnurkel (talk | contribs) at 12:32, 9 June 2011 (Better grammar). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Bitcoin
Developer(s)Satoshi Nakamoto (inactive), Gavin Andresen, Pieter Wuille, Nils Schneider, Jeff Garzik
Initial releaseFebruary 4, 2009 (2009-02-04)
Stable release
0.3.21 / April 27, 2011; 13 years ago (2011-04-27)
Written inC++
Operating systemWindows, Linux, Mac OS X
Available inEnglish, German, Spanish, French, Dutch, Portuguese, Italian and Russian.
TypeElectronic money
LicenseMIT License
Websitewww.bitcoin.org

Bitcoin is a digital currency created in 2009 by Satoshi Nakamoto. The name also refers both to the open source software he designed to make use of the currency and to the peer-to-peer network formed by running that software.

Unlike other digital currencies, Bitcoin avoids central authorities and issuers. 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 be spent only once per owner and only by the person who owns them.

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. The peer-to-peer topology and lack of central administration are features that make it infeasible for any authority (governmental or otherwise) to manipulate the quantity of bitcoins in circulation, thereby mitigating inflation.[1]

Economics

Bitcoin
ISO 4217
Codenone[2]
Demographics
User(s)Transnational, Internet-based
Issuance
Central bankNone; decentralized, distributed
Valuation
InflationCurrently highly deflationary; predetermined currency supply limits[1]

As of May 2011, there are just over 6.2 million bitcoins in existence.[3] The Bitcoin economy is in an early stage of development. Bitcoins are currently accepted in some cases for a small number of online services, work for hire, tangible goods, and charitable donations.[4] Traders exchange regular currency (including US dollars, Russian rubles, and Japanese yen) for bitcoins through exchange sites. [5] [6] Anyone can view the block-chain and observe transactions in real-time.[7] Currency exchanges also exist between bitcoins and other virtual currencies, such as the Linden Dollar.[8]

The Electronic Frontier Foundation originally accepted Bitcoin as donations and recieved thousands of Bitcoins [9], but withdrew their support from concerns about Bitcoins status as non-legal tender[10].

Monetary differences

Future bitcoin supply (for 10-minute issuance frequency).

As opposed to conventional fiat currency, Bitcoin has no centralized issuing authority.[11] 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. Others see it as a disadvantage, as a central bank is believed to serve as a stabilizing influence and reduce exchange rate volatility.[who?] Most national currencies are also guaranteed to be usable in certain cases, such as paying the taxes of that nation, or through legal tender laws; bitcoins have no such guaranteed use.[citation needed]

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 operations such as pure peer-to-peer escrow and deposits but user interface software for this advanced functionality is currently underdeveloped.[citation needed] 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 programmed 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 (a total of 2.1 x 1015 or 2.1 quadrillion units), which removes one practical limitation to downward price adjustments in a deflationary environment.[12]

The total number of bitcoins can be approximated by N(1-½^(t/T)) where N is the asymptotic population of bitcoins (that is 21 million), t is the time since initialisation and T is the time required for the generation rate to halve (that is, approximately 4 years). It is possible to subsequently derive the growth rate in the bitcoin population as (1-α)α^t/(1-α^t) where α=½^(1/T). This is 84% in year 2, 38% in year 3, 23% in year 4, 16% in year 5; 11.6%, 8.7%, 6.7%, 5.3% and 4.2% in years 6-10; 1.54% in year 15; 0.61% in year 20 and 0.253% in year 25.

The diminishing geometric expansion combined with the expansion of Bitcoin users provides an incentive for early adopters, who obtained bitcoin at preferential exchange rates, a property that may be viewed as a way to promote the success of the system. This benefit to early adopters has drawn criticism, some drawing comparisons to a Ponzi scheme, but supporters of bitcoin advance the position that other finite commodities used for trading have properties similar to bitcoin.[citation needed]

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 (see early adopter). The expansion does, however, provide incentive to acquire and hold bitcoins rather than to exchange them for goods and services which would otherwise promote the more widespread adoption of the bitcoin currency. Technologies that preferentially benefit early adopters who themselves promote more widespread adoption would be likely to enjoy even more universal acceptance. Notably, even if a proportion of the population (such as early adopters and promoters of a technology) enjoy relatively greater benefits, this nevertheless does not preclude the logical possibility that all members of the population may enjoy some benefits. In the case of bitcoin, which facilitates economic exchange, these benefits include the general gains from trade.

Bitcoin's design allows for pseudonymous ownership and transfers. Because of this, Bitcoin has anonymity properties weaker than cash but stronger than traditional electronic payment systems. Unlike cash, the complete history of every bitcoin transaction is public, however it is not possible in general to associate bitcoin identities with real-life identities. This property makes bitcoin transactions attractive to some sellers of illegal products.[13][14]

Outcome

Bitcoin vs USD exchange rate starting near the first big documented growth spurt on 2010-10-07. Prices range from about $0.06 to about $19. The vertical scale for price (right) and volume bars (left) is a log scale.

Proposed failure scenarios for Bitcoin include a currency devaluation, a declining user base, or a global governmental crackdown on the software and exchanges. 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."[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."[15]

Bitcoin has a built-in deflation mechanism. As the supply of more bitcoins runs out and the 'Bitcoin economy' grows, absent other economic forces, the value of a single bitcoin can be expected to increase. It is argued[who?] 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".[citation needed] The price of bitcoins measured in US Dollars has increased more than threehundredfold (from USD .06 to over USD 18.00) over the eight month period between October 7, 2010 and June 6, 2011.[1][citation needed]

Technology

Bitcoin software running under Windows 7

Bitcoin is a peer-to-peer implementation of Wei Dai's b-money proposal and Nick Szabo's Bitgold proposal.[citation needed] The principles of the system are described in Satoshi Nakamoto's 2008 Bitcoin whitepaper.[1] 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

Bitcoin is based on public-key cryptography. Any person participating in the Bitcoin network has a wallet containing an arbitrary number of cryptographic keypairs. The user's public keys are transformed into Bitcoin addresses which act as the receiving endpoints for all payments. The corresponding private keys are needed to authorize payments from that user's wallet. Addresses contain no information about their owner although owners may be traceable through the distributed transaction history. 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 typically have 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 wallet address. A user can create as many wallets as he likes. When a bitcoin belonging to user A is transferred to user B, then A’s ownership over that bitcoin is relinquished by adding B’s address to it and signing the result with the private key that is associated with A’s address.[16] Because of the asymmetric cryptographic method, nobody else can grant this signature, and the private key cannot be determined based on the signed bitcoin. The resulting bitcoin is broadcast in a 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. However, if used over an anonymization service like Tor, Bitcoin can provide anonymity that is weaker than cash transactions but stronger than other popular electronic transactions.[citation needed]

Block-chain and confirmations

The main chain (black) consists of the longest series of blocks from the genesis block (green) to the current block. Orphan blocks (grey) exist outside of the main chain.

To prevent double-spending, the network implements what Nakamoto describes as a peer-to-peer distributed timestamp server,[17] 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 labeled as 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,[18] 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 and 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. This is because the "work" involved should be thought of as not having been done by any individual user but instead by the entire network.

Eventually, the block-chain contains the cryptographic ownership history of all coins from their creator-address to their current owner-address.[19] 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 generation of a Bitcoin block requires finding the solution to a difficult cryptographic proof-of-work problem. Nodes which are attempting to generate blocks are called "miners". They repeatedly try solving instances of the problem through trial and error, each attempt having an equal and infinitesimal chance of being a correct solution. The probability of success for each attempt 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.[20] All newly announced blocks are validated by all Bitcoin nodes to ensure that 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 rate of block creation by the Bitcoin network can be described as a Poisson distribution. The protocol adjusts the problem difficulty so that the distribution mean is λ=2016 blocks per two weeks, so there are 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. The difficulty is set to the value which would have most likely caused the prior 2016 blocks to take two weeks to complete, given the same computational effort (according to the timestamps recorded in the blocks).[21] 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 the 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.[22] This increased difficulty makes it cost prohibitive for an attacker to perform double-spending attacks so it is beneficial to the system.

The number of Bitcoins created per block is never more than 50 BTC, and the awards are programmed to decrease over time towards zero, such that no more than 21 million will ever exist.[12] 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[23], 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 reward per block amount decreases over time. Nodes collect the transaction fees associated with all transactions included in blocks they solve.[12]

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.[24]

Alternative user interfaces include bitcoin-js-remote, a JavaScript web user interface for Bitcoin wallets,[25] as well as Spesmilo, a PySide interface more open to a diversity of users which can run independently of an external wallet.[26]

See also

References

  1. ^ a b c d e f Nakamoto, Satoshi (24 May 2009). Bitcoin: A Peer-to-Peer Electronic Cash System (PDF). Retrieved 14 December 2010.
  2. ^ "Current currency & funds code list". SNV-SIX Interbank Clearing. Retrieved 10 February 2010.
  3. ^ This figure is algorithmically determined as described in Nakamoto's whitepaper. Because by definition, the only spendable Bitcoins in existence are those represented in the block chain database passed around on the peer to peer network, the number is not only easy to determine, but can be quickly determined with precision by all participants.
  4. ^ "Bitcoin Trade". Bitcoin wiki. Retrieved 8 June 2010.
  5. ^ Hough, Jack (3 June 2011). "The Currency That's Up 200,000%". SmartMoney. Retrieved 8 June 2011.
  6. ^ Thomas, Keir (10 October 2010). "Could the Wikileaks Scandal Lead to New Virtual Currency?". PC World. Retrieved 10 October 2010.
  7. ^ "Home - Bitcoin Block Explorer". Retrieved 8 June 2011.
  8. ^ "Bitcoin Mining: The Free Lottery". Radoff.com. Retrieved 03 June 2011. {{cite web}}: Check date values in: |accessdate= (help)
  9. ^ Template:Cite eff bitcoin status
  10. ^ Template:Cite bitcoin money
  11. ^ Bitcoin FAQ
  12. ^ a b c Nathan Willis (10 November 2010). "Bitcoin: Virtual money created by CPU cycles". LWN.net.
  13. ^ http://www.forbes.com/forbes/2011/0509/technology-psilocybin-bitcoins-gavin-andresen-crypto-currency.html
  14. ^ Madrigral, Alexis (1 June 2011). "Libertarian Dream? A Site Where You Buy Drugs With Digital Dollars" (HTML). The Atlantic Monthly. Retrieved 5 June 2011.
  15. ^ a b O'Brien, Danny (26 November 2010). "Imagine your computer as a wallet full of Bitcoins". The Irish Times. Retrieved 19 December 2010.
  16. ^ https://en.bitcoin.it/wiki/Transactions
  17. ^ 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."
  18. ^ "Bitcoin Wiki: Block Hashing Algorithm".
  19. ^ "Bitcoin Block Explorer".
  20. ^ Luongo, Thomas (23 July 2010). "The FED's Real Monetary Problem". LewRockwell.com. Retrieved 12 October 2010.
  21. ^ "Bitcoin Wiki page on difficulty". Retrieved 26 May 2011.
  22. ^ "Bitcoin Wiki: Pooled mining". Retrieved 26 May 2011.
  23. ^ "Bitcoin forum thread on auxiliary block chains". Retrieved 26 May 2011.
  24. ^ angry tapir, timothy (23 March 2011). "Google Engineer Releases Open Source Bitcoin Client". Slashdot. Retrieved 18 May 2011.
  25. ^ tcatm. "bitcoin-js-remote". GitHub. Retrieved 18 May 2011.
  26. ^ Spesmilo, PySide Bitcoin client