【翻译】简单解读Filecoin白皮书

Simplifying the Filecoin Whitepaper

简单解读Filecoin白皮书

By:Robert Greenfield IV

翻译:冰青

Here we’ll quickly breakdown what filecoin is and the system’s consensus protocol, potential vulnerabilities, and projected future state — all straight from the whitepaper in a way we can understand!

本文将简明条理的为大家解读Filecoin是什么,以及Filecoin的共识协议,潜在问题和未来的可能性。所有的内容都直接来自于Filecoin白皮书,并尽可能以大家都能理解的方式来解读。

You can have access to my annotated version of the white paper here — with notes included!

你可以进入这个链接,里面有filecoin的白皮书以及本文作者的注释。

What is Filecoin?

Filecoin是什么?

 

Filecoin is a decentralized storage network that turns cloud storage into an algorithmic market. The market runs on a blockchain with a native protocol token (also called “Filecoin”), which miners earn by providing storage to clients. Essentially, filecoin is the airbnb of data storage — a peer to peer based exchange that accepts asks and bids to settle decentralized data storage transactions on blockchain.

FIlecoin是一个去中心化的储存网络,其令云储存成为一个基于算法的市场。这个市场运行在区块链上并具有原生的通证“Filecoin”,矿工们通过向客户提供储存来挣取通证。实际上,Filecoin颇似数据储存上的爱彼迎——一种点对点的,基于区块链的,通过撮合买卖方需求来解决去中心化数据储存交易的市场。

Filecoin works as an incentive layer on top of IPFS, which can provide storage infrastructure for any data. It is especially useful for decentralizing data, building and running distributed applications, and implementing smart contracts.

Filecoin是IPFS的顶端激励层,作为承载数据储存的基础,擅长于为去中心化数据提供储存服务,并为搭建、运行分布式应用以及架构智能合约提供相应平台

Filecoin System Basics

Filecoin系统基础

 

There are 3 types of entities in the Filecoin system:

在Filecoin系统中有三种个体:

·Client — Pay to store data and to retrieve data in the DSN, via Put and Get requests

·用户——为在分布式储存网络中发布数据储存和数据检索要求以及上传、取回文件的行为支付资金(一般是Filecoin)。

·Miner — Storage Miners provide data storage to the network. Storage Miners participate in Filecoin by offering their disk space and serving Put requests. To become Storage Miners, users must pledge their storage by depositing collateral proportional to it.

·(储存)矿工——在网络中提供数据储存服务,储存矿工通过提供闲置的储存空间与接受用户的储存要求来参与到Filecoin的挖矿过程。成为Filecoin矿工必须提供储存空间并抵押和储存空间大小相对应的Filecoin。

·Retrieval Miner — Retrieval Miners provide data retrieval to the Network. Retrieval Miners participate in Filecoin by serving data that users request via Get. Unlike Storage Miners, they are not required to pledge, commit to store data, or provide proofs of storage.

·检索矿工——检索矿工在网络中提供数据的检索与取回服务,检索矿工通过接受用户的检索请求和取回文件请求来参与到Filecoin的挖矿过程。不同于储存矿工,他们不需要提供储存空间和抵押Filecoin,也不需要接受数据的储存并提供储存证明。

Clients pay a network of miners for data storage and retrieval; miners offer disk space and bandwidth in exchange of payments. Miners receive their payments only if the network can audit that their service was correctly provided.

用户在网络中为数据的储存和检索向矿工支付费用;作为交换,矿工通过提供储存空间和带宽来获得报酬。矿工只有在他们提供的服务通过网络的审查后才能获得报酬。

Filecoin Consensus Protocol

Filecoin共识协议

Filecoin1

可信市场协议

匹配订单:

1、交易双方将“购买(空间)”订单和“出售(空间)”订单加入到公共账本中。

2、当两种订单匹配成功后,参与交易双方创建“成交”订单,成交订单将承诺交易双方进行交换(数据和通证),同时该订单将向全网广播并加入到公共账本中。

达成交易:

3、网络将通过要求服务提供者对其服务或数据传输生成正确的加密证明(时空证明与复制证明等)来确保数据交换或者服务的安全。

4、当交易完成后,网络将发送用户的付款并将订单从公共账本中移除。

 

