From Gnutella2
Jump to navigation Jump to search

Tiger-Tree Hashing

Tiger-Tree Hashing is a way of verifying that small pieces of a file are valid, and free from corruption. Without a system such as TTH, an application would be unable to locate where corruption was occurring in a file, and would not be able to repair the errors.

In a tree hash, a file is broken up into small pieces, and each small piece of a file is hashed. These pieces are divided into sets according to some simple rules, and the hashes in each of these sets concatenated and hashed again. The process can be repeated some number of times (hence the diagram of a tree), until there remains one hash, called the root hash.

Refer to the THEX protocol for in depth infromation about Tree Hash EXchange and tree hashes in general. Refer to the Tiger Hash web page for information about the Tiger Hash algorithm. Refer to the TigerTree project page on sourceforge for the specifics on how the tiger hash algorithm has been implemented into a Merkle hash tree structure to create 'Tiger-Tree' hash sets.

Note that when encountering the word 'Tiger-Tree', an author may sometimes be referring to the Tiger Tree root hash, or at other times the entire hash tree structure.