MerkleDAG

去中心化的网络世界依赖于“链接数据结构”,【默克尔树】或简单的【“哈希树”】是一种树数据结构,其中每个节点都经过哈希运算

在默克尔树中,节点通过哈希后的内容地址指向其他节点,可以将其视为一个链接,因此一个默克尔树是链接节点的集合。

所有的内容地址都是唯一的,包含其他节点“引用”的节点,它的内容地址对于包含这些引用的节点是唯一的。

可以把它想象成一组文件夹。如果用户在包含子文件夹的文件夹中运行哈希算法,那么获取的内容派生哈希对于其当前内容是唯一的。

如果删除子文件夹,那么与以前的文件夹所包含的内容不再相同,因此将获得新的哈希值。

最终根节点的内容地址对于树中根节点向下的所有节点是唯一的。

任何节点中的数据即便只改变一个字节,所对应的哈希也将改变,随之所有父节点的散列也将改变,而作为一名程序员需要始终向后构建这些数据结构。

IPFS 系统中的 【MekleDAG 】是有向无环图,它的边是 Merkle-links,这意味着每个到对象的链接都可以验证对象本身,并且每个对象都包含其子对象的安全表示(Secure Representation).

MerkeDAG 仅通过附加认证的数据结构简化了分布式协议,缔约方可以与对象进行通信和交换安全引用,其能在之后验证对象的正确性,因此对象本身可以来自不受信任的通道,另外还支持对数据结构进行分支和后续的合并,就像版本控制系统 git.

MerkleDAG 包含三个重要属性:

  1. 内容寻址:使用多重哈希来唯一标识一个数据块的内容
  2. 防篡改:可通过检查哈希值来确认数据是否被篡改
  3. 去重:因为基于内容寻址,内容相同的数据块哈希是相同的,所以可轻松去掉重复的数据

与默克尔树不同的是,MerkleDAG 的每个节点都可以存储数据,而默克尔树将文件数据存放在叶子节点中,因此 MerkleDAG 可以兼容更多的数据结构。

Leave a Reply

Your email address will not be published.