[BitTorrent] Back to Merkle Hash Trees...

Olaf van der Spek OvdSpek at LIACS.NL
Sun Feb 6 06:07:02 EST 2005

Joseph Ashwood wrote:
>>One you might think about helping me murder is the "THEX" design various
>>folks have been advocating. THEX distinguishes leaves from internal nodes
>>by appending a byte depending on whether it is leaf or payload; *that*
>>is bogus!  (kills alignment, makes testing expensive)
> Actually I think that if Merkle trees are going to happen THEX is a tiny 
> baby step in the correct direction, although it lacks the serializability 
> that is necessary to maintain security. For serializability it is necessary 
> to know a number of things about each node: nodeID = (level, horizontal 
> location on level)
> Segment #
> Size
> Hash
> Parent by id
> nodeID
> number of direct children
> All of these need to be hashed by the parent so instead of having a Merkle 
> tree as
> Root =  Hash(A|B)
> A = hash(first part)
> B = hash(second part)
> you have
> Root = {1,sizeof(A|B), hash(A|B), (0,0), (1, 1), 2}
> A = {2,sizeof(first part), hash(first part), (1,1),(2,1), 0}
> B = {3,sizeof(second part), hash(second part), (1,1), (2, 2), 0}
> Assuming a secure hash this will allow complete serialization of the data, 
> making it necessary to break the underlying hash in order to fake a tree 
> (original proposal Merkle tree did not have this property).

Why not?
If I have file A, calculate the merkle tree and root hash rh(A), give 
you rh(A), how can you give me file B with rh(B) = rh(A)?

Yahoo! Groups Links

<*> To visit your group on the web, go to:

<*> To unsubscribe from this group, send an email to:
    BitTorrent-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:

More information about the BitTorrent mailing list