Bitcoin technical primer


Bitcoin is a consensus network that enables a new payment system and a completely digital money. It is the first decentralized bitcoin technical primer payment network that is powered by its users with no central authority or middlemen. From a user perspective, Bitcoin is pretty much like cash for the Internet. Bitcoin can also be bitcoin technical primer as the most prominent triple entry bookkeeping system in existence.

Bitcoin is the first implementation of a concept called "cryptocurrency", which was first described in by Wei Dai on the cypherpunks mailing bitcoin technical primer, suggesting the idea of a new form of money that uses cryptography to control its creation and transactions, rather than a central authority. The first Bitcoin specification and proof of concept was published in in a cryptography mailing list by Satoshi Nakamoto.

Satoshi left the project in late without revealing much about himself. The community has since grown exponentially with many developers working on Bitcoin. Satoshi's anonymity often raised unjustified concerns, many of which are linked to misunderstanding of the open-source nature of Bitcoin.

The Bitcoin protocol and software are published openly and any developer around the world can bitcoin technical primer the code or make their own modified version of the Bitcoin software. Just like current developers, Satoshi's influence was limited to the changes he made being adopted by others and therefore he did not control Bitcoin. As such, the identity of Bitcoin's inventor is probably as relevant today as the identity of the person who invented paper. Nobody bitcoin technical primer the Bitcoin network much like no one owns the technology behind email.

Bitcoin is controlled by all Bitcoin users around the world. While developers are improving the software, they can't force a change in the Bitcoin protocol because all users are free to choose what software and version they use. In order to stay compatible with each other, all users need to use software complying with the same rules.

Bitcoin can only work correctly with a complete consensus among all users. Therefore, all users and developers have a strong incentive to protect this consensus. From a user perspective, Bitcoin is nothing more than a mobile app or computer bitcoin technical primer that provides a personal Bitcoin wallet and allows a user to send and receive bitcoins with them.

This is how Bitcoin works for most users. Behind the scenes, the Bitcoin bitcoin technical primer is sharing a public ledger called the "block chain". This ledger contains every transaction ever processed, allowing a user's computer to verify the validity of each transaction.

The authenticity of each transaction is protected by digital signatures corresponding to the sending addresses, allowing all users to have full control over sending bitcoins from their own Bitcoin addresses. In addition, anyone can process transactions using the computing power of specialized hardware and earn a reward in bitcoins for this service. Bitcoin technical primer is often called "mining".

To learn more about Bitcoin technical primer, you can consult the dedicated page and the original paper. There are a growing number of businesses and individuals using Bitcoin. This includes brick-and-mortar businesses like restaurants, apartments, and law firms, as well as popular online services such as Namecheap, Overstock.

While Bitcoin technical primer remains a relatively new phenomenon, it is growing fast. At the end of Aprilthe total value bitcoin technical primer all existing bitcoins exceeded 20 billion US dollars, with millions of dollars worth of bitcoins exchanged daily. While it may be possible to find individuals who wish to sell bitcoins in exchange for a credit bitcoin technical primer or PayPal payment, most bitcoin technical primer do not allow funding via these payment methods.

This is due to cases where someone buys bitcoins with PayPal, and then reverses their half of the transaction. This is commonly referred to as a chargeback. Bitcoin payments bitcoin technical primer easier to make bitcoin technical primer debit or credit card purchases, and can be received without a merchant account. Payments are made from a wallet application, either on your computer or smartphone, by entering the recipient's address, the payment amount, and pressing send.

To make it easier to enter a recipient's address, many wallets can obtain the address by scanning a QR code or touching two phones together with NFC technology. Much of the trust in Bitcoin comes from the fact that it requires no trust at all. Bitcoin is fully open-source and decentralized. This means that anyone has access to the entire source code at any time. Any developer in the world can therefore verify exactly how Bitcoin works.

All transactions and bitcoins issued into bitcoin technical primer can be transparently consulted in real-time by anyone. All payments can be made without reliance on a third party and the whole system is protected by heavily peer-reviewed cryptographic algorithms like those used for online banking.

No organization or individual can control Bitcoin, and the network remains secure even if not all of its users can be trusted. You should never expect to get rich with Bitcoin or any emerging technology. It is always important to be wary of anything that sounds too good to be true or disobeys basic economic rules. Bitcoin is a growing space of innovation and there are business opportunities that also include risks.

