|(132 intermediate revisions by 55 users not shown)|
|−|Alice is far away from Bob and wants to buy his [http://www.grasshillalpacas.com/alpacaproductsforbitcoinoffer.html Alpaca socks]. In return, she wants to send him a dollar. A dollar bill is a piece of paper which is very easy to create (by those who can), but which is accepted by people in exchange for valuable products and services in the real world, such as the socks Alice wants to buy. One simple thing Alice can do is to put a dollar bill in an envelope, mail it to Bob, and then wait for Bob to send the socks to her. |+|
is to a of the and .
| || |
|−|Another thing Alice can do is to "wire" the money to Bob. She can do that by first giving her dollar bills to an institution called a bank, the job of which is to safe-keep Alice's dollar bills and, in return, to give Alice a written promise (called a "bank statement") that, whenever she wishes, she can come to the bank to take back the same amount of dollar bills that she deposited. Since the money is still Alice's, she is entitled to do with it whatever she pleases, and the bank (like most banks), for a small fee, will do Alice the service of "giving" the dollar bills to Bob instead of her. This could be done by sending a person to Bob's door, with Alice's dollar bills in hand (or, better, fresh new dollar bills, if Alice's dollar bills are in bad condition), but usually it is done by Alice's bank by giving the dollar bills to Bob's bank and informing them that the money is for Bob, who will then see the amount in his next statement, or, if he is in a hurry, the next time he contacts his bank asking about how much money they have for him. |+|
| || |
|−|Since banks have many customers, and bank employees require money for doing the job of talking to people and signing documents, banks in recent times have been using machines such as ATMs and web servers, that do the job of "talking" to the customers instead of paid bank employees. The job of these machines is to learn what each customer wants to do with his/her money and, to the extent that it's possible, act on what the customer wants (for example, ATMs can hand cash). In the end, there is very little human involvement in this process, most of the time. The people can always know how much money out of the money that the bank is safe-keeping is theirs, and they are confident that the numbers they see in their bank statements and on their computer screens stand for the number of dollar bills that that they can get from the bank at any time they wish. They can be so sure of that, that they can accept those numbers in the same way they accept paper dollars (this is similar to the way people started accepting paper dollars as they accepted gold or silver). |+|
| || |
|−|However, the fact that machines are used does not change the structure of this system, which is, as it was, based on a central authority (the bank) which is responsible for keeping records about how much money belongs to whom. Everybody has to rely on this central authority to be honest (i. e. to say the truth about how much money they are safe-keeping in total, or at least to make the paper money available upon demand from the owners). Also, every person has to identify him/herself to this authority, by giving his/her real name, in order to be allowed to get their paper bills back or to send money to another person. |+|
the which , to . to this be . .in . , , in or .
| || |
|−|Bitcoin is a system of owning and voluntarily transferring amounts of so-called bitcoins, in a manner similar to an on-line banking interface, but anonymously and without reliance on a central authority to decide on what is true. These bitcoins are valuable because they require the spending of real resources (CPU time and electricity) to produce, cannot be spent more than once, and cannot be removed from a person's ownership without illicit access to his/her computer. |+|
| || |
|−|==Preventing stealing== |+|
by a to . Alice a of she . the with a , the to to , the the .
|−|To guarantee that an eavesdropper, Eve, cannot access other people's bitcoins by creating transactions in their names we use a [[Wikipedia:Public-key_cryptography|public key system]] to make digital signatures. In this system, each person, such as Alice and Bob, has a pair of public and private keys which he/she stores in a safe [[Wallet|wallet]]. Only the user with his secret private key can sign a document, such as the transaction to give some of his bitcoins to somebody else, but any one can validate the signature using the user’s public key. | |
| || |
|−|* Bob sends his public key to Alice. |+|
to . with the wants , the . the .
|−|* Alice adds Bob’s public key along with the amount she wants to transfer, to the transaction. | |
|−|* Alice signs the transaction with her secret private key. | |
| || |
|−|As a result, anyone who knows the public keys of both Alice and Bob can now see that Alice agreed to transfer the amount to Bob, because nobody other than Alice has Alice's private key. Alice would be foolish to give her private key to other people, as this would allow them to sign transactions in her name, removing funds from her balance. |+|
other , to .
| || |
|−|Later on, when Bob will transfer the same coins to Charley, he will do the same thing: receive from Charley his public key, add a new transaction to the chain of transactions and sign it with his (Bob) private key. But only Bob can do this, because only Bob has the private key which is necessary for signing and which is the only private key to match Bob’s public key that is already in the chain. | |
| || |
|−|Eve cannot change who the coins belong to by replacing Bob’s public key with her public key, because Alice signed the transfer to Bob using her private key, declaring that the coins which belonged to her now belong to Bob, and Alice's private key is kept secret from Eve. So if Charley accepts that the original coin was in the hands of Alice he will also accept the fact that this coin was later passed to Bob and now Bob is passing this same coin to him. |+|
, to , to , and in .
| || |
Preventing double-spending== |+|
|−|This is how we guarantee that Alice cannot replicate the coin and use it in more than one transaction: | |
| || |
|−|* Details about the [[ Transactions| transaction]] are [[ Network| sent and forwarded]] to all or as many other computers as possible. |+|
|−|* A constantly growing chain of [[ Blocks| blocks]] that contains a record of all transactions is collectively maintained by all computers (each has a full copy). |+|
|−|* Valid blocks are computationally difficult to create and only valid blocks are allowed in the chain, containing valid transactions. |+|
|−|* Blocks are chained in a way that does not allow their data to be modified, without all following blocks becoming invalid. |+|
|−|* When multiple valid continuations to this chain appear, the longest such branch is accepted as the correct one and built upon. |+|
[[|]] [[|]] to . of [[|]]a ofis .
to blocksin the . a that does not be , .
, the the .
| || |
|−|When Bob sees that his transaction has been included in a block, which has been made part of the longest and constantly growing block chain, he can be confident that the transaction by Alice has been accepted by other computers as valid and has been recorded, preventing Alice from creating a second transaction with the same coin. |+|
| || |
|−|In theory, Alice could attempt to generate spoofed blocks in which her past usage of the same coin does not appear and try to send these blocks to everyone as evidence that the coin is still hers. However, that past transaction, which contains a signature from Alice, has already been announced, has already been distributed to a very large number of computers in the bitcoin network and a block containing it has already been generated by someone (otherwise, the first receiver of the coin would have no confirmation). Since the process of generating a valid block is designed to take a [[ Proof_of_work| long time]] , Alice will be unable to compete with all these computers in the rate at which she can generate blocks. Bob will receive much more blocks from third persons than Alice alone will ever be able to generate, and some of the newer blocks will contain Alice's previous transaction, telling Bob that Alice has already spent her coin. And since, in the presence of multiple parallel chains of blocks of transactions, the longest such chain is accepted and built upon, the only way for Alice to pass her own version of events is to be in a position to permanently command the majority of the CPU power on the network. We assume no single person or organization can do that and therefore, as long as the people who control the majority of the CPU power are acting honestly, accepting only valid blocks and always choosing the longest chain as the one to extend, Alice's transaction will be permanently recorded and Alice will be unable to create another transaction with the same coin. |+|
, to and . , , Alice , has a [[|]] with more . the the a to of to , the .
| || |
|−|Bitcoin "accounts" do not have people's names on them and do not have to correspond to individuals. Each balance is simply associated with a randomly generated public-private key pair and the money "belongs" to whoever has the private key and can sign transactions with it. The transactions that are signed using those keys also don't have to include names. |+|
and to to .
with private key
the the to .
| || |
|−|A bitcoin [[Address|address]] looks like this: |+|
| || |
| || |
|−|Each person can have many such key pairs, each with its own balance, and this can make it more difficult to identify which person owns what amount. In order to protect his [[Anonymity|privacy]], Bob can even generate a new public-private key pair for each individual transaction. So David receiving the coin from Charley will not be able to identify who is the second person in the list of transactions. The only thing David will know is the address of Bob which is a shortened (hashed) version of his public key. |+|
, to to ,
the to .
the his key
| || |
|−|==Creation of coins== |+|
Bob because the a valid for the transaction.
|−|As we saw, both Bob and Charley need to verify that the original coin from Alice is valid. Alice cannot simply generate coins instantly, out of thin air, because the appearance of a coin is a transaction that needs to be accepted by others. In order for the coin-creation transaction to be accepted, the transaction and the block in which it appears must be part of the longest chain of blocks. For new blocks to be added as continuations to this coin-generating block, it must be considered valid by those who generate blocks. For the chain to remain the longest, the speed at which blocks are added to it must be faster than that of any other chain. Therefore, for the coin-generating transaction to exist, it must be considered valid by the software that is running on the majority of the CPUs on the network. | |
| || |
|−|According to current software, the way that new coins are slowly introduced is this: every computer that manages to generate a block is allowed to put one transaction there in which it gains 50 BTC, without this amount having to come from somewhere. This is called a "proof of work", because generating blocks is a [[Target|slow]] process that requires Alice to spend real resources (buy recent computer hardware, use electricity and CPU time) and in this way it can be compared to gold mining. Only with a proof of work is Alice allowed to contribute to the [[Block_chain|chain of blocks]] that together keep a record of all transactions. |+|
to , the coins which to . of , that to , and this to .
| || |
|−|The coin received by Alice is an incentive for her to perform this computation work. However, it is currently agreed that the reward for generating a block will be reduced to half every 4 years. Meaning that, at some point in the year 2013, the majority of the CPUs will stop accepting blocks in which the generating transaction adds 50BTC to the sum of money, and they will only accept blocks adding half that amount (or less?). The same thing will happen in the years 2017, 2021, 2025 and so on, unless different Bitcoin client software has prevailed in the network. |+|
| || |
|−|Since this incentive will eventually diminish, another way for Alice to gain bitcoins when she generates blocks is to accept [[Transaction_fee|transaction fees]]. There is a voluntary transaction fee that can be paid in every transfer of bitcoins , the amount of which is chosen, and paid, by the person who sends the money. This amount is given to the person who generates the "proof-of-work" block in which the transaction appears, which is necessary for the transaction to be accepted. Since Alice is free to include in her block whichever set of transactions she wants, she can choose to include only the transactions with the highest transaction fees. If everybody acts that way, then eventually, and depending on the total number of transactions, a minimum transaction fee will be required for a transaction to appear in the chain of blocks. |+|
Alice bitcoins in transaction. is the .
| || |
|−|==Putting it all together== |+|
the  .
|−|Directly experience the system in action by visiting [ http://blockexplorer.com/ Bitcoin Block Explorer]. |+|
chain [[|]] contains of all transactions .
|−|The site shows you the latest blocks in the block chain . The [[ Block_chain| block chain]] contains the agreed history of all transactions that took place in the system. |+|
in the , be of the
|−|Note how many blocks were generated in the last hour, should be around 6. Also notice the number of transactions and the total amount transferred in the last hour (last time I checked it was about 64 and 15K. ) |+|
|−|This should give you an indication of how active the system is. |+|
the is .
| || |
|−|Next, drill into one of these blocks. |+|
that block, made block ()that the the the , the . this coinsother .
|−|Start by noticing that the block 's [[hash|hash]] begins with a run of zeros, this is what made making it so difficult. | |
|−|The computer that generated this block had to run on many ''Nonce'' values ( also listed on the block's page) until it found one that generated this run of zeros. | |
|−|Next notice the line titled ''Previous block'', each block contains the hash of the block that came before it, this is what forms the chain of blocks. | |
|−|Now notice all the transactions the block contains. The first transaction is the income earned by the computer that generated this block. It includes a fixed amount of coins created out of thin air and possibly fee collected from other transactions in the same block. | |
| || |
|−|Drill into any of the transactions and you will see how it is made from one or more amounts coming in and out. |+|
|−|The fact that there can be more than one incoming and outgoing amounts, allow the system to join and break amounts in any possible way allowing for any fractional amount needed (usually cents.) | |
|−|Each incoming amount is a transaction from the past (which you can also drill to) coming from an address of someone | |
|−|and each outgoing amount is addressed to someone and will be part of a future transaction (which you can also drill too if it also had already taken place.) | |
| || |
|−|Finally you can drill into any of the [[Address|addresses ]] and see what public information is available. |+|
the addressesand public.
| || |
|−|To get an impression of the amount of activity on the Bitcoin network, you might like to visit the monitoring websites [[Bitcoin Watch]] and [[Bitcoin Monitor]]. The first has general statistics on the amount and size of transactions, while the latter shows a real-time visualization of events on the Bitcoin network. |+|
| || |
So that all sounds good! How do I help? [[Helping Bitcoin |How to help Bitcoin]]'' |+|
| || |
| || |
|−|* [ http: //www.youtube.com/watch?v=Um63OQz3bjo What is Bitcoin?] video introduction |+|
|−|* Installing Bitcoin [[getting started]] |+|
|−|* [[ How bitcoin works]] | |
|−|* [[Using Bitcoin]] | |
|−|* A gentle introduction to Bitcoin - [[BitcoinMe]] | |
|−|* Another introduction, ''The Rebooting Of Money'' podcast is found at [[Bitcoin Money]] | |
The purpose of this page is to provide a general overview of the Bitcoin system and economy.
Alice wants to buy the Alpaca socks which Bob has for sale. In return, she must provide something of equal value to Bob. The most efficient way to do this is by using a medium of exchange that Bob accepts which would be classified as currency. Currency makes trade easier by eliminating the need for coincidence of wants required in other systems of trade such as barter. Currency adoption and acceptance can be global, national, or in some cases local or community-based.
Alice need not provide currency to Bob in-person. She may instead transfer this value by first entrusting her currency to a bank who promises to store and protect Alice's currency notes. The bank gives Alice a written promise (called a "bank statement") that entitles her to withdraw the same number of currency bills that she deposited. Since the money is still Alice's, she is entitled to do with it whatever she pleases, and the bank (like most banks), for a small fee, will do Alice the service of passing on the currency bills to Bob on her behalf. This is done by Alice's bank by giving the dollar bills to Bob's bank and informing them that the money is for Bob, who will then see the amount the next time he checks his balance or receives his bank statement.
Since banks have many customers, and bank employees require money for doing the job of talking to people and signing documents, banks in recent times have been using machines such as ATMs and web servers that do the job of interacting with customers instead of paid bank employees. The task of these machines is to learn what each customer wants to do with their money and, to the extent that it is possible, act on what the customer wants (for example, ATMs can hand out cash). Customers can always know how much money they have in their accounts, and they are confident that the numbers they see in their bank statements and on their computer screens accurately reflect the number of dollars that they can get from the bank on demand. They can be so sure of this that they can accept those numbers in the same way they accept paper banknotes (this is similar to the way people started accepting paper dollars when they had been accepting gold or silver).
Such a system has several disadvantages:
- It is costly. EFTs in Europe can cost 25 euros. Credit transactions can cost several percent of the transaction.
- It is slow. Checking and low cost wire services take days to complete.
- In most cases, it cannot be anonymous.
- Accounts can be frozen, or their balance partially or wholly confiscated.
- Banks and other payment processors like PayPal, Visa, and Mastercard may refuse to process payments for certain legal entities.
Bitcoin is a system of owning and voluntarily transferring amounts of so-called bitcoins, in a manner similar to an on-line banking, but pseudonymously and without reliance on a central authority to maintain account balances. If bitcoins are valuable, it is because they are useful and limited in supply.
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 6.25 new bitcoins at present [July 2023]. 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; it then halved again in July 2016. 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.
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 a wallet with one or more private keys. 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.
Suppose Alice wants to send a bitcoin to Bob.
- Bob sends his address to Alice.
- Alice adds Bob’s address and the amount of bitcoins to transfer to a message: a 'transaction' message.
- Alice signs the transaction with her private key.
- Alice broadcasts the transaction on the Bitcoin network for all to see.
(Only the first two steps require human action. The rest is done by the Bitcoin client software.)
Looking at this transaction from the outside, anyone who knows that this address belongs to Bob can see that someone has agreed to transfer the amount to Bob, because nobody else has the correct private key. Alice would be foolish to give her private key to other people, as this would allow them to sign transactions, removing funds from her control.
Later on, when Bob wishes to transfer the same bitcoins to Charley, he will do the same thing:
- Charlie sends Bob his address.
- Bob adds Charlie's address and the amount of bitcoins to transfer to a message: a 'transaction' message.
- Bob signs the transaction with his private key.
- Bob broadcasts the transaction on the Bitcoin network for all to see.
Only Bob can do this because only he has the private key that can create a valid signature for the transaction.
Eve cannot change whose coins these are by replacing Bob’s address with her address, because Alice signed the transfer to Bob using her own private key, which is kept secret from Eve, and instructing that the coins which were hers now belong to Bob. So, if Charlie accepts that the original coin was in the hands of Alice, he will also accept the fact that this coin was later passed to Bob, and now Bob is passing this same coin to him.
The process described above does not prevent Alice from using the same bitcoins in more than one transaction. The following process does; this is the primary innovation behind Bitcoin.
- 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.
When Bob sees that his transaction has been included in a block, which has been made part of the single longest and fastest-growing block chain (extended with significant computational effort), he can be confident that the transaction by Alice has been accepted by the computers in the network and is permanently recorded, preventing Alice from creating a second transaction with the same coin. In order for Alice to thwart this system and double-spend her coins, she would need to muster more computing power than all other Bitcoin users combined.
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.
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.