IPFS的中文名是星际文件系统,由Juan Benet在2014年5月份发起,是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括git、自证明文件系统SFS、BitTorrent和DHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。 IPFS会从根本上改变Web内容的分发机制,使其完成去中心化。

我们每天上网使用的协议就是HTTP协议,它基于TCP/IP的计算机应用层面。它通过编译,通过浏览器解析,形成我们能看到的网页。在服务器的解析里,存在一个比较大的问题,就是终端显示的数据,是通过一个中心化的服务器编译产生。那么这台服务器如果遭受了攻击,或者篡改,结果都不可想象。比如最近facebook的用户数据遭窃取。

IPFS解决的是一个分布式、不可篡改式基础协议,通过这个协议,每一个文件都会有一个哈希特征值,这样用户存储的信息都将不可篡改,每访问一个文件你都能得到最原始的版本。达到极度可信任状态。

IPFS的八层协议栈

身份层和路由层可以一起解释。对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定,KAD协议实质是构建了一个分布式松散Hash表,简称DHT,每个加入这个DHT网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。如同微信名片分享,在无法通过直接搜索微信号的情况下,如果你要找一个人,可以通过有这个人联系方式的朋友分享名片来建立联系。

网络层比较核心,使用的LibP2P可以支持任意传输层协议。NAT技术能让内网中的设备共用同一个外网IP,我们都体验过的家庭路由器就是这个原理。

交换层,是类似迅雷这样的BT工具。迅雷其实是模拟了P2P网络,并创建中心服务器,当服务器登记用户请求资源时,让请求同样资源的用户形成一个小集群swarm,在这里分享数据。这种方式有弊端,一位服务器是由迅雷统一维护,如果出现了故障、宕机时,下载操作无法进行。

中心化服务还可以限制一些下载请求,人们发明了一种更聪明的方式就是Bittorrent,让每一个种子节点所要存储的数据,通过哈希表存储在里面,BT工具相对不太受监管,服务更加稳定。

IPFS团队把BitTorrent进行了创新,叫作Bitswap,它增加了信用和帐单体系来激励节点去分享,我推断FileCoin有很大概率是基于Bitswap,用户在Bitswap里增加数据会增加信用分,分享得越多信用分越高。如果用户只去检索数据而不存数据,信用分会越来越低,其它节点会在嵌入连接时优先选择信用分高的。

这一设计可以解决女巫攻击,信用分不可能靠机器刷去提高,一直刷检索请求,信用分越刷越低。请求次数和存储量的变量之间有一个比较精妙的算法,类似一个抛物线,前期可以容忍很多东西,达到一定次数后不再信任。

对象层和文件层适合结合来谈,它们管理的是IPFS上80%的数据结构,大部分数据对象都是以MerkleDag的结构存在,这为内容寻址和去重提供了便利。文件层是一个新的数据结构,和DAG并列,采用Git一样的数据结构来支持版本快照。

命名层具有自我验证的特性(当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与NodeId匹配,这验证了用户发布对象的真实性,同时也获取到了可变状态),并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可定义,增强可阅读性。

最后是应用层,IPFS核心价值就在于上面运行的应用程序,我们可以利用它类似CDN的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。

IPFS核心价值就在于上面运行的应用程序,任何使用IPFS的Dapp,都需要存储和带宽,IPFS通过矿机挖矿的模式,巧妙的把存储和带宽的问题解决,可以这样说,如果没有比特币、区块链的发展,IPFS将很难成功。有了比特币的挖矿模式和区块链的发展,IPFS将会是下一代互联网的新风向。

版权所有:文章均为第一区块链原创,欢迎转载!请转载注明本文地址,谢谢!
本文地址:http://etc.so/blog/21/ipfs