Using blockchain "mining" to drive AI


#1

After the recent discussions about SingularityNet and the pairing of blockchain and AI, an interesting thought occurred to me. The concept of “mining” could potentially be applied to generating the computing power to drive a “selective breeding” strategy.

The idea would be that the miners would be part of a network that is running an algorithm to generate and score mutations in the AI implementation. When a mutation results in a verifiable improvement to an AI’s overall intelligence, that would generate a new block with some newly minted coins as a reward. This would help solve one problem that I have with my current long-term project, which is how to pump more computing power into the system to speed up the evolution process without breaking the bank.

Unfortunately I don’t have a lot of experience with blockchain technology myself, so I may need to reach out to some other developers with the right skills when my project gets far enough along.


#2

Mining bit coins already consumes vast amounts of electricity around the world, if would be great if some more tangible goal could also be included such as Folding at Home:
http://folding.stanford.edu/

There was an idea put forward that if great open source hardware CPU designs where developed then the cost of compute would fall dramatically. The high end chip you currently pay $4,000 or $5,000 for in reality only cost $5 to $10 to physically manufacture.


#3

Agreed. I am currently mining because the profitability is through the roof and can’t be ignored (at current demand, I am earning more from it than my real job). But the amount of electricity and processing power that I am burning just to hash random values is a real concern. If all that power could be solving useful problems at the same time, I wouldn’t feel nearly as guilty…


#4

I did a little bit of digging, and the properties needed for a mining algorithm to be an effective “proof of work” are:

  1. Solutions are difficult to find
  2. Solutions are easy to verify once found

Assuming the system generates a series of tests or challenges that can be used to score an AI’s level of intelligence, I think both properties could be met. Special attention would need to be given to any possible attack vector whereby a human could inject the answers rather than allowing the AI to generate answers.

Off topic, but I am intrigued by the Folding at Home idea, though. Do you know if there are relatively rare outputs of that algorithm which could be considered as “solutions”? (they don’t necessarily have to be useful in and of themselves, just rarely occurring and difficult to find)


#5

Ok, think I have a potential strategy for a “proof of work” algorithm that relies on Folding at Home. I know this is getting off topic, but the interest in a cryptocurrency that does this is surprisingly high, so I should be able to use that interest to help build out the essential elements of a blockchain that I can eventually use for my AI project.

Background details…

So the way Folding@home works, is that you install a client on your computer (builds are available for the major OS’s). This client software is closed source, however it is headless and interfaced via one of the separate UIs which are open source.

Folding@home can be configured to have one or more “slots”, which can be set to the CPU or available GPUs. These slots process elements of a work unit in parallel, and results are sent back to the server. The username and optional passkey do not appear to be associated with any type of formal account, but simply are fields used for attribution. Credentials for attribution are stored unencrypted in a config file read by the client, and can be easily changed by simply modifying the config file.

An API is available, which includes an endpoint to look up statistics by user. Multiple clients or different people can reuse the same credentials, and will appear in the statistics as the same user. Results in the statistics for the same username with different passcodes will be separated as different records (with the same username) in the results, and the passcode is not included in the results.

Proof of Work Strategy…

One possible strategy would be for each miner to install the mining software and Folding@home client on their computer (may also be possible to bundle the binary with the mining software… would need to investigate). The mining software node would start by generating a random username and passkey and updating the config file, then launching the Folding@home client to begin work. It would then ping the statistics API for the generated username until it returns statistics, and then hash the JSON string. If the hash has some rare properties (for example, if it starts with four zeros), then the node would stop the Folding@home client, generate a new random username and passcode, and restart the client.

The mining software would then generate a new block to be verified by other nodes in the network. The details for verification would include the username and the hash. Clients would verify the block by retrieving statistics for the username from the API, hashing them, and verifying the hash is correct. In the case of duplicate usernames in the API results, then each result would be checked. If any of the results hash correctly, the work is verified. Since a passkey was specified and not shared, this would make it impossible for a rogue node to invalidate a block by processing additional work units onto the record.

This strategy isn’t complete, as there is an obvious attack vector – a rogue node could just troll and hash the statistics to find good hashes without actually doing any work itself, and try to report them before the originator node. Solving this may require working with Stanford to make some modifications to their system (such as an ability to make statistics private unless queried by username directly). But it is probably a good starting point.

I’ve already got several folks who are interested in contributing to this project, so I’ll probably set up a team on GitHub where we can build out the block chain for the “Folding at Home Coin” (will need a better name…) If anyone here is interested in contributing, I’ll post a link once I have it up.


#6

@Paul_Lamb, how far did you get with your proof of work strategy? Are you still working on it?


#7

I’m sure you know what motivates miners is the monetary value of the coins they receive for mining. Or at least the belief that the coins will someday be valuable. They often need to reach ROI on their equipment or so fourth. I’m sure you also know mining coins in general is slowly falling out of favor as third generation non-mineable coins such as NANO boast substantial benefits over mineable coins like BTC such as instant and feeless transactions.

Just curious, are you planning on eventually bringing value to your “Folding-at-home coin” so the coins might actually be worth something someday or is it geared more to be a charity service like Folding At Home itself and thus the coins are intended to hold no value.


#8

I wish they would hurry up and make the switch.
I want the high-end Nvidia hardware to get dumped on the market for cheap liquidation prices.


#9

Yes, I completed a proof of concept Folding at Home POW. However it occurred to me that if it were successful, then I would likely have difficulty competing with it when I want to deploy my AI POW version. I’m still debating whether to continue working on Fold (which I was planning to call the project). I could potentially use it to raise capital which would give me more free time to focus on AI, but would be hard to compete with it later.

No, I don’t think that is a workable strategy. Anyone who wanted to operate charitably would simply run the Folding at Home software itself (the coin would add no value).

In order to stand out from the hundreds of other alt coins, this one will need to solve known problems of existing crypto-currencies, and bring more than just one solution together onto a single platform (versus focusing on solving just one problem). I’ve spent some extensive time thinking through a lot of problems and drawing up solutions for things like peer-to-peer mining pools, true anonymity, off-chain micro transactions, block chain sharding, and user experience (clean UI’s and effective dash-boarding).


#10

Current best Deep Learning “AI” require massive training data before they can be tested. Current best babyborn ¬A"GI" require years of sensory input and social interactions with peers before they could answer a quizz.
How do you picture an easy to verify step ?


#11

What I am planning to use this for specifically is a selective breeding system where thousands of AI “babies” are given a series of challenges to score their level of intelligence. When a more intelligent variation is found, it is the prototype for following generations.

The miners, for example, would be generating “babies” and scoring them to find more intelligent ones. This task is difficult. Once an intelligent “baby” is found, it is relatively easy to verify by everyone by running the challenges against it to see if it actually has the score claimed by the miner who generated it.

Also, forgot to mention, that offspring will have inherited memory from their parents. This is an requirement that I am still working out, but actually fits fairly well with how HTM works.


#12

Oh alright.
Wouldn’t this restrict what is evolvable to parameters tweaks such as learning rates ? As soon as connectivity rules could change, since LTM is nothing but those very connections, you’d lose almost everything, right ?


#13

Well, it certainly does limit what you can change in a single generation, yes. But I wouldn’t say basic rules could never be changed. Instead, a new system with new basic properties would need to evolve as a supplemental component which over many generations could eventually replace an older system. Eventually older system could become vestigial and discarded, or it could adapt to serve some new purpose.