"An Analysis of Compare-by-hash"

Abstract

Recent research has produced a new and perhaps dangerous technique for
uniquely identifying blocks that I will call compare-by-hash. Using
this technique, we decide whether two blocks are identical to each
other by comparing their hash values, using a collision-resistant hash
such as SHA-1. If the hash values match, we assume the blocks are
identical without further ado. Users of compare-by-hash argue that
this assumption is warranted because the chance of a hash collision
between any two randomly generated blocks is estimated to be many
orders of magnitude smaller than the chance of many kinds of hardware
errors. Further analysis shows that this approach is not as risk-free
as it seems at first glance.