Login
欢迎来到未来世界

您现在的位置是: 首页 > 计算机 > 区块链

区块链

古千峰:为什么IPFS会改变“超文本协议/HTTP”

区块链 加入收藏
4月11日,btcMedia亚太区CTO古千峰在「区块链媒体群」分享了“为什么IPFS会改变“超文本协议/HTTP”。那什么是IPFS?古千峰表示:IPFS是一种去中心化的文件存储协议,它不是区块链。

4月11日,btcMedia亚太区CTO古千峰在「区块链媒体群」分享了“为什么IPFS会改变“超文本协议/HTTP”。
那什么是IPFS?古千峰表示:IPFS是一种去中心化的文件存储协议,它不是区块链。为什么这么说?IPFS有四个特点,一是去中心化存储;二是内容产生地址;三是通过默克尔树有向无环图数据结构来保存这个数据;四是有点像Github,做开发的人都经常会用Github。
从上述4个特点中,可以看出IPFS会改变两点,一是改变目前互联网整个内容布局,目前我们互联网所有的内容不是保存在咱们本机电脑上就是保存在服务器上面供网络访问。
那么IPFS就变成一个节点保存数据,而且在不同的节点上会保存相同的内容。但是这个相同的内容是通过路径寻找这个过程来保存的。
二是我们现在经常用科学上网,有了IPFS有可能以后就不需要了。
以下古千峰分享实录:
首先我们来看IPFS是什么?一句话,IPFS是一种去中心化的文件存储协议,它不是区块链。这个定义中,我们抓住了几个关键词。
第一个就是去中心化。去中心化相对于我们目前的服务器的价格,大多数人在访问网站的时候,这些网站的内容是放在一个中心化服务器上面的,那么这也可能会通过这个赚钱的方式分散存储在不同的服务器上,但是如果我们都是通过一个IP地址去访问,就是去中心化的文件存储或者说中心化的互联网访问方式。
IPFS是通过节点,也就是分布在全球各个地区各个家庭各个机房里面的一些服务器提供的,这种提供就叫做就近访问提供。
第二个关键词就是文件存储协议,这个跟区块链最大的不同就是区块链是一种分布式的共识,这也是我个人对它的一个定义,它需要让不同的节点内容保持一致,如果说不能够保持一致,那么区块链就不能成为一种区块链了。
但是IPFS是一种存储,它不需要所有节点内容保持一致,当然也不是不可能的。咱们不可能在任意一个节点上保存全网的数据,它只要确保在访问方跟你的数据元这条路径上面,这条路径打个比方,就相当于从北京到上海要经过南京和合肥石家庄等。
IPFS实现了数据从语言到终端的算法,在这个路径 上分别是由不同的节点来负责数据的传输。
IPFS都有哪些特点?

IPFS有四个特点,第一个特点就是去中心化存储。第二个特点就是内容产生地址。一会儿我会给大家演示一下依据内容产生地址,先简单介绍一下。我们现在去访问互联网都是通过http,然后WWW,打入一串网址然后它会解析成IP地址。
那么IPFS它最大的区别就在于它是一串哈希值。这个哈希值不是根据文件的文件名或者说文件生成的时间,它是根据它的内容。那么我们可以举一个例子,比如说一个文本文件,一个文件它的文件名和另外一个文件名是相同的。
但是这个两个文件里面的内容是不一样的,甚至于只有一个标点符号不一样,那么它产生的地址也是完全不一样的。当我们去用文件a一个地址,一个哈希值去访问的时候,他访问到的内容将和文件b是完全不同的,即使两个文件名是一样的。
第三个特点其实跟比特币的一个数据存储方式有点接近。我们都知道比特币是通过一种叫默克尔树的方式。那么IPFS也是通过默克尔树的一个有向无环图数据结构来保存这个数据。
那什么叫默克尔树呢?当我们这个文件比较大的时候,别说有一两兆两三兆,甚至更大的,IPFS的系统会在你上传文件到IPFS节点的时候,它会把文件分割,然后分割完以后每一个文件都是用一个哈希值作为它的文件名。
然后这些文件是通过一种数的方式进行保存,而且总数呢,我可以打一个比方,这个数就好比有很多树叶,然后两片树叶相连的数枝其实是这两片树叶的一个哈希值运算,那么从树叶到树枝,然后从树枝的分叉分叉一直到树根。
通过这种方式就可以确保当某一个树叶上面的数据树枝发生变化,直接体现在树根的哈希值也发生了变化。这种方式其实跟比特币的数据保存方式是一致的。
它的目的就是为了让整个网络以最快的速度来验证一个数据的完整性。因为我们不需要去比较整个文件,我们只需要去看树根的值是否还是一样的。如果说一致的,不同的节点就可以证明这个数据没有被篡改。
第四个特点就有点像Github,做开发的人都经常会用Github。
最近随着区块链项目的流行而被很多人知道,这其实是个很老的技术,它最大的特点就是只保存,修改的地方不会去保存,修改以后整个copy。
如果说你修改了100次,那么他不会保存每一次修改的copy,而是会保存它修改的100次里面每一次修改的一个部分。还有两个特点就是通过比特币的一个末函数的方式来验证数据完整性,还有就是通过记录修改部分而不是保存整个文件。
从前面四个特点中,其实我们可以看出IPFS会改变两点。一点是会改变目前互联网整个的一个内容布局,目前我们互联网所有的内容不是保存在咱们本机电脑上就是保存在服务器上面供网络访问。
那么IPFS就变成了一个节点保存数据,而且在不同的节点上会保存相同的内容,但是这个相同的内容是通过路径寻找这个过程来保存的。第二个比较严重的后果的话,就是我们现在经常用科学上网,那有了IPFS有可能以后就不需要了。
为什么IPFS有可能会改变目前的HTTP?

