Could someone offer a quick explanation as to what kinds of things there even _are_ to learn about blockchains? I mean from a conceptual user perspective of "let's use blockchain for my next product", not from a Bitcoin-dev perspective of "how do we fix this thing in our blockchain implementation".
The key concepts to think about when trying to decide whether you need to use a blockchain are:
- 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.)
Disclaimer: I've mostly absorbed this stuff through osmosis and lazy web searching, but I thought I'd take a shot with my understanding and someone can correct me if I'm mistaken.
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.
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).
Those are in line with my understanding too, but I'm asking what is there to learn about blockchain technology, not what the use cases are. (That's actually also a question I have, but a separate question to me.)
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?)
> What else _is_ there to learn about this that people are looking for?
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.
Based on my cursory understanding of the topic,
The Merkle tree has been around for a while, but Satoshi figured out how to use that to achieve decentralization, and consensus building. If you ask me, that's quite revolutionary.
Yes, the blockchain is just a gigantic DAG, but adding and deleting nodes on the graph is where the crux of the matter is I guess. I am starting to understand the logic from a currency perspective. Still trying to understand how the same translates to smart contracts.
Is there more to consensus and decentralization than just pinging a few other computers and picking the longest chain you find?
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.
Something can be "revolutionary" and made up of pieces not in themselves groundbreaking. Linux was revolutionary and it was just a Unix clone for IBM PCs.
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).
Here's a piece demystifying what a blockchain can be used for (vs. not) with intro references: https://blog.andreacoravos.com/myth-busting-can-a-blockchain.... It's written using healthcare use-cases as frame of reference, but applies to most industry implementations.
So (as I said in a sibling comment) my question wasn't "what can it be used for", but rather "what concepts are there to learn about it that could help me decide what to use it for".
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".
You should ask the people doing healthcare with blockchain, or whatever it is you're confused about. I agree, oftentimes they just have no idea what they're talking about. Sometimes they do though. It's worth noting that I think a few of them expect to depend on not-yet-completely-implemented "infrastructure" projects (off-chain computation, off-chain storage, prediction markets, private transactions, cheaper transactions). However since these infrastructure projects are still in a research stage I don't think it's reasonable for you to be able to cleanly split the "conceptual user perspective" from the "bitcoin-dev perspective".