3

我刚刚开始阅读有关稀疏默克尔树的内容,并且遇到了一个函数(获取值),该函数用于查找指定键的值。我在互联网上找不到可以解释 get value 函数如何工作的解释。

我的理解是每个节点都是 256 位的,所以可以有 2^256 个叶子节点并且键被索引。所以我们从根开始,根据天气选择左节点或右节点,位为 0 或 1,但我无法理解 v = db.get(v)[32:] 语句。它如何引导我获得所提供密钥的价值?

def get(db, root, key):
    v = root
    path = key_to_path(key)
    for i in range(256):
        if (path >> 255) & 1:
            v = db.get(v)[32:]
        else:
            v = db.get(v)[:32]
        path <<= 1
    return v
4

1 回答 1

0

“Merkle 树 [21] 是一种二叉树,它结合了加密哈希函数的使用。一个或多个属性被插入到叶子中,每个节点都派生出一个摘要,该摘要递归地依赖于其子树中的所有属性。也就是说,叶子计算他们自己的属性的哈希,父母从左到右推导出他们孩子的摘要的哈希。”

这是来自“ https://eprint.iacr.org/2016/683.pdf ”的引文

每个散列都有其所有相关散列的路线图。

于 2021-06-18T15:57:11.797 回答