互联网是人类历史上最重要、最具影响力的发明,在互联网诞生之前,谁也不知道它能给世界带来如此巨大的改变。足不出户,我们可以接受来自全世界的讯息,即使是在移动行走的状态,也可以用我们的掌上“器官”随时与其他人通讯。
但你有没有想过,互联网是怎么运行的,使得互联网上信息自由流通呢?Tim Berners-Lee的NeXT电脑是世界上第一台Web服务器,但机器上有一个贴纸:“这台机器是服务器,不要关闭”。
互联网就是由数以万计的服务器分布在全世界的各个角落,世界最大的芯片制造厂商Intel 有大约10万台服务器,Facebook有3万台,美国最大的电话公司AT&T 也有2万台,而Google有超过100万台服务器!这个数字还是非常恐怖的。
我们当前的互联网就是由这些巨头公司的服务器所构成的,这些服务器一直在机房运转着,如果关闭服务器,你将无法访问上面托管的内容。
懂点计算机网络原理的人都知道,互联网的数据交互模式使用的是B/S 和C/S 模式,即客户-服务器,以及浏览器-服务器模式。
网络数据是存储在各大服务器上,即使这样的服务器全世界非常多,多达千万甚至上亿个,但对于文件数据仍然是非常中心化的,因为你建的网站也只会放在一家公司的服务器上,你所产生的用户数据,也都是存在中心化的公司服务器上的。
一台服务器可能要每天应对百万次来自各个客户端和浏览器的访问,如果遭遇类似美国安全局这样的机构的审查,只需要控制这些服务器提供商,就可以轻易掌握用户数据。同样,黑客只需要发动对服务器的攻击,也有可能让普通用户无法访问服务器,DDOS攻击就是利用多台计算机对服务器进行大量的服务请求,占据服务器资源,导致正常用户也无法访问网站,出现我发经常看到502的情况。
现有的web协议HTTP协议实际上已经存在很多问题。我这里引用官网https://ipfs.io/的介绍:
HTTP效率低下,服务器成本昂贵
使用HTTP协议从一台计算机服务器上一次只能下载一个文件,而不是同时从多台计算机中获取文件。通过P2P方式的视频传输可以节省带宽成本的60%。
历史文件被删除
网页的平均使用寿命为100天,大量的网站文件不能得以长期保存。有些重要的文件因操作不当,也有可能永远在互联网消失。
中心化的网络限制了机会
互联网一直是人类进步的催化器,但中心化的网络容易被控制,是对互联网良性发展的的威胁。
网络应用太依赖骨干网
为保证数据的可靠性,我们开发的应用程序太依赖大型的中心服务器,并通过大量的备份来保证数据的安全。
HTTP协议已经用了20年的历史,从HTTP 1.0 到现在的HTTP5,网页的展示越来越美观丰富,但它背后的Browser/Server 模式是从来没变的。
如果你关注区块链的话,也许听说过IPFS星际文件系统。IPFS就是用来解决或者弥补HTTP的一系列弊端。
星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs (协议实验室)在开源社区的帮助下发展。其最初由Juan Benet设计。
IPFS是点对点的超媒体协议,可以让网络更快、更安全、更开放。它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起
IPFS可以从本质上改变网络数据的分发机制。
来看看IPFS的工作原理:
每个文件及其中的所有块都被赋予一个称为加密散列的唯一指纹。
IPFS通过网络删除重复具有相同哈希值的文件,通过计算是可以判断哪些文件是冗余重复的。并跟踪每个文件的版本历史记录。
每个网络节点只存储它感兴趣的内容,以及一些索引信息,有助于弄清楚谁在存储什么。
查找文件时,你通过文件的哈希值就可以在网络查找到储存改文件的节点,找到想要的文件。
使用称为IPNS(去中心化命名系统),每个文件都可以被协作命名为易读的名字。通过搜索,就能很容易地找到想要查看的文件。
从IPFS的介绍可以看出, IPFS设想的是让所有的网络终端节点不仅仅只充当Browser或Client的角色,其实人人都可以作为这个网络的运营者,人人都可以是服务器。
对比HTTP,IPFS具有这样的一些特性:
基于内容寻址,而非基于域名寻址。文件(内容)具有存在的唯一性,一个文件加入了IPFS的网络,将基于计算对内容赋予一个唯一加密的哈希值。这将改变我们使用域名访问网络的习惯。
提供文件的历史版本控制器(如git),并且让多节点使用保存不同版本的文件。
IPFS的网络上运行着一条区块链,即用来存储互联网文件的哈希值表,每次有网络访问,即要在链上查询该内容(文件)的地址。
通过使用代币(FileCoin)的激励作用,让各节点有动力去存储数据。 Filecoin 是一个由加密货币驱动的存储网络。矿工通过为网络提供开放的硬盘空间获得Filecoin,而用户则用Filecoin 来支付在去中心化网络中储存加密文件的费用。
比如我想观看一部叫ABC的视频
1, 加入IPFS网络,在网络中搜索叫ABC的文件,(通过IPNS去中心化的文件命名系统)
2, IPFS网络迅速索引区块链上的哈希值,反馈出搜索结果。
3, 你支付一点FileCoin代币, 获取ABC文件缓存到本地,ABC文件不是从云或者服务器上下载下来的,而是由这个网络的参与者贡献的,它可能是离你最近的一个网络节点。这样的好处就是不仅不需要中间服务器,而且网络效率最快。
4, 如果ABC文件恰好你周边好几个人都有,那IPFS网络会把这个文件拆成一小片一小片,节省了这些节点的储存成本,也让你用最具效率的方式下载到该视频。
5, 这个视频文件缓存在自己电脑里,不仅自己观看,同时也为其他人提供资源。
6, 另外也可以自己发布新内容到这个网络上,并且有机会获得FileCoin代币,因为你也为网络做了贡献。
通过这样的方式,实现了整个网络的文件利用达到最优效率
如果你对IPFS感兴趣,又懂点编程的话,可以亲自试一下,IPFS已经有了Alpha版。
https://ipfs.io/docs/getting-started/
那说到这里,IPFS跟SC(Sia Coin)有什么不同?这个问题应该比较好回答了。
SC是去中心化的存储应用,是以太坊上的一个Dapp. 适合文件的安全保管。
IPFS是一个底层的互联网协议,致力于替代HTTP,实现的是互联网上各个节点的文件读取、分享、交换。
是不是有满满的颠覆的感觉!
IPFS 的设计思维非常有意思,它从互联网的最底层数据,也就是文件,来思考问题,颠覆式创新经常是从第一性原理出发,找出事物的本质,从而重新设计该系统的架构。
区块链技术的出现让分布式网络的设计成为了可能。区块链并不是万能的,反而区块链是一种低效且昂贵的存储数据的方式。IPFS的精妙之处是它把分布式账本可以被放置于IPFS之上,这个分布式账本只是记录了网络里各个文件的哈希值。
“如果你把它(分布式账本)加到IPFS里,然后通过哈希算法把它录入区块里,那么你就可以通过IPFS直接在网上浏览交易以及文件。IPFS协议与区块链技术结合是个“完美的婚姻”。” ------Benet(IPFS创始人)
IPFS协议让网络的自由和独立精神充分发挥,并且成本低廉。 无论如何,去中心化的网络与中心化的网络并存无疑会是一种趋势。
至于IPFS能否替代HTTP,尚需时间。
IPFS实际已经开发三年有余,也受到众多大佬的追捧,尤其近期将进行ICO,也获得不少的关注,我也会带几个人一起投资参与此想去。有兴趣也可以进小密圈我会更新一些这方面的消息。