从 https://simonwillison.net/2025/May/11/cursor-security/#atom-everything 看到的文章看到的相关文章了解到的。

Cursor 使用这个数据结构,用于快速定位到文件内容的变更,当数据块修改的时候,能够快速通过 hash 来找到变化的部分,我让 ai 给我做了个可交互的网页来理解这个数据结构,如下:

Merkle Tree Demo

Merkle Tree 默克尔树演示

修改下方的数据,观察上面的哈希值如何变化,尤其是最顶部的默克尔根。

默克尔树工作原理简介

1. **叶子节点:** 底部是原始数据块(你可以修改它们)。

2. **哈希计算:** 每个数据块首先计算出自己的哈希值(显示在输入框下方)。

3. **层层向上:** 相邻的哈希值被组合(串联),然后计算新的哈希值,形成上一层的节点。

4. **默克尔根:** 这个过程重复进行,直到最顶端只剩下一个哈希值,这就是默克尔根。

5. **验证:** 默克尔根是整个数据集的”指纹”。如果任何一个数据块或其顺序改变,默克尔根都会完全不同。这使得只通过默克尔根就能快速验证数据的完整性,而无需检查所有数据。

6. **应用:** 区块链(如比特币、以太坊)、点对点下载(如 BitTorrent)等都广泛使用默克尔树来高效地验证数据的完整性。

当修改数据块中的文字,会让对应的树分支上的 hash 修改,一直向上延伸到 root,通过 hash 的对比快速的就能够获取到整个变动的分支。


0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注