There is no guarantee that Bitcoin will continue to grow even though it has developed at a very fast rate so far. Investing time and resources on anything related to Bitcoin requires entrepreneurship. There are various ways bitcoin technical primer make money with Bitcoin such as mining, speculation or running new businesses. All of these methods are competitive and there is no guarantee of profit. It is up to each individual to make a proper evaluation of the costs and the risks involved in any such project.

Bitcoin is as virtual as the credit cards and online banking bitcoin technical primer people use bitcoin technical primer. Bitcoin can be used to pay online and in physical stores just like any other form of money. Bitcoins can also be exchanged in physical form such as the Denarium coinsbut paying with a mobile phone usually remains more convenient.

Bitcoin balances are stored in a large distributed network, and they cannot be fraudulently altered by anybody. In other words, Bitcoin users have exclusive control over their funds and bitcoins cannot vanish just because they are virtual.

Bitcoin is designed to allow its users to send and receive payments with bitcoin technical primer acceptable level of privacy as well as any other form of money. However, Bitcoin is not anonymous and cannot offer the same level of privacy as cash.

The use of Bitcoin leaves extensive public records. Various mechanisms exist to protect users' privacy, and more are in development. Bitcoin technical primer, there is still work to be done before these features are used correctly by most Bitcoin users. Some concerns have been raised that private transactions could be used for illegal purposes with Bitcoin technical primer. However, it is worth noting that Bitcoin will undoubtedly be subjected to similar regulations that are already in place inside existing financial systems.

Bitcoin cannot be more anonymous than cash and it is not likely to prevent criminal investigations from being conducted.

Additionally, Bitcoin is also designed to prevent a large range of financial crimes. When a user loses his wallet, it has the effect of removing money out of circulation. Lost bitcoins still remain in the block chain just like any other bitcoins.

However, lost bitcoins remain dormant forever because there is no way for anybody to find the private key s that would allow them to be bitcoin technical primer again. Because of the law of supply and demand, when fewer bitcoins are available, the ones that are left will be in higher demand and increase in value to compensate. The Bitcoin network can already process a much higher number of transactions per second bitcoin technical primer it does today.

It is, however, not entirely ready to bitcoin technical primer to the level of major credit card networks. Work is underway to lift current limitations, and future requirements bitcoin technical primer well known. Since inception, every aspect of the Bitcoin network has been in a continuous process of maturation, optimization, and specialization, and it should bitcoin technical primer expected to remain that way for some years to come.

As traffic grows, more Bitcoin users may use lightweight clients, and full network nodes may become a more specialized service. For more details, see the Scalability page on the Wiki. To the best of our knowledge, Bitcoin has not been made illegal by legislation in most jurisdictions. However, some jurisdictions such as Argentina and Russia severely restrict or ban foreign currencies. Other jurisdictions such as Thailand may limit the licensing of certain entities such as Bitcoin exchanges.

Regulators from various jurisdictions are taking steps to provide individuals and businesses with rules on how to integrate this new technology with the formal, regulated financial system. Bitcoin is money, and money has always been used both for legal and illegal purposes. Cash, credit cards and current banking systems widely surpass Bitcoin in terms of their use to finance crime.

Bitcoin can bring significant innovation in payment systems and the benefits of such innovation are often considered to be far beyond their potential drawbacks. Bitcoin is designed to be a huge step forward in making money more secure and could also act as a significant protection against many forms of financial crime. For bitcoin technical primer, bitcoins are completely impossible to counterfeit.

Users are in full control of their payments and cannot receive unapproved charges such as with credit card fraud. Bitcoin transactions are irreversible and immune to fraudulent chargebacks. Bitcoin allows money to be secured against theft and loss using very strong and useful mechanisms such as backups, encryption, and multiple signatures.

Some concerns have been raised that Bitcoin could be more attractive to bitcoin technical primer because it can be used to make private and irreversible payments. However, these bitcoin technical primer already exist with cash and wire transfer, which are widely used and well-established.

The use of Bitcoin will undoubtedly be subjected to similar regulations that are already in place inside existing bitcoin technical primer systems, and Bitcoin is not likely to prevent criminal investigations from being conducted.

In general, it is common for important breakthroughs to be perceived as being controversial before their benefits bitcoin technical primer well understood. The Internet is a good example among many others to illustrate this.

