0
$\begingroup$
                 Root (Hash01234)
               /                \
        Hash0123               Hash4
        /      \                   
   Hash01      Hash23 
   /   \        /   \   
Hash0  Hash1  Hash2  Hash3 

Can I construct a Merkle Tree like above instead of creating it like the below?

                 Root (Hash01234444)
               /                    \
        Hash0123                 Hash4444
        /      \                    /     \
   Hash01      Hash23           Hash44     Hash44
   /   \        /   \             /   \
Hash0  Hash1  Hash2  Hash3     Hash4   Hash4
  1. Is one better than the other in terms of Security?
  2. Should I avoid the incomplete tree for any particular reason, if yes, what might those reasons be?
$\endgroup$
1
  • 2
    $\begingroup$ The actual Merkle Tree. There is no danger, however, it is hard to use an incomplete tree. Better use dummy data. $\endgroup$
    – kelalaka
    Commented Mar 9 at 14:32

1 Answer 1

0
$\begingroup$
  1. Security is the same.

  2. Efficiency. Producing and transmitting Merkle proofs can become inefficient if the tree is too unbalanced.

On the other hand, an extremely unbalanced tree (where only only a single branch grows[1]) can be used in a hash-based signature scheme where it is expected that signatures are going to be very rare with likelihood of being singular - such that every signature increases the size of all signatures that follow. If it's expected that a single signature is all that will ever be produced with the option to make more if necessary, it's a good (optimal?) scheme.

[1]

    /\
   /\
  /\
 /\  
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.