HTTP其实是在九十年代中期开始的,叫tcpip协议是从那个时代开始流行的。他其实也是一个网络的一个协议,所谓协议就是服务器和客户端以及服务器跟服务器之间的一个握手,协议就是握手就是双方之间的一种默契。
那么HTTP协议是完成了从客户端到服务器的一个访问,是通过怎么样的一个数据格式,通过怎么样一个流程。那么IPFS之所以能够改变HTTP是基于HTTP目前的一些缺陷。
最大的缺陷就是HTTP协议是基于服务器的,如果服务器一旦被关闭,以后服务器上面保存的文件就会无法访问。如果说服务器上面的一个文件被删除以后它会导致无法访问,我们经常会在访问服务器的时候碰到这个。访问网站会碰到404错误,其实就是文件找不到的错误。
除了这个404错误,HTTP还有几个缺陷。第一个就是他必须保持24小时开机。服务器必须保持24小时开机,那如果服务器关了之后就无法访问。
第二个就是http是固定IP的,那么在这种情况下面,就会对安全防范上要求比较高,比如说我们会经常遇到DOS攻击。如果说向IPFS这种节点储存数据是没有办法进行全方位的攻击的,引文它每个阶段都有自己的IP。但是服务器就不一样,服务器只是一个IP,所以非常容易受到DOS的攻击。
第三个就是流量费用非常高,因为一个服务器对所有访问进行流量的服务会导致服务器所承载的数据和访问量非常大,给这个SP贡献的费用啊,流量费用也会非常高, IPFS是以节点的方式,所以节点是采取就近访问的方式。那么它的流量费就相对来说会比中心服务器低很多。
所以说,总结刚才的一些情况IPFS能够给我们带来什么呢?首先对于去访问网站的用户来说,它极大地加快了网络的访问速度,当然是以足够的节点为前提条件。目前来说节点是在400-700左右,为什么说节点越多反应速度越快?因为节点是可以就近的。
比如说在上海,如果说只有两三个节点,这两三个节点有可能就会承担起像http自动服务器的一个功能,但是如果上海有大量的节点,上千个节点,那么我们可以在任何角落都能够找到离自己最近的一个节点去访问数据,那么事情就是要通过大规模的布IPFS节点也就是矿机。
对于用户来说还有一个很大的提升体验的地方就是永不消失的数据。IPFS不会说像存在服务器上的数据删除以后就无法访问了,但是它存在于节点。一个节点上面的数据如果说被毁坏了,或者说这个节点被关闭了,你可以通过其他节点进行相同的访问,所以说我们叫他永不消逝的数据。
对于服务端有两大功能,从前面的对http的解释可以看出,首先它能够极大地降低服务器的储蓄成本,第二它能够极大地降低服务器的带宽开销。
IPFS能够给区块链带来的价值远远超过刚才想的降低存储成本或者降低带宽的开销