The Bitcoin protocol itself cannot be modified without the cooperation of nearly all its users, who choose what software they use. Attempting to assign special rights to a local authority in the rules of the bitcoin technical primer Bitcoin network is not a practical possibility.

Any rich organization could choose to invest in mining hardware to control half of the computing power of the network and become able to block or reverse recent transactions. However, there is no guarantee that they could retain this power since this requires to invest as much than all other miners in the world.

It is however possible to regulate the use of Bitcoin in a similar way to any other instrument. Just like the dollar, Bitcoin can be used for a wide variety of purposes, some of which can be considered legitimate or not as per each jurisdiction's laws. In this regard, Bitcoin is no different than any other tool or resource and can be subjected to different regulations in each country.

Many thousands of articles have been written purporting to explain Bitcoin, the online, peer-to-peer currency. Most of those articles give a hand-wavy account of the underlying cryptographic protocol, omitting many details. Even those articles which delve deeper often gloss over crucial points. My aim in this post is to explain the major ideas behind the Bitcoin protocol in a clear, easily comprehensible way. Understanding the protocol in this detailed way is hard work. It is tempting instead to take Bitcoin as given, and to engage in speculation about how to get rich with Bitcoin, whether Bitcoin is a bubble, whether Bitcoin might one day mean the end of taxation, and so on.

Understanding the details of the Bitcoin protocol opens up otherwise inaccessible vistas. New financial instruments can, in turn, be used to create new markets and to enable new forms of collective human behaviour.

This post concentrates on explaining the nuts-and-bolts of the Bitcoin protocol. To understand the post, you need to be comfortable with public key cryptographyand with the closely related idea of digital signatures. None of this is especially difficult. The basic ideas can be taught in freshman university mathematics or computer science classes.

In the world of atoms we achieve security with devices such as locks, safes, signatures, and bank vaults. In the world of bits we achieve this kind of security with cryptography. My strategy in the post is to build Bitcoin up in stages. We will have reinvented Bitcoin! This strategy is slower than if I explained the entire Bitcoin protocol in one shot. But while you can understand the mechanics of Bitcoin through such a one-shot explanation, it would be difficult to understand why Bitcoin is designed the way it is.

The advantage of the slower iterative explanation is that it gives us a much sharper understanding of each element of Bitcoin. You may find these interesting, but you can also skip them entirely without losing bitcoin technical primer of the main text.

On the face of it, a digital currency sounds impossible. If Alice can use a string of bits as money, how can we prevent her from using the same bit bitcoin technical primer over and over, thus minting an infinite supply of money?

Or, if we can somehow solve that problem, how can bitcoin technical primer prevent someone else forging such a string of bits, and using that to steal from Alice? These are just two of the many problems that must be overcome in order to use information bitcoin technical primer money. Suppose Alice wants to give another person, Bob, an infocoin. She then digitally signs the message using a private cryptographic key, and announces the signed string of bits to the entire world.

A similar useage is common, though not universal, in the Bitcoin world. But it does have some virtues. So the protocol establishes that Alice truly intends to give Bob one infocoin.

The same fact — no-one else could compose such a signed message — also gives Alice some limited protection from forgery. To make this explicit: Later protocols will be similar, in that all our forms of digital money will be just more and more elaborate messages [1]. A problem with the first version of Infocoin is that Alice could keep sending Bob the bitcoin technical primer signed message over and over.

Does that mean Alice sent Bob ten different infocoins? Was her message accidentally duplicated? Perhaps she was trying to trick Bob into believing that she had given him ten different infocoins, when the message only proves to the world that she intends to transfer one infocoin.

They need a label or serial number. To make this scheme work we need a trusted source of serial numbers for the infocoins. One way to create such a source is to introduce a bank. This bank would provide serial numbers for infocoins, keep track of who has which infocoins, and verify that transactions really are legitimate. Instead, he contacts the bank, and verifies that: This last solution looks pretty promising. However, bitcoin technical primer turns out that we can do something much more ambitious.

We can eliminate the bank entirely from the protocol. This changes the nature of the bitcoin technical primer considerably. It means that there is no longer any single organization in charge of the currency. The idea is to make it so everyone collectively is the bank. You can think of this as a shared public ledger showing all Infocoin transactions. Now, suppose Alice wants to transfer an infocoin to Bob. A more challenging problem is that this protocol allows Alice to cheat by double spending her infocoin.