·The Filecoin protocol is a Decentralized Storage Network construction built on a blockchain and with a native token. DSNs aggregte storage ordered by multiple independent storage providers and self-coordinate to provide data storage and data retrieval to clients.

·Filecoin是基于区块链构建的一个去中心化的储存网络,并附有原生的通证。分布式储存网络收集由不同个体提交的数据交易请求,同时撮合交易以向用户提供数据储存与检索服务。

·Filecoin is a protocol token whose blockchain uses a novel proof, called Proof-of-Spacetime, where blocks are created by miners that are storing data.

·Filecoin是该区块链的原生通证,此链以一种新颖的共识方式“时空证明”,令矿工在储存数据时挖掘区块。

·Provides a data storage and retrieval service via a network of independent storage providers that does not rely on a single coordinator, where: (1) clients pay to store and retrieve data, (2) Storage Miners earn tokens by offering storage (3) Retrieval Miners earn tokens by serving data.

·数据服务提供者(检索与下载)在网络中独立承担数据储存与检索服务,不依赖于任何组织或其他个体。其中:(1)用户为储存和检索数据支付费用;(2)储存矿工通过提供数据储存服务赚取通证;(3)检索矿工通过提供数据检索服务赚取通证。

·Uses Proof-of-Replication (PoRep), a novel Proof-of-Storage which allows a server (i.e. the prover P) to convince a user (i.e. the verifier V) that some data D has been replicated to its own uniquely dedicated physical storage, and Proof-of-Spacetime, where a verifier can check if a prover is storing her/his outsourced data for a range of time.

·通过复制证明,一种新颖的储存证明,令数据服务提供者说服用户相信数据已经被复制到了服务提供者独一无二物理储存设备上,而时空证明令用户可以检查服务提供者是否在一段时间内持续储存好某个数据。

·Filecoin mining power (amount of data stored per miner) is proportional to active storage

·Filecoin挖矿的能源消耗(每个矿工储存的数据量)与网络中的活跃数据(交换、检索、储存、下载的数据)成正比。

Filecoin Usability

Filecoin的用户可操作性

 

·Clients can select replication parameters to protect against different threat models.

·用户可以选择复制文件(即存储到矿工手里的文件)的相关参数,以保护文件免受可能的攻击风险。

·Clients can eventually retrieve data from miners

·用户可以从矿工处检索、取回完整的数据。

Potential Vulnerabilities

潜在攻击性

 

·Sybil Attacks: Malicious miners could pretend to store (and get paid for) more copies than the ones physically stored by creating multiple Sybil identities, but storing the data only once.

·女巫攻击恶意矿工可以假装从一份已储存的数据中,再复制多个备份并储存(且获得相应的额外报酬)并提供储存证明,但实际上其只储存了一份数据。

·Outsourcing Attacks: Malicious miners could commit to store more data than the amount they can physically store, relying on quickly fetching data from other storage providers.

·外包攻击:恶意矿工可以通过储存超额数据,高于其实际所能储存的数据量,来获得额外收益。为此恶意矿工通常需要从其他储存矿工处取用数据以生成储存证明。

·Generation Attacks: Malicious miners could claim to be storing a large amount of data which they are instead a ciently generating on-demand using a small program. If the program is smaller than the purportedly stored data, this inflates the malicious miner’s likelihood of winning a block reward in Filecoin, which is proportional to the miner’s storage currently in use.

·替代攻击:恶意矿工可以声称其储存了大量的数据,但数据并非原有数据,而是由其他程序生成的替代数据。如果程序和生成的数据小于原本应当储存的数据,那么恶意矿工赢得Filecoin区块奖励的可能性会增大,这个可能性与矿工最近储存的数据量成正比。

·Deals are time-boxed and become invalid — but malicious clients could DDOs specified miners and hold their storage up for (ts — now) periods of time indefinitely…

·(接受)交易具有时限,超过时限将视为失效。恶意矿工可以DDOS攻击指定的矿工以令其交易接受时间无限延长(即无法正常接受交易),以此来获得该矿工本应接受的订单。

·Given that clients will essentially need to strategize as to how many pieces they’re bidding to be assigned to m number of sectors AND that those pieces need to be encrypted — there seems a need for something to help manage bids and data encryption before transacting on such a network

·用户发起储存需求后,需要对储存文件应当分片为多少份制定相应计划并为每一部分指定编号,同时这些分片都需要单独加密——因此网络对交易发起和信息传输前的数据协助加密是有必要的(而Filecoin似乎没有做到这一点)

·Level of encryption and sharding of data is somewhat undescribed — seems like clients can opt to store their data in one place by just bidding for one piece (instead of breaking up their data into multiple pieces)

·白皮书对加密等级和数据分片的某些方面表达不清——客户端似乎可以选择在一个地方只储存一个分片(而不是把数据分片再复制多份储存)。

 

Leftover Inquiries

一些小疑问

 

·Is there any guarantee of zero storage faults given a certain amount of requested replicas?

·Filecoin通过设定一定数量的文件(分片)备份,能否避免零储存错误?

·Is the collateral necessary to become a storage miner the filecoin token as well? If so, how is it initially obtained given token sale limitations? Will investors that have filecoin naturally select to transact on the network?

·通过抵押Filecoin来成为储存矿工是否合理?如果是的话,在早期通证分发不全时,如何保证矿工能获得通证?拥有Filecoin的投资人会愿意自发的选择在Filecoin网络上传输通证么?

·How is the piece (data storage request) transacted, are there size limits to how big a piece can be? Isn’t it dangerous to put one piece on a sector (data storage miner space) at all — even if it’s encrypted?

·文件分片(储存请求发送时)是如何传输的?对于每个分片的大小有限制么?如果将一个分片只存储在储存矿工硬盘的一个扇区里,即使分片被加密,分片是否真的足够安全(有扇区损坏的风险)?

·When sectors are sealed (closed due to inadequate leftover space on the storage drive), where is the replica stored?

·当硬盘的扇区被锁定(由于磁盘剩余空间不足导致扇区关闭不予读写)时,分片的复制会被储存在哪?

·Are network assignments of pieces to sectors random?

·网络是随机分配分片储存到磁盘扇区中么?

·Are clients storing the hash of their data in another database, given that they might have billions of pieces given the size of each piece and assignment?

·考虑到用户上传文件的大小与分片数量可能数以亿计,用户是否可以选择将其(上传文件)的哈希值储存在其他的数据库中?

·What type of computational resource does being a Retrieval Miner entail?

·检索矿工使用哪种方式检索资源?

·Where is the off-chain orderbook held and can this be altered?

·离线账本(即储存在本地的文件目录与交易数据)储存在何处?可以更改(并被在线公共账本承认)么?

 

Potential Future State and Application Stack

Filecoin的未来

 

·Off chain settlements could incorporate the fee-less structure/support of IOTA tangle at scale

·(Filecoin作为)链下方案,可以具有减少交易手续费和提高IOTA缠结可扩展性两大功能。

·Potential to create smart contract based APIs that work within the specified Filecoin put framework (querying encrypted data even)

·具有基于Filecoin框架的API构建智能合约的潜力(甚至可以调用查询已加密数据)。

·Potential of Filecoin blockchain being the decentralized off chain storage of other blockchains like bitcoin

·Filecoin区块链具有作为其他链上项目(比如比特币)拓展链下储存的潜力。

·Could even call smart contracts in storage and execute on another blockchain like ethereum to avoid gas fees…

·未来甚至可以从储存的文件中直接调用智能合约并在其他区块链项目(如以太坊)上运行以避免(链上合约运行的)手续费。

参考文献:

Simplifying the Filecoin Whitepaper.  Robert Greenfield IV.  Medium

【翻译】CDN,是什么,为什么,怎么做

CDN — Content Delivery Networks

What, Why and How?

By:Anuradha Wickramarachchi

编译:冰青

因原文表述简练,为科普需要本人增添了部分内容,新增内容将以下划线标注出来

图片1

What?

What is a CDN? Well is a complex network focussed on delivering content. What content? pretty much everything you load from a popular web service would deliver content through a CDN. For an example, FaceBook, NetFlix and YouTube uses content delivery networks to serve the billions of users who requests data from their servers. The main idea behind a CDN is the distribution of content in a manner that improves spacial (location based) and temporal (access time based) localities.

是什么?

