Well, let’s start first with what blockchain is. The simplest definition is that blockchain is a decentralized database, or also often called a ledger. The next thing that is regularly brought up is that it’s append-only, meaning new data/blocks/transactions can be added, but previously entered ones cannot be altered. This makes blockchain perfect for managing records, recording transactions, events, tracing etc.
So, with the words database and ledger floating around for a long time now and being fairly familiar, let’s skip to the “decentralized” part. In short, Blockchains are politically decentralized (no one controls them) and architecturally decentralized (no infrastructural central point of failure) but they are logically centralized (there is one commonly agreed state and the system behave like a single computer). For a more in-depth analysis of what centralized, decentralized and distributed actually means, please take a look at The Meaning of Decentralization by Vitalik Buterin.
And what else is interesting about blockchain besides that it stores transactions? Smart contracts!
Smart contracts as a term were initially coined by Nick Szabo, a computer scientist, scholar and cryptographer (there is an interesting podcast of Nick Szabo and Tim Ferris discussing Bitcoin, Ethereum, smart contracts, and other related topics). A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible. The reason why smart contracts are so trendy is that smart contracts combined with Ethereum and blockchain technology eliminate the need for intermediaries and escrow services.
Now with blockchain and its properties, the power of smart contracts and the fact we are talking about the decentralized system and its benefits, there is a solid foundation to build decentralized apps or dApps. Decentralized applications are applications that run on a P2P network of computers rather than a single computer. dApps have existed since the advent of P2P networks and are a type of software program designed to exist on the Internet in a way that is not controlled by any single entity. Decentralized applications don’t necessarily need to run on top of a blockchain network (BitTorrent, Popcorn Time, Tor, are all traditional dApps that run on a P2P network). dApps in blockchain world are ‘blockchain enabled’ websites, where the Smart Contract is what allows them to connect to the blockchain. The easiest way to understand this is to understand how traditional websites operate. dApps are similar to a conventional web application as the front end uses the exact same technology to render the page. The one critical difference is that instead of an API connecting to a Database, there is a Smart Contract connecting to a blockchain. dApp enabled website: Front End → Smart Contract → Blockchain (source https://blockchainhub.net).
All things combined, what makes a blockchain developer?
So, understanding what blockchains, smart contracts, and dApps are is a good first step. Now it’s time to dig deep into these concepts and start working on widening the practical knowledge in blockchain development.