Human Powered Bitcoin Mining
Today, bitcoin blocks are mined using expensive and energy-guzzling custom hardware.
Here I present a tool that will allow anyone to mine bitcoin using the most power efficient computer known- the human brain. If you have access to a web browser, then you can start mining and potentially earning block rewards today using HashHunt.
What it is
HashHunt is a web app that presents the bitcoin mining challenge in a game-like format that is easy for humans to understand and interact with.
How it Works
Go to the website…
(Note that this website intentionally uses normal HTTP and not HTTPS for reasons explained here.)
Start clicking on numbers and watch how the pattern of symbols changes.
Your goal is to find a combination of numbers that gets all of the symbols to turn into hash marks. When this happens, it means that you have successfully mined a bitcoin block. If you do win, you will see a pop-up telling you how to claim your block reward payment…
You can learn more about playing HashHunt by clicking on the “more info” link in the upper right corner of the HashHunt page.
What am I looking at here?
The numbers at the bottom of the board show the input to the proof-of-work function.
The symbols at the top of the board show the output of the proof-of-work function.
When you click on a number and toggle it on or off, you are changing the input to the function, and the symbols above instantly update to show the effect that the change you made had on the outputs.
If you look carefully, you will see that each combination of input numbers always results in the same combination of output symbols (at least until you reload the page and start over). Play with this and think about it for a while.
When all the output symbols are hashes, this indicates that the current inputs successfully “solved” the block.
Once you solve a block, then HashHunt takes care of the details of submitting it to the bitcoin network and showing you how to check if it was accepted.
If your solved block is accepted by the bitcoin network, then you will get a “block reward” payment for that block. HashHunt will display information on how to add this reward to your bitcoin wallet of choice.
Can you be more technical?
When you load the HashHunt page, it generates a new random bitcoin address that will be used to receive the block reward payment in any mined blocks. This address is printed to the browser console window for reference.
Each of the input numbers represents one bit of an 80 bit “extranonce”. Each time one of these numbers is toggled, HashHunt…
1. creates a coinbase payment transaction to the above address
2. appends the extranonce bits to this coinbase transaction
3. hashes this coinbase transaction
4. inserts this hash into the merkle root of a prospective block header
5. hashes the prospective block header
6. shows the bottom 160 bits of the resulting hash on the symbol wheels
7. checks if the resulting hash is lower than the current network target value
The 16 different symbols on the wheels represent the 16 different possible nibble values (0-15), and the hash symbol (“#”) specifically represents the value of zero.
If all the symbols come up hashes, this indicates that the bottom bits of the SHA256 hash of the block header are zero, so it is therefore less than the current bitcoin target value, so the block is solved. Note that HashHunt also will detect win cases where, due to low difficulty, the hash is lower than the target even if some of the bottom nibbles are not zero.
If the block is solved, then HashHunt submits the block to a dedicated HashHunt bitcoin-core full node, and then this node submits the block to the bitcoin P2P network.
HashHunt then displays a pop-up page to the user giving them the private key for their payout address in WIF format so they can import it into their wallet.
HashHunt also maintains a websocket connection to a node-js server that notifies it whenever the block height changes so it can start a new round using the hash of the newly published block.
HashHunt is open source and you can view all of the code on github.
You can also just load up the HashHunt page and right click and pick “View Source”.
Q: Is this a scam?
A: This is not a scam. If you successfully mine a block and carefully follow the provided instructions to add the reward address to your bitcoin wallet, then you will receive a bitcoin block reward.
Q: I still think it is a scam.
A: This is not a scam. I put HashHunt under the josh.com domain so you can see where it is coming from. I’ve owned josh.com for 25 years and have been writing about bitcoin tech there for many many years.
Q: This still feels like a scam.
Q: My uncle says this is a scam.
A: Nothing personal, but your uncle does not understand how bitcoin works and he does not understand how HTTPS works. Find someone who does and then ask them.
Q: I asked my friend’s husband who teaches Python at the community college and he says that this is a scam. He says that there is no way this can work since you need expensive dedicated hardware to mine bitcoin.
A: While you certainly can buy expensive hardware that can compute bitcoin hashes with remarkable speed, your web browser has more than enough power to compute hashes using the same algorithm those expensive boxes use. And it can compute them faster than you can click on the numbers, so you are the bottleneck rather than the computer.
Q: What is to stop you from stealing my block reward when I solve a block?
Q: Professional bitcoin mining rigs can generate trillions of hashes per second. How can I possibly compete with them by clicking on a few numbers per second?
A: By working smarter not harder. Mining rigs work by blindly trying to guess winning nonces. While it is true that you can solve a Sudoku by blindly filling in the whole board with random numbers over and over again until you eventually stumble on a solution, it will take you a very long time to do it this way – even if you can try millions of moves per second. But this is not how humans solve Sudokus. We are smarter. We look for patterns and try to build understanding and models that help us to narrow the search space of possible moves down to ones that bring us closer to a solution. HashHunt is designed to present the bitcoin hashing problem in a way that encourages you to look for these patterns and models.
Q: bla bla bla lifetime of the universe bla bla bla.
A: Anyone who brings up the lifetime of the universe when talking about bitcoin either does not understand bitcoin, does not understand probability, does not understand the history of technological progress, or does not understand what “understanding” means.
Q: It is mathematically impossible to find a pattern or model that will narrow the SHA256 search space.
A: If you can prove this claim is true, then you are the first person in human history to prove that P≠NP.. This would be very impressive since the brightest mathematicians have been working on this problem for quite some time.
Q: I meant that it would be impossible for a human brain to find a pattern or model that would narrow the SHA256 search space.
A: I would not be so confident. The human brain is an impressive neural network with ~100 billion neurons and has been specifically optimized for finding patterns and making predictions. Neural networks with far lower complexity than ours continue to surprise us with their abilities to learn models and “understand” their inputs. History is filled with examples of problems that were thought to be too hard to understand… until someone discovered a new model to view them through.
And remember, to mine bitcoins you do not even need to be able to invert the SHA256 hash function. The problem is massively easier than that. SHA256 was designed to prevent you from being able to create an input that results in a specific hash output, but because of the way bitcoin uses SHA256 you only need to be able to produce a hash that falls within a wide range of values. There were more than 7*1023 possible correct hashes for the block being mined while I was writing this, and you only need to find any one of them to solve the block. I have a strong suspicion that it is not twice as hard to find an input that maps to a specific hash out as it is to find an input that maps to either one of two hash outputs. I think it is probably even much, much, much easier than just 7*1023 times easier to find an input that maps to any one of 7*1023 hash outputs than it is to find an input that matches to a single hash output (which would be the preimage attack that SHA256 is actually designed to prevent).
You also get to as many tries as you like, so a heuristic that lands the hash in the winning range, say, 0.01% of the time would still be practical for mining.
People currently spend millions of hours per year searching for solutions to solving video games faster. If they invested some of this effort towards finding an edge in HashHunt then maybe they could potentially make some money (or, at least, some bitcoin).