Author

Topic: Could the Power of the Bitcoin Miner Network be Used Elsewhere? (Read 1348 times)

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
If miners want to divert half of their GPUs from the BTC network to F@H or SETI, they are welcome to do that.  But the BTC network has no reason to incentivise it since hashing is critical to the functionality and security of the BTC network, and those other computational activities contribute nothing to the network (contributing to humanity/science/curing-cancer is another thing).

Personally, I'd prefer people don't do this.  I'm already a little uneasy about the current security of the BTC network.  Right now, the global hashrate is 12,500 GHash/s, meaning that someone has to have 1-3 million CPUs or 40,000-100,000 GPUs to reliably attack the network.  While there is no single person who can own that much hardware, there are governments and botnets that control 1+ milllion computers.  We already know that people are using botnets to mine BTC, how long before one of the botnet owners figures out how to start double-spending and wreaking havoc on the network?

I'd like to figure out how to incentivise people to contribute more hashing to the BTC network.  Once the difficulty goes up another 100-fold, then we might have some computation to spare (though, people would still have no incentive).


hero member
Activity: 658
Merit: 500
The network absolutely is doing computation. If it stops computing what it's computing of course it could compute something else. It can't compute some other thing at the same time.
if there was a way to force miners to solve another problem while hashing (think SETI, folding@home) then the total amount of work would go down, but if that computation could not be avoided, the difficulty would also go down to compensate

kind of like reCAPTCHA, except reCAPTCHA can be easily gamed by submitting false work for the word that is unknown (usually it's trivial to figure out)
legendary
Activity: 1246
Merit: 1016
Strength in numbers
The network absolutely is doing computation. If it stops computing what it's computing of course it could compute something else. It can't compute some other thing at the same time.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
The question is, where are the passwords coming from that will be cracked?  And how do we adjust the difficulty when more or less computation joins the network?  Make up big passwords to crack?  But someone needs to create the password for the network to crack it, and this gives them an advantage to solve blocks faster than others (insider information).

Also, whose passwords are we cracking?  Some people are going to want to know the answer and many won't believe you:  how do we even know that we're cracking passwords of "bad" people, and not helping China hack into the email accounts of political dissidents?  Then, you are inviting people to have political disagreements with the BTC network, leading to demonization of Bitcoin, protests, lobbying, etc.  

I bet that was more of a response than you bargained for when you threw out "password cracking" Smiley

legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Password cracking comes to mind.  Google Whitepixel for more information on that.

I thought about that but the nonce avoids it I believe
legendary
Activity: 1260
Merit: 1000
Password cracking comes to mind.  Google Whitepixel for more information on that.
full member
Activity: 318
Merit: 116
The mining is not arbitrary waste-of-time kind of work.  It serves the purpose of securing the network, and cannot just be replaced with other activities.  The biggest weakness of Bitcoin is if any one entity, or group of cooperating entities control more than 50% of the entire global computation on the BTC network.  This is because, in order to execute a double-spend, you have to be able to write blocks faster than the non-cooperating nodes.  In this sense, when we talk about "difficulty", it's not just difficulty in generating coins, it's also difficulty in attacking the network.  

If a bunch of miners were to switch to some other problem, even temporarily, that would open the door for someone with a lot of resources to take a shot at double-spends, which could do quite a bit of damage to people's overall confidence in BTC.  I'd say that no one has the resources to do this at this point, but you mentioned governments, which are probably the only entities left with "feasible" resources to do it.   So the best way to defend against the attackers/governments is actually to do exactly what we're doing already, which is mining as fast as we can to max out the difficulty.

Now, the question has come up before, is there any other kind of computation that could serve the same purpose as hashing for the BTC network, but also be useful in some other application?  There's two criteria for this:

  • (1) The "problems" to be solved must have flexibility to impose arbitrary difficulty of solving -- so that the network difficulty can be calibrated to the global computation speed
  • (2) A solution to the problem in (1) must be extremely fast to verify.

Hashing to a set number of zeros is great because the target hash can impose just about any level of difficulty on the network, and while it takes 2^52 hashes for you to find a block with 52 zero bits in front, it takes everyone else exactly one hash to verify you found a solution.  This is why it's called a "proof-of-work" security.  It requires a ton of computing power to produce a valid solution, and easy to "prove" that you did it.   If you can find another problem that has this kind of flexibility and solve/verify relationship, it might be possible to use it.  But it would most definitely be in another blockchain... and lord knows we have enough of those already...


I really appreciate your detailed response. I know that the work of the miners is not for naught - it provides the essential and elegant solution to network security - I was just wondering if the power could ever be re-directed to some other purpose. Thanks again.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
The mining is not arbitrary waste-of-time kind of work.  It serves the purpose of securing the network, and cannot just be replaced with other activities.  The biggest weakness of Bitcoin is if any one entity, or group of cooperating entities control more than 50% of the entire global computation on the BTC network.  This is because, in order to execute a double-spend, you have to be able to write blocks faster than the non-cooperating nodes.  In this sense, when we talk about "difficulty", it's not just difficulty in generating coins, it's also difficulty in attacking the network.  

If a bunch of miners were to switch to some other problem, even temporarily, that would open the door for someone with a lot of resources to take a shot at double-spends, which could do quite a bit of damage to people's overall confidence in BTC.  I'd say that no one has the resources to do this at this point, but you mentioned governments, which are probably the only entities left with "feasible" resources to do it.   So the best way to defend against the attackers/governments is actually to do exactly what we're doing already, which is mining as fast as we can to max out the difficulty.

Now, the question has come up before, is there any other kind of computation that could serve the same purpose as hashing for the BTC network, but also be useful in some other application?  There's two criteria for this:

  • (1) The "problems" to be solved must have flexibility to impose arbitrary difficulty of solving -- so that the network difficulty can be calibrated to the global computation speed
  • (2) A solution to the problem in (1) must be extremely fast to verify.

Hashing to a set number of zeros is great because the target hash can impose just about any level of difficulty on the network, and while it takes 2^52 hashes for you to find a block with 52 zero bits in front, it takes everyone else exactly one hash to verify you found a solution.  This is why it's called a "proof-of-work" security.  It requires a ton of computing power to produce a valid solution, and easy to "prove" that you did it.   If you can find another problem that has this kind of flexibility and solve/verify relationship, it might be possible to use it.  But it would most definitely be in another blockchain... and lord knows we have enough of those already...

EDIT:  Actually, I shouldn't speak so negatively of new blockchains.  If someone actually produced a new blockchain that was based on solving a real-world, curing-cancer kind of problem, I think it would be very welcome.  The only thing better than securing the network is to also be finding cures for cancer at the same time!
full member
Activity: 318
Merit: 116
That's what I thought. The power is completely dedicated to mining.

If only that processing power could be tapped into....you'd have a pretty damn powerful supercomputer.

Here's another question, then: if some government agency tried to shut down Bitcoin, could the bitcoin network voluntarily work together to retaliate against the attacker, with ddos or some other method? Are they linked in that way already, or would some other connection/registration have to happen?
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Short answer: no

Basically it's because mining is not computing, it's just playing with luck
But I leave a pro explaining that in a correct english
full member
Activity: 318
Merit: 116
I was just reading about how CERN is recruiting volunteers to allow their computing power to be used in a
Cloud Computing network to assist CERN in finding the "God Particle." I'm not sure how that would work, except I do know that random people around the globe are allowing CERN to essentially tap into their computer's processing power to create a cloud super computer.

I then though of the Bitcoin miner network, which uses massive processing power. Can this power be directed towards the use of some purpose other than mining simultaneously, or does the processing power begin and end solving the blocks?
Jump to: