Explaining Bitcoin Proof of Work Mining to Someone That Knows Nothing About Bitcoin or Mining


10 min read
Explaining Bitcoin Proof of Work Mining to Someone That Knows Nothing About Bitcoin or Mining

Despite the wealth of content online addressing this very same topic, I felt that it was necessary for me to put out my own rendition because, obviously, its bound to be better than anything else that existed prior by several orders of magnitude.

Just Kidding

Namely, I want to ensure that:

A) Individuals become increasingly more informed about blockchain and how it really works (there are many entities in this space passing themselves off as derivatives / blockchain, and they are nothing but)

B) I want everyone to gain some empowering knowledge about how blockchain works. It is simply not enough to grasp the concepts of wallets, keys etc., and then go on about your life. I wish it were and many will pretend that it is because they don't want to intimidate others from entering into the space out of fear that it will be too difficult or 'technical' for them to understand, so they either over-simplify, omit or under-explain core facets of the protocol. When that happens - everyone loses.

Librehash Core Philosophy in Publishing Pieces Like This

Key Philosophy: Treat people like they're smart while explaining things to them like they're dumb.

That means that we should not entirely avoid explaining something for the mere fear that the concept will be "too difficult" for other to wrap their head around.

Simultaneously, if we have a true grasp of the subject at hand (and its nuance), then we should be good stewards and break it down into digestible parts as much as we can, so that we can ensure that people from all sorts of different backgrounds, even within identified gender, 'race', religion etc., can understand it semantically (because diversity runs way deeper than a classification).

