从 https://simonwillison.net/2025/May/11/cursor-security/#atom-everything 看到的文章看到的相关文章了解到的。
Cursor 使用这个数据结构,用于快速定位到文件内容的变更,当数据块修改的时候,能够快速通过 hash 来找到变化的部分,我让 ai 给我做了个可交互的网页来理解这个数据结构,如下:
Merkle Tree 默克尔树演示
修改下方的数据,观察上面的哈希值如何变化,尤其是最顶部的默克尔根。
默克尔树工作原理简介
1. **叶子节点:** 底部是原始数据块(你可以修改它们)。
2. **哈希计算:** 每个数据块首先计算出自己的哈希值(显示在输入框下方)。
3. **层层向上:** 相邻的哈希值被组合(串联),然后计算新的哈希值,形成上一层的节点。
4. **默克尔根:** 这个过程重复进行,直到最顶端只剩下一个哈希值,这就是默克尔根。
5. **验证:** 默克尔根是整个数据集的”指纹”。如果任何一个数据块或其顺序改变,默克尔根都会完全不同。这使得只通过默克尔根就能快速验证数据的完整性,而无需检查所有数据。
6. **应用:** 区块链(如比特币、以太坊)、点对点下载(如 BitTorrent)等都广泛使用默克尔树来高效地验证数据的完整性。
当修改数据块中的文字,会让对应的树分支上的 hash 修改,一直向上延伸到 root,通过 hash 的对比快速的就能够获取到整个变动的分支。
0 条评论