0
                 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?

1 Answers1

0
  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]

    /\
   /\
  /\
 /\