Because mining is only making proofs of work, and is well known in the crypto, I will try explaining you what it is exactly
In the PoW, we solve hashes. An hash is a deterministic cryptographical function that doesn't allow to retrieve original word.
For example, sha256(bitcoin)=6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b, but we cannot* retreive the bitcoin word from the hash.
*we can retrieve it by bruteforcing it (trying all possible combinations) - and some websites like this allows to do that, but it doesn't run if hashed string is too long (too much possible combinations for trying all)
I choosed using sha256, because it's the most known hash function, but there're many others like scrypt or ethhash
Because of one hash is easy to compute, all hashes aren't valid. For being valid, a hash has to match a difficulty. It's often represented as a number of zeroes, but I prefer representing as a target (if hash is under target, it is valid - else, it isn't). But there's still one remaining problem : target is a very long number and is hard to represent, so we represent difficulty as a shorter number (simplified difficulty). This number is : total possible hashes / total valid hashes.
For example, a difficulty of 4096 it an hex target of 0001000000000000000000000000000000000000000000000000000000000000 (isn't it a bit shorter ?)
It means that the miner will have to retry many hashes for finding a valid one (proof of work needs many work, it's logic)
Another thing with difficulty is difficulty multiplier. When difficulty is still too long, we use it, so instead of using 131072, we use 128 (isn't it shorter ?)
Problems of PoW
Proof of Work is the most used consensus model, but still has some problems :
- energy waste (giant mining farms aren't running with licorn rainbows)
- scalability problem (100 gwei gas price is madness)
- still doesn't run with publish0x likes (I would have more xD)
It is the end of this explanation.
If you learned something in, please give a like and a tip (thanks VERY MUCH)
And if I said a mistake (or forgot something), feel free of saying it in the comments