5 ms·
Here is how I explain it to people: Imagine a page of a book, for each letter a-z, assign a number to it (a=1, b=2, .. , z=26). Compute the sum of all of the l
by osigurdson 4y ago
Here is how I explain it to people:
Imagine a page of a book, for each letter a-z, assign a number to it (a=1, b=2, .. , z=26). Compute the sum of all of the letters on the page but reset back to zero when 100 is reached (i.e. 97 + 5 = 2). The resulting number is a kind of signature for the page. Changing a letter would result in a different sum.
At this point, people usually understand the utility and irreversible nature of it but quickly realize that many pages could have the resulting signature. It is a fairly easy leap of faith for most people to accept that there could be much more sophisticated algorithms that 1) use a bigger number for the signature and 2) take position into account and 3) result in very different signatures with tiny changes in input. This is usually sufficient for anyone to understand what is meant by a hash.
Finally explain that the hash must have a certain pattern to it (like end in a zero for example). If the hash of our "page" does not have this pattern, add another small gibberish word to the end and try it again. Keep trying until a hash with the expected pattern is found (and there is your Bitcoin).
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. It is really more like guessing (not that it really matters).
- jrm4 4y agoI definitely think it matters. The metaphor of "some moron pulling a slot machine over and over and over" (which is what I use) is more accurate and I think better represents what's actually happening than something like "solving," which evokes the image of smart person (or machine) sitting down and using their brain to discover useful information. When you say "solve" it implies that the information that is produced by the process is inherently valuable.
- NiloCK 4y agoA lot of textbook exercises begin with a prompt like "solve for x", where x has no existence outside the scope of each given exercise. The information that is produced has no inherent value, but I'd be surprised to hear many people object to this usage of "solve".
- hunter-gatherer 4y agoI agree with this point for the same reason; what matters is how people interpret it. Of course if I'm talking to a CS type I can go right into the details. The analolgy I use with laymen is solving a large rubiks cube by randomly moving pieces instead of using any other sophisticated methods. Somebody please correct my if I'm wrong as I haven't been in the cryptocurrency space for a minute, but I believe most of the 'solving' is just a nonce increment that is then hashed with the previous block header, current block, and maybe a couple other things. I've noticed that whenever I assert that a 'complex mathematical problem' is being solved people tend to think of an ever-growing algebraic equation.
- osigurdson 4y agoThe only problem with the rubik's cube analogy is that it may suggest that there are more optimal methods to solve it and they just aren't being used.
- yencabulator 4y agoWorse; if someone came up with an efficient means of solving this particular "Rubik's Cube", the cryptocurrency people would be in a rush to move away from that, and find an alternate lottery where only dumb luck helps.
- hunter-gatherer 4y agoYes, I agree. In real life I emphasize the bit I said about "randomly moving pieces", and explain that it is a feature built into the protocol. Of course there is a lot of mathematic handwavery, but people seem to get it after the fact. I've also learned that most people don't actually realize there are more optimal ways to solve rubiks cubes anyways.
- cinntaile 4y agoWell it is valuable. You get to include the pending transactions in a block and you get rewarded for solving the puzzle.
- jrm4 4y agoThis is what I was trying to get to with "inherently." The information ITSELF that is yielded by the process is 100% arbitrary and not valuable, i.e. relays no additional useful information about the world (e.g. the boiling point of some new liquid or something), like many would think of when we think of people doing math to solve things.
- cinntaile 4y agoI totally understood that you tried to define valuable in such a way to exclude cryptocurrency mining, as you can see below however it's not easy to create a definition like that. It also begs the question why that arbitrary definition of valuable is more correct than another arbitrary definition that excludes something else instead... > valuable, i.e. relays no additional useful information about the world (e.g. the boiling point of some new liquid or something) Theoretical mathematicians don't provide anything useful according to your definition.
- jrm4 4y agoAgain, we're looking for a good definition for explaining it to laypeople, and I don't find it that difficult. "Pulling a slot machine" or the one from the "solving Sudokus" both work pretty well. The theoretical mathematician definition isn't very good either because I think enough people get that the novelty has some kind of inherent value that doing something repetitive like the above does not?
- Banana699 4y agoModulo 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.