什么是CDN?CDN是一个着眼于内容分发的复杂网络,简称为“内容交付网络”。这里的“内容”类似于你在浏览某个热门网站时,网站给你呈现的所有东西(如图片,文字等),这些东西都是通过CDN发送给你的。例如Facabook,Netflix以及Youtube等运用内容交付网络来服务数以亿计的向中心服务器请求内容的用户。CDN背后的核心思想是通过合理的方式来分发内容以降低物理距离与网络距离带来的不便与延迟。

An example
Usually NetFlix installs redundant servers throughout the world at difference ISPs to server users. These servers are called Open Connect Appliances which keeps content locally based on access. Anything new that arrives at NetFlix core would be pushed into these so that the local users will be upto date with show catalogues.

一个例子

Netflix常常在全世界架设由不同服务商提供的冗余服务器来服务用户,这些服务器被称作Open Connect Appliances(开放网络服务器),他们将储存用户访问网飞的内容。同时,一旦有新的内容,网飞中央服务器将会把新内容推送到冗余服务器,用户能在首页目录中及时看到他们。

图片2

Why?

Think of the story of NetFlix or FaceBook. Huge number of users keep requesting content all around the world and obviously having a single huge server farm is not a solution due to many reasons.

为什么需要CDN?

设身思考下Netflix与Facebook的处境:大量来自世界各地的用户向你持续请求内容,在这种情况下,再大再厉害的单点服务器都可能存在以下问题:

1·Single Point of Failure (SPOF)

1、单点故障SPOF(即中央服务器宕机),尤其是DDOS攻击或大量流量集中访问时

2·Network Latency

2、网络延迟(比如中美之间的网络延迟)

3·Cost (ISPs have to jump through many BGs — Border Gateways, that connect different ISPs. This costs!!)

3、费用(网络供应商传输内容必须通过许多网关,这些网关又连向不同的供应商,这将是笔巨大的费用。就像过高速路要交钱一样。同时为了避免高延迟和丢包率造成的数据损坏,服务器一般会像客户端持续发放数据,这些数据会持续占用带宽)

4·Requires redundancy for fail safe

4、网络容错需要服务器有足够的冗余(即一个服务器出问题时还能调用其它服务器)

因此,为了避免单点服务器因为过多的访问量导致的不可预见的问题,中心服务器常和CDN供应商合作,我们以脸书的CDN供应商Akami为例。

Aakami

CDN能提供以下服务:

  • 通过预储存缓存网页内容,令全球用户能够及时的访问到网页与内容
  • 如果某个CDN服务器没有缓存内容,那么他可以向其他缓存了内容的CDN服务器调用资源(这将不同于传统的互联网要经过多个ISP与DNS丢包的问题,因为CDN服务器之间是平等的,结构化设置的)
  • 提高网站的流量负荷峰值,并分流主要节点(包括中心服务器与接收到过多请求的CDN服务器)的压力,使网页或内容即使受到每秒数百万的请求仍能让用户得以访问(即负载均衡)
  • 提高安全性,对于DDOS攻击,一是通过分流攻击压力,缓解攻击效果;二是基于已有设计区分(每个供应商都不同)非法流量与合法流量,拒绝非法流量访问

此外,CDN供应商的服务器还能收集用户的使用记录与流量资料,实现实时监控与个性化推送服务。

Furthermore, if you inspect the DOM (Document Object Model) of FaceBook, you can see the following.

此外,如果你检查脸书的DOM(文档模型),你能看见以下内容:

图片3

一个典型的CDN储存数据的模型

Images of FaceBook are usually rendered using the Akamai CDN. You can find more who uses Akamai here.

