Unlocking Digital Cryptocurrencies

Andreas M. Antonopoulos

Mastering Bitcoin (2015) by Andreas Antonopoulos is a rigorous introduction to the technologies and capabilities of the blockchain currency known as bitcoin.

Bitcoin is a cryptographic currency…

Mastering Bitcoin Overview

Mastering Bitcoin (2015) by Andreas Antonopoulos is a rigorous introduction to the technologies and capabilities of the blockchain currency known as bitcoin.

Bitcoin is a cryptographic currency. Cryptocurrencies provide a method for exchanging value digitally, using a transaction ledger that network participants collaborate to maintain. The bitcoin network records transactions and stores value in the public ledger; it displays a record of every transaction in which the bitcoin being exchanged has ever been used.

A bitcoin can be traded for national currencies or traded between bitcoin user accounts. Different types of software are available for interfacing with the bitcoin network. Some are developed by individual users; others are open source. These programs offer varying levels of control for user nodes in the network. Users set up digital “wallets” that use public and private keys to spend and track their funds.

New transactions are added to the public ledger as part of a new block every 10 minutes. Blocks are created by computers known as miners, which use their computing power to calculate a suitable solution to a digital puzzle using data from previous transactions. Miners use algorithms to create hashes, which are strings of a specified length that reliably encode information but cannot be easily reversed. A hash of the correct length will solve the puzzle and allow a new block to be created. The bitcoin network distributes the block to each known address in the network to ensure that there are many verifiable copies of the chain. In exchange for putting the work into validating each block, miners receive transaction fees and newly minted bitcoins.

The security of the bitcoin currency relies on its decentralized distribution. Every time a block is added to the chain, it becomes more difficult to forge a transaction because each new block refers to transactions recorded in previous blocks distributed throughout the network. This duplicates and reaffirms the data that previous blocks of transactions contain. Some nodes download the entire chain along with an explorer program in order to validate transactions and verify the previous exchanges.

Users have complete control over their spending and security because they alone possess the keys that allow funds sent to them in previous transactions to be spent in new transactions. When a user wants to make a purchase, the wallet program assembles a transaction record signed by the user’s private key and sends it to the bitcoin network. The transaction specifies the previous exchange in the chain that is the source of the funds for the new transaction, and then it specifies the amount to send to a new recipient and the change that the user should receive. Each node passes it on to the other connected nodes, so that transactions reach every node in the network.

When a transaction reaches mining nodes, it goes into a pool of pending transactions that will be compiled into a block by miners approximately every 10 minutes. Miners compete to compile the block of transactions with an unknown integer to generate a hash that meets a size restriction set by the network. The size restriction is calculated by each mining node using the same formula, which sets the difficulty based on the amount of computing power that is connected to the network and the work it can do in 10 minutes. When a miner solves this puzzle, the winning block is dispersed to the network of other miners. Other miners can verify that the solution is valid and then set to work on the next block. The winning block is dispersed to all nodes to incorporate in the chain.

At the top of the block is a transaction that awards a set number of new bitcoins, and the transaction fees of the incorporated transactions, to the winning miner. Each block also incorporates merkle trees, which are a way of summarizing the transactions that led up to each new transaction. The process of each node verifying each transaction and the winning block takes an average of 10 minutes. It confirms the proof of work in a decentralized way, that is, without a centralized bank monitoring the transactions.

If different nodes receive and redistribute two different winning blocks, a fork occurs as the connected nodes compose two different but equally valid chains. The fork is usually resolved when a miner finds the next winning block, which is added to only one branch of the fork and is distributed to the other nodes. The branch that the next winner adds to is the most trusted branch, and the nodes continue adding to that branch. In theory, an attacker and colluding participants could manipulate miners or collaborative mining pools to force a fork to form, in order to spend the same bitcoins multiple times. In practice, this would be almost impossible.

The process of validating a transaction relies on the use of asymmetrical encryption, which lets anyone lock information with a recipient’s public key. The recipient is the only one who possesses the private key that can decrypt the information. The output of a transaction references the address of the recipient, which is a hash of the recipient’s public key. When the recipient wants to spend the money from a previous transaction’s output, the input parameters must include a signature from the corresponding private key. Any node running the bitcoin protocol can use the private key signature to verify that the value is being spent by the possessor of the public key. Some transactions require more than one private key signature to validate, which allows for different parties to authorize a transaction when they agree that the terms of a contract were met. A wallet manages both keys and keeps the private key secret. The private key can also be generated and stored offline for better security.

Some developers have extended the bitcoin protocol to create coins that represent other exchangeable things of value. Dozens of blockchain currencies exist. Some provide more anonymity for users while others produce more coins and encourage spending. Blockchain systems can be used to record script hashes, which will execute a matching script in a subsequent transaction. Some blockchain systems require miners to prove that they have a stake in the currency rather than proving that they did the work to create a new block. One blockchain system, Ethereum, incorporates a programming language that allows for scripts to run autonomously. As more people join the bitcoin network, the potential for the technology grows and could revolutionize money in the future.

Key Insights

  1. Bitcoin is a protocol that records transactions in connected blocks. Transactions are recorded in a ledger after other users verify the legitimacy of each transaction.
  2. A user can track and spend bitcoins using a wallet program, which stores the user’s public and private keys. The public key, created from the private key, serves as the address for any bitcoins the user receives.
  3. Users create a new transaction by specifying the transaction that assigned the bitcoins to them, the destination of those bitcoins, and the amount they keep after subtracting a small transaction fee. They sign the transaction with the private key and send it to a bitcoin node.
  4. Bitcoin nodes receive and validate transactions to ensure that the funds are available and the private key signature works with the public key address. They redistribute those transactions across the network.
  5. Bitcoin mining nodes store new validated transactions. Approximately every 10 minutes, the mining nodes compete to create a block out of the transactions and generate a hash that meets a standard that every node in the network can see.
  6. The miner that successfully creates a block with a hash that meets the standard distributes that block to other nodes for validation, which tells them that the competition is over. The miner’s motivation for participation is the transaction fees from the solved block and a preset amount of new bitcoins established in the bitcoin documentation.
  7. The winning block becomes part of the chain. If two different winning blocks are dispersed throughout the network, the next winning block is only added to one of them, and nodes distribute the longer chain as the valid one.
  8. A user seeking privacy can maintain numerous private and public key pairs or generate different addresses from a public key. The most secure way to generate and store a private key is on paper, not on a network-connected computer.
  9. Bitcoins generated in the mining process are decreasing in quantity over time, meaning the currency is deflationary by nature and its value should increase over time. The protocol dictates that only 21 million bitcoins will exist when the mining process ends, in about the year 2140.
  10. Bitcoin has some weaknesses, particularly because mistakes cannot be corrected and accounts can be permanently lost. It is relatively easy to connect a person’s address with his or her identity and past transactions, meaning that a bitcoin owner’s privacy is not guaranteed.
  11. Alternative currencies and systems extend the blockchain network by building on bitcoin’s existing technology or making new networks. These systems let coins represent some other exchangeable item, more securely protect user identities, manage currency inflation differently, or build executable contracts with script in the blockchain.
  12. Bitcoin’s security advantage derives from its decentralized nature, which places trust in a fully validated blockchain and leaves control over keys with the users.

Important People

Andreas Antonopoulos is an instructor and researcher at the University of Nicosia who specializes in digital currencies.

Satoshi Nakamoto is the pseudonym for the anonymous creator or creators of the bitcoin protocol.

Deja un comentario