And so they will both accept the transaction, and also broadcast their acceptance of the transaction. How should other people update their block chains?

There may be no easy way to achieve a consistent shared ledger of transactions. And even if everyone can agree on a consistent way to update their block chains, there is still the problem that either Bob or Charlie will be cheated. At first glance double spending seems difficult for Alice to pull off. After all, if Alice sends the message first to Bob, then Bob can verify the message, and tell everyone else in the network including Bitcoin technical primer to update their block chain.

Once that has happened, Charlie would no longer be fooled by Alice. So there is most likely only a brief period of time in which Alice can double spend. Worse, there are techniques Alice could use to make that period longer. She could, for example, use network traffic analysis to find times when Bob and Charlie are likely to have a lot of latency in communication.

Or bitcoin technical primer she could do something to deliberately disrupt their communications. If bitcoin technical primer can slow communication even a little that bitcoin technical primer her task of double spending much easier. How can we address the problem of double spending? Rather, he should broadcast the possible transaction to the entire network of Infocoin users, and ask them to help determine whether the transaction is legitimate.

If they collectively decide that the transaction is okay, then Bob can accept the infocoin, and everyone will update their block chain. Also as before, Bob does a sanity check, bitcoin technical primer his copy of the block chain to check that, indeed, the coin currently belongs to Alice. But at that point the protocol is modified. Other members of the network check to see whether Alice owns that infocoin.

This protocol has many imprecise elements at present. Bitcoin technical primer that problem will at the same time have the pleasant side effect of making the ideas above much more precise. Suppose Alice wants to double spend in the network-based protocol I just described. She could do this by taking bitcoin technical primer the Infocoin network. As before, she tries to double spend the same infocoin with both Bob and Bitcoin technical primer. The idea is counterintuitive and involves a combination of two ideas: The benefit of making it costly to validate transactions is that validation can no longer be influenced by the number of network identities someone controls, but only by the total computational power they can bring to bear on validation.

But to really understand proof-of-work, we need to go through the details. For instance, another network user named David bitcoin technical primer have the following queue of pending transactions:.

David checks his copy of the block chain, and can see that each transaction is valid. He would like to help out by broadcasting news of that validity to the entire network. However, before doing that, as part of the validation bitcoin technical primer David is required to solve a hard computational puzzle — the proof-of-work.

What puzzle does David need to solve? Bitcoin uses the well-known SHA hash function, but any cryptographically secure hash function will do. Suppose David appends a number called the nonce to and hashes the combination. The puzzle David has to solve — the proof-of-work — is to find a nonce such that when we append to and hash the combination the output hash begins with a long run of zeroes. The puzzle can be made more or less difficult by varying the number of zeroes required to solve the puzzle.

A relatively simple proof-of-work puzzle might require just three or four zeroes at the start of bitcoin technical primer hash, while a more difficult proof-of-work puzzle might require a much longer run of zeros, say 15 consecutive zeroes.

We can keep trying different values for the nonce. Finally, at we obtain:. This nonce gives us a string of four zeroes at the beginning of the output of the hash. This will be enough to solve a simple proof-of-work puzzle, but not enough to solve a more difficult proof-of-work puzzle. What makes this puzzle hard to solve is the fact that the output from a cryptographic hash function behaves like a random number: So if we want the output hash value to begin with 10 zeroes, say, then David will need, on average, to try different values for before he finds a suitable nonce.

In fact, the Bitcoin bitcoin technical primer gets quite a fine level of control over the difficulty of the bitcoin technical primer, by using a slight variation on the proof-of-work puzzle described above.

This target is automatically adjusted to ensure that a Bitcoin block takes, on average, about ten minutes to validate. In practice there is a sizeable randomness in how bitcoin technical primer it takes to validate a block — sometimes a new block is validated in just a minute or two, other times it bitcoin technical primer take 20 minutes or even longer.

Instead of solving a single puzzle, we can require that multiple puzzles be solved; with some careful design it is possible to considerably reduce the variance in the time to validate a block of transactions. Other participants bitcoin technical primer the Infocoin network can verify that is a valid solution to the proof-of-work puzzle.

And they then update their block chains to include the new block of transactions. For the proof-of-work idea to have any chance of succeeding, network users need an incentive to help validate transactions.