脸书常常使用Akami CDN来呈现内容(看Akami为那些客户提供了服务请点击

How?

CDN是如何工作的?(怎么做)

CDNs are mostly distributed systems that talk to each other. As per the definitionof a distributed system, the entire system appears to be one end point to anyone who reaches it.

CDN是一个高度分布式的系统,节点之间可以相互交流。根据“分布式系统”的定义,对于任何接入到这个系统的节点,分布式系统在他们看来都是单独的一个终端(即节点与网络是平等关系)。

Simplified Process

简要示意图

图片4

上图是CDN的一个简要工作原理示意图,包括以下内容

  • 用户在浏览器输入访问的域名,DNS服务器解析到CDN供应商服务器上
  • 根据流量管理,访问重定向到供应商的某一个CDN节点,反馈解析结果
  • 用户根据解析结果,访问相应的CDN节点,而非访问主服务器

再次以上图为例,如果没用开放网络服务器(即CDN服务器),那么用户要访问某一个页面时,访问请求就必须要经过许多ISP、网关等才能抵达,服务器反馈请求也需要再走一次相同的路径,那么将不可避免的造成延迟、丢包,以及大量的带宽消耗(服务器带宽是要花钱购买的)以保证访问得以进行。

Global Redirectors

The concept of global redirectors is important to discuss on CDNs. These are the ISP level or regional level redirects made to reach the closest server which has the requested content.

全球重定向服务

全球重定向服务的概念是讨论CDN避不开的内容,它指在有内容请求时,CDN供应商级别或者区域服务器级别的重定向将使用户的访问请求导向最近的可用CDN节点

Type www.google.com and you will be redirected to www.google.lk (since I’m writing from Sri Lanka). This is global redirection.

例如:当我们在搜索栏输入“bing.com”时,我们将会被重定向到“cn.bing.com”(因为从IP地址来看我们属于中国),而如果cn服务器宕机,我们则会访问bing.com主服务器,这便是全球重定向服务。

Why Open Connect Appliances

Why don’t ISPs have a single server rack to cache all the stuff, why CDNs push their own devices to ISP premises? Well if ISPs were to know what you requested they would have to open and see the content you requested over internet. Modern web enforces HTTPS, which makes this impossible. If they are to open your requests they would have to be a middle man which will again fail at browsers, because this will fail the SSL certificate validation. Therefore CDN issue their own appliance which does the task in a more secure and a reliable manner.

开放网络服务器的架设理由

如果服务器不会面对大量的流量访问,那为什么供应商不自己架设一个服务器来缓存内容,而仍然让CDN来执行此任务?

这是因为,如果数据传输加密不当(CDN服务商多会提供数据加密服务),内容直接通过ISP(网络服务供应商)传输,ISP将不可避免的获知用户向服务器发送请求的详细内容。那么ISP就存在拦截用户信息,向服务器发送伪造信息与向用户发送伪造反馈的可能,即“中间人攻击”现在网站多通过HTTPS来加强隐私,上述的情况将很难出现,因为如果ISP知晓了你向服务器发送的请求的详细内容,他们将成为“中间人”,这将令ISP传输的内容被浏览器所拒绝,因为他们无法通过SSL证书验证(即我们常见的提示——网站证书失效/不安全),存在欺骗用户的可能。也因为ISP直接传输请求存在上述问题,CDN供应商才得以更可靠、更安全的CDN设施来加密用户的请求,并通过重定向服务减少中间人攻击的可能性(多数数据只在用户和CDN节点间传输,仅个别数据由CDN发向中央服务器)。中间人攻击

This may sound like an annoying task for the ISP, to have some box at their premise. Well NOT!! This is because having such device will enable them to reduce the number of request that pass ISP and reach the WWW. This is a huge cost reduction. Eventually both the CDN and ISP are happy, so are we.

对于ISP来说,这听起来像是个很恼火的情况,因为有了很多条条框框的前提,让他们不能直接传输数据而必须通过CDN。其实正相反,这是因为有了CDN,CDN服务可以减少通过ISP到达WWW的请求数量,令ISP的带宽消耗大幅减少,这将节约一大笔资金,因此,ISP与CDN和用户都是受益者。ISP减少支出,CDN获得流量收入,用户得到更安全便捷的服务。

Thank you for reading. Hope you learned something new. Cheers! 🙂

谢谢阅读,希望能从中学到部分知识~乾杯!

参考文献:

  1. CDN — Content Delivery Networks:What, Why and How? Anuradha Wickramarachchi  Medium
  2. Man-In-The-Middle attack. Wikipedia 
  3. Aakamai CDN, Aakamai.com

【原创】什么是IPFS(练手用)

引言:

号称可以替代HTTP协议的IPFS技术究竟几何?本文尽量以简单通俗的语言进行描述(练手用)

一、IPFS定义

IPFS全称InterPlanetary File System(星际文件系统),是由Protocol Lab(协议实验室)开发的一项基于P2P网络的,旨在解决传统HTTP协议导致的网络集中化与数据不稳定问题的新型网络协议。

想要知道IPFS的优势,首先我们要了解HTTP协议存在哪些劣势:

二、HTTP的短处

NeXTCube PC

距离世界上第一台HTTP协议的服务器NeXT开机运行已有数十年,如今这台服务器静静躺在博物馆中,主机上的一张纸条格外醒目——不要关机!诚如纸条所言,HTTP协议中的服务器不能”关机“,关机即意味着其他电脑无法访问此服务器上的数据,也意味着未保存数据的丢失,表现在用户端上,即是大家常见的”404Not Found“。简单来说,HTTP协议存在着一下3问题:

 1. HTTP高度中心化,使用成本高。想要通过HTTP协议下载文件,用户必须向中心化的服务器发送请求。简单的例子便是,用户在成都点开某视频网站观看视频,由于网站只有一个服务器,同一时间观看人数过多,导致视频观看卡顿,哪怕网站服务器就在家门口。如果想解决卡顿,传统的方法是花钱架设更多更好的服务器,这无疑是巨大的成本。

2. HTTP中的文件经常被删除。不论是出于审查需要,还是出于储存成本,基于HTTP协议构建的服务器几乎无法永久储存文件,十年前的网页,多数已经无法打开,即使打开其中的图片也无法加载,其原因便是网站服务器出于经济压力或者行政压力删除文件。

3. 基于HTTP的互联网高度依赖根服务器。现在全球共有13台IPv4根服务器,9个在美国,2个在欧洲,1个在日本,根服务器管理着全球互联网的域名与地址。一方面,根服务器可以通过限制访问与拒绝服务令某些网页或某些用户无法使用互联网;另一方面,根服务器被攻击也意味着互联网的剧烈波动,甚至导致全球互联网无法正常工作。根服务器实际上代表着以”自由“为代表的互联网走向了”集中“。

上述3个问题令HTTP协议及构建在协议之上的互联网存在巨大的隐患,虽然出于经济与政治的平衡,整个互联网仍然安然无恙的运行中,但一旦平衡被打破,互联网也将脆弱不堪,如伊朗曾因攻击导致全国断网,令国内动荡的加剧。以一种新型的协议改进或取代HTTP刻不容缓。在这种背景下,IPFS诞生了。

想要知道IPFS的优势,首先要明白IPFS是如何工作的。

三、IPFS的工作原理与优势IPFS分片

IPFS储存原理示意图,新文件与已有文件只有Hash7的结果不同,故新文件只储存Hash7部分

1、每一份储存在IPFS上的文件都将被分片,如果分片中的文件与网络中已有文件的哈希值相同,那么该部分将不再上传;分片的文件将以数个备份储存在整个IPFS网络中,防止单一分片因网络原因无法下载。最终,用户下载的文件也是通过下载各个分片完成下载。.

2、IPFS为每一份储存在其网络上的文件和分片赋予一个独立的、不重复的哈希值(哈希值的含义将在以后的文章详细讲述),通过此哈希值,在整个网络内寻找此文件,不同于HTTP是基于网络域名来寻找文件,这种方式避免了服务器关闭导致的文件下载失败情况。

3、 储存的文件若发生更改,每一次变更的历史纪录都将保存以便回溯;同时储存的哈希值可以通过域名系统IPNS映射为域名方便查询。

4、如需下载文件,首先找到这个文件所属的哈希表,根据表上的各个分片哈希进行下载,最后组合即可完成。

通过上述4个方式,IPFS完成了文件的储存、查询、下载,可以同传统HTTP协议一般进行服务器的假设与运行,而基于IPFS的互联网,将能通过以下途径解决传统HTTP的缺点:

IPFS的优势

 1、下载速度快,不依赖于主干服务器与中心化网络。由于下载文件是基于分片的哈希值同时下载多个分片,故下载速度同P2P下载(如迅雷)一般迅速;而基于文件寻址也令下载不经过某个中心服务器,可以从物理距离与网络距离最近的节点下载,大大减少延迟。

2、储存空间价廉丰富。一方面,IPFS网络利用Filecoin激励层促使矿工们租赁自己的硬盘与带宽,利用人性的逐利行为,促使矿工不断发掘更低成本的挖矿方式;另一方面,通过文件分片的哈希值剔除冗余文件,相比传统云储存项目,大大优化了网络的储存能力。以上两点共同降低了用户使用与储存成本。

3、安全。当中心化的网络节点受到大量访问请求时极易宕机(即ddos攻击),而提高抗DDOS攻击能力需要花费大量的成本。在IPFS网络中,由于所有节点都是平等的,资源储存在多个节点中,即使数个节点宕机其余节点仍能负担起整个网络的需求。

 4、隐私而开放。隐私上,IPFS基于P2P网络构建,数据交流不经过中心化机构监管,文件储存以哈希和用户私钥加密,有效避免了文件因监管或利益因素而被第三方删除。而开放的分布式网络,文件的交换记录可以被查询,IPFS的复制证明甚至可以知道上传的文件是否被他人所复制,同时激励层Filecoin也使用户上传的文件可以用以交换,促进资源流动。

IPFS网络,不同于其他已有的云储存项目亚马逊云、storj、maidsafe等,IPFS是一个底层架构,同IPNS(域名系统),IPLD(寻址系统),Filecoin(激励层),以及libp2p与Multiformats等,共同构建了一幅对等是网络的蓝图。基于此蓝图,我们可以构建个人的隐私云盘而不用担心封禁;制作不会404的网页;用作虚拟机的根文件系统;构建加密通讯平台……IPFS能做到这些,是因为传统计算机的系统由三个方面组成:“输出”、“处理”、“储存”,而IPFS从储存角度入手,改变现有的中心化储存格局,提升整体效率。

四、IPFS的未来担忧

然而,我们从辩证法中会学到,所有的事物不会是一成不变的美好,IPFS同理。我们会经常接触到IPFS优良的一面,但我们也要了解到IPFS的局限性,以及它未来的不可控性。

1、来自中心化机构的压力。IPFS系统杜绝了中心化结构的审查与监管,将权力下放到各个节点,这样的情景在近代有类似的情形——不论是法国大革命还是十月革命,本质都是将上层权力下放,解放底层人民的生产力。然而,改革的阻力也是非常巨大的,没人愿意放弃自己手里的蛋糕,因此IPFS在发展过程中一定会遭遇中心化机构施加的压力,甚至会有直接的对抗。另外,我们无法肯定IPFS所处的时代是欧文新和谐公社的空想社会主义阶段,还是列宁十月革命阶段,只能让时间来证明一切。

2、节点质量的参差不齐。所有P2P网络都需要面对一个问题:如何在节点作恶或失效情况下维持运转,即我们常说的拜占庭将军问题。中心化机构中因中心有绝对权力可以进行调度以解决此问题,而IPFS网络中为了缓解此问题提出了时空证明、复制证明,并以节点失信即罚没押金行为进行处罚。然而网络早期不乏有节点使用家用硬盘而非企业硬盘进行储存,极易导致数据丢失,一方面影响网络稳定性,一方面降低用户使用体验。并且经济惩罚在面对某些力量(如自然、行政)时不一定具备优势。如何平衡节点与用户间的天平,IPFS还有一段路要走。

3、网络中心化问题。同比特币的发展一般,效率与公平始终是此消彼长之势。矿工们为了挖矿的效率,最终一定会自发联合形成联盟甚至合并为几个节点;用户与开发者为了网络稳定性与隐私性,更希望网络维持一定的去中心化程度。这一论点同样适用于IPFS网络,比特币尚有core开发者与比特大陆矿霸以及数个小矿工联盟和开发者联盟及用户的竞争,IPFS网络能否发展出类似比特币的群雄割据局面,甚或优于比特币形成更公平的去中心化结构,我们无从得知。储存文件的中心化会重蹈HTTP的覆辙,我们只能希望IPFS作为HTTP的颠覆者,不会成为第二个HTTP。

五、总结

IPFS协议令网络的自由与独立精神再次辉耀,在可见的未来,IPFS与HTTP共存并非空想,至于前者能否取代后者,我们无法定夺。但我相信IPFS的潜力,去中心化已成世界的趋势,未来已经来临,只是尚未流行。

参考文献:

  • IPFS——它能取代HTTP协议? 苏江同学 简书 https://www.jianshu.com/p/ddccae89a49a
  • 什么是IPFS? 飞向未来 微信公众号:IPFS指南(ipfs_guide)
  • 什么是IPFS?为什么说它将取代HTTP?张灏楠 微信公众号:IPFSFAN(ipfsfan)
  • IPFS – Content Addressed, Versioned, P2P File System (DRAFT 3),  Juan Benet, https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf