What this guide actually is:
A highly condensed piece to definitely understand what the heck is everybody talking about, shorter and easier to digest than wikipedia or google search, in no more than 1,500 words (300 words read per minute being the human average).
What this guide is absolutely not:
A peer reviewed technical paper complete with references, which anyway you don’t really need as everything with blockchain is probably outdated after 3 months.
What is a Blockchain?
A (not the) blockchain is a technology for storing information, in “blocks”, which are continuously added to a “chain” and secured via cryptography.
Each block contain some data, the hash of the block itself and the hash of the previous block. The hash is the fingerprint of the block, it identifies a block and its content and it’s unique.
How’s it different than a database?
Databases are centralized data storage systems, with an owner and a permissioned based role model that always only accredits persons to read, modify or even delete records. records.
A network using blockchain is, in contrast, public (anyone can access), distributed (an identical copy of the ledger of transactions resides on a network of servers), decentralized (no single owner or validator) and immutable (events can’t be changed of destroyed, the whole record is always accessible).
What is the distributed ledger of transactions?
In its simplest form, a distributed ledger is a database held and updated independently by each participant (or node) in a large network.
The records are not communicated to various nodes by a central authority, but are instead independently constructed and held by every node. That is, every single node on the network processes every transaction, coming to its own conclusions and then voting on those conclusions to make certain the majority agree with the conclusions.
Once there is this consensus, the distributed ledger has been updated, and all nodes maintain their own identical copy of the ledger (more on coindesk).
How can I add new information to a blockchain?
Let us say you want to record the sale of a good to another person:
- You request the transaction.
- Your requested transaction is broadcasted to a network of computers known as nodes*.
- The network of nodes validates the transaction and your status using known algorithms.
- Once verified, the transaction is combined with other transactions to create a new block of data for the ledger.
- The new block is then added to the existing blockchain in a way that is permanent and unalterable.
Can I modify previous transactions?
Once your transaction is validated by a node it gets included in a “block” which gets “chained” to the previous block. Transactions can’t be undone or tampered with, because it would mean re-doing all the blocks that came after.
Are blockchains basically immutable records of verified transactions?
Who runs the blockchain network?
Almost all Blockchain systems are decentralized, meaning no single “governance”.
Blockchain networks “function” thanks to 3 main technologies: 1) pairs of public (readable) and private cryptography keys, 2) a distributed network of computers hosting a shared ledger called nodes and 3) an incentive to service the network’s transactions, record-keeping and security.
Who verifies my transaction?
Instead of a single trusted third party validating transactions (single vote), a peer to peer network of computers running the blockchain protocol validate transactions by consensus (majority vote).
What is the consensus algorithms?
The Blockchain network, as said, is “self managed” by a network of computers called node.
Each full-node checks the validity of blocks. Checking the validity of a block is indeed done by repeating all steps of building that block and checking for adherence to all consensus rules. If a block infringes any rule, a full-node will consider the block invalid, ignore the block, and ban the node that sent it to him from his peers for 24h for sending invalid information.
What are nodes? What do nodes do?
Node are computers that runs the blockchain software and help to keep the network running by keeping copy of the ledger and possibly verifying new transactions.
Nodes spread transactions around the network. One node will send information to a few nodes that it knows, who will relay the information to nodes that they know, etc. That way it ends up getting around the whole network pretty quickly.
Some nodes are mining nodes (usually referred to as “miners”).
What is mining?
In most blockchain/cryptocurrency networks, mining is a validation of transactions.
For this effort, successful miners obtain new cryptocurrency as a reward. The reward decreases transaction fees by creating a complementary incentive to contribute to the processing power of the network.
What are cryptocurrencies?
Just to clear our mind: All currencies in the world have three properties 1) a unit of account, 2) a store of value and 3) a medium of exchange, dollars or euros or cryptocurrencies.
The main difference with Fiat money is that cryptocurrencies are not issued by a government or a central authority but by the rules of a network.
The system has predefined rules to create new units and determine the ownership of these, for example via mining as wrote before.
What are blockchain or cryptocurrency tokens?
In its simplest terms, it’s just a unit of value. A token is a specific amount of digital resources which you control and can reassign control of to someone else. Currencies are represented by cryptographic tokens, nothing else than a public alphanumeric string associated with a private string.
What are distributed ledger technologies?
Blockchains are DLTs (distributed ledger technologies) but not all DLTs are based on blockchain, also that’s slightly controversial.
What’s the difference between distributed and decentralized?
There is a lot of confusion regarding how this macro-economic concepts adapt to blockchain networks. Let me explain with a simple picture:
https://blog.maidsafe.net CC BY-SA
Centralized systems are usually one authority one point of contact systems, while distributed still maintain a central authority but allow the participants in the network to access it from different “distributed” points.
Blockchains in contrary are decentralized, there is no single authority that validates or invalidates transactions but the consensus of the majority of the nodes.
It is not a pure peer-to-peer network though, to transact with other parties in the network I have to broadcast my action to the whole network.
What is a smart contract?
You might think of smart contracts as something very close to physical contracts, an agreement among parties, but digital. Unfortunately you’d be mislead.
Smart contracts are tiny computer programs that are stored inside a blockchain. On most blockchain networks a smart contract would personify and manage assets based on the scripted rules inside it. They can manage tokens and, most importantly, have a storage memory where they only can write into.
To run a smart contract you need to deploy it on a blockchain. Whenever an event is triggered by that smart contract, the smart contract will be executed automatically. The triggering event could be, as an example, an expiration date and whether the price of USD/EUR is above 1.2, the execution then would be the transfer of tokens from my account to another account.
Because smart contracts are stored and run on a blockchain they inherit some interesting properties, they are immutable and decentralized. Immutable means the contract can’t be changed once it’s inside a block and decentralized means it gets validated by the network and follows the consensus rules.
Basically for that event miner will run the code and according to the code, the transaction will be added to the blockchain.
Let’s make an example of a real contract: platforms like Kickstarter and Indiegogo allows projects to collect donations. A project owner simply declares a minimum amount and an expiration date, people then start to donate by transferring money to the funding website in escrow, if the amount is met before the expiration date the project will receive the donations from the funding website, if not the money will go back to each donor.
This whole process can be automatized via smart contracts, completely bypassing the 3rd party trust via simple scripted rules.
How are smart contracts enforced?
In the case of the smart contract based Kickstarted this would mean that if a user declares the goal met while the majority of other in the network rejects it, because the goal was not met, he will be excluded (and not receive funds improperly).
Are there more than one type of blockchain?
Yes, blockchain is a booming technology still in its infancy. There are several new protocols for smart contracts coming up every day. Here’s a few collections:
What differentiate blockchain and smart contract platforms?
- Consensus mechanism (type of proof)
- Whether public or private
- If permissioned or permissionless
- Number of people using it or developing for it
What are blockchains for? What are blockchains not for?
Imagine now somebody asking the same question about the TCP/IP (aka THE internet protocol), in the early 80’s… probably all of those answers would look really silly today. Avoid this pitfall, blockchains and DLTs in general are protocols and technologies, evolving really fast. Mind their strength (immutable, verified, decentralized) and weaknesses (2?) and remember that everything is evolving REALLY fast.