A Proof of Useful Work for Artificial Intelligence on the Blockchain
arxiv.org
arxiv.org
The issue is economic, not technical. If I can sell the “useful” side effect of mining, then I can subsidize any attack I perform. The actual security of the network is only the work that has non-reimburseable costs.
a) it is economically rational to mine on the correct chain
b) there are substantial economic net costs to mining on a wrong fork of the chain (and these are high enough that it is prohibitively expensive to mount an attack which would fool people as to what chain is correct)
Right?
Finding primes aren't a great example. ... but unfortunately, they are the best example we have so far.
Also, I think those large primes do have economic value (https://en.wikipedia.org/wiki/Largest_known_prime_number#Pri...). I'm not sure if that's the purpose of PrimeCoin or who would get the prize, but they nonetheless have some economic value.
To see this, note that all POW and POS chains have "difficulty" functions that are actually just cost functions in external markets (hashpower or capital). What secures the difficulty of the attack in all casds is the supply curve of some block production factor in an external market.
1. Buy sth for $100 end sell for $200
2. Buy for $1mln end sell for $1 000 100
Option 1. seems much more accessible.
The opposite of this is true, as you are talking about "centralised" in the context of "a smaller group of people" and not "a smaller cluster of attacking machines". The most sophisticated adversaries are the hardest to deal with.
For example, if there was a pure public good project that could provide random input / output, then it would still work.
Primecoin is an example of that. While finding those specific primes is of extremely minimal value, it would still work even if solving those primes had considerable value - because it would be equally valuable to all.
For example, if it were solving an incredibly complex mathematical or scientific problem that benefits all of mankind - then the incentive is equal for everyone.
If you come up with something useful, but noone is willing to buy it at any price, what's your basis for claiming that it's useful?
It also happens that both these conditions (intellectual product + must be published freely) are the typical approach of PoW blockchains.
If there is a lot of work but one worker is performing over half the work, that worker can compromise the network.
If there are a lot of workers but little work, a new worker who is more capable can compromise the network.
https://org.saito.tech/saito-economics
The approach works exactly because money is guaranteed to be pulled away from the block producer. Given that it always costs more money to produce blocks than attackers can earn from them, only honest nodes (who spend other people's money) have am incentive to do so. Cost of attack is the money attackers cannot get back if they spend their own money to censor the network. Check it out!
Others have given the example of PrimeCoin which is asymmetric, but somewhat useful as it discovers prime numbers.
A great metaphor for this is a Sudoku puzzle. It is much harder to solve than it is to check the solution.
(but I only glanced at the paper quickly, if someone has the time to do a thorough analysis, please feel free to explain why I'm wrong)
Decentralisation: Their own paper states in 7.2 that "distributed solution will never be as efficient as running the whole training on a local machine". What incentive for buying into this would I have here then? I occasionally use cloud training if what I'm doing exceeds the capability I have locally. As a client I don't particularly care about the internal infrastructure of whoever I pay to do that (with small exceptions like the next point).
Enhanced security: Security that's only required because of me using a blockchain solution? 7.3 starts out with "We assume that the majority of participants is honest.". That's an assumption I can make today with the cloud providers I pay for my training time, without any blockchain overhead. Nothing in that section seems to be related to real world security concerns, e.g. trusting random mining worker nodes with my - potentially proprietary - training data and intermittent results. 3.4, the outline of a task definition, also specifies that I basically provide the full model and really convenient formats to steal all of that away from me. I think the major risk factor of using the idea outlined in the paper doesn't have anything to do with a revolution of cryptocurrencies, but one of the corporate espionage in the ML world it would enable.
Right incentives: For me, as a client, a theoretical 30% savings doesn't outweigh the above (and all the ancillary considerations like infrastructure, ...). If any of their economical analysis is off, they just generate more people going back to bitcoin mining on the other side of the equation. Not sure what the right incentive is supposed to be here. This might be a good system to proove useful work but somehow I don't see the text convincing the reader that the system itself is useful, maybe I missed it.
This is a pretty broad statement. Verifying a shortest path or something like this would not be cheap to verify
(2) Having a 'verifier' is how mining pools work already, so it's not adding complexity or anything else.
That said, I didn't read the paper either, but I would say thinking about how to harness the massive resources being used to mine crypto these days is nowhere near a wasted effort. At some point, someone is going to look at all the things that have been proposed and the way some network is set up and it will click.
Congrats you've reinvented proof-of-work in an obfuscated form.
This paper repeats the errors of all previous proof of "useful work" papers from the past. I'd recommend that people actually take a look at discussions on bitcointalk, IRC channels like #bitcoin-wizards, and Bitcoin mailing lists to learn about what has already been figured out for all these things.
1. Rent a million T/GPUs.
2. Send a request to the network for the jobs.
3. Solve my own business problem.
4. Reorganize the blockchain to double spend my coins on an exchange.
Sounds like a clear win/win. Nobody could prosecute me either because it's not legal tender.
Edit: I see they address this, claiming 30% cheaper than cloud services and better ROI for miners than Bitcoin. That said, wouldn't it still be more efficient to skip the blockchain stuff and just have a marketplace where people with tasks can rent time from participating devices and pay with whatever currency?
On another note, digging in closer, the proposed training scheme (Section 4.3) sounds like it would be incredibly inefficient for any large neural models - you're computing your own updates via gradient descent, but also getting compressed updates from peers on the network, and then broadcasting your own updates out. For reference, at work I might be training a model with, say, 30M parameters, and I get about 4.5 training iterations per second on a GTX 1080. What would that drop to with peer broadcasting added in?
They mention only sending weight updates that under/over-flow a certain value, is that enough to avoid, e.g., a 5x drop in training speed? Given that training time is already a big bottleneck for ML work, this seems critical. Section 7.2 seems to address this, referencing Supplementary Materials (Appendix F). The numbers there don't look great - with the optimizations they mention, for GPU timing in Figure F.3 it looks like local training ops account for about 21ms, and the protocol overhead is something like 100ms. I also don't see an apples-to-apples comparison of "here's how long this example takes to train locally vs. with this protocol", which isn't a good sign.
Edit: I think I understand now; training is deterministic given the nonce and the winning entry is verifiable based on that. You don't have to verify the other entries, because there is no incentive to cheat if you don't win.
1) To make it distributed
Have a set of institutional (eg. Ivy League University Labs) generators that publically post their "Work Units" on their websites and miners attack these problems in round robin fashion.
2) To prevent pre-computation attacks
Have a problem space that is so vast it would be worse than lottery ticket level foolish to try to precompute a solution. Then use a secure hash algorithm seeded with data from the last block to randomly select the "Work Unit" on a particular lab website to work on.
3) Uneven work cost / solution convergence
Have a set of objective pseudo metrics for distributing rewards. I'm trying not to be too coy but there are definitely computational problem domains where you could 'bernoulli' control reward frequency and still make useful work progress.
All Proof of Work is useful to those who pay for it. Proof of Work does not reward "the most wasteful" producer, if that were true a bitcoin miner [A] with an inefficient HVAC system, who leaves the lights on, and has chips with copious amounts of Joule heating would be rewarded more than a [b] lean PUE, capitally-efficient miner which we all know is not the case.
Producing digital "fraud armor" is valued by systems that can only rely on digital verification in Sybil-attack prone networks (aka the entire real-world environment where one needs to interact with entities outside of a trust circle). Be wary of old, dated, reductive, "small game" arguments that laundering the fraud/security costs of vetting to other systems and then exclude those vetting costs; they don't count as "being more efficient".
You likely encounter fraud Proof of Work but that you have no option but to trade your valuable brain time. A Captcha is a fraud and congestion control mechanism. PoW critics claim that since they push all of the verification costs from the center to the clients that it's an efficient solution (when likely most would use reusable value to avoid the captcha -- say a money).