写点什么

IPFS 如何冲击我们熟知的网络世界

2018 年 8 月 12 日

试想这样一个世界:4k 视频流无需缓冲、用户离线不会影响线上工作、商家可以零成本开展电子商务活动、政府无法控制互联网接入。

有哪些因素驱动企业投资相关技术来实现这一愿景?今天我们又能从这一趋势中获得哪些好处?在回答这些问题之前,我们先来看看现在的 Web 2.0 面临哪些问题。

数据问题

2005 年,人类创造了大约 130EB 的数据。要将这些信息保存在纸上,需要整个地球都要种满树木来为纸张提供原料。 2015 年这个数字是 7900EB,2020 年这个数字将增长到 40900。这些以指数级规模增长的数据量的消费者是同样在飞速增长的互联网用户。



图源: https://unsplash.com/@hannynaibaho

仅在印度尼西亚,预计未来 4 年内,互联网用户将从现有的 1.05 亿增长到 1.25 亿。也就是说,在接下来的 4 年里,仅仅一个国家就会多出 2000 万网民。

让情况更为复杂的是,存储成本的下降速度(每年 40%)与带宽成本的下降速度(每年 26%)有着近一倍的差距。

所有这些意味着,未来的网民越来越多,传输的数据量越来越庞大,而传输管道拓宽的速度却跟不上数据增长的趋势。于是数据拥堵现象会愈加严重,直到有一天,单纯扩张硬件设施再也无法解决拥堵问题。

拥堵只是我们面临的问题之一。今天的互联网是一个中心化的系统,自然存在单点故障问题。这类单点故障可能被恶意利用,中断整个国家的互联网访问。2011 年 1 月,埃及革命期间发生的事情就是这样。当时总统不想下台,于是他关闭了抗议者所依赖的互联网。虽然这个办法最终没能奏效,但后果已经发生了:四家主要的 ISP 供应商断开了网络连接后,这个国家与世隔绝了。这里的单点故障在于,抗议者之间的所有通信都需要出入埃及国境,而不是直接在用户之间传递,当通向境外的网络大门被关闭,一切都沉默了。

问题显然是存在的,现在我们来看看企业怎样投资能够带来解决方案的技术,并从中获益。于是 IPFS 和区块链开始崭露头角。

IPFS

IPFS,或称为星际文件系统(Interplanetary File System),是最初由 Juan Benet 在 2014 年设计的互联网新协议,其设计目标是实现数据的永久存储、清除网络上的重复数据,并获取存储在网络中节点上的数据地址。它现在是一个开源项目。与 HTTP 不同,IPFS 是资源导向而非位置导向。 IPFS 通信时指向资源本身,而不是指向位置。之后,它从拥有完整或部分数据的节点获取数据资源,从而创建一个去中心化的网络。



