I'm looking for someone to help me understand why the above isn't possible.
I'm looking for someone to help me understand why the above isn't possible.
Now, I will list the problems we have encountered along the way.
First, you need problem suppliers. Blockchain does not need a problem supplier, hash puzzle is adjustable.
Second, proof-of-whatever must be very easy to verify. I mean the ratio between solving proof-of-whatever and verifying it must be really high. Unfortunately, read mapping is not a problem like that. Yes it is still NPC but verification takes way longer time than what is required.
Finally, privacy concerns. You must use encrypted, anonymized and distributed data. Current read mapping techniques do not accommodate to such needs. There are proposals[1] to satisfy these requirements but they do focus on hybrid cloud techniques which means network bandwidth is not a concern for them. However, blockchain applications are greatly concerned with network bandwidth.
*edit: references
1) The problem supply can be tackled in many many ways.
2) The verification problem is exactly why I stated NP as a problem class where the verification process is often relatively simple and straight forward. Obviously if that isn't the case then perhaps the problem isn't that well suited for this kind of environment.
3) The bandwidth issue is not something that I had considered. Makes absolute sense when you put it that way.
Just for reference, don't forget that NP behaviour is displayed asymptotically. Checking a solution can still be pretty costly.
Miners solve for nonsense problems because that's the simplest kind that you could solve in order to make the proposition work, anything on top of that requires more complexity.
So it's not that it isn't possible, it's just that it would be charity from the point of view of the developers of the software to spend brain cycles on something they don't strictly speaking need to achieve their goals. I'm pretty sure that at some point there will be 'green' crypto currencies, let's call them 'greencoins' that make a play at avoiding the waste of energy that digital currencies are becoming associated with.
The same happened in other industries, I don't see why digital currencies would not be able to follow a similar path.
How do you adjust the difficulty on something like this?
Also, you always have to calculate the "hashes" of the blocks. I guess you could encode a block as a graph and it's "hash" could be the smallest path that visited all the edges, but how useful would that be?
When I looked into this in the past, I stumbled into Gridcoin[1], but I don't know how they deal with the difficulty/usefulness of the solutions.
> you can easily adjust the difficulty.
For Prime Factorization for instance, which like you say, isn't even NP-complete. You can easily adjust the difficulty by increasing the size of the number in question.
For example, I think that a power of two, like 1024, is much faster to factorize than, let's say, 1001 (71113). (I'm not quite sure this example is true)
Here's a more detailed description: https://mathoverflow.net/questions/249266/classes-of-numbers...
This is not used as a direct mining mechanism, the blockchain is secured using Proof of Stake rather than Proof of Work.
So while we could hypothetically use NP complete problems (although there are several issues which arise to do with consistent difficulty), it's hard to do useful work, because we need the input to be fundamentally linked to the transactions in the block (and the hash of the previous block too)
Edit: I understand that your argument is about the average case and not the worst case.
Regarding Sudoku, my hunch is that there is a critical density of numbers where random problems are harder than average. That's the case for SAT, there is a phase transition on the number of variables per clause where above a critical value almost all instances are not satisfiable and below the threshold almost all instances are. Instances right at the threshold tend to be hard for our current solvers.
Serious answer: Things would obviously have to be designed differently. This isn't about distribution of "economic power to the hands of the people" or some other Satoshi notion. The thought I have is more along the lines of Folding@Home
Maybe there could be useful problems with this property, but it's not trivial to find them.
But from a computational standpoint, sequence assembly (using a given error metric) is simply NP-hard.
I am fairly certain you can design your problem to behave in a similar manner or in some manner that increases the complexity based on some criteria
> Is checking that the solution is valid a very fast operation?
That's the NP part in my question. Plenty of scientific problems out there that are fast to verify hard to compute. Ex. Prime Factorization
> Are we sure that there is no "final" answer which would make the calculation unusable at some point?
I would argue, and I might be wrong due to my ignorance on the subject here, that we can never "know" that. That's why P=NP is still an open question