默克尔 DAG
默克尔 DAG是默克尔树和有向无环图(DAG)的混合。Merkle树确保在p2p网络上交换的数据块是正确的、未损坏的和未更改的。这种验证是通过使用加密哈希函数组织数据块来完成的。这只是一个函数,它接受一个输入并计算与该输入对应的惟一字母数字字符串(哈希)。检查输入是否会产生给定的哈希值很容易,但是从哈希值中猜测输入值却非常困难。
不要混淆这两个。
单独的数据块被称为“叶节点”,这些数据块被散列成“非叶节点”。然后可以组合和散列这些非叶节点,直到所有数据块都可以用一个根散列表示。这里有一个更简单的方法来概念化它:
DAG是一种对没有循环的拓扑信息序列进行建模的方法。DAG的一个简单例子是一个家谱。merkle DAG基本上是一个数据结构,其中散列用于引用DAG中的数据块和对象。这创建了几个有用的特性:IPFS上的所有内容都可以惟一地标识,因为每个数据块都有一个惟一的散列。此外,数据是防篡改的,因为修改它会改变哈希值,如下所示:
IPFS的核心原则是在通用默克尔 DAG上对所有数据建模。这个安全特性的重要性怎么强调都不为过。
版本控制系统
默克尔 DAG结构的另一个强大特性是,它允许您构建分布式版本控制系统(VCS)。最流行的例子是Github,它允许开发人员轻松地同时协作项目。Github上的文件使用默克尔 DAG存储和版本控制。它允许用户独立地复制和编辑一个文件的多个版本,存储这些版本,然后将编辑与原始文件合并。
IPFS对数据对象使用类似的模型:只要与原始数据对应的对象,并且任何新版本都可以访问,就可以检索整个文件历史。由于数据块是在网络上本地存储的,并且可以无限缓存,这意味着IPFS对象可以永久存储。
此外,IPFS不依赖于对Internet协议的访问。数据可以分布在覆盖网络中,覆盖网络就是建立在另一个网络上的网络。这些特性是值得注意的,因为它们是抗审查web中的核心元素。它可能是促进言论自由的有用工具,以对抗世界各地普遍存在的互联网审查制度,但我们也应该认识到不良行为者滥用互联网的可能性。
自查文件系统
IPFS的最后一个基本组件是自认证文件系统(SFS)。它是一个分布式文件系统,不需要数据交换的特殊权限。它是“自认证”的,因为提供给客户机的数据是通过文件名(由服务器签名)进行身份验证的。结果呢?您可以使用本地存储的透明性安全地访问远程内容。
IPFS基于这个概念创建了星际名称空间(IPNS)。它是一个SFS,使用公钥加密来自认证网络用户发布的对象。我们前面提到过,IPFS上的所有对象都可以惟一地标识,但这也扩展到节点。网络上的每个节点都有一组公钥、私钥和节点ID,节点ID是其公钥的散列。因此,节点可以使用它们的私钥对它们发布的任何数据对象进行“签名”,并且可以使用发送方的公钥验证这些数据的真实性。
(未完待续)
网友评论