Blockchain – beginner notes
Blockchain is a form of database – a system to store information, but differs from the traditional databases in the way that it operates, maintains and stores the data.
More than just storing and maintaining the data, blockchain also enables decentralized and distributed computing. Where the system runs without any central authority like google or facebook!
Before entering the buzz-word-empire, first let’s try to understand why we need this technology, what problem does it solve, will then later look into the know-hows!
If you are completely new to the computer science terminologies, I recommend reading this investopedia article.
Blockchain as a concept was a by-product of the implementation of a famous cryptocurrency – bitcoin. It was meant to be a native peer-to-peer digital currency, that makes transactions on the internet quick, easy, and transparent without having a need to have a middleman.
It was trying to solve the double-spending problem, encourage e-commerce in trustless environments, and enable completely non-reversible transactions.
The underlying concept used to achieve this goal is what we know as — the blockchain.
It is a form of database where the data is stored in an abstract entity known as the “block”. These blocks are connected to each other using a (logical) chain like structure, forming a “chain of blocks”, referred to as a blockchain.
Blockchain is managed by a distributed set of individuals (known as miners), who may or may not know each other, and are spread across different geographical locations.
In return for their computational power and efforts, the miners are rewarded by the chain using its own inherent currency — the cryptocurrency! (e.g. $eth and $btc)
- Blockchains are expected to be public, decentralized and distributed.
- There are pre-determined rules for deciding which blocks should enter the chain and other technicalities.
- Data once recorded (in form of a block), cannot be modified without modifying the entire chain ahead.
- The records in the block must be independently verifiable and auditable.
- Cryptographic hashes are used while dealing with the data.
These principles are used to implement different types of blockchains aimed at solving different problems under various scenarios. e.g. the ethereum blockchain, the bitcoin blockchain, etc.
Block: consists of some information
- a link from the previous block to the current one (in hashed format)
- actual data
- A unique hash (made of timestamp + unique id + historic and current data) that will be used to link from the next block
Block time is the average time it takes for the network to generate a new block (different for different blockchains)
Genesis Block is the first ever block of the blockchain
For analogy: Consider a train, with each bogie representing a block — that has a connection to the previous and the next block, and also contains some information — the passengers!
Consensus (Proof of Work/Proof of Stake)
It’s an agreement on the rules that a particular blockchain will follow.
Solves for problems such as -
- How to determine if the block is valid? and should it be appended?
- How to choose between the available forks?
- How to overcome a miner node failure? How to distinguish between the honest and the compromised node?
- How to reward the good actors? How to punish the bad ones?
- How to secure the network?
- Other technical issues
Bitcoin uses a consensus mechanism known as ‘proof of work’, while few other blockchains use something known as ‘proof of stake’.
Kept out of scope: cryptography (digital signature, hashing functions), forking, data structures (merkle tree), byzantine failure, how consensus works in ethereum and bitcoin blockchain (proof of stake and proof of work)
Like bitcoin, ether, dogecoin, etc.
Smart contract is a program (code) that can be used to compose anything. Few use cases of smart contracts are listed below.
- Non-fungible tokens (NFTs): Tokens that are used to represent unique ownership of anything like art, collectibles, real estate, etc.
- Decentralized finance (De-Fi): lending, investing, trading, insurance, etc.
- Decentralized autonomous organizations (DAOs): Member-owned communities without centralized leadership
- Decentralized applications (D-apps): Any custom application. With this, the possibilities of blockchain applications become endless.
- A protocol that allows transfer of value on the internet — natively!
- Provides the market-like benefit to any existing group/network
- Not controlled by a central authority
- In-built internationality and authentication capabilities
- Replicates scarcity digitally (store of value)
- Enables powered and marginalized users
- Chain splits
- Computational and technical bandwidth
- Political biases and public perception
will explore the applications, challenges and other missed out details in-depth in coming essays.
Look out for this space in the coming decade (until 2030–35). Looks promising.
Thanks for reading, feedback appreciated!