Blockchain Explained - A basic technical guide | Part 2
Blockchain explained as simply as possible? That's no mean feat! There is a tendency to immediately think of Bitcoin as soon as someone talks about Blockchain. Comparatively, they are one and the same. Notably, the grass roots of blockchain technology emerged from the Bitcoin whitepaper. However, the birth of this technology has far more reaching implications than a digital currency.
In this article we will uncover the technical aspects of the blockchain network in an easy to digest guide.
A brief yet immutable history
Interestingly, blockchain creates an immutable history. Although, the entire story of blockchain technology can be summarised within this Wiki.
A blockchain, originally block chain, is a growing list of records, called blocks, that are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data.
This is actually an ironic statement. Because, once you understand the technology, the entire history of the blockchain is more or less available for you to inspect, from any computer, in any location, at any time. Comparable to a public Wikipedia entry, any person can append information to a public blockchain. However, with one very important distinction. There is almost no chance of someone changing a blockchain entry without a majority of consensus from the rest of the network. To emphasize the point, let’s explore the concept of consensus a little further.
The Byzantine Generals Problem
Within blockchain computer science, to agree on something requires consensus. To solve this problem we need to ask the question: How do you ensure multiple entities, that are far from each other, are in complete agreement on anything they do before any action is taken?
As an illustration, we can refer to the Byzantine Generals problem . Imagine armies from different regions surrounding a fort. In this scenario, a single army cannot penetrate the fort alone, however, a coordinated attack would penetrate the defenses of the fort. Therefore, each General needs to be able to reach consensus as to when to coordinate an attack. Naturally, it would be extremely difficult in Byzantine times to send messages to other Generals and trusting those messages were true.
Now, fast forward to the digital age of the computer, where messages can be sent super fast over a network. To coordinate an attack would be very easy wouldn’t it? Especially when there is one single point of failure. Therefore, we can assume that a database kept in one location is - one central point of failure.
Instead, a blockchain database is a distributed among many computers, all containing the same database code. In this case, it is almost impossible to coordinate an attack. In fact, you have to attack over 51% of all the computers on the network at the same time to be successful. Therefore, the more computers (also known as nodes) in a blockchain network, the more resilient it becomes to attacks, hacks and tampering of data.
Why is this important?
It is because of this consensus mechanism that makes blockchain very unique in its application. Unlike other software programs, unlike other databases, unlike other forms of value (currency). The blockchain can tick a lot of boxes such as having inbuilt trust, having an immutable ledger of account, a way to transfer value, a method of privacy, and also being censorship resistant. Because of this, we can then begin to program contracts that act like ‘smart-laws’.
In the context of a blockchain ecosystem, a smart law refers to the use of a 'smart-contract'. A smart-contract is a programable contract. Moreover, these rules that can be executed on the blockchain, without interference. In some cases, such as legal documentation, intellectual property, and physical asset ownership, the smart contract can provide a valuable use case creating an immutable ledger upholding the required law - Thus, a programmable smart-law.
The Blockchain is - S.M.A.R.T.
If some of these concepts are starting to gel, that's great! If not, then there is a handy little acronym that will help explain blockchain and its properties.
S - Security. New blocks of data are 'hashed' using a military grade algorithm. Then, the block is appended to the database in a long chain (blockchain ledger). More importantly, the database is distributed over peer-to-peer network of computer nodes that each maintain a copy of the blockchain ledger. Therefore, the blockchain is secure.
M - Money. The properties of blockchain can be used to transfer wealth, of almost any kind, whether it be fiat backed digital currency, a representation of a valuable asset, or its own measure of value.
A - Account. The properties of the distributed ledger within a blockchain act as a measure of account. Whether this be a time stamp of events, a time stamp of transactions, a ledger of transactions, a ledger of data, or a ledger of value. The immutable nature of a distributed ledger in a blockchain network makes it a perfect measure of account.
R - Rights. The blockchain for the most part is censorship resistant - in the case of a public blockchain, a person or entity controls the right to access their, change their data, or transfer their data with the use of digital private keys.
T - Trust. The properties of the blockchain allow the user to have implicit trust in the software protocol, that allows transactions to take place in a trustless environment. For example, online or across geographical borders.
Credit to William Mougayar, author of the book The Business Blockchain.
Understanding Blockchain terminology.
The meaning of the word ‘blockchain’ can be quite difficult to explain. Moreover, this technological innovation has an entirely new industry evolving around it and because of this it requires a language to properly ascertain its function. Therefore, the following glossary of terms will help the reader to understand this new realm of computing technology.
Simply put, a blockchain has two main components, a chronological ‘chain’ of data ‘blocks’ to create an immutable ledger. Each block contains data of any kind and any size. Through a complex form of computer programming called cryptography, blocks of data are time-stamped, linked together and then distributed among a network of computers to prevent the tampering of data.
This is the sum of the whole, every aspect that makes up a successful blockchain. This includes the technology, the users, the developers, and the stakeholders.
The blockchain stack refers to the technical architecture that is required to build a blockchain. The stack is composed of 4 foundational layers, and each layer has sub-layers of technology. The 4 foundations of blockchain architecture are:
1 – Infrastructure Layer: The ‘bones’ of the network such as the hardware, the computers, the storage, the bandwidth, etc. That keeps the network online.
2 – Network Layer (Otherwise known as the protocol layer): The algorithm that is used to reach consensus and allows the nodes to participate.
3 – Services Layer: This layer allows interoperability among the many systems or applications that interact with each other, for example, contracts, oracles, digital assets, and records.
4 - Application layer: This layer refers to the user interface and how real people will interact with the previous layer and the rest of the blockchain. This is the UI of the Daap.
Consensus in terms of blockchain is when more than 50% of the nodes on the network simultaneously agree on data being presented. This form consensus can be reached through different algorithms, namely the Proof-of-Work consensus algorithm, or the Proof-of-Stake consensus algorithm. The consensus mechanism is the core tenant of blockchain. Once consensus is reached, all nodes must update their local ledger to continue to participate in the network.
Cryptography is the method of writing code for digital security. Although cryptography existed before blockchain, it has become the core component of what underpins the blockchain and keeps the data secure using digital keys just like keys to a bank vault.
Daap stands for Decentralised Application and it is the process of creating an application on the blockchain. Generally speaking, Dapps have a user interface that allows people to interact with the function of the said blockchain.
Distributed P2P Network
A distributed Peer-2-Peer (P2P) network consists of many computers sharing their computational power without having a central point of failure. This allows the sharing and distribution of data, files, media, and more recently, blockchain data that contains transactions, assets, and much more.
A Distributed Ledger uses the P2P network infrastructure to maintain its immutable nature. The distributed network of nodes (computers) updates this ledger through a shared consensus mechanism. When consensus is reached the ledger is synchronized across every node on the network irrespective of geographical boundaries or locations.
A hash is an output of data. With blockchain, input data can be of any size. The output hash is a fixed size making it easy and secure to append to each new block in the chain. A hash can have different formats, but its most important feature is through the process of hashing.
This is when data goes through a one-way ‘hashing’ algorithm and the output becomes a fixed-length string of characters called a hash. This is a highly secure way of protecting the contents of input data and packaging the data into smaller manageable pieces of data. Hashing also creates a unique time-stamped signature, like a digital fingerprint. Hashing is a core element of blockchain.
A hash puzzle is a complex mathematical puzzle that takes an enormous amount of computing power to solve. This is part of the security mechanism of the blockchain. When solving one of these puzzles a node creates a new block. Then, all other nodes must accept this new entry and update their ledger. Thus, creating a distributed ledger and increasing its immutability.
Nodes are computers on the blockchain network. Nodes confirm or validate transactions and compete with other nodes to add the next block to the chain. If a node successfully adds a new block to the chain, it is rewarded. The incentive encourages more nodes to join the network which in turn expands the computing power and increases the network security.
This term refers to transactions that are created within the blockchain. The validity and the record of the transaction is dependent on the state of the blockchain's ledger. Essentially, every transaction inside a block is an on-chain transaction.
This term refers to transactions that occur outside of the blockchain, however are still related to the blockchain. An example of this is the OTC (over-the-counter) transaction where the owner of a cryptocurrency can transfer the ownership of their private keys and make the value exchange to another party without the network validating the transaction. These off-chain transactions are done primarily to conceal identity. Although, apart from privacy concerns, there are other use cases for off-chain transactions, cases where transaction speed and/or transaction fees are of concern.
An oracle in the blockchain ecosystem is a data input that comes from outside of the blockchain. This is known as off-chain data and is used to provide information relevant to the blockchain.
In the context of blockchain, the focus of ownership is not who owns the underlying asset, moreover, it is the immutable record of the state of ownership, and transfer of the state of ownership.
Proof-of-Stake is a consensus algorithm that requires a node to prove they have a stake in the network. These nodes are called validators. Validators are required to confirm a transaction to create a new block. However, instead of working out a complicated hash puzzle, the validator is chosen according to its stake in the network. This prevents the pooling together (and centralizing) of computational resources that are often the effect of PoW. This also means that less computational power is required to reach consensus. In theory, this would mean that PoS could be more distributed as smaller size peers can prove their stake, run a node, and be rewarded for confirming a transaction. However, the size of the stake usually determines the selection of the validator. This could preference those with higher stakes. Therefore, further random selection criteria are programmed into the algorithm to ensure decentralization and network security. Avoiding centralization can be addressed either through governance policy or to the validator node with the greatest stake.
Proof-of-Work (PoW) is a consensus algorithm that creates extremely difficult mathematical hash puzzles. This takes an enormous amount of computing power and a specific amount of time thus creating an inherent security feature. These puzzles need to be solved to confirm the data in a block and then the node appends the newly created block to the chain. Once the puzzle is solved, and the block created, the remaining nodes accept this new block and update their ledger and thus consensus is reached. The node that solved the puzzle is rewarded for its Proof-of-Work. This incentivizes nodes to participate in the network and helps the network expand its computational power. As previously mentioned, there are some drawdowns to PoW as this method of consensus is resource hungry in terms of computing power and energy.
Smart Contracts are the second evolution of blockchain and allow a set of machine-readable instructions that underpin the transaction. This is extremely useful in circumstances where there needs to be multiple actions, signatures, or collection of data before a transaction can be executed. Smart contracts can and often use outside real-world data (called oracles) to self-execute a digital contract.
Tokens are the commoditization of the said blockchain and can represent a currency value, an asset value, or utility, whichever suits the purpose of the blockchain. Tokens are used as the reward mechanism for the nodes participating in the network. As well as allowing participants to freely own, trade, or take part in the use of the blockchain.
Trustless is a term that is often used in the context of blockchain as the blockchain eliminates the need for a trusted third party to validate a transaction.
Trustless consensus refers to being able to trust that the data on the blockchain is valid because at least 51% of the network reached the consensus that the data is true. Thus creating a single source of truth.
A validator is a node/computer. Within the blockchain ecosystem, nodes validate transactions and broadcast their validation to other nodes on the network. Nodes can verify which is like a checklist, where each parameter is checked against certain specifications ("the system complies with specification"). Or, nodes can validate where the validation is more process oriented ("the system meets the intended needs for a user").
 Private vs public blockchain
Why did we create this 5 part series? Well it just made sense to us to join our creative ideas together. We have a passion for design and creative thinking, we have worked with different business models, technologies and ideas from around the world. The next logical step is to create a place where design thinking can be applied to blockchain methodology. For those wondering how these two topics align, this series is for you.