Hash Structure Observatory

Hash deviations are being systematically analyzed across varying conditions. We thank the large-scale GPU cluster for its support. If there are any additional hashes you would like to have analyzed, please don't hesitate to reach out.

Our purpose is to find weaknesses early and turn them into opportunities for improvement. Preemptive action is "the key". Thanks!

Why did we begin analyzing hash behavior using a large-scale GPU cluster?
Because if the hash value matches, the verification will definitely succeed, even if the public key and the signature were arbitrarily generated by an attacker.

TYPE Hash Bias threshold (values below this threshold are recommended) Bias Score (Displayed in the order of measurement) Note
UP Random only input (33 bytes), random is GetStrongRandBytes 4.6 3 5 4 6 5 8 3 5 1 0 4 No issues detected.
UP SHA256 from random input (33 bytes), random is GetStrongRandBytes 4.6 5 6 3 2 6 2 2 5 3 1 8 No issues detected.
MID SHA256 from random input (33 bytes), random is GetStrongRandBytes 4.6 6 5 4 5 2 4 2 7 4 5 2 No issues detected.
DOWN SHA256 from random input (33 bytes), random is GetStrongRandBytes 4.6 5 4 4 3 3 1 6 11 6 9 6 No issues detected.
UP Blake2s from random input (33 bytes), random is GetStrongRandBytes 4.6 5 5 6 9 5 1 4 4 3 3 5 No issues detected.
UP SHA1 from random input (33 bytes), random is GetStrongRandBytes 4.6 6 3 3 11 5 3 7 10 0 4 8
MID SHA1 from random input (33 bytes), random is GetStrongRandBytes 4.6 7 7 6 8 2 5 4 4 5 1 7
DOWN SHA1 from random input (33 bytes), random is GetStrongRandBytes 4.6 7 6 3 3 6 2 4 3 1 5 5
UP RIPEMD160 from random input (33 bytes), random is GetStrongRandBytes 4.6 5 5 1 5 4 7 4 5 2 8 4
UP Hash160 from random input (33 bytes), random is GetStrongRandBytes 4.6 3 4 4 2 4 4 5 8 1 4 10
MID Hash160 from random input (33 bytes), random is GetStrongRandBytes 4.6 8 6 10 4 6 5 4 3 2 5 6
DOWN Hash160 from random input (33 bytes), random is GetStrongRandBytes 4.6 5 7 5 8 6 3 7 7 4 3 3