From the whitepaper:
To participate in the block forging process, an active account cryptographically signs the generation signature of the previous block with its own public key. This creates a 64-byte signature, which is then hashed using SHA256. The first 8 bytes of the resulting hash gives a number, referred to as the account’s hit.
Why do we need to hash the signature before taking the first 8 bytes?
-The output of a signature function is already 'random'
-It's not to make it more 'random', since if the signature output isn't random enough, the hash afterwards won't help
-It's not to adjust for length, since we only need 8 bytes