- consensus between trustless systems
- failure tolerance between trustless systems
- immutability of data
- verifiable audit trails
- cryptographically secured ownership of data/resource/etc.
For each of these areas there are more specific considerations, e.g.: - access control (public, private, federated)
- type of consensus (proof-of-work, proof-of-stake, etc.)
- type of data (ledger, map, log) and implementation
With blockchains, there are now huge classes of problems that can be dealt with, that were impossible or impractical with traditional databases (where trust is required between multiple parties.)Blockchains are designed to solve a certain set of problems. Understanding those problems and their relation to your product will help you determine whether a blockchain is a reasonable solution.
1. Do you need a distributed ledger? (https://en.wikipedia.org/wiki/Distributed_ledger)
2. Do you need proof of work? (https://en.wikipedia.org/wiki/Proof-of-work_system)
3. Does your distributed ledger need to record things such that one block follows the next, as opposed to blocks of data being saved independently of each other? (https://en.wikipedia.org/wiki/Blockchain)
If the answer to all of the above is yes, using a blockchain probably makes sense. Otherwise, you probably want to use something other than a blockchain (for instance, if you just need a distributed ledger, just use a distributed ledger. No need to chain each block together unless that's actually useful for your product).
A better single question would be: do you need a distributed ledger with immutability guarantees (i.e. security against an adversary that might want to tamper with the history of your ledger).
To me a blockchain is just a tree, where the "parent pointers" are just hashes of the parent nodes rather than their addresses. And I guess to pick one as the "correct" one, you just choose the one with (say) the longest chain. End of story? What else _is_ there to learn about this that people are looking for? (Btw, isn't this just a Merkle tree, which has been around since at least 1979? What's so revolutionary or even different in a blockchain?)
And proof of work is literally just the hash having a certain number of zero bits, right? Definitely a neat idea but hardly revolutionary if that's all there is to it.
This is where it gets a bit interesting. While Merkle Trees are great for ensuring, immutability, most cryptocurrencies need more than just that. They need to have a way for records to be inserted into this immutable ledger and an incentive to keep adding records to the ledger. This is where Proof of Work and mining rewards come into play, and this is where a lot of altcoins (non-Bitcoin cryptos) have a lot of different opinions. A decent amount of work has also been put into making sure that there isn't an incentive for a miner to mine on two different chains (and cause the ledger to fork) and other concerns.
But regarding the topic of what it can be used for... yes, I see people talking about doing healthcare with blockchain, or BP using blockchain, or archeology using blockchain, and people asking about how to learn to use blockchain for their next random startup ideas, and I start wondering if I'm going crazy. To me it seems basically like asking "could linked lists revolutionize healthcare?", or "could Dijkstra's algorithm help end global warming?" which sounds like a completely nuts question to ask. Am I just missing a huge, fundamental part of the picture? The whole thing just doesn't make sense to me.
Well, yes, they certainly could, even though that's an extremely vague question from someone who might not even understand what they're asking.
If you're interested in hearing about blockchain's potential from a business and society perspective, there's a bunch of material, but for example the latest Andreesen-Horowitz podcast episode was about "why crypto tokens matter".
Also this recent interview with someone deeply knowledgable about the supply chain world: https://www.youtube.com/watch?v=dla42bY7k90