multihash icon indicating copy to clipboard operation
multihash copied to clipboard

Support for Tree Tiger Hash and Merkle Hash Tree

Open ivan386 opened this issue 6 years ago • 0 comments

https://github.com/multiformats/multihash/issues/55

Merkle Hash Tree multihash

<merkle-hash-tree-mc>-<len>-(<hash-tree-type>-<hash-mc>-<hash-len>-(<hash-value>)-[<hash-value>...]) <0x0400>-<len>-(<0x01>-<hash-mc>-<hash-len>-(<hash-value>)-[<hash-value>...])

0x0400 - Merkle Hash Tree (1024 decimal) multicodec value

0x01 - Hash Tree Type with this settings:

  • Data segment size - 1024 bytes
  • Data prefix - one byte with value 0 (0x00)
  • Hash pair prefix - one byte with value 1 (0x01)
  • Unpaired hashes move on next level unchanged.
  • hashes in tree packed in breadth-first order from root to leafs.

0x02 - Hash Tree Type with this settings:

  • Data segment size - 1024 bytes
  • Data prefix - one byte with value 0 (0x00)
  • Hash pair prefix - one byte with value 1 (0x01)
  • Unpaired hashes move on next level unchanged.
  • Level of hash tree
    1. level - 1 hash = root-hash
    2. level - 2 hashes
    3. level - 3-4 hashes
    4. level - 5-8 hashes and so on

Tiger multihash:

<tiger-mc>-<len>-<hash> <0x7A>-<0x18>-<0x3293ac630c13f0245f92bbb1766e16167a4e58492dde73f3>

0x7A - Tiger-hash multicodec value

Tree Tiger multihash:

<merkle-hash-tree-mc>-<len>-(<hash-tree-type>-<tiger-mc><tiger-len>(<tiger-hash>)[<tiger-hash>...])

Tree sha2-256 multihash:

<merkle-hash-tree-mc>-<len>-(<hash-tree-type>-<sha2-256-mc>-<sha2-256-len>-(<sha2-256-hash>)[<sha2-256-hash>...])

Links:

Tree Hash EXchange format (THEX) Tiger: A Fast New Cryptographic Hash Function (Designed in 1995) wikipedia: Tiger (cryptography) wikipedia: Merkle tree#Tiger tree hash

License: MIT Signed-off-by: Ivan [email protected]

ivan386 avatar Jun 13 '18 15:06 ivan386