Merkle树是否必须是完美的二叉树?

时间:2013-11-12 01:25:57

标签: cassandra amazon-dynamodb riak

如果是这样,原因是什么?我想保持平衡吗?但这对Merkle树来说是如此重要吗?

1 个答案:

答案 0 :(得分:3)

这不是必需的,但如果不平衡则效率较低。可能会出现一些问题。

如果您假设的Merkle树的范围太大,那么您可以有一棵树

 a
/ \
b c
\ /
d e

然后你发送的哈希比你需要的更多(b和c是多余的)。

或者,如果你的范围错误,那么一个末端桶包含更大比例的关键范围,你最终会得到这样一棵树:

a
 \
 b
 /\
c  d
\  /\
 e f g

在这里,有更多的密钥用于创建g而不是其他桶,因此它更可能是不同的。修复不一致将涉及复制比其他存储桶更多的数据。