I'm looking for a utility that ensures that a file's data integrity is maintained, ideally in a similar way that the ZFS filesystem handles data integrity:
Keep two or more copies of the file, checksum every 4K block, and then fix bit corruption over time when it's detected (when the block-level checksum of the file being read differs from the archived checksum for the block, go to the other files to see if their blocks match and use the first one that has the correct checksum, fix the wrong one while we're at it).
Traditionally, you can perform a checksum of the entire file and just detect if the new checksum doesn't match. But block-level checksums would allow for both copies of the data to be corrupt, and so long as the corruption isn't to the same block in each file, the original data can be recovered without error. That is a big advantage.
The OS can be either Windows 10 or Linux.