|
Modulo summation is a good hash function to teach non-CS people what hash functions are in principle. But, judging by my experience in learning about how Bitcoin works, is not sufficient to see why it's a secure currency (and PoW explanations are only invoked in that context). I knew about hash functions long before I knew why bitcoin works. I think the first thing people need to get over to understand de-centralized currencies like bitcoin is that money is just an illusion, a big fat shared delusion, or more accurately an inter-subjective fantasy, a way of keeping track of labor\value by agreeing on some scarce valuable thing and declaring that it represents every other scarce valuable thing if everybody agrees to trade any scarce valuable thing they have against it. I don't think most people truly relize this at the gut level (and this is not an insult to the intelligence of people, it was mind blowing and deeply enraging\upsetting to me when I worked through it to the end as well). Concept #1 : Money is any (possibly artificially) scarce thing that people with things you care about want to trade against. Next, you observe that a currency doesn't actually has to be an actual thing you own, it just has to be an entry in a trusty and available record of all the favors you did\was done to you. Physical things are merely a convenient way to maintain a distributed record of favors in real life, but in principle all of our paper money could be replaced by a huge paper spreadsheet recorded by an infalliable angel who never lies or cheats, recording in each entry who did what favor to whom, and the amount of "favorism" that was done (so that it can be traded against other favors in the future). If everyone had an always-updated read-only access to that spreadsheet somehow, then this is a perfectly good and perfectly secure money system. You "pay" by invoking the earlier favors owed to you, "paid" to you by others, invoking favors "spends" them : turns them into the ownership of the entity you are paying. New favors are created by the infalliable angel whenever they deem necessary, they simply write in the spreadsheet "I now own 20 more favors than before, by the sheer force of my will". Concept #2 : Money doesn't actually have to be a scarce thing, it just needs to be a trusty record of transactions, scarce things approximate that fairly well in real life but are not the only way. Money is simply any promise backed by trust, scarce things are just one way of implementing that. The final push is actually the hardest. You can't understand bitcoin without understanding even the tiniest bit of distributed systems. The fundamental difficulty of distributing a soft record and yet still preserving it's append-only nature while the machines the record is stored on can tick at 4 billion times a second must be appreciated and truly understood in all its impossiblity. Distributed blockchains' delightfully bizarre solution must be appreciated in all its counter-intuitevity. I was stuck at this stage for a long long time, knowing hashing and crypto (public API wise) but finding it difficult to understand why can't I just make-up money as I please, who's going to stop me ? who's going to know ? How can bitcoin stop me or even detect me without a central authority ? Distributed Systems are simply magic, and crypto-currencies get most of their magic and brilliance from that component. But eventually you get there if you're motivated enough and manage to dodge\discard all the trash pop-sci false explanations. Concept #3 : Bitcoin utilized super-smart magic from several apparently-unrelated fields of CS to make the fantastical spreadsheet from concept #2 come to reality. Anyway, all of that long rant was just to say I don't think hyper-focusing on the intricacies of hashing and public-private cryptography is actually helpful for people to understand the 'why' of decentralized currencies. I don't mean they're not important building blocks, they are invaluable of course, I just mean the vast majority of work in decntralized currencies is done by the decentralized blockchain they are running on, and those work because PoW is a piece of magic and also distributed systems and also NP-hardness. >The suggestion that a mathematical problem is being solved (while not completely inaccurate) sounds a bit more elegant in my opinion than what is really going on. That's a very human centric way of putting it, but I agree. If a computer is searching through the library of babel to find a treatment for cancer, the computer is still 'solving' cancer, it just doesn't do it by studying medicine. "Elegance" is a human value, and my personal philsophical belief about intelligence is that its all really Search, Neural Networks and Reinforcement Learning Agents and Evolutionary Computing and Human Brain Heuristics and Knowledge are all really more efficient way of searching spaces and trees. Medicine is just there to tell what branches not to search. So the library of babel computer is just doing intelligence a bit more naively and expensively than its more efficient artifical or natural cousins, but its still "solving" a problem, like all intelligences do. |
Not really. Bitcoin (i.e. the original satoshi version) is hashcash, data structure merging and some game theory. Its an ingenious system, no doubt, but its ingenious because it put together some really well known building blocks in a smart way. It definitely did not use super advanced stuff from any field of CS, let alone multiple.
And that's not a dig at it either. In many ways that makes it more impressive.