美国宇航局​​拍摄的照片( https://unsplash.com/

那么你为什么要关心你使用的互联网协议是不是基于位置的?先让我们来比较这两种方法。

HTTP 运行时使用基于位置的 IP 地址映射资源,并由此指向存储着客户端所需资源的节点所在的具体位置。

例如,如果你想观看 Youtube 上的一段 4k 视频,你的浏览器需要在遥远的谷歌数据中心服务器上找到该视频,然后把视频流千里迢迢传到你的设备。现实中,有一种称为内容分发网络(CDN)的设施可以把服务器“带到”你身边,但这些服务器可能仍然离你数百公里之遥,而且在很多发展中国家这种技术也没什么实用性。

想象一下,你和 100 个人一起参加了一个课程,你们都看了同样一段视频。结果实际操作中,该视频必须从距离最近的谷歌服务器节点上提取,传输到每个学生的笔记本电脑上,然后重复这个过程 100 次。这些学生不是获取一份副本并在同学间互相分享,而是从遥远的位置重复下载规模庞大的数据。这样的方式效率极为低下,但这就是 HTTP 的工作原理,它在互联网主干线路上造成了大量的拥堵问题。

IPFS 通过去中心化来解决拥堵和政府部门的过度控制问题

IPFS 不是指向位置,而是直接指向资源本身,并确保数据来自最近的源。这意味着,如果一个教室坐满了学生,他们要观看同一个视频,他们会从彼此那里获取资源,而不用都从某个遥远的中心节点下载数据流。这样一来,即使是观看 4k 视频也不需要缓冲。

现在你可能会问,这与众所周知的 Bitorrent 协议有何不同,它又将如何改变网络世界?

虽然 IPFS 大量借鉴了 Git 和 BitTorrent 等久经考验的技术,但它提供的是一个全新的解决方案。 BitTorrent 的工作原理是,每个种子后面都是一组独立的用户;如果两个视频使用不同的语言包,那么它们就会生成两个种子,互相之间无法交叉共享任何内容,就算两个种子内的文件内容大致相同也不行,在这个例子中相同的部分高达 99%,却依旧不能共享。

此外,BitTorrent 不支持所有的数据类型,使用起来更麻烦。它也不关心重复数据,意味着两个相同的视频可以共存并同时在网络上共享,从而加剧数据拥堵的问题。

使用 IPFS,整个万维网可以被视为所有人共享的一个 torrent 文件。任何文档、视频、音频文件或整个应用程序,或这些文档的一部分将存储在某台用户设备的本地存储空间内,并共享给全网用户。当你需要某些数据时,IPFS 协议则负责寻找离你最近的数据所有者。

IPFS 网络会自动删除重复数据并追踪数据的历史版本记录。为实现这个目标,向 IPFS 提交的每个文件都会获得一个同内容关联的唯一加密哈希值。历史版本记录可以避免数据被误删除。IPFS 与区块链相结合,让这些唯一地址可以存储到不可篡改的链中,从而可能创建出有趣的产品。 IPFS 不是区块链,但它的设计宗旨是同区块链协同运作。接下来让我们看一看人们对 IPFS 的一些误解,然后再回来探讨这一组合能够创建哪些应用以及有哪些应用已经面世。

误解

存储在 IPFS 上的数据是持久的

永久和持久是两个意思。 IPFS 承诺的是永久存储,他们认为非永久存储就和焚书一样是严重的问题。但需要注意的是,IPFS 不保证持久性,网络上的节点会自己判断是否值得在 IPFS 上保留某些数据。在 IPFS 上,你可以创建内容、将其添加到网络中然后撒手不管,过程中不需要任何基础设施。IPFS 使用加密技术存储你的内容,只要网络认为这些内容有价值就会一直保存下去。指向特定内容的链接将始终保持不变,但网络是否存储这些内容则由用户决定。 IPFS 使用加密货币来激励数据存储行为,稍后会介绍这方面的更多内容。

IPFS 是基于区块链的技术

尽管 IPFS 使用像默克尔树之类与区块链相似的架构元素,但它并非基于区块链,而是被设计为与现有的区块链协议协同工作。如上所述,上传到 IPFS 的每个文件都将获得一个永久地址。与 IPFS 不同,区块链并不适合存储大量数据。将这两项技术结合在一起,你可以在 IPFS 网络中存储大量信息,并将不可变的永久 IPFS 地址放在区块链事务中。IPFS 将提供可公开访问的数据库,而区块链提供公开验证机制。

IPFS vs 去中心化 vs 分布式

IPFS 是一种分布式的文件系统,可实现高性能和去中心化的数据归档。



图源: https://blog.neocities.org/blog/2015/09/08/its-time-for-the-distributed-web.html

分布式意味着所有数据处理 / 归档操作都不在同一个位置完成。分布式服务仍然可以被单个实体控制。

去中心化意味着没有一个实体可以控制所有事务。

因为 IPFS 的数据是在全网分散存储的,所以它是分布式的。是去中心化还是要归属权,这取决于数据和管理数据的应用。

使用 IPFS 和区块链的应用

IPFS 用于存储可公开访问的数据,而区块链用来验证它们的地址。这意味着两件事:首先,你可以确保引用特定文件的链接确实是你应该使用的链接;其次,链接将始终返回相同的对象。基于这两点可以发展出很多平台,解决当下互联网难以解决的很多问题。



图源: http://www.themerkle.com/

知识产权

在线知识产权问题跨越了艺术和音乐、源代码和程序等诸多领域。像 Embermine( http://embermine.com/ )这样的平台使用 IPFS 和区块链为内容创建者提供了一个完整的生态系统。它提供了由智能合约(在区块链上运行的应用程序)、基于信誉的协作网络、身份保护等驱动的营收渠道。

社交网络

像 Akasha( http://akasha.world/ )和 Steemit( http://steemit.com/ )这样的网络基于区块链和 IPFS 构建,提供真正的去中心化社交网络体验。他们通过奖励加密货币来激励内容创作,并通过将数据分散在 IPFS 网络上来对抗控制和监管,这类监管行为可能来自任何数据监管中心部门。

“在今天的区块链领域,AKASHA 是一项社会和技术实验,使我们的集体记忆、感受和想法在整个人类的存在中自由回响。通过融合以太坊与星际文件系统,我们探索永久网络在言论自由、持续创作和隐私保护背景下的意义和应用,为心灵寻找更好的归宿。“

——Akasha.world

免费电子商务

OpenBazaar( http://openbazaar.com/ )创建了一个市场,由于它不受中心化机构控制,因此不会对商家收取任何费用。与 eBay 或亚马逊等传统电子商务网站不同,在 OpenBazaar 上展示或销售商品无需缴纳任何费用。由于交易是点对点的,并且直接在买卖双方之间发生,因此没有中间人可以从销售中扣费。这是为商家提供的免费电子商务平台。

加密货币

FileCoin( http://filecoin.io/ )鼓励数据存储。你可以在 IPFS 网络上存储数据来促进网络运行,并因此在 FileCoin 中获得报酬。他们的理念是,由于全球数据中心和众多硬盘中有大量空闲存储空间,因此可以利用这些空闲空间并赚取 FileCoin,然后将其转换为其他加密货币或法币。

zCash( http://z.cash/ )承诺保护交易隐私。其支付操作会发布在区块链公链上,但不公开交易的付款人、收款人和金额。

如你所见,所有这些应用的使用体验都与正常的 HTTP 浏览行为相似。这就是这一技术的亮点所在。它与 HTTP 协同工作,并提供更出色的工具来解决传统系统无法解决的诸多问题。

所有这些都为使用 IPFS 和区块链的新兴平台提供与当今互联网巨头竞争的能力。

现状与未来

当下的应用程序都运行在 Web 2.0 之上,它们向基础设施投入大量资金以缓解我们之前提到的问题。构成 Web 3.0 的去中心化技术(如 IPFS 和以太坊协议)需要与它们展开竞争,并取得胜利才能实现大规模应用。

他们需要表现出类似的能力水平,或者至少证明自己有这个潜力,同时还要带来更多好处。

以下 IPFS 相比 Web 2.0 的显著优势



无信任多方计算意味着你可以在自己不信任的设备上执行计算,这同样适用于数据存储。

可信帐本时间戳和可验证的应用程序意味着可以从数学角度确定地证明正在运行的操作。

去中心化应用程序意味着,就算在网络上发布应用的公司消失,应用程序也将继续存在,而无需公司的基础架构或支持。

内置端到端加密。现在的服务商之所以无法提供这种功能,是因为他们依赖用户数据和广告。但这是 Web 3.0 的默认功能。

Web3.0 世界中有更多的玩家,他们都为我们提供了一种基础、一个让应用程序和业务开发人员与当今的巨头展开竞争的杠杆。无论 IPFS 是否能实现大规模应用,它都向我们展示了一种可行性。

最后,如果你想深入研究 IPFS,可以参考以下链接:

查看英文原文: https://blog.rubiksdigital.com/how-ipfs-is-disrupting-the-web-e10857397822

感谢无明对本文的审校。

2018 年 8 月 12 日 18:212919

评论 1 条评论

发布
暂无评论
发现更多内容

学创业,读毛选 Jan 9, 2021

王泰

28天写作 读毛选,学创业

区块链挖矿系统APP软件开发

开發I852946OIIO

系统开发

CSS10 - 盒子模型&常用无序列表样式

桃夭十一里

html/css

第2周总结-架构中的设计模式

潘涛

架构师训练营 4 期

三只猫

关系中的密码:麻烦

熊斌

个人成长 28天写作 亲密关系

RocketMQ学习笔记

大刘

RocketMQ MQ 消息队列

大作业二

fmouse

架构师训练营第 1 期

自下而上的问题清单

将军-技术演讲教练

28天写作

架构师训练营大作业(一)

曾彪彪

「架构师训练营第 1 期」

架构师训练营第 1 期 - 大作业1

Anyou Liu

架构师训练营第 1 期

一致性Hash算法

andy

kill -9 导致 kafka 重启失败的惨痛经历!

AI乔治

Java kafka 架构

第2周课后练习-OOD的五大原则

潘涛

架构师训练营 4 期

在 win 10 上安装 Elasticsearch 7.10.1

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

架构师训练营大作业(二)

曾彪彪

「架构师训练营第 1 期」

大作业一

fmouse

架构师训练营第 1 期

记一次JVM OOM 实战优化

AI乔治

Java 架构 JVM OOM

序言 基层管理者技能修炼的九把刀

一笑

管理 28天写作

视频号发展简史&第一天数据 | 视频号28天(02)

赵新龙

28天写作

单向链表合并实战

andy

SafePoint 与 Stop The World 全解(基于OpenJDK 11版本)

AI乔治

Java 架构 jdk JVM

我能加入写作训练营,一切都因为...

李忠良

个人成长 驱动力量 28天写作

小心!你可能搞了个假的头脑风暴!

Justin

团队协作 28天写作 头脑风暴 群体迷思 创造性思维

28天带你玩转Kubernetes--第一天(课程介绍)

Java全栈封神

Kubernetes 云原生 k8s入门 28天写作 k8s教程

HDFS SHELL详解(1)

罗小龙

hadoop 28天写作 hdfs shell

期末大作业(一)

TheSRE

生产环境全链路压测建设历程 24:FAQ 5、6负载均衡、如何不影响正常业务?

数列科技杨德华

28天写作

我们为什么要学习Springboot?

武哥聊编程

Java springboot SpringBoot 2 28天写作

解读《Java开发手册(泰山版)》- 会当凌绝顶,一览众山小

xcbeyond

Java Java开发手册 28天写作

Flink 自定义Avro序列化(Source/Sink)到kafka中

大数据老哥

大数据 flink hadoop

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

IPFS如何冲击我们熟知的网络世界-InfoQ