Sorry then.
I've been learning cryptography by reverse engineering your code
Is it also so "trivial" when the final checksum is not 256, but e.g. 65536 bits? or 8388608 bits?
In order to get this, I'd xor each 256/512 bit hash into a different offset of the final checksum.
The offset would depend on some part of the input records (e.g. TXID).
Then, for convenience, I'd calculate and distribute a shorter hash (of the big "final checksum").
EDIT:
And, for extra security, I'd also feed the final hashing with the number of input records.