That doesn't mean dumb it down in complexity for certain demographics but rather, we should do our best to ensure that:

  1. Content is Localized: The content is being effectively translated into every language. I'm certain that I could go to Google Translate (or some other service) right now, copy & paste everything there, then hit 'translate'. When I'm done, I can get my translated copy (let's say I decide to do German here), then publish it on my site and say, "Hey, look everyone! I made a guide in German!" --- But doing so would be a disservice to German people as a whole because, it is highly likely, that the rough translation from English straight to German will provide a much less nuanced, crude and semantically confusing language structure to those Germans attempting to learn. That puts them. Thus, this must be addressed effectively (and indeed it is).
  2. Analogies are Universal: What is popular among one group of people may not be for others. Or perhaps a certain thing is popular between both groups, but they have different names for the same phenomenon. Let's look at the beverage, 'Sprite'. Some would call that type of beverage a 'soda' in the United States while others may refer to it as 'pop'. Perhaps in other places around the world, carbonated drinks like Sprite aren't very popular because 'tea' is all the rage. We could extend this sample infinitely. The main point here is that we should avoid even including 'Sprite' in any of our simplified examples or analogies if we want to make sure that our explainers can resonate with as many people as possible.
  3. Technical Concepts Are Properly Explained Where Appropriate: Whenever defining / breaking down a certain technical idea / concept, there's a high chance that one will need to use other terms within that explainer that are also unfamiliar to the reader (and more than likely should be). For example, if you're writing an article about how 'API' works, then it would be wise to define other related terms like, 'query', 'polling', etc. ; a failure to do so may undermine the entire effort.
  4. The Documentation Does Not Contain 'Invisible Steps': This may be the number one problem in all of tech documentation (at any level), but we must be very explicit and verbose in instructions. Not so much so to the point to where the reader feels that their intelligence is being insulted but...in my opinion, it's always better for you to over-explain than under explain. I've personally never heard someone detail how their excess knowledge on a particular topic put their ability to execute at an inherent disadvantage

Basic Pitch For Using Bitcoin

If you're reading this, then you're probably at least knowledgeable enough about Bitcoin / blockchain in general to have received the classic membership pitch:

  • "Bitcoin is transparent"
  • "There are no trusted third-parties"
  • "Decentralization"
  • "Peer to Peer"

Etc.

Fun Fact: Did you know that Satoshi never mentioned the word 'decentralization' once in the original Bitcoin whitepaper?

The exchange that had to be made to imbue such characteristics into the network was the creation and maintenance of a "public ledger".

The twist here is that there can't be one source of truth for the ledger. That would just make it a regular database.

Where Bitcoin Derives its Value

The exchange that had to be made to imbue such characteristics into the network was the creation and maintenance of a "public ledger".

The twist here is that there can't be one source of truth for the ledger. That would just make it a regular database

The game changer introduced by blockchain is its deployment of a distributed architecture underpinning the network:

How Do We Know Which One is Legitimate?

This is a good question because - on its face - it appears that we've described something semantically that just isn't impossible.

Blockchain proposes that it is:

Trustless: *So that means that there is no entity that we can go to and ask, 'Hey, Johnny and Sarah both gave me two different versions of the Bitcoin blockchain, which one is the 'right' one?'

Decentralized: There is also no central database or repository that one can reference either.

Distributed: *Technically, every individual (node) on the network has their own version of the blockchain ; so, in theory, there could exist a reality where every single entity has a unique view of the "true" blockchain at one time (this would mean parsing between thousands of alternate realities / possibilities)

But how can these things be true along with the idea that we can state with an overwhelming level of confidence that the network, as a whole, can come to some sort of consensus about what the 'right version' should be?

And to add some more fuel to those flames, how can we go so far as to say that not only will the network be able to come to a consensus, but that this consensus will reflect an "honest" version of events (i.e., all alleged transactions on the chain actually happened ; no forgeries, double-spends, etc., transpired)?

Resolving the Quandary

The answer to all the questions posed above can be summarized in just one world:

Rules.

Explain Further

The best way I know of to break this down is through example.

This example was designed to be a mere addendum to this breakdown. But after some refining, I believe that example is the best example that's ever been given for how mining works (assuming the audience knows nothing about blockchain, Bitcoin, cryptography, hashing or perhaps computers, in general).

In other words, your great-grandfather that served in World War Two that only sleeps and watches episodes of 'I Love Lucy' on repeat on his colored TV from the 50s should still be able to wrap his head around how Proof of Work functions (assuming that his mind is still sharp enough to remain alert and lucid throughout).

Setting the Stage: Example

Let's say you're in a classroom with 20 other adults. Each adult in the room is just as educated as you are.

  1. Each of you gets passed a piece of paper and a pencil and is asked to solve the problem, "76 x 23".
  2. This is not a multiplication problem that many can do in their head very efficiently, but with a pen and paper, it's logical to assume that at least 15/20 of the adults in that room would be able to turn in a paper with the right answer on it.
  3. For good measure, let's say that everyone is allowed to use the calculators on their phone as well if need to.
  4. Now that number should jump to 19/20 people with the right answer.

Tying This All Together

What I described above in my example serves as a rough analogy for how the network can maintain a distributed architecture that is trustless.

That word 'trustless' is really underused by people when explaining the 'magic' behind blockchain, but its essential because it serves as the backbone for why Proof of Stake can never be considered actual blockchain (not a controversial statement, you've just been misled), but that's another story.

Still Lost?

Okay, so let's revisit that example for a quick second.

In that example above, I was creating a mock network...a protocol, if you will.

There were 19 other nodes on the network (apart from you).

Above is a picture that should give you a rough idea of how the seating structure of this classroom is oriented (its possible the teacher was on drugs when they set up this seating chart).

That aside, ask yourself one question briefly:

Did you need to consult with any of those nodes to figure out what the right answer to the math equation was?

No (hopefully)

Yet, despite that, you and most of the class still more than likely arrived at the same solution.

You also can rely on yourself 100%. You know without a shadow of a doubt that your answer is correct and you do not need anyone to tell you whether you're right or wrong.

Instead, the network is what ultimately determines the validity of your proposed solution ("solution to what?"; great question, keep reading along)

Sorry, need to make one minor adjustment here
That phrase at the bottom that says 'Send Award' is in an accurate location, but you don't know (yet) that you're actually in a competition with the other 19 people in that room. Whoever can glean the 'answer' first will receive a reward (which, of course, incentivizes you to continue completing these math problems because - after all - this is one hell of an easy way to get money....and as long as Bitcoin has an inherent value to it [trading at $11k+ at the time of writing], there's no reason why you wouldn't want to continue 'mining' if you're, indeed, a miner)

What Allows These Traits to All Exist Without Conflict?

Rules.

Simply put.

'But there were no rules in that example that was given above!'

If that's what you're thinking, then you are unfortunately incorrect.

'So where were the instructions?'

Imprinted in your memory - long ago during grade school at some point most likely.

Remember learning your 'times tables', how to count by a certain digit, 2+2 and all of that jazz? Well - you were learning 'proofs' (math is logic, after all).

The multiplication symbol itself is an operation - which means that it is a directive for how you can transform a string (i.e., integers - also known as regular numbers like 2, 3, 4, 5, 6 etc.)

Bitcoin Validation Works Much the Same Way

While there is no explicit math problem involved, there is definitely math being performed.

If you're a student of blockchain, then you know that the data included in each proposed block (sent over by the miners) is hashed (using SHA256).

So, accordingly, to perform a verification of the block itself, each node is essentially "doing math" on its end before 'turning in' their answers.

That's what makes the example analogous.

To stretch this even further, we know that the inverse of a multiplicative (multiplication) operation is division.

Therefore, to render a 'proof' for any multiplication problem we have, we just need to take the answer and divide it by one of the factors we multiplied.

1.) a x b = c

B) Thus, c ÷ b = a

or 

3.) c ÷ a = b

[Commutative Property, Remember?]

Imagine that the nodes always know (c & b) or (c & a) and it is up to the miners to provide 'b'.

But let's say that the miners don't have 'a' or 'b', they only have 'c'. And they need to guess which two factors are the 'correct' factors to end up at 'c'.

Obviously, we can make this problem harder or easier by adjusting the value of 'c'.

Another Example

Let's say that 'c' = 10.

Our job as miners would be easy in this case.

'a' and 'b' could either be:

A) '2' and '5'

or

B) '1' and '10'

Just one of two solutions.

This Problem Can Easily Be Made More Difficult

Okay, let's say that finding out the answer to the first one was a bit too easy...and we want to make sure that this will take you more time this go around to figure out the correct pair of values for 'a' and 'b' that for our 'c'.

Making 'C' More Difficult

This time around, the network has decided that this time around:

c = 823828938324791328327471348938743213749822139813928949213893981181103920230860220

This one will probably take a bit longer.

Conclusion

If You Understood Everything About, Then You Have a High-Level Understanding of How Proof of Work Works For Bitcoin

This may seem like a random article because, after all, isn't Bitcoin in desperate need of numerous questionable 'fixes' in order to resolve various issues with its scaling problems? (sarcasm there if you didn't catch on).

There will be many more explainers, guides, breakdowns, etc., as time goes on because there's no reason for us to stop now, but there's a hell of a lot of reason for us to continue pushing forward.

GO TOP