Bitcoin Technology

bitcoin.org
github.com/bitcoin/bitcoin
en.bitcoin.it
Description

Launched: 2009

Bitcoin is an experimental, decentralized digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin is designed around the idea of using cryptography to control the creation and transfer of money, rather than relying on central authorities.

Features:
Mobile payments made easy
Security and control over your money
Works everywhere, anytime
Fast international payments
Zero or low fees
Protect your identity
Technology
Creation of coins

The creation of coins must be limited for the currency to have any value.

New coins are slowly mined into existence by following a mutually agreed-upon set of rules. A user mining bitcoins is running a software program that searches for a solution to a very difficult math problem the difficulty of which is precisely known. This difficulty is automatically adjusted on a predictable schedule so that the number of solutions found globally for a given unit of time is constant: the global system aims for 6 per hour. When a solution is found, the user may tell everyone of the existence of this newly found solution along with other information packaged together in what is called a "block". The solution itself is a proof-of-work or PoW. It is hard to find, but easy to verify.

Blocks create 25 new bitcoins at present. This amount, known as the block reward, is an incentive for people to perform the computation work required for generating blocks. Roughly every 4 years, the number of bitcoins that can be "mined" in a block reduces by 50%. Originally the block reward was 50 bitcoins; it halved in November 2012. Any block that is created by a malicious user that does not follow this rule (or any other rules) will be rejected by everyone else. In the end, no more than 21 million bitcoins will ever exist.

Because the block reward will decrease over the long term, miners will some day instead pay for their hardware and electricity costs by collecting transaction fees. The sender of money may voluntarily pay a small transaction fee which will be kept by whoever finds the next block. Paying this fee will encourage miners to include the transaction in a block more quickly.

Sending payments

To guarantee that a third-party, let's call her Eve, cannot spend other people's bitcoins by creating transactions in their names, Bitcoin uses public key cryptography to make and verify digital signatures. In this system, each person, such as Alice or Bob, has one or more addresses each with an associated pair of public and private keys that they may hold in a wallet. Only the user with the private key can sign a transaction to give some of their bitcoins to somebody else, but anyone can validate the signature using that user’s public key.

Preventing double-spending

  • Details about the transaction are sent and forwarded to all or as many other computers as possible.
  • A constantly growing chain of blocks that contains a record of all transactions is collectively maintained by all computers (each has a full copy).
  • To be accepted in the chain, transaction blocks must be valid and must include proof of work (one block generated by the network every 10 minutes).
  • Blocks are chained in a way so that, if any one is modified, all following blocks will have to be recomputed.
  • When multiple valid continuations to this chain appear, only the longest such branch is accepted and it is then extended further.

Anonymity

When it comes to the Bitcoin network itself, there are no "accounts" to set up, and no e-mail addresses, user-names or passwords are required to hold or spend bitcoins. Each balance is simply associated with an address and its public-private key pair. The money "belongs" to anyone who has the private key and can sign transactions with it. Moreover, those keys do not have to be registered anywhere in advance, as they are only used when required for a transaction. Transacting parties do not need to know each other's identity in the same way that a store owner does not know a cash-paying customer's name.

A Bitcoin address mathematically corresponds to a public key and looks like this:

1PHYrmdJ22MKbJevpb3MBNpVckjZHt89hz

Each person can have many such addresses, each with its own balance, which makes it very difficult to know which person owns what amount.

Capitalization / Nomenclature

Since Bitcoin is both a currency and a protocol, capitalization can be confusing. Accepted practice is to use Bitcoin (singular with an upper case letter B) to label the protocol, software, and community, and bitcoins (with a lower case b) to label units of the currency.