一文说清楚IPFS,FiLecion及挖矿!

IPFS和Filecoin的白皮书,市面上大部分关于IPFS的文章,集结成此文,客观陈述,阐明IPFS。


希望读者一步到位,多花点时间,读完这篇文章,看懂了,以后关于IPFS的文章便能一笑置之。


互联网是人类历史上最重要、最具影响力的发明,在互联网诞生之前,谁也不知道它能给世界带来如此巨大的改变。足不出户,我们可以接受来自全世界的讯息,即使是在移动行走的状态,也可以用我们的掌上“器官”随时与其他人通讯。


但你有没有想过,互联网是怎么运行的,使得互联网上信息自由流通呢?


Tim Berners-Lee的NeXT电脑是世界上第一台Web服务器,但机器上有一个贴纸:“这台机器是服务器,不要关闭”。


互联网就是由数以万计的服务器分布在全世界的各个角落,世界最大的芯片制造厂商 Intel 有大约10万台服务器,Facebook有3万台,美国最大的电话公司 AT&T 也有2万台,而 Google有超过100万台服务器!这个数字还是非常恐怖的。


我们当前的互联网就是由这些巨头公司的服务器所构成的,这些服务器一直在机房运转着,如果关闭服务器,你将无法访问上面托管的内容。


懂点计算机网络原理的人都知道,互联网的数据交互模式使用的是 B/S 和 C/S 模式,即 客户-服务器,以及 浏览器-服务器 模式。

图片发自简书App

IPFS是什么?


它是一个协议也是一个网络,已经运行了2年半,并非虚无缥缈的空气。


它像比特币网络一样,并没有发明什么新技术,他只是将很多种技术(P2P网络技术、BitTorrent传输技术、Git版本控制,自证明文件系统的数据传输协议等等)加以结合,并在这些技术上改进创新,集成了IPFS网络。


它比我们现在互联网上使用的HTTP协议,功能更强大,使得IPFS协议有取代HTTP协议的可能,并,创造更美好,更高效,更低成本的互联网世界。


星际文件系统IPFS(InterPlanetary File System)是一个面向全球的、点对点的分布式版本文件系统,目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将所有具有相同文件系统的计算设备连接在一起。原理用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个地方的内容,不需要验证发送者的身份,而只需要验证内容的哈希,通过这样可以让网页的速度更快、更安全、更健壮、更持久。


现在的互联网世界,用户和网站之间,是以HTTP协议为基础,进行交流的。


那么,IPFS协议,以去中心化为手段,辅以奖励机制和共识机制,重塑用户和网站之间的交流方式。


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网络中的文件,都只存在独一无二的一份,文件自然不会被重复存储,不会被恶意篡改(篡改了文件的哈希值就不同了),大大降低存储成本,减少存储资源浪费。


这份独一无二的文件,只要查询它的哈希值(身份证号),便能找到,这个设计,比平时我们查找文件,方便很多。


我们平时可能要跳转好几个网站才能找到文件,甚至有些文件在你不知道的网站里,就会错过这个文件。


IPFS网络里的下载,是一种类似迅雷下载的技术(p2p下载)。


当文件上传到IPFS网络,这个文件被分散成很多份,每一份都存在全国各地不同的硬盘里,每个地方都有这个文件的一部分。


这个硬盘是在你个人的家里的,硬盘上百G甚至几个T,下载文件的时候,就从每个人家里同时获取数据,速度比中心化存储快很多。


上面说了,被上传到IPFS网络的文件是被分散成很多份的,文件分散在全球不同的地方,所以IPFS网络天然能防御自然灾害。


当某地遭遇诸如地震,水灾,洪水,这些不可抗力,IPFS系统会立即启动修复功能,把存储在灾害地区的数据立即恢复至其他地方。存储在IPFS系统里面的数据比目前你所使用的那些云服务都要安全,根据这个特性,你上传的文件将会永久性储存在互联网上,没有任何人可以将它破坏。


同理,IPFS天生就拥有抵挡DDoS攻击(瞬间大量的访问进入网站)的能力。因为所有的访问将会被分散到不同的节点,甚至攻击者自己也是节点之一。某种程度上讲, IPFS甚至能抵挡量子计算的攻击。


如果你存储的文件是不想别人看到的文件,在存入IPFS之前对文件进行加密即可,这样即使别人拥有此文件的哈希值,还需要私钥才能查看数据。


IPFS的加密性,永久性存储,会滋生一些灰色产业进来,例如发布各种无法管制的言论,盗版猖獗等问题。


就像比特币的杀手锏是洗钱,暗网交易,以太坊是发币圈钱,小编认为,新技术的产生都会伴随各种争议,我们应该限制它的弊端,发挥它正能量的一面。


