I was asked recently what is the difference between blockchain and bitcoin. I figured that the answer (curated for general interest) would also make sense here. I hope it helps clarify for those of you who still see this as a fuzzy notion.
Bitcoin is something of a complex beast. It’s originally a project to create a decentralized currency that would enable anybody/anything to make payments to anybody/anything, regardless of where they each are, and without possible intervention, control, blocking by banks (central or local) or governments. As such, it’s kind of a societal project. It was initially described in a white paper, which I encourage you to read (or at least skim through) here.
So to the original question… The technology behind Bitcoin is actually a blockchain. It’s one of the many kinds of blockchains. In fact, blockchains have been around in one form or another since the 1990s… And Bitcoin which popped up in 2008/2009 just made them suddenly hugely popular.
To be a bit more precise, Bitcoin is actually several things.
- It’s a currency. A cryptocurrency. Designed to allow the transactions between entities without 3rd party control, as mentioned above. It has all kinds of nice security, trust, decentralized mechanisms built into it.
- It’s also a protocol. It’s the way you actually do transactions using this currency. For example it describes the APIs to talk to the machines doing the transactions for you, it also describes formats of data (addresses used to identify sender and receivers) and transaction messages, as well as how you pay to run the transactions, and other details like how the machines who run the network are compensated for doing so.
- It’s also, at the core, a network. It’s built on a blockchain that is permissionless (i.e. you don’t need approval from a central authority to do transactions, as long as you follow the rules, the protocol, and have currency available to do the transactions you want to do). The way all the nodes of the network reach a decision to validate a transaction or not is called a consensus. Different blockchains have different consensus models. Bitcoin uses a consensus model called “proof of work” which is extremely computer-intensive, and was used in a protocol called hashcash which was invented in 1994 by Adam Back, a really smart cryptographer, to try to prevent spam, and on which the bitcoin model is based.
Blockchains (note the plural) on the other hand, is a growing, huge, family of databases used to store and process transactions. If you want they are very specific focus databases (unlike an SQL database where you can store any kind of structured data). There are 2 big families of blockchains. Permissioned (only people/systems with permission to access the blockchain can do so, in read and/or write) and permissionless (anybody can transact, provided they follow the protocol). Blockchains are called “trustless” systems because you don’t need to trust any single node to be able to trust the overall system. In fact, blockchains are usually designed so that they will run fine even with a significant portion of nodes that hostile/compromised (as long as the majority of nodes participating are still uncompromised). This is a great element. In the bitcoin blockchain, there are hundreds of thousands of nodes participating. So it’s very hard to compromise the overall Bitcoin network. Transactions happening on the network are considered extremely trusted.
One final element… Some blockchains can run special programs in a trusted way when certain transactions are executed. These programs are called “smart contracts” and are run by the blockchain infrastructure. They are run in a trusted way. You know for certain that if the triggering transactions happen, the programs will be run. To paraphrase Albert Einstein, a smart contract isn’t just a good idea… it’s the law. Smart contracts can be used to trigger real-world actions based on blockchain transactions. This opens up some really fancy applications like workflow automation where a transaction is used to mark a step in the workflow, and the executed smart contract will trigger the execution of the next step of the workflow, all with an absolute trust that if a step is marked as completed, by a transaction, there is absolute certainty that the next step will be triggered by the corresponding smart contract.
Depending on your use case, you will pick the blockchain that best suits your needs. There is no “one size fits all” when it comes to blockchains. Some apps use smart contracts, others don’t. Some use permissioned, others use permissionless. Some consensus mechanisms are better suited for specific use cases, while others will work better for other use cases, based on number of nodes on the network, transaction speed, available CPU power on the nodes — think IoT devices, usually small, with small computer power, you won’t use them for proof-of-work based blockchains…
One more element of information… a blockchain is a distributed database that stores transactions, or a distributed ledger. So often, blockchains are referred to as DLTs (Distributed Ledger Technologies). And nowadays, DLTs have grown in scope and type. Not all of them are actually blockchains… Some DLTs are completely different. Hashgraph is a DLT technology not based on a blockchain. The IOTA network (designed for IoT applications, with small computing power) is based on something called a tangle, which is a non-blockchain DLT. And there are more, and there will be more.
I will conclude this by adding that most (i.e. the vast majority) of DLTs are open source. This enables easy installation of development systems, and even deployment of large scale applications. There are some proprietary ones, but I tend to favor those that are open source because full access to the code allows for fast discovery of bugs, and community provided patches, which, as is the case for open source in general, tends to lead to better code quality and faster fixes. I encourage you to play with the open source blockchains as much as possible. Try building apps. Look at the code. Contribute to the projects of these blockchains.
Wipro is a member of the Hyperledger project (which is under the Linux Foundation, which we are also a member of), as well as the Enterprise Ethereum Alliance (which we are a founding member of) which focuses on enterprise uses of the Ethereum blockchain. There are also very interesting blockchain projects like Stellar, Ripple, Parity (based on Ethereum), Corda, IOTA, and, of course, Bitcoin… Try them all. They are all open source and freely downloadable, useable, modifiable to suit your needs!
Blockchain versus Bitcoin? was originally published in Data Driven Investor on Medium, where people are continuing the conversation by highlighting and responding to this story.