Ask HN: Cryptocurrencies – POUW (proof of useful work)

18 points by danielEM ↗ HN
That topic is bugging me for a little while. Anyone who follows me (probably 0 people ;-) ) knows already that I'm not a fan of cryptocurrencies. And I'm not gonna dive into that here. Instead I'll try to solve one of its issues - it produces CO2 for "nothing". All computations it does is actually worthless, just bunch of bytes that people find precious itself.

So here is the idea:

Lets say we have a computational problem to solve and limited resources to solve it. The task would be to get as good as possible result for the problem within these limited resources. And every progress (getting better result from previous) would be gratified with "hash" coin based on proof of useful work.

Lets give a practical examples:

We want a video codec and best possible image quality on limited bandwidth, limited computational cycles on "virtual machine", limited code size and limited RAM resources. Library of wisely selected videos would be a reference for measurement of image quality. Every improvement in overall quality would be gratified with "hash" of the code. As long as final result fits within limited resources the algorithm of improving would not matter (machine learning/genetic algorithms ...) and be a subject of "manual" earnings.

Nearly same would be for audio codecs.

And then we would go for other important problems to solve for humanity - treatments for cancer, objects and voice recognition and so on...

What do you think about it? I will call it POUW (proof of useful work)

19 comments

[ 0.23 ms ] story [ 58.4 ms ] thread
Surely many people had similar POUW ideas - I myself had that thought in 2011 when I first heard of Bitcoin as I was doing Folding@Home back then - any idea why isn't it in common usage now? It makes me think there are serious hurdles to overcome (not my area of expertise...).
One problem is that it's hard to see how decentralizing work for profit could ever be more efficient than centralizing it. In the decentralizing case you must do the additional work of dividing the task into separate pieces, distributing the task, and validating that your workers are actually producing valid results and not trying to cheat you somehow. In the centralized case, you don't have any of those problems.

Analogously, if I wanted to have a "digital money" I could just have a key value store database running on my home desktop. I could probably handle multiple thousands of transactions per second - thousands of times better throughput than bitcoin, and with only a single machine. The centralized case is just much simpler, faster, and more efficient than decentralizing. I think the sample concept would apply to useful work.

Fully agreed, but... We are not looking for "digital money" here, that is being done by China, the EU and others, and as you're saying, a centralized database does the trick way better than Bitcoin or any POUW scheme.

We're looking for "fully decentralized, immutable and trustless digital money" - and it would be nice if we could combine that with useful computation instead of burning electricity.

Also consider that there are many computing tasks that could be enormously useful to the human society, but not profitable, with very distant rewards (usually investors prefer short-term profits over long-term societal gains), or very risky.

Although it's true that BTC's energy consumption is bonkers, with this definition, nearly every computation is useless. Hacker New's cryptographically verifying your account's password hash so that you can post this opinion was Proof of Useless Work. Why not spend those CPU cycles on curing cancer?

Because that's simply not how the world works. Not everything needs some grand purpose.

Great line of thought.

But let’s find some meaningful problems that come down to relatively simple calculations fist.

The point of all of that hashing is to guarantee that transactions can’t be reversed (finality). A blockchain is a directed graph, for it to be a single irreversible source of truth, some mechanism has to force it to have a linear topology. Your ideas are interesting, but I can’t see how any of your examples could be used to achieve that topology.

Also, the “POUW” examples you have are incredibly slow, developing codecs is going to take at least days, more likely weeks, months, or even years, meanwhile users will have transactions that need to be settled.

You mentioned CO2 in your statement about disliking cryptocurrencies but there are many currencies that do not utilize proof-of-work, instead using other schemes (e.g. proof-of-stake), I’m curious if you dislike those as well.

It's not a bad thought, though there are a number of challenges. One thing PoW has going for it is that the difficulty of computation is well known and easy to adjust.

Specifically for the codec cases, it's not that we can't come up with better codecs, but that they require more computational resources to encode and even decode. We have ones now that are still a bit much for mainstream and using bandwidth/storage is a better market fit. As for the 'overall quality' this is subjective. Anything objectively defined is optimizing for something humans may not appreciate.

So what we're talking about is generalizing the hard to compute, easy to verify of finding hashes to other computations that are useful to some parties--a computational market. I do rather like this, like kickstarter for computation. A problem gets posted, with a verifier. People can choose which ones they want to sponsor and how much. Solvers can choose which problems to solve.

Even thinking this through, I think it's still useful to have a PoW hash-based blockchain just to record the first solutions. So we're back to being limited in the number of solutions we can record per second.

Any value, economically, that your "useful" work provides must be subtracted from the network's overall security. i.e. if you devise work so useful that people will pay for its computation, than any attacker can use that value to subsidize their attack on the network.

Currently if you were to buy enough hardware to attack bitcoin, for example, after the attack your hardware (which would have to be ASICs) are useless garbage, as the network would be devalued after attacking it and the hardware serves no other purpose. If I can then pivot to computing something of value, this economic hurdle isn't as expensive.

I wonder if it is possible that Deep Learning, GPUs and Bitcoin maturity pre ASIC had collided in such a way that an attacker could have done that then pivot to selling the power for AI
Sorry, doesn’t work. Useful work is not “useful”. It is too difficult to meter correctly for anything beyond a trivial case, and too unknown for security modeling. Primecoin. Riecoin. Gridcoin. It’s been tried. It’s not a new idea, it doesn’t work.
One such issue is such interesting “proof of work” work is typically general purpose compute, which leads to an incentive to steal general purpose compute for criminal minded individuals. Generally useful POW leads to botnets. By using specialty algorithms like SHA256 we both provided an accurate hw bound to security and - a continued investment in the state of the art ASICS.
What's the definition of useful work? I would say work needs to be useful "enough" in order to be worth doing. It's still early in the POUW but I think in the future better solutions will be developed.

Proof of work leads to stealing of general purpose computation power only in the short term because as difficulty rapidly raises "honest" miners are pressured to specialize fast in order to profit meaning moving their mining operations to specialized server farms. Once that happens it is no longer profitable for cybercriminals to use their botnets for mining since difficulty is so high they earn very little and because of that they are more likely to switch their botnets to other "traditional" cybercrimes such as SPAM and DDoS.

It’s not early days for it, I feel it’s been done and done and failed every time so far. I think the fundamental problem is most useful work, which we can define as work that can be used in another context rather than just validating difficulty — eg protein folding, is very difficult to reason about the energy requirements of a “valid solution”, and linearly scaling the difficult to adjust to work magnitude. Useful work tends to be expensive to validate also, whereas verify for SHA256^2 POW is trivial. Ideally you want easy to reason, linearly scaling and highly asymmetric create/validate.
The problem of estimating algorithmic complexity comes to mind. Easy to verify, hard to improve.
I'm no POW fan, but validating transactions is one of the most "useful" things to do.
Bitcoin mining doesn't validate transactions. It establishes a consensus on the ordering of valid transactions; invalid transactions are rejected even without mining.