Understanding Concepts
By: Alex Fauvel
Tags: Technology, Cryptocurrency, Bitcoin, Networks, Blockchain

Network Graphs

For many of the readers here a graph is something with axis and precise plots to show the correlation of one variable with another. However, graphing in the sense we need is much simpler to understand, yet infinitely harder to master.

To begin any study of any kind of communication network we must first understand the basics of mathematical representations of real world interactions. These interactions can by physical infrastructure, order of interaction, or even social in nature. We classify different structures in graph theory by the properties that the resulting graph has. Throughout this series we will cover a number of different graph structures and measurements, to ensure that everyone understands what they are looking at when these topics come up we briefly go over the topic here.

In essence a network graph shows how nodes are connected to one another, which nodes in the network have a direct connection to other nodes. In these kinds of graphs there is no concept of time, they allow for a thorough analysis of the state of the network each point at a discrete point in time.

A network graph showing a collection of metrics commonly used to measure and describe the network in question.

Scale Free networks are ones where the number of connections (degree) each node controls flows the power law, that is, at least asymptotically. This means that some nodes are have many more connections than the majority of others. We shall get more into this concept towards the end of the series.

Transaction graphs

Transaction dependencies

To read time ordered (topological) charts, read left to right following each arrow (transaction) until it comes to a node (account/address) that does not have an arrow exiting. This node is the last state of the account. Each action occurs in order of reading. You obviously cannot go back in time. Illustrated to the left via an arrow pointing from the left to the right.

A Hash

A hash is an asymmetric (one way) mathematical function that will produce the same output for the same input. If even a small change is made to the input data, the output changes in a seemingly random fashion. To the left is a graphical representation of what a hash of two pieces of data would traditionally be depicted as.

Transactions

Every action on the bitcoin network involves transactions. Their structure can be complex but their form is standardised. When thinking about the information needed to perform any kind of transaction we must know what we are to send and where we are to send it. So the first step in building a transaction is to first provide these pieces of information. This input information is then hashed together, the private key of the owner is then used to sign this hash, this provides proof of ownership of the asset that is to be transferred to a new owner. Every node then verifies that the ownership proof is correct and checks that transaction does not break any consensus rules. If these boundaries are adhered to the transaction is accepted. This was not a new concept and was a standard way to create digital ownership tokens before bitcoin.

A simplistic view of the key components in a Bitcoin transaction

Tree nomenclature

A depiction of a binary hash tree

A tree is simply a data structure that organises the data it consists of. There are many different types of trees and tries which due to the way they are constructed have different attributes and properties. To correctly describe these features we must first be familiar with the common nomenclature of these data structures.

A leaf: End of the path or branch.

A branch: A path of hashes between either two hashes or the root to leaf.

Root: The tip of the tree, also known as the root hash in the diagram below.

A bitcoin block

The anatomy of a Bitcoin is one that is extremely important and is extensively covered with within the original whitepaper Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto. The paper also perfectly illustrates the block structure. Thus I will simply point to the diagram in Section 7, Reclaiming Disk Space.

A bitcoin block is secured by Proof of Work, this is simply a Hash with a minimum target result. This is adjusted (read: guessed) by changing the nonce (arbitrary random number) within the block header. This is much like attempting simple algebraic math problem without knowing how to do algebra, simply guessing numbers until the equation balances. The two other variables in the block header that is used for the input of the Proof of Work hash is the root hash from the tree of transactions and the hash result of the previous block.

Now the basics of the technical jargon have been covered we can delve into the first chapter of the Satoshi series, The Red Queen.