Note: All the hashes (checksums/digests/fingerprints)
are the same as above!
Same input e.g. 'Hello, Cryptos!',
same hash e.g. 33eedea60b0662c66c289ceba71863a864cf84b00e10002ca1069bf58f9362d5,
same length e.g. 64 hex chars!

(Crypto) Block with Proof-of-Work

Let’s add a proof-of-work to the block and hash.
and let’s start mining to find the nonce (=Number used ONCE)
and let’s start with the “hard-coded” difficulty of two leading zeros ‘00’.

In classic bitcoin you have to compute a hash
that starts with leading zeros (00). The more leading zeros the harder (more difficult) to compute. Let’s keep it easy to compute and let’s start with two leading zeros (00), that is, 16^2 = 256 possibilities (^1,2).
Three leading zeros (000) would be 16^3 = 4 096 possibilities
and four zeros (0000) would be 16^4 = 65 536 and so on.

That’s the magic of the proof-of-work.
You have done the work, that is,
found the lucky lottery number used once (nonce)
and proof is the hash with the matching difficulty, that is,
the two leading zeros 00.

In the first block the compute_hash_with_proof_of_work
tried 143 nonces until finding the matching lucky number.
The stat(istic)s for all blocks are:

In the first block the compute_hash_with_proof_of_work
now tried 26 762 nonces (compare 143 nonces with difficulty ‘00’)
until finding the matching lucky number.

Now try it with the latest difficulty in bitcoin, that is, with 24 leading zeros -
just kidding. You will need trillions of mega zillions of hash calculations
and all minining computers in the world will need all together about ten (10) minutes
to find the lucky number used once (nonce)
and mine the next block.

Note: For the first block, that is, the genesis block,
there’s no prev(ious) block. What (block) hash to use?
Let’s follow the classic bitcoin convention and lets use all zeros
eg. 0000000000000000000000000000000000000000000000000000000000000000.

Note: If you want to change the data in block b1, for examples,
you have to change all the blocks on top (that is, b2 and b3) too and update their hashes too!
With every block added breaking the chain gets harder and harder and harder
(not to say practically impossible!).
That’s the magic of the blockchain - it’s (almost) unbreakable if you have many shared / cloned copies.
The data gets more secure with every block added (on top), …

Blockchain Broken?

How do you know if anyone changed (broke) the (almost) unbreakable blockchain
and changed some data in blocks?
Let’s run tests checking up on the chained / linked (crypto) hashes:

All true, true, true, true. All in order? What if someone changes the data
but keeps the original (now fake non-matching) hash?
Let’s run more tests checking up on the (crypto) hashes by recalculating
(using nonce+prev+data) right on the spot
plus checking up on the proof-of-work difficulty (hash must start with 0000):