The aim of this article is to introduce Blockchain technology. The concepts and techniques are complex, and take some time to learn and understand. Here I’ll explain the fundamental concepts, enough to give readers a basic grasp of its functionality.
What is Blockchain?
Wikipedia states the following: “A block chain or blockchain is a permissionless distributed database based on the bitcoin protocol that maintains a continuously growing list of data records hardened against tampering and revision, even by operators of the data store’s nodes. The initial and most widely known application of the block chain technology is the public ledger of transactions for bitcoin which has been the inspiration for similar implementations often known as altchains.”
In other words, blockchain is database of transactions. This database is distributed, meaning that all of the nodes on the network contain a copy of it, and its data permanent, and thus cannot be altered or erased.
Transaction, Block, Blockchain
To explain these concepts, I’ll give examples of the Bitcoin Blockchain implementation. Other manifestations of blockchain technology might differ slightly from this model.
A transaction is a line of code that has 4 components:
- Input: The origin of the amount transacted. (i.e., Origin Address)
- Output: The destination of the amount transacted (i.e., Destination Address)
- Amount: Quantity of the unit transacted (in Bitcoin blockchain, the unit is a bitcoin)
- Metadata: Additional information that can be stored along with the transaction (in Bitcoin, this is where relevant information can be added. Generally the metadata consists of a number that refers to a version of digital assets, also called “hash”)
Below is a simple representation of these concepts.
Picture 1: Simple representation of the transaction components.
A block is a group of transactions. Each block is composed of the number of transactions broadcasted to the network in 10 minute increments. The 10-minute time span is a parameter of the Bitcoin protocol and is equivalent to the average time required to validate a block. Each block has its own name, or header. This header has information about its own block (transactions + a counter called nonce) and the previous block (Hash n-1). This concept is depicted below.
Picture 2: Simple representation of a Block with transactions inside and a Header.
Consequently, a blockchain is a group of blocks that are linked by the hash of the block headers. As explained above, each block has a header containing information about its block and some bit of information about the previous block. That piece of information is the hash of the header of the previous block. Picture 3 depicts this relationship.
Picture 3: Visual representation of the link between 2 blocks.
If there is any change to the input of a hash function, the output is completely different. Therefore, if someone wanted to change a past transaction, the system would reject it because the hash of the header of the block containing the most recent transaction would differ from the other versions of the blockchain on the other nodes.
Bear in mind that the network nodes communicate with one another in the case that different blocks are created at the same time. It is important to know that along with the creation of the blockchain, other measures have been taken to avoid the creation of several different blockchains within the system.
A source of truth
As explained above, it is difficult to make changes to the database. Because of this function, this technology can be seen as a source of truth. Imagine how many processes could use this technology!
In the next article, we will discover which industries and user cases are using blockchain technologies to solve their problems. Stay tuned!
Article by: Joaquin Moreno (Blockchain Practice Lead at Globant)
To know more about the upcoming opportunities & prepare for the challenges of Blockchain across multiple industries , join our Blockchain webinar here.