根据IPFS的以上特性,我们来看看他都能做些什么呢?


1.在 /ipfs 和 /ipns 下面挂载全球文件系统:就是说我们所有的文件都可以存到上面.


2.挂载个人同步的文件夹, 可以自动进行版本管理, 自动备份. 也就意味着未来我们将拥有无限空间的网盘, 不用担心数据丢失, 不用担心隐私泄露(非对称加密).


3.作为加密文件和数据共享系统。IPFS天生视乎就具备这样的能力, 文件加密, 数据共享, 都是小菜一碟.


4.作为带版本控制的软件包管理系统.


5.作为虚拟机的根文件系统


6.作为利用管理程序, 把IPFS作为虚拟机的引导文件系统:在线操作系统


7.作为数据库:应用可以直接操作IPFS的Merkle DAG数据结构, 并且可以使用IPFS的版本控制, 缓存. 试想一下我们的数据库直接存在IPFS的文件系统是什么体验? 自动备份, 永不丢失, 安全加密, 无限空间, 高速连接, 想想就美好. 科技改变生活, 未来会有多美好....


8.作为加密通讯平台,谁都别想窃听消息通信了


9.作为加密CDN, 作为web的CDN, CDN功能全包了.


10.永久web, 不存在不能访问的链接, 跟 404 说 byebye.


上面的应用场景是 IPFS的创始人 Juan Benet 在IPFS论文里面直接提到的. 有兴趣的同学可以去IPFS白皮书里面看一下。


对比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能做的不仅仅限于这些场景. 我们所有的计算机系统几乎都是这种结构

图片发自简书App

IPFS为我们解决的是最后那一个部分:数据存储。它能够极大的降低数据存储的成本,提升数据下载速度。


那么凡是需要优化数据存储的地方几乎都可以使用IPFS来提升效率。


IPFS是开放的,它为所有的区块链准备好了数据存储结构,可以链接到不同的区块链项目,这就是为什么那么多的白皮书提到要和ipfs链接,IPFS将作为区块链的基础设施存在。


以下是IPFS在其他项目上面的应用:


akasha:  基于以太坊和IPFS的社交网络


Alexandria:去中心化的内容发布平台


Arbore:朋友之间的文件共享系统--相信很快就可以抛弃某度的云盘了


dtube:利用IPFS作为存储的视频分享网站


git-ipfs-rehost:可以把github上的项目存储到IPFS上


Interplanetary Wiki:建立在IPFS上的wiki(土耳其封锁了wiki,借助于IPFS,现在已经恢复了访问)


ipfs-search:基于IFPS的搜索引擎


ipfs-share:基于IFPS的文件分享


ipfs.pics:基于IFPS的图片分享网站


Orbit:基于IFPS的分布式聊天工具


Partyshare:一个简单的文件共享系统


computes.io:基于IPFS的分布式计算机(这个牛,把世界上的计算资源收集起来,构建一个巨大的分布式计算机)


OpenBazaar:openbazaar是一个去中心化的淘宝,口号是“买卖自由/Buy and Sell Freely”,问题是一旦用户停止运行软件,商店就下线了,借助于IPFS,openbazaar2.0 打造一个离线商店。


Ubuntu:著名的linux发行版本Ubuntu正在计算把发行版本转移到IPFS上来,目前正在讨论方案。


火狐浏览器:支持ipfs在内的分布式协议


还有很多应用就不一一举例子了,更多的应用在开发中,相信也很快我们就能看到了,甚至你现在浏览的网页已经有一些是利用IFPS建立的了。


Filecoin是什么?


IPFS网络有巨大的数据存储需求,需要很多的节点和分布式存储空间,需要分布在全球各地的硬盘加入工作,如果没有激励机制,我们凭什么买硬盘给IPFS网络共享呢?


于是IPFS设计了一套激励用户存储的规则,Filecoin协议,并发行一种代币:FIL。


只要你帮助IPFS网路存储文件,就能获得FIL,这是我们愿意把文件放在自己家存储的源动力。


获得的FIL是有价值的,因为在这个存储过程中,FIL与实体经济相结合。


用户存储文件需要支付FIL,矿工帮助用户存储文件,便获得FIL。


FIL代币能在Filecoin市场里流通起来,有供应需求。


Filecoin协议是如何运行的?


互联网世界,本质就是数据之间的传输,传输包含,上行(发送数据)和下行(接收数据)。


上行(发送数据),即你的电脑发送数据到互联网上,比如看网页时你点击想看的,就会上传指令到互联网上,你把图片上传到朋友圈,这些产生的数据就是上行数据。


下行(接收数据),是你从互联网上下载数据。比如你看电影时,不断的下载影片产生流量,或是看网页时互联网上展现到你电脑上的图片和网页文字.都是下载后展现的,这样产生的数据为下行数据。


Filecoin协议里有两个概念。1.存储市场。2,检索市场。


互联网的上行(发送数据),类似于Filecoin里的检索市场。


互联网的下行(接收数据),类似于Filecoin里的存储市场。


在Filecoin网络里,filecoin把用户的存储和检索需求放在一个交易市场里进行。


小编思来想去,通过一段类比,能够很清晰的了解这个交易过程。


这个交易过程类似于用户在淘宝上购买商品。


淘宝店主就像Filecoin网络里的矿工。


1.卖家成为店主(矿工),需要交纳保证金(抵押FIL),以防止店主(矿工)在交易过程中发生违约,导致交易没有完成。


2.卖家成为店主后,创建自己的产品信息(Filecoin网络里注册硬盘空间)。


3.店主将产品上传至淘宝(filecion网络),明码标价。


4.买家浏览淘宝页面,找到符合自己心里价位的产品(存储服务)。


5.买家提交购买产品的订单(提交数据存储的订单)


6.店主收到订单


7.店主开始提供服务(存储数据)


8.服务完成


9.买家确认收货(确认店主已经存储数据)


10.付款(FIL)给店主(矿工)


这样,一套存储流程就完成了,客户要检索数据,也是类似的流程。


读到这里,小伙伴们可能会产生一个疑惑:


我平时用一些网络云存储(百度云盘),存储数据,也不用花钱啊,我也不关心什么效率问题,那凭什么我还要花钱买代币在你的IPFS网络中存储数据,多麻烦!


是的,我们使用云存储都是免费的,但是网络存储都是有成本的,之前有人曝光百度旗下的网盘大约一个月2千万支出,服务器硬件、巨大的带宽、以及各种场地、电费、人力、维护都需要大量的资金投入。


百度云盘将这些存储成本通过其他渠道转化到用户身上,花费注意力看广告,设置低下载速率迫使你买会员,企业大容量存储的收费。


所以将来,我们普通老百姓在IPFS网络存储数据也可能是免费的,只是这些费用转嫁到那些基于IPFS协议的应用开发商上,他们会用另外一种方式薅你身上的羊毛。


Filecoin的共识机制(存储证明)


比特币网络的共识机制:比如,我今天给小丽转一百块钱,同时假如整个网络里有一百万台计算机,我转钱的同时,我向一百万台计算机吆喝一声,我转给她了,于是就把账记在每个人的小账本上,每个账本都是保持统一的。记账的时候,CPU高速运转,是非常费电的。


比特币的这种共识机制,即以上这种行为,叫做工作量证明,大量消耗计算资源和能源。


Filecoin的共识机制相对环保,淘宝店主(矿工)发完货(完成存储),买家是要确认收货(确认矿工完成存储),这里的“确认矿工完成存储”,就是Filecoin的共识机制(存储证明,PoSt),这个“确认矿工完成存储”会一直存在于Filecoin网络中,用户可以随时查看。


Filecoin把矿工在网络中的当前存储数据相对于整个网络的存储比例转化为矿工投票权,利用存储证明(PoSt)来产生共识,不用像比特币那样浪费计算资源和能源,并且能激励矿工投入更多的硬盘为网络做贡献。


区块链技术的出现让分布式网络的设计成为了可能。区块链并不是万能的,反而区块链是一种低效且昂贵的存储数据的方式。IPFS的精妙之处是它把分布式账本可以被放置于IPFS之上,这个分布式账本只是记录了网络里各个文件的哈希值。


“如果你把它(分布式账本)加到IPFS里,然后通过哈希算法把它录入区块里,那么你就可以通过IPFS直接在网上浏览交易以及文件。IPFS协议与区块链技术结合是个“完美的婚姻”。” ------Benet(IPFS创始人)


IPFS协议让网络的自由和独立精神充分发挥,并且成本低廉。 无论如何,去中心化的网络与中心化的网络并存无疑会是一种趋势。


挖矿


存储矿工:


硬盘:硬盘是最重要的,存储是长期开着,24小时状态下,所以需要一个能够长时间稳定运行存储的硬盘,监控硬盘的性价比会更高。


矿机:后续filecoin会推出挖矿软件。


检索矿工:


网络:需要高网速,低延迟。重要的是搞到大型流量上传渠道。


硬盘:没有要求。


矿机:后续filecoin会推出挖矿软件,矿机必须要能流畅运行挖矿软件。


Filecoin挖矿,已经被业内很多大佬看好,前景非常可观!

推荐阅读更多精彩内容