That's a valid use of the word "solve". It is obviously mathematical. It is complex, as we do not have a simple way to solve it.
I get it, words can have multiple meanings. It's fine to give a clarification on the specific use here, but then move on.
You're either trying to confuse others intentionally, or if I'm interpreting charitably, you are merely confused yourself. In neither case is this attitude warranted. You just re-explained that the crux of the issue is useful work vs non-useful work. This is exactly the same point that Josde explained. This point was contested by lottin. I don't understand why they would contest it, as they very clearly agree with that point (based on reading other messages they wrote in this thread). According to you, lottin is not "pretending to disagree", they are "merely providing further context". This is very obviously not true. Either you are lying on purpose or you are confused, maybe you didn't read their message properly. Here it is again for you to read:
> It's worse than that, they're aren't solving anything at all. They're taking part in a lottery, in which participants have to guess a number, and the winner gets to update the ledger. Nobody is solving complex mathematical problems.
Does that sound to you like "yes, I agree, and here is some further context"? Obviously not. That message is expressing strong disagreement, not further agreement.
Please stop spreading misinformation.
Not obvious to me. But sure, I'm confused all right. Confused at how lottin's comment could be interpreted as contesting Josde's, when it reads as a reinforcing restatement to me. Confused at your hostility and accusations of misinformation.
Perhaps you're confused about how online conversations work? Sometimes people reply with a restatement when they feel the original doesn't go quite far enough. I mean, lottin's comment was arguably ineloquent, but he wasn't "muddying the waters". Do you perhaps have some expectation that the act of replying implies disagreement? Is it the strongly negative tone that gave you that impression? It certainly isn't the content, since you correctly interpreted my own restatement of lottin's comment as agreement.
I'm not trying to confuse others, I'm trying to enlighten you, specifically, about what happened here so that you might reconsider next time before jumping on someone for something they didn't say.
Yes, very much.
Guessing a number isn't a complex mathematical number, it's just guessing a number.
[1] https://cryptorials.io/beyond-hashcash-proof-work-theres-min...
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).
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.
> 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.
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?
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.
And public-private crypto & hash pointer data structures are both fairly advanced CS from multiple fields. Public Key Crypto was discovered in the late 1970s and only further explored in the 1980s, hash data structures only in the 1980s and 1990s. That's fairly young, most vanilla CS ideas date from the 1960s or before. Just because the public APIs of those things can be explained in an afternoon doesn't mean at all that they aren't advanced concepts: I can explain what a hydrogen bomb does to a 10 year old, but that wouldn't imply the Hbomb isn't advanced nuclear physics.
Yes, the new thing bitcoin invented was novel and quite interesting. I'm not sure that is the words i would use to name it, but the result still stands.
> Just because the public APIs of those things can be explained in an afternoon doesn't mean at all that they aren't advanced concepts
Of course not. They are advanced concepts because they are some of the most basic concepts in the field and used throughout the industry. Hash functions are so prevalent that we literally have special x86 instructions just to speed up calculating sha256.
Compare for example to things like ZK-SNARKs, or homomorphic encryption which are actually cutting edge cryptography.
Of course, the hashing/nonce part is only one part of the mechanism and probably not even the most important part. However, it is where the bulk of the energy is used - most people have heard that Bitcoin uses a lot of energy and would like to understand that a bit better. I have other "parables" for explaining public/private key encryption, etc., but I was primarily responding to the parent comment.
>> That's a very human centric way of putting it
Humans are the ones assigning the value to this and they may be more likely to assign a higher value if it appeals to their sense of aesthetic. Solving beautiful equations sounds better than trial and error to many. That being said, I do think there is beauty in crypto - just maybe not in the nonce guessing bit.
>>> Money doesn't actually have to be a scarce thing, it just needs to be a trusty record of transactions
Physical cash or coin, exchanged between parties, is trusted by both parties yet leaves no transaction record.
>>> Money is simply any promise backed by trust
Credit is backed by trust.
A finalized and appended bitcoin block needs no further trust. It is settled.
The cash/coins are the record in this case: that was the point the GP was trying to make. But, they are not required for the transaction to take place: a trusted ledger also works.
> A finalized and appended bitcoin block needs no further trust. It is settled.
Of course it needs trust: you have to trust that Bitcoin is doing what it promises. Every time you sell something in exchange for bitcoin, you have to trust that:
- the network is working as advertised
- your client is working as advertised, it's not infected with some Malware to report the wrong info to you
- there is possibility of a 51% attack
Also, the latest finalized and appended block often changes. You actually have to wait until there are several other blocks appended after the one that contains your transaction until you can be sure the transaction won't be reverted.
In high school math, problems are solved by choosing the right formula and plugging in the right variables. Throwing the dice trillions of times isn’t what people imagine when they hear “solving a complex mathematical problem.” That framing is designed to make PoW more acceptable to laypersons, as it sounds like the computation is useful or at least clever rather than intentionally designed to waste energy.
Heck, I understand well how POW works, and even I think of it as solving a "complex mathematical problem"... the inherently difficult problem of prime factorization.
Anyways, potayto potahto.
???
Factoring is not a common problem for proof of work. In fact im not sure how you could even make that work in a way that ensures participants arent cheating.
This is, actually, how I layperson-explain cryptography: there’s no fast or easy way to take any huge number and know what two numbers mutiplied to make it, and this mathematical property is what makes (good) passwords hard to crack.
Note that even being able to quickly reverse the hash function for Bitcoin wouldn't do anything to the PoW security.
The only thing that matters for PoW as implemented in Bitcoin is that there is no way to predict the value of the hash of a block + nonce faster than computing the hash. This doesn't rely on integer factorization difficulty in any way, it simply relies on a construction that uses many one-way functions.
Only RSA is built around factoring. I suppose if you consider discrete log to also be factoring related, some other public key & key agreement algs are also.
Hash functions and symmetric algorithms are not based around factoring.
Any explanation of PoW worth its salt no matter how basic should - and does in my experience - repeatedly drive home the idea that PoW is inefficient, it's literally right there in the name, Proof of Work, jumping through hoops as an algorithm. If somebody doesn't understand that PoW is extraordinarily inefficient, they don't understand blockchains and why they are cryptographically secure modulo implementations and social engineering.
Nothing new is added or said by emphasising how inefficient PoW is, that's the entire point, that's why it's secure. The comment that started this chain basically said that in very simple terms, and the comment I replied to expressed disapproval about a very minor issue with the terms then re-said what its parent already said in more words that don't add any clarity.
Will people see 'mathematical' and assume the computer is integrating dy/dx by parts to get the next nonce ? You can assume that the average HN reader knows that when we say a computer is 'solving math' it's meant that it's crunching an aweful lot of binary strings. That's why we call classic AI "classic" or "symbolic". Everything a computer do is crunching numbers brute-force style except when said otherwise.
Side question: what about your username? I live in Venezia and I'm curious now.
No mathematical problem is getting "solved".
It is much more akin to playing the lottery: Entirely random numbers are being tried out, by sending them through an energy-intensive algorithm (being energy-intensive is the algorithm's only purpose in proof-of-work), until what comes out is less than another number. That other number is chosen according to the desired "difficulty", it has no significance beyond that.
The algorithm is literally meant to spend energy, i.e. the outcome of the computation has no meaning by itself. This also means that proof-of-work cryptocurrencies actively counteract any advances to make the computation more efficient: The "difficulty" will just be adjusted up until the efficiency gain is canceled out. Proof-of-work cryptocurrencies are inefficient by design.