Is that this definition of Problem appropriate?
Sure.
If sure, is it correct to consider Problem as a kind of proportion or ratio?
Sure, it’s what number of occasions tougher present blocks are to mine than blocks within the first problem epoch have been.
For reference, problem 1 corresponds to (very near) 4295032833 hash makes an attempt per block. It has a goal of (precisely) 26959535291011309493156476344723991336010898738574164086137773096960.
Block 822627 has a goal of (precisely) 374406027949793378682501776760424667692437142927048704.
The ratio between these two big numbers is (roughly) 72006146478567.1. That’s the problem of block 822627. It’s roughly 72006 billion occasions tougher to mine a block in the present day than it was in January 2009.
And if it’s a floating level quantity, what’s its precision?
No matter precision you calculate it to. Typical implementations will use a floating-point knowledge kind within the computation, which vital limits its precision.
Nevertheless it’s actually simply the ratio of two big numbers. You may calculate it to a lot greater precision too. Block 822627 has problem
72006146478567.09941095874369093485414495333341140374503764945604440…
That a lot precision is not wanted, as the problem is basically simply used for presenting the hardness of mining a block to people. Internally the software program makes use of the goal, which is actual.
Lastly, might somebody please affirm the system used to check a hash towards the Goal, to see if it mines a sound block?
The requirement is: block_hash ≤ goal (the place block_hash is the block hash interpreted as 256-bit little-endian quantity). The decrease the goal is, the tougher it’s to land beneath it. In a approach, the problem is a measure for “goal lowness”.
For extra sensible use, how would you signify this system utilizing Problem as an alternative of the Goal?
Maybe one thing like block_hash_diff ≥ problem, the place block_hash_diff is the ratio between the primary block’s goal (given above) and the block’s precise goal?