
如我们所见,集中式Web依靠值得信赖的权威来托管我们的数据,并使用基于位置的URL进行访问。但是还有另一种选择。在分散的网络,我们可以所有主机彼此的数据,与不同种类的链接这是更安全的,因此很容易信任我们的邻居。
加密哈希是分散数据结构工具箱中最重要的工具。它为新的链接形式(称为内容寻址)打开了大门,这种链接使我们摆脱了对中央当局的依赖。
散列可接收任何大小和类型的数据,并向您返回一个代表它的固定大小的“散列”。散列是一串看起来像gobbledygook的字符,但是您可以将其视为数据的唯一名称。
它可能看起来像这样:
zdpuAsHkamdCQgrDrNSwJVgjMkQWoLxdrccxV6qe9htipNein
老实说,这些名称目前对人类不是很友好(beagle.jpg描述性更强!),但是它们更安全。原因如下:
加密散列可以从数据本身的内容派生而来,这意味着对同一数据使用相同算法的任何人都将到达同一散列。如果Ada和Grace都使用相同的分散式Web协议(例如IPFS)来共享完全相同的小猫照片,则两个图像将具有完全相同的哈希值。
通过比较这些散列并确认它们是相同的,我们可以保证这两张照片的每个像素都是相同的。
加密哈希是唯一的。如果Grace使用Photoshop从那只猫咪中去除了一条胡须,则更新后的图像将具有新的哈希。只需查看该哈希,即使没有访问文件本身,也很容易看出该文件现在包含不同的数据。
在集中式Web上,我们学会了信任某些权威而不是其他权威。我们会利用URL的线索来尽力而为,但是有些恶意行为者利用位置寻址的缺点来欺骗我们。
但是,在分散的网络上,我们都参与并托管彼此的数据,而内容寻址使我们能够信任共享的信息。我们可能对托管数据的对等节点知之甚少,但是散列可以防止恶意行为者欺骗我们有关文件内容的信息。这就是使加密散列对分散式网络如此重要的原因。
使用传统的位置寻址,我们知道我们需要访问域puppies.com以查找存储为的内容beagle.jpg。如果puppies.com域名由于某种原因被破坏,我们将无法访问该图像。
分散式网络的工作方式有所不同。当我们想要一张可爱的宠物的特定照片时,我们会通过其内容地址(哈希)来要求它。我们问谁?全网!
如果Ada在线,我们将看到它拥有我们想要的内容,并且我们知道它正是我们需要的文件,因为它具有匹配的哈希值。如果她下线,我们仍然可以从Grace或其他同伴那里获得相同的照片。
由于我们使用哈希在分散的Web上请求数据,因此我们可以将哈希视为链接,而不仅仅是名称。


