Blockchain, the underlying technology that powers bitcoin, is one of the buzzwords of the past year. Practically everyone is talking about blockchain, and for good reason. Distributed ledgers, the term of art for blockchain's underlying technology, offer an exciting new way to transact business without a central authority. Here's a nontechnical, simplified description of the component parts.
A blockchain, or distributed ledger, is a continuously growing list (digital file) of encrypted transactions called "blocks" that are distributed (copied) to a peer-to-peer (P2P) network of computers.
As described above, a blockchain is an immutable, sequential chain of records known as blocks. A block may contain any type of data, such as unique digital identifiers of physical products. Blocks are "chained" together using hashes. A hash is a function that takes an input value and from that input creates an output value deterministic of the input value.
In addition to user data, each block will contain an index, a timestamp, a list of transactions, a proof and the hash of the previous block.
The hash plays a critical role. Because each new block will contain a hash of the previous block, blockchains are immutable. If a hacker were to corrupt an earlier block in the blockchain, all subsequent blocks would contain incorrect hashes.
Encrypted transactions (using conventional public/private key cryptography) are also key to blockchain's value. The user's "public key" is stored in a block and becomes an "address" on the blockchain. Files such as cryptocurrencies or other digital assets are recorded as belonging to a specific block. A corresponding "private key" is required to access the associated digital assets. Keeping your private key private is so important that to protect their digital assets from hackers, many people do not keep digital copies of their private keys. They write the number on a piece of paper and keep the paper in a secure location (like a wall safe).
Proof of Work (PoW)
Once a blockchain is instantiated, a Proof of Work algorithm (PoW) is used to create or "mine" new blocks.
The current bitcoin mining technique provides a good example of PoW usage. This technique is described in Wikipedia as follows: "A bitcoin miner runs a computer program that collects unconfirmed transactions from coin dealers in the network. With other data these can form a block and earn a payment to the miner, but a block is accepted by the network only when the miner discovers by trial and error a 'nonce' number that when included in the block yields a hash with a sufficient number of leading zero bits to meet the network's difficulty target. Blocks accepted from miners form the bitcoin blockchain that is a growing ledger of every bitcoin transaction since the coin's first creation."
The API (Application Programming Interface)
The next step in the development of a distributed ledger is to set up an API (application programming interface) so that organizations that wish to transact may do so by using the internet. Transaction endpoints allow permission-based access to the data on the blockchain.
The API will also feature a "mining endpoint," which will do three things: (1) calculate the PoW, (2) add the transaction and grant the miner a reward (in bitcoin mining, the rewards are bitcoins), and (3) create a new block and add it to the blockchain.
Peer-to-peer (mesh) networks
Lastly, distributed ledgers derive their power from being distributed and decentralized. To accomplish this, a distributed ledger needs a method of accepting new nodes and a way to implement a consensus algorithm to resolve conflicts and to ensure the veracity of the blockchain.
This is done over a P2P or mesh network, a decentralized computer network where each computer (node) acts as both a client (a computer that accesses information on a server) and a server (a computer that serves information to clients). At scale, P2P networks are self-healing and very stable because the information is replicated in thousands, and in some cases millions, of places.
Public or private
There are two general types of blockchain networks: anonymous networks, where each user has a copy of the entire blockchain and helps process and confirm transactions; and permission-based (non-anonymous) networks, where permission is required to possess a copy of the blockchain and to help process and confirm transactions.
Other than cryptocurrencies, what can you do with blockchain?
Blockchain offers a way to verify transactions without the need for a central authority. This means you can create smart contracts using distributed ledgers. For example, a landlord might put an IoT door lock on your rental apartment. The door lock might check the blockchain to see if your rent is paid. If it isn't, the door lock (that is, the smart contract) would not let you into the apartment. In a more complex case, a corporation could issue its own bonds and buyers could monitor payments via a distributed ledger. An even more complex use case would be the creation of self-enforcing trade agreements. The list of uses for blockchain is practically endless. From title searches to delivery verification, distributed ledgers offer a completely new, secure way to do business.
Your key question is: "For this project, is a blockchain a better choice than a well-crafted, secure database?" After that, you're on your way!
Author's Note: This article contains some material from a previous article titled "Nuber—The End of Uber and Central Authority," which describes how blockchain technology might be used to create an Uber-like ridesharing service without the need for a company like Uber to run it. This is not a sponsored post. I am the author of this article and it expresses my own opinions. I am not, nor is my company, receiving compensation for it.