The Consequences of the Broken SHA1 Algorithm
One of the forte points of DLT is the high level of data security that it is offering which relies mainly on mathematical operations, generally known as hash functions, which is used in computing as a form of validation to see if the content of two documents is identical.
A hash function is a one-way cryptographic function which takes any size string of data, and through a mathematical algorithm, it produces an alphanumeric string which represents a fixed size output.
For a cryptographic function to be secure, it must be: collision resistant, hiding and puzzle-friendly. Now, why is it useful for the function to behave this way, precisely regarding the collision-resistance property. Hash collision is when two distinct values of input generate the same output after they have been hash digested. Given the mathematical laws that render the hash functions, nobody can find a collision because the possibilities of input sizes are infinite, but that does not mean in any point that collisions do not exist. By using the collision-detection algorithm, your computer would have to compute 10,000 hashes per second to find a collision. In other words, it would still take too long to calculate.
In September 2013, a cryptography researcher, Peter Todd, announced a bounty on discovering a SHA1 collision, in other words, breaking this particular hash function. The challenge involved breaking the code script that Todd created by submitting two messages different in value, but with the same hash digest value. This would grant access to the bounty address, making the solver able to move the 2.5 bitcoin bounty from one address to another.
On 23rd of February, Google/CWI team’s declared that they were able to create a hash collision through a 10,000 times more efficient method than just guessing each possible value.
The implications of the discovery for the cryptography that is underlying the blockchain technology are not of great concern, but it raised a couple of interesting points within the blockchain and bitcoin community as SHA1 is used to generate hash digest for commits. For example, an attacker could theoretically create two different versions of a code commit and would appear to be the same when two hash values are compared.
However, given the fact that SHA256 is a combination of multiple hash functions similar to SHA1 and also the vast number of computations still needed, the security and integrity of DLT is not yet affected. It is important to have this kind of bounties (on RIPE MD160 and SHA256) and discoveries that come with them in order to avoid the risk of jeopardizing the blockchain system.
In conclusion, Todd added: “If you claim that bounty, you better go spend your bitcoins pretty quick”.