Blockchain

With Bitcoin, Ethereum and all the other cryptocurrencies around – what exactly are cryptocurrencies anyway? How do they function? Can they be used for any other purposes? This is a short introduction to the same

First and foremost, what are cryptocurrencies anyways?

Per Wikipedia:

A cryptocurrency (or crypto currency) is a digital asset designed to work as a medium of exchange that uses strong cryptography to secure financial transactions, control the creation of additional units, and verify the transfer of assets through a distributed ledger technology, typically a blockchain

wikipedia

That actually brings us to another question, namely, what exactly, then, is a Blockchain?

Wikipedia explains Blockchains as:

A blockchain, originally block chain,is a growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data (generally represented as a merkle tree root hash)

wikipedia

So in other words, Cryptocurrencies actually use Blockchain technology – but Blockchain itself does not automatically denote a cryptocurrency. It’s more or less the protocol or framework that the cryptocurrencies use or utilise as their base

So what is a Blockchain anyways?
Simply put, a blockchain is an immutable transaction ledger.

And what is a ledger?
While you will find an extremely detailed explanation here https://www.coindesk.com/information/what-is-a-distributed-ledger put simply, a ledger is a copy of a transaction record that’s generally used for bookkeeping. Or, in simpler words, a copy of your debits and credits or general accounting records for your transactions

Blockchain ledgers are distributed and this is done across a network of peer nodes. In other words, there are a bunch load of nodes/machines that collectively make up a blockchain peer network amongst whom, there are transactions that occur which are ledger based. These transactions are based on hashes (thus, secure) and are based on a consensus protocol (so, simply put, the nodes will need to agree on changes, reads and writes)

Now if you are wondering what the heck is a “consensus protocol” try this link https://blockgeeks.com/guides/blockchain-consensus/

Essentially, the distributed sets of peers need to be in agreement with any transactions that does go through on the network. As this is a distributed network with no clear “leader node” the only way to achieve a (Byzantine Fault Tolerant) system is to have a protocol or a set of rules in place to which the peer nodes can be in agreement. This set of rules is the consensus protocol

Byzantine Fault Tolerance essentially means systems or processes that depend on a consensus should always show a collective whole/holistic view of the system.

For people who like reading, the Paxos algorithm is one such example of a protocol brought about to solve the consensus problem https://en.wikipedia.org/wiki/Paxos_(computer_science)#Byzantine_Paxos

The below whitepaper from IBM is just one in a series of research papers that was brought out in terms of future usage of Blockchain technology in sectors as varied as banking, finance, record keeping, secure storage etc

The Linux Foundation, along with IBM, Cisco, EMC and other industry leaders have started an opensource Blockchain project called Hyperledger

https://www.hyperledger.org/

While the Hyperledger Fabric has been around for a while, there are also a bunchload of projects including Burrow, Caliper, Cello etc.

The individual project pages are below

Burrow is an EVM smart contract machine and Byzantine Fault Tolerant permissioned ledger that uses Tendermint consensus and provides EVM execution within the Ethereum account model and an internal token to meter computation in the permissioned setting with transactions finality

https://www.hyperledger.org/projects/hyperledger-burrow

Caliper is a blockchain benchmarking framework which allows users to measure the performance of a specific blockchain implementation with a set of predefined use cases. Caliper will produce reports containing a number of performance indicators, such as TPS (Transactions Per Second), transaction latency, resource utilisation etc. The intent is for Caliper results to be used as a reference in supporting the choice of a blockchain implementation suitable for the user-specific use-cases

https://www.hyperledger.org/projects/caliper

Blockchain as a Service! Yay!

https://www.hyperledger.org/projects/cello

Hyperledger Composer is a set of collaboration tools for building blockchain business networks

https://www.hyperledger.org/projects/composer

Hyperledger Explorer aims to create a user friendly web application for Hyperledger to view/query blocks, transactions and associated data, network information (name, status, list of nodes), chain codes/transaction families (view/invoke/deploy/query) and any other relevant information stored in the ledger.

https://www.hyperledger.org/projects/explorer

Fabric is an implementation of blockchain technology, leveraging a modular architecture allowing pluggable implementations of various functions and features container technology to host any mainstream language for smart contracts development

https://www.hyperledger.org/projects/fabric

Hyperledger Indy provides tools, libraries, and reusable components for providing digital identities rooted on blockchains or other distributed ledgers so that they are interoperable across administrative domains, applications, and any other silo.

https://www.hyperledger.org/projects/hyperledger-indy

Iroha is a distributed ledger project, that aims to provide a development environment where C++ and mobile application developers can contribute to the Hyperledger Project by creating reusable components in C++ that can be called from languages such as Go by creating a library of reusable components that can be selected and used freely by those running distributed ledgers on Hyperledger technology.

https://www.hyperledger.org/projects/iroha

Hyperledger Quilt offers interoperability between ledger systems by implementing ILP, which is primarily a payments protocol and is designed to transfer value across systems – both distributed ledgers and non-distributed ledgers. It is a simple protocol that establishes a global namespace for accounts, as well as, a protocol for synchronized atomic swaps between different systems.

https://www.hyperledger.org/projects/quilt

Sawtooth is a blockchain suite designed for versatility and scalability. Distributed Ledger Technology has potential in many fields with use cases from IoT to Financials. This architecture recognizes the diversity of requirements across that spectrum. Sawtooth supports both permissioned and permissionless deployments. It includes a novel consensus algorithm, Proof of Elapsed Time (PoET). PoET targets large distributed validator populations with minimal resource consumption. Transaction business logic is decoupled from the consensus layer into Transaction Families that allow for restricted or unfettered semantics.

https://www.hyperledger.org/projects/sawtooth

Hyperledger Ursa is a shared cryptographic library that would enable people (and projects) to avoid duplicating other cryptographic work and hopefully increase security in the process. The library would be an opt-in repository for projects (and, potentially others) to place and use crypto.

https://www.hyperledger.org/projects/ursa

For anyone thinking of diving into the Blockchain community, the Hyperledger project is the one project that need a deeper looking into, given it’s the project that has the most collaborative efforts in terms of aiming to develop a suite of tools and applications that are the most complete across the Blockchain ecosystem.

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous post Creating Multiple VMs using Terraform – Nutanix Provider
Next post Single node Cassandra on Ubuntu 18.10