Introduction

Commerce on the Internet has come torely almost exclusively on financial institutionsserving as trusted third parties to process electronic payments. While the system works well enough for most transactions, itstill suffers from the inherent weaknessesof the trust based model.Satoshi Nakamoto

This quote was published by a person (or group of people), known by the pseudonym of Satoshi Nakamoto, in a paper that later served as the base for the creation of Bitcoin and other cryptocurrencies. Indeed, brokerage costs today lead to high transaction fees, while a lack of trust often makes it impossible to reach an agreement between unknown users without verification from a third-party.

Blockchain technology allows users to trade value and assets without trusting other parties or a central authority. In many cases, it can also reduce transaction costs by cutting the intermediaries (banks, brokers, online marketplaces, etc), who traditionally charge a small percentage from users for each transaction.

What is Blockchain?

Blockchain is an immutable distributed ledger that stores transactions between people or entities. This ledger stores account balances, asset ownership and any relevant message data. Because it’s distributed, there is no central authority that can be prone to errors or frauds — everyone in the network shares the same information. It’s immutable because once the information is committed to the ledger, it cannot be modified. This results in a system of exchange that is reliable and uncensorable compared to the traditional methods, and is changing the way industries work in finance and beyond.

The Double Spending problem

Blockchain is revolutionary because it solves the double spending problemof digital assets without relying on a central authority. For example, if I have a song or a text file on my computer, I can easily create multiple copies and share them on the Internet. However, if I create a file that represents some kind of virtual currency, which authority will prevent me from creating copies and spend them more than once?

The image below depicts the double spending problem, in which several users interact with each other in a public and decentralized way (without intermediaries). In this example, Alice needs to pay 10 Bitcoins (BTC) to Bob and 10 BTC to Gloria. However, she only has enough BTC to do one of the two transactions. Alice creates the transactions for both, but only the first one who receives the transaction gets the 10 BTCs (such as when a check bounces). Since the network is public, the rest of the users are aware of this irregular action. Consensus is then reached when the majority of the network votes against that transaction, so that it is reversed and invalid in the ledger.

The double spending problem and how the network generates consensus

The transaction cycle

The double spending problem described above is solved by a unique validation process within the network, where each transaction must pass several steps to be verified from the time it’s issued until it’s added to the blockchain. The steps in the transaction cycle are the following:

The sender makes the transaction to the account address of the receiver. This transaction is signed by the sender’s private key (a cryptographic random password) and then broadcasted to the rest of the network Other nodes that are part of the network receive the transaction and validate it, verifying that the signature is valid and that the sender has sufficient funds to make the transfer. The transaction is propagated through the network and added to a pool of verified transactions that haven’t yet been linked to the chain of blocks. Some users secure and validate the network by collecting transactions from the transaction pool and prioritize them according to the ratio given by {fee/(data size)}, putting this transactions into a block, which must be added to a “chain” of blocks where each block is linked with previous one. Now, in order to link a new block to the blockchain, these users must solve a mathematical puzzle by trial and error (imagine trying totally random numbers between 1–9 to find the solution of a Sudoku). This puzzle is solved when the user finds a number (nonce) that when passing it as the input of the puzzle, generates an output with a certain amount of zeros at the beginning of that output that is below a certain target. The more zeros, the greater the difficulty of the puzzle. With the nonce found that solves the puzzle, the user proves that he has done the verification step (i.e. the puzzle has been solved) and the block is then validated. This proof that the puzzle has been solved is known as Proof-of-Work and once done, the user can announce that he has found the solution by broadcasting the block to the network and linking it to the blockchain. The validating user receives a reward in cryptocurrencies by computing the Proof-of-Work. This process is known as mining, while the users who perform this work to solve the puzzle are called miners. Currently, the mining reward is 12.5 BTC for Bitcoin and 5 ETH for Ethereum.

Finally, the chain becomes immutable (unless one malicious actor gets with the majority of the network). For example, to modify a transaction on block 3, you would have to compute the mathematical puzzle again in order to find the nonce for that block and the following ones until you solve the most recent block.

Blockchain Use Cases

So far, the main use cases for blockchain are investing in cryptocurrencies and ICOs, which are the form of capitalization for these new decentralized companies. Nevertheless, there are many other applications that go beyond finances.

In general, there are three main use cases for blockchain applications:

Financial: Cryptocurrencies, ICOs, digital wallets, savings accounts with multi signature, etc. Semi-Financial: Escrow systems, supply chain finance, decentralized marketplaces (OpenBazaar), decentralized prediction markets (Augur), etc. Non Financial: Decentralized storage systems (IPFS and Storj), provenance of goods in the supply chain, decentralize ballots and voting, decentralized autonomous organizations (DAO), etc.

Conclusion

Blockchain builds trust in a network of users without having to trust the in the individuals thanks to their immutable public ledger, in which each new block committed to the blockchain is linked to its predecessor and also because each node validates the existing transactions going on in the network.

The fact that blockchain cuts down intermediation costs allows use cases to go far beyond financial applications and investments in cryptocurrencies.

I also recommend you to check this blockchain reading list compiled by Ashley Lannquist, consultant at Blockchain at Berkeley.