但是,对于我们这一批从事区块链的人来说,IPFS能够给区块链带来的价值远远超过刚才想的降低存储成本或者降低带宽的开销。它跟区块链是能够进行一个非常完美的结合,我们去看IPFS的官网上面IO可以发现官网上对于IPFS的定义是区块链的一个辅助工具,它不是区块链,但是它是区块链的辅助工具,为什么这么说呢?
因为我们现在区块链上面能够保存的一个数据量是非常有限的,比如说我们要进行确权,那我们确权的话,并不是说要把整个数据或整个文件,甚至于把整个视频放到链上去。这个有可能是以太坊做的,也可能是比特币,但是并不这样做,而是对于这个数据进行哈希运算,然后把哈希值这么一小段数据保存到链上去。
那么IPFS它完成什么工作呢?它会完成整个文件的一个存储,然后呢,再把这个文件的哈希值保存在链上,通过这种方式,他完成了对保存IPFS上面文件的一个确权。也就是说还是只保存在链上,但是内容保存在IPFS上。
http://dist.ipfs.io/#go-ipfs,这个是下载ipfs客户端的网址,下载到本地,运行ipfs init,本地电脑就成为了一个节点。然后运行ipfs daemonamp;,启动本地节点。假设有个文本文件,文件名为xxx.txt,运行ipfs add xxx.txt就行了,就把xxx.txt文件上传到了ipfs网络上,这个时候,就会得到一串HASH值,这个hash就是上面xxx.txt的内容哈希值。然后,在另一台电脑上,输入命令ipfs get 哈希值,就可以得到这个文件。
这是一个小实验,大家都可以试一下。然后讲一下IPFS目前有一个应用情况。目前IPFS有很多的一些项目,它已经开始一直在用了。比如说大家都是比较熟悉的MANA(分布式土地),BlockCAT, DECENT链,POET, token club,国内的小蚁。这些区块链项目都会遇到一个数据存储的问题,所以说他们在开发自己的链时都在用。它们在开发这些链的时候都不约而同地用了IPFS。
当然了目前除了IPFS以外,还有另外两三个比较著名的去中心化分布式储存,比如说像,它们也在做这个分布式存储,包括像,它自己也有一个分布式存储系统。但综合来看,用IPFS的人最多,除去以后的柚子,它的市场占有率目前可能在70%-80%左右。
下面我再给大家打几个网址,这些网址都是现在用IPFS做的项目,但是这些项目也没有做什么,众筹已经把这个项目上线了,已经在用起来了一个去中心化的聊天工具叫it。举例:orbit.chat , ipfs.pics. IPFS它是一个图片的上传,但是现在速度相当的慢,用户体验非常不好,只能说他的功能已经实现了,但是体验不是很好。
最后我讲一下FileCoin这个东西。IPFS跟FileCoin相当于姊妹篇,IPFS的这个技术在2015年其实就开始做了,然后也差不多成熟了,到目前为止没有太多的迭代,但是,FileCoin是去年九十月份,它在做一个ico,它目的就是通过这个代币的激励,让更多人去提供一个矿机或者说提供一个分布式存储设备,然后当你为这个网络提供了存储和贷款以后,系统会奖励你filecoin。
为什么要提出FileCoin这个方式?因为IPFS它其实通过前面给大家的介绍大家就能明白,它这个网络如果要能够生存,要能够跟像百度或者谷歌的java这种中心化的存储区竞争,它必须要遍布节点,世界每个角落都需要有节点,那么这个节点并不是人人都是活雷锋,都会主动布置。
所以我们需要通过发filecoin这种激励机制,让大家去把存储的设备布置到世界各个角落,这其实和比特币是一个道理的。它就是通过filecoin这个激励基础把整个生态系统建立起来。
就当我们说IPFS这门技术已经很成熟了,FileCoin目前为止还在开发当中,从我们来看他们遇到了一些问题,因为他们设计的这个激励机制是非常复杂的。
而且我们在跟他们团队沟通的过程当中,也发现一点就是研究的越深越发现这个奖励机制越复杂,它跟POS ,POW 不同的地方就在于他每个矿机去衡定对于网络的贡献除了带宽,容量还取决于什么呢?取决于访问者的态度或者是访问者的动作。
比如说这个地区这段时间有一个很热门的视频a,那么在这个地区里面的矿机,在这个地区里的一个存储设备,它的贡献值就大,收益就高那有可能这个很热门的视频,过了三个星期它变冷门了,那么这个地方的矿机收入就会瞬间降下来。这也是为什么FileCoin目前在激励机制这个方面一直没有推出来算法的一个原因。
那为什么要说这个情况呢?因为我们在做社区的时候面临了很多人,他们见到我们第一句话就是你的矿机什么时候出来,它们准备掏钱买。但是现在市场上鱼龙混杂,便宜的三四千,贵的话上万。
那对于我们上海的IPFS社区,这个对外的统一的口径就是在官方算法没有出来之前,我们不会冒险让任何人包括我们社区里的人也不会去购买任何矿井,但是我们现在已经在做的一件事是什么呢?就是用我们自己的钱去买一些矿井,然后我们再去测数据,去看这个数据到底是怎么回事儿,因为没有算法。
但是最近,我也在外面看到了很多有关于 的一些****,从我们的角度来讲,的确它是存在问题的,但是我个人认为,还是相信这个团队,他能够尽快的把这个算法推出来,然后我昨天也看到他们官网上发出了悬赏令,就是希望全球的一些技术大牛,都能够去参与给他们去出主意,看看这个算法怎么样能够把它尽早推出来,包括我也报名了,就是希望能够把它解决然后对所有的IPFS的爱好者或社区有一个推动。
IPFS对现在有基于HTTP协议的互联网访问,带来的实际影响是什么?也就是说基于IPFS会诞生哪些产品

提问:IPFS对现在有基于HTTP协议的互联网访问,带来的实际影响是什么?也就是说基于IPFS会诞生哪些产品。
古千峰:IPFS创始人胡安他在分享会上讲过,他说,对于目前中心化的一个服务器结构,发达国家或者说我们中国绝大多数国家其实已经满足了,已经够了,但是对于那些处在偏远乡村的非洲等地,他们其实目前还不能够享受到互联网给予他们的便捷。
比如说非洲的一个兄啊过如果要是去访问美国的一个服务器或者中国的一个服务器,它的速度是非常非常慢的。
但是通过IPFS这个节点延伸到距离使用者最近的一个地方,比如在非洲某一个角落在另一个离它较近的城市有几个节点,那么从这个节点上去访问的速度要比到美国或欧洲这么遥远的服务器上面去拿数据要快得多,这就是胡安做分享的时候提到的一个初衷。
图集详情底部广告位