当您拥有Merkle树时,验证对一个叶节点的更改所需的最小哈希数是多少?
我的理解是正确的吗?首先,只需要顶部散列( Merkle树根或Merkle树根的散列)?然后,一旦叶被修改,您需要在下降到被修改的叶节点时获得每一行“已访问”的散列?
因此,如果一个根有十个子代和一个孙子代被修改,我想要验证特定的孙子代,我需要获得新的merkle根散列,十个子代的散列和孙子代的父代的子代的散列。
所以在每次修改时,您总是需要获取至少第一行中的所有散列?(否则如何重新构建和验证merkle根散列?)
发布于 2015-11-10 07:39:35
一般来说,Merkle树并没有被设计用来指出哪个哈希值实际上是不正确的。相反,它使得在大型数据结构上获得有效的散列成为可能。可以单独计算每个叶节点的散列(当然,也可以计算每个分支,尽管这只是散列)。
如果你想验证哪个节点是无效的,你应该保留整个Merkle树。如果您让另一方进行计算,您确实可以下降到树的一个分支中,以找到更改后的叶节点。
https://stackoverflow.com/questions/33616759
复制相似问题