目前市场上对Filecoin这一存储天王(鸽王)存在两种主要长线观点:看空和看多,但是很多都只是在简单说说多空,更有甚者,毫无逻辑,狂吹FIL长期价值——可惜,至今没见到一个完整的逻辑。
今天头等仓就对Filecoin的机制设计深入探讨,深度解析业务模型,并对系统进行简单实测,尽可能详尽展示我们对Filecoin 长线调研的全部依据和逻辑。
是时候有理有据的对存储天王Filecoin泼个冷水了。
前言:去中心化云存储的探索
去中心化云存储赛道,目前能存东西的项目头等仓只看到四个:Filecoin、Storj、Arweave、SiaCoin。
SiaCoin过分中心化(一共就俩矿池,而且其中一个和项目方关系千丝万缕,详见头等仓财富代码第13期),并且激励机制存在严重问题,已经不值得关注。其余三个,Arweave实际上另立门户,做的是永久储存的“亚历山大图书馆”,这条道路和天花板都要另外考量,估值也要另外算,严格来说,Arweave和Filecoin不适合做横向对比。
而真正能算得上在去中心化云存储赛道主战场上正面PK的重量级选手,其实只有Filecoin和Storj。
毫无疑问,它们在去中心化云存储这件事情上,选择了两个完全不同的方向:
Filecoin不惜一切代价也要先实现区块链极客心目中完美的去中心化,存储性能和体验先不论;而Storj在节点去中心化实现的基础上,重点精力在于提供高SLA服务标准、高稳定性的性能,以满足企业级存储的高要求,并且降低了高昂的费用,以面对长尾企业市场挑剔的实用需求。
或者简单说,它们一个追求更好的去中心化,一个追求更好的云存储,那么是真的做到了么?
两个都实打实“认真做事”了数年的项目,头等仓在内部进行了多次的头脑风暴,以下我们就抛砖引玉,从去中心化程度和核心存储业务方面,对Filecoin和Storj做一个全方位的对比,本文核心分成了两个部分,前半部分通过去中心化程度、代币模型、激励机制、矿机门槛、产品定位……等十多个方面尽可能全方位的做一个对比。后半部分则是通过对存储业务的能力水平做横向对比。
由于本文较长,总共17000+字,我们辛苦的把每一个字码出来,当然是希望大家能全文通读,但是我们理解大家可能不一定会有耐心看完,因此我们在每个标题都直接列出我们认为的结论,方便大家浏览,其中,第1-9、14、15、16是强烈推荐大家一定要仔细看的内容。
(头等仓在持续数日的实测中发现,Filecoin由于激励机制存在的重大缺陷,导致矿工有比较高的中心化风险,这一点在第2点和第16点中有详细展开)
一、Storj和Filecoin在去中心化程度、激励机制、代币模型、产品定位….等等方向的深度对比
1、产品定位:Filecoin愿景宏大,但现实落差较大,Storj愿景较小,但目前落地较好
Filecoin的主要定位是作为IPFS的激励层,解决IPFS目前的效率问题,核心点是去中心化,主要的目标群体应该是那些追求数据所有权自由的去中心化极客以及DAPP们。我们不认为传统的存储需求会在目前这个阶段转到Filecoin网络上来,因为目前对Filecoin存储能力实测的结果实在是大跌眼镜。
Storj的主要定位是对标亚马逊S3的去中心化云存储平台,类似于Uber的角色,整合利用闲置资源输出为标准统一的产品,其主要的用户群体为所有使用亚马逊S3存储服务的用户,Storj提供同样的SLA服务标准,更快的上传下载速度,更好的隐私性,去中心化,而且价格仅为亚马逊同类产品的一半。
综合来说,Filecoin的愿景更为宏大,但目前刚上线,存储服务能力比较差。而Storj规划之初就是把亚马逊S3的服务标准作为里程碑,达到里程碑之后才正式上的线,所以在商用云存储这部分显然是Storj做的更好,整个存取体验更能贴近现实用户的存储需求,能存能删,速度快,弹性供应,用多少服务交多少钱。
2、网络去中心化程度:虽各有千秋,但总体来说,Filecoin更好
Storj是非常明确的“三角关系”:用户端、卫星、节点,Storj的卫星不是天上飞的卫星,而是一个服务器集群,Storj的存储节点网络目前是8000+个节点,地理上主要在欧美,亚州节点较少,目前注册用户是11000+,活跃用户是3000+,而卫星目前是4个集群,其中三个是商用中,一个是做为测试卫星。
Storj的三个角色之间的关系如下:用户端发出需求,并上传下载数据,节点负责存储和给用户端下载数据,卫星则承担了一系列重要的角色:在上传下载时为用户端选择最快的节点,给用户端和节点两边记录支出和收入,记录用户储存文件的“位置”,以及存储节点的“信誉数据”——你可以认为卫星给节点建立了一套类似于支付宝信用分的信用系统用于管理存储节点。不可否认,卫星的存在,让Storj在网络结构上相对偏中心化一些,同时卫星也存在单点故障风险,也就是说如果卫星被攻击,爆炸了,那所有通过该卫星存储的内容都会丢失。不过Storj官方对此的解释是:卫星不是单一服务器,是服务器集群,不会轻易故障,且未来会有计划开放卫星,让任何人都可以建卫星。
Filecoin在存储这件事情上,角色有包含存储用户、存储矿工、检索矿工,检索矿工的角色就有点类似于“卫星”,不过不同的是检索矿工是完全去中心化的,任何人都可以成为检索矿工。检索矿工也不像“卫星”一样审核存储节点,检索矿工不审核Filecoin的存储节点。从这个网络结构层面来说,我们认为Filecoin会更去中心化一些。
Filecoin的存储过程是这样的:用户可以从一群存储矿工里面选择自己想要的矿工下单,同时支付订单费用,然后矿工接单储存,封装扇区;检索的时候自动分配检索矿工,检索矿工检索到数据后就发送给用户,在发送数据的同时,用户支付检索费用。
虽然我们认为从架构设计上来看,Filecoin会更去中心化一些,但是,在去中心化程度方面,Filecoin是妥妥的赢了吗?
事情并没有这么简单,虽然Filecoin并不需要卫星这个角色,但是由于它对矿机要求很高,普通电脑是不可能达标的,所以Filecoin注定不可能实现Storj那样,随便买个1T硬盘(200块上下)加个250块钱的树莓派就可以在家开挖——符合Filecoin要求的矿机价格都在10万人民币以上。Storj的硬件低门槛,让当时V2版本一出来的时候一度达到10万个节点的数量,目前V3版本有近万的节点,而且,我们认为未来可能会有很长一段时间Filecoin的节点规模会一直处于比Storj少一个甚至两个数量级的规模。比如现在,Filecoin节点:600+,Storj节点:8000+。从节点数量的情况来看,Storj会更胜一筹。
另外,从节点分布上看如下图所示,Filecoin节点分布在全世界,比较均衡,亚洲也有不少;而Storj遍布欧洲、北美、南美、澳洲,但在亚洲相对较少,特别是中国,只有不到100个节点,这直接导致了中国区上传下载速度明显低于欧美的速度,以此来说,在节点的分布范围上,我们认为Filecoin要更胜一筹。
因此,网络架构是否去中心化这一轮,算是各有胜负,从网络结构的角度看,显然Filecoin赢了,而从节点数量上看,却是Storj赢了,而从节点分布上看,Filecoin又赢了。
但在这里需要补充一个我们认为的Filecoin机制设计的重大隐患:
由于封装扇区需要较大运算,所以Filecoin的矿机门槛极高,这决定了Filecoin的矿工节点数量一定会受限,而且大多数集中在数据中心机房。假设有个用户存了100部电影,每部电影10GB,总量1TB的数据在一个矿工硬盘里,当有1000个用户同时要看这些电影的时候,产生的流量就有可能达到1000MB/S,矿工的带宽将成为瓶颈,因为高带宽同时意味着高成本,而下载环节,作为存储矿工角色提供下载带宽和流量这一环节收入为零,只有检索矿工会收取零星的一点检索费,而实测得到的数据来看,这检索费远远远远低于(成千上万分之一)带宽支出,Filecoin虽然有设计未来会提供一部分的区块奖励来给检索矿工,但目前仍然是纸上谈兵,我们认为,带宽瓶颈有可能将会成为Filecoin存储的死穴。未来由于小矿工设备封装能力低(详情见第4-7点),大矿工对文件的封装速度更快,所以用户文件存储大部分都会流向大矿工,这也将加剧这个瓶颈问题的爆发。我们将持续重点观察。
3、代币模型:Filecoin无悬念胜出
Filecoin的代币模型,结合存储业务来说,我们认为是一种业务补贴模型,由系统发行代币,补贴矿工高昂的矿机成本,让矿工可以通过系统发行的代币(俗称挖矿奖励)来快速收回硬件成本。最后,由二级市场的投资者接盘维持高币价,来对成本买单,这是典型的羊毛出在猪身上的策略。当矿工通过补贴(挖矿)的代币收入来收回硬件成本,就不再需要担心硬件成本问题,所以矿工就可以对外提供不计成本的云存储服务,这就是头等仓思考的Filecoin经济模型的本质。这样的经济模型,在于存储价格上,是非常有优势的,这就像之前广州的一位网红牛杂店老板一样,牛杂一大碗就收你五块,因为人家拆迁家里有10栋楼在收租,人家不靠牛杂店赚钱。这样的经济模型,我们认为在提供远低于市场价格的云存储产品方面,是有很大优势的。另外,在于激励矿工,扩大网络规模上,也有不错的成效,不过在挖矿机制设计上,显然对矿工们是太狠了,这个另说(第4点有详解)。整体来说,我们认为Filecoin的代币机制设计,应该要优于Storj。
Storj的代币机制设计,并没有多少设计,就是单纯的把Storj当成公司的证券+货币来流通。Storj的经济模型设计还是基于偏传统的做生意的概念来设计的经济模型,就是有用户存入1TB数据,通过纠删码冗余后,会分散到80个矿工上进行存储,总共占用大家2.7 TB的空间,然后跟用户收10美元,给到矿工1.5美元/TB*2.7 TB=4.05美元,然后剩下的4美元里面1美元给合作伙伴,3美元团队自己留下。还剩下2美元是做一些营销活动或者杂费支出之类的。这是一个很传统的经济模型设计。业务的增长和代币的价格增加之间,关系比较弱。可以说Storj的代币模型设计跟业务结合不紧密。
作为和以太坊同时期成立的项目,Storj项目代币模型和经济模型都设计于区块链2.0发展的早期,现在看已经比较Old School(步入中年)了,尽管具备诚意,却不性感。头等仓也曾经给团队提过建议,但团队目前显然并没有更改模型的计划。
这一轮,无论Filecoin代币模型有多少问题,都是Filecoin胜。
4、矿工激励机制:Filecoin对矿工狠,但是矿工能赚钱,Storj对矿工温柔,但矿工发不了财
Storj的矿工(节点)对应Filecoin里的存储矿工。
矿工激励机制这件事情,我们对它的目标理解为:为了促使矿工长期、稳定的保持在线,以提供稳定的存储服务。基于这个目标,Filecoin和Storj同样采用了质押的方式来保障,只是Filecoin使用了前置质押,也就是矿工干活前,要买币先来押上,干完活再发工资。而Storj使用了后置质押,也就是拿矿工的工资收入一部分进行质押。前者对矿工比较狠,后者对矿工比较温柔。以下是细节展开。
Storj对矿工的激励包括几个部分:
1. 一套节点信誉系统,让矿工要证明自己能够长时间在线并随时提供高性能服务(95%以上时长在线)+矿工要证明自己存储了数据+随时证明自己完好的保存数据(没丢没坏),这样才能或者才有机会获得收入,这个过程长达数个月,表现差的矿工会被剔除,合格通过的矿工会获得收入,收入包括内容储存费用+上传下载的流量费用;
2. 配置更高、响应速度更快的节点会获得优先,能够获得更多的数据和更高的收入;
3. 加入挖矿后第1-9个月,矿工收入都有一部分会被质押在系统里。矿工要尽量保持运营至少15个月,才能获得全部收入,如果矿工运营不到15个月就退出了,或者到了15个月就随便掉线了或者表现差被卫星“开除”了,那么有一部分收入会被扣掉,相当于用前期的收入作为质押。话说这么多,其实经过笔者实测,基本上只要不是天天掉线厉害的那种,简单地做个矿工问题不大,设备开着就不用管了。
通过这么一套机制,Storj显然在激励矿工尽力运营至少15个月以上,大大降低了矿工的流失率,而节点的流失率越低,客户文件的耐用性越高(越不容易丢)。当然,如果某些节点突然掉了也没关系,每个文件都有80个碎片分布在全世界,就算某地发生战争海啸,丢失一批节点,那剩下的节点也会自动修其它碎片,保持文件可用,目前Storj 网络存储了1.7亿个文件,而文件丢失数量是 0。
Filecoin的存储矿工激励机制部分和Storj没有特别大差别,虽然使用的技术路径不一样:
1. 通过系统,矿工一样要证明自己存了数据(复制证明PpRep)+每隔30秒证明一次自己存的数据还在并且完整、没丢没坏(时空证明Post),随时等用户来取文件,但矿工不需要像Storj矿工一样通过好几个月来积累信用。
2. 如果矿工短时间掉线或者存储的扇区故障了,要按天交罚款,忘记声明自己故障也要交罚款;如果故障时间超过14天,扇区会被停掉,同时被罚掉90天的区块奖励——只有完整运营了承诺的订单周期,矿工才能拿回前置质押的全部FIL。
Filecoin通过这种方式激励矿工保持在线,这点和Storj初衷相同,惩罚也不轻。能够在一定水平上激励矿工在线。
矿工激励的不同部分主要在于质押、收入规则和矿机补贴:目前Filecoin全网有效算力是660PiB,FIL质押量是1360万,平均算下来,每1TiB的算力,平均要抵押20.1个FIL,以目前最新的数据统计,目前实际每增加1TiB的算力,平均要抵押11.18个FIL, 而奖励的发放机制则是区块奖励+存储费用,区块奖励是简单铸造30%+基准铸造70%,区块奖励会随着网络有效采用率的提升而提升,目前区块奖励是11.37FIL/块,但需要在180天内线性发放给矿工(每天的收入都平均到后面180天发放),以此激励矿工长期运营。目前,根据FIP-004提案更新,为了减少矿工质押的压力,挖矿奖励改为先释放25%区块奖励,剩余75%仍然需要在180天内线性发放给矿工。
同时,由于系统暂时分不清矿工自己刷的数据和实际的用户真实数据,Filecoin设计了已验证用户、承诺容量等几个规则,来激励矿工尽量存储真实数据。
已验证用户指的是已经被验证具有真实数据需求的用户,存储这类用户数据会给存储矿工带来其他数据10倍的收入。验证用户的相关细节在本文的“第9点:存储数据量真实性”这一章节中有详细介绍。
在矿工激励这件事上,Storj的激励机制可谓简单明了,这套规则能够很好的服务于其系统高性能高可靠性的目标;而Filecoin的规则尽管尽了很大努力为去中心化服务,架构上也实现了去中心化,但是没有规则能够很好的防止矿工进行刷数据、拒绝存储订单等消极或者作恶行为,也没有能够激励矿工提供足够好的云存储服务,矿工都是逐利的,机制的设计让矿工偏向于提供存储空间(扇区封装),而不是偏向于提供存储服务(矿工可以拒单,矿工无需保证带宽,传输快慢矿工不负责),从这点看,虽然两者都一定程度上达到了机制设计的目的,但Storj 所提供的存储服务会更稳定,文章后面的第16点的上传下载测试也验证了这个问题。但是,虽然Filecoin对矿工比较狠,有严苛的惩罚机制,但架不住FIL比较挣钱,规模效应让矿工可以大量投入,以及大量产出,而Storj追求网络的分散,所以官方限制了矿工的发展规模,以贴合于存储需求的增长速度,所以Storj的矿工没法规模化投入,只能是个人分散投入,比如一个人家里放个NAS,顶多就存个30TB的数据,如果你加一台NAS,在Storj网络就会被识别成同一个节点,因而只会按一个节点给你分配数据,这就注定了矿工无法规模化投入,同时也就没法有规模化收益。所以从矿工收入的角度来说,Filecoin虽狠,但能赚钱; Storj虽然温柔,但只能挣个小小钱,发不了财。
5、矿机门槛:Storj远低于Filecoin
Storj的矿机门槛较低,最低要求是:一个处理器核心专用于一个节点,一个500G硬盘,每月2TB的宽带流量,上行至少5MB/S,下行至少25MB/S。这样的门槛,低到几乎家家户户都可以把自己的电脑装成一个Storj节点。最低成本可以800元组一台NAS,目前本人就装了几台节点用于测试。
Filecoin的矿机门槛相比之下就高多了:官方对矿工节点的基础设备要求:AMD的8+核心CPU、至少128GB的RAM(内存)、拥有功能强大的GPU(取平均核心数为3000,目前一般使用2080Ti/3080/3090显卡)、大于512GB的固态硬盘(选择1TB SSD NMVe接口)。目前单台Filecoin矿机的成都在10万+。
显然,Filecoin矿机门槛远远高出Storj,这一点从经济学的角度,显然将造成能够买矿机做矿工的人数较少,直接的结果就是节点数量必然会很少,我们预计Filecoin的节点数量将比Storj少1-2个数量级。目前的数据是Filecoin节点数600+,Storj是8000+。较少的节点,会让Filecoin在流量分流与提供CDN服务的能力上,远远弱于Storj,而且一旦Filecoin存储应用铺开的话,也会让Filecoin大矿工有较大的流量压力。
6、文件的检索、删除:Storj完胜
Storj对上传到网络中的文件都会生成一个“元数据”,也就是寻找文件存储位置的地址,这个地址存储在卫星中,依靠这个地址,卫星对文件可以进行检索,这一过程非常快速简单,同时,还可以进行删除、转移、复制等操作,据头等仓实测,从Storj上删除一个文件仅需要3秒钟。Storj的检索费用是一个非常小的数字($0.0000022/次),除非天量检索,否则可以忽略。
Filecoin的文件检索主要依靠网络中的检索矿工,检索矿工根据用户提供的文件信息在gossipsub上发布检索要求,随后在存储矿工处获得文件并向用户发送部分文件以及定价要求,最后用户确定订单后支付费用,对于用户而言相对便捷。
而Filecoin由于对文件进行打包封装,每个扇区都被层层折叠成了一个巨大的数据晶体,从中删除数据,等于要把深度折叠的仓库层层拆开,从中找到一个物件扔出来,非常困难——扇区打包需要40-50分钟。因此,Filecoin里的文件目前无法由用户进行删除,若是要删除文件只能通过用户与存储矿工自行协商完成,头等仓咨询了官方,对于文件删除,官方的答复是,要等到该文件的订单到期后,文件才可删除。同时,Filecoin存储时间180天起,因为扇区的最少生命周期就是180天,也就是只要你往Filecoin存了数据,它就必须至少存180天,而且180天的存储费用用户要一次性交清。
另外,Filecoin在文件上传后,需要等到矿工成功把文件封装到扇区后,才能检索下载。这个封装时长主要看矿工的硬件能力,小矿工慢的话要几天,大矿工快的话就个把小时,目前头仓测试过,最快的是晚上上传,第二天早上封装进扇区。而且Filecoin在检索(下载)文件的时候,延迟比较厉害,网络也不稳定,通常要等个至少十几秒,多的要等三分钟,才会开始下载。而Storj在下载文件时,是直接就开始下载,对延迟无感。
另外,因为Filecoin是公链,每次上传下载的时候都要提交订单给矿工,提交订单的同时会支付费用,因此,要支付成功,则必须要保证区块同步到最新区块,所以目前的情况下,要上传下载东西到Filecoin网络上,要先同步几十GB的区块数据,并且区块数据现在还在以每天400M速度增长,这是目前很影响Filecoin应用普及的一个致命伤,所以Filecoin官方也有提计划准备开发不需要同步完整区块链的轻节点,相信应该能解决这个问题。而作为ERC20代币的Storj 就没有类似问题。
从以上的这些规则与实际测试结果来看,显然Storj会比Filecoin 在对象存储服务上更贴近实际的存储用户需求,随存随取,快速检索,费用结算灵活,用多少空间流量,就扣多少费用。而Filecoin相对来说就是能否存取,要看区块同步是否完成,费用结算霸王条款,二话不说先收180天的费用,存上去的东西还不能删。综合来说,我们认为在这个环节,Storj胜出。
7、文件的加密和隐私性:默认加密VS默认不加密,Storj胜出
Storj采用的是客户端加密,所有需要存储到网络中的数据都由客户端加密后再上传,加密后的数据需要用密钥解密后才能查看,而密钥保存在客户端所在的本地计算机中,无法从网络中获得。也就是说,即便通过卫星能找到用户的数据,也无法知道里面是什么,而且文件还是分散成80份,分散到80个矿工的主机里的,要同时获得至少29个矿工的数据 ,才能拿到完整文件,拿到完整文件后,还得使用密钥才能解密,这基本上杜绝了数据泄露的可能。
Filecoin需要上传的数据默认不加密,也就是是否加密靠用户自己。用户有上传未加密数据的可能性。另外,Filecoin是单矿工对单用户,或者多矿工多份复制对单用户,用户的数据是直接暴露在矿工手上的,而且文件的CID只要被人知道,就能任意获取该文件,隐私性相对就差了很多,可以说Filecoin的机制设计并没有考虑太多隐私性方面的需求,只让用户自行对文件进行加密。
因此,我们认为在隐私性上,Storj无悬念胜出。
8、数据维护:Storj更胜一筹
Storj的数据维护亮点是采用了纠删码技术。每个文件上传时数据都会在冗余2.7倍后,生成80个碎片存在80个节点中,其中任意29个矿片就可以生成完整文件,卫星会时常检查以确定这80个碎片是否还在,以及随时间推移,它们损坏丢失的数量,一旦现存的碎片数量下降到50以下,卫星将启动数据修复,从现存节点中获取29个碎片重新生成文件,再切片形成丢失的碎片并重新储存到其它节点中,以确保网络有足够的碎片数量。整个过程用户是无感的。
Filecoin的数据由矿工进行维护,维修矿工的角色也是由其它的存储矿工扮演,用户将文件存储到多个矿工上,其中一个矿工的数据损坏了由其他拥有相同数据的矿工进行文件传输修复。(如果用户只存一份,那就没有维护矿工了,丢了就丢了)
数据维护上,毫无疑问Storj以周密完善的设计胜出,Filecoin这种机制是完全靠用户自己选择数据冗余倍数,以及靠极严苛的条件惩罚矿工来保障文件耐久性。由于严苛的惩罚机制,矿工确实是会积极主动的维护文件的安全,但是免不了天灾人祸的情况,支付宝都能让叉车给挖了,更何况这些集中在数据中心的矿工们呢?目前Storj文件丢失数量为0,而Filecoin刚上线不久,实际效果还需要时间来检验,但单从用户体验与机制设计来说,我们认为还是Storj 将更胜一筹。
9、存储数据量真实性:Storj略胜
从结果来看这个问题的话,多少会有一些不公平,因为Storj比Filecoin早推出半年,目前已经有8PB的真实业务数据存在上面,Filecoin才刚上线半个月,它还没满月。所以我们探讨这个问题,不从结果上看,主要是从机制上来探讨。
从机制上来说,Storj是分散式存储,用户上传文件时不知道这文件会存到哪些节点上(而且大概率给你分布到全世界去),所以没办法自己存给自己,而且上传文件的直接成本与收入关系悬殊,用户上传1TB要支付10美元/月,而矿工存储1TB只有1.5美元/月的收入,因此矿工也就没有上传虚假文件的动机。
但Filecoin并非如此,存储用户是可以直接指定矿工来存储自己的文件,而且存储1TB的文件,支出的成本是每个月不到3美元,而如果矿工把这1TB的文件封装成扇区,那一个月能挖到6.6个FIL,目前价格为21.7美元。而且官方为了鼓励矿工存储“有效”数据,提出了“验证用户”的概念,说白一点就是由社区投票认证的存储用户,由已验证用户存储的数据 ,被网络认定为“有效”数据 ,而矿工封装这些“有效”数据,能得到10倍的算力加成,这样算来,封装1TB的数据 ,就能得到210刀每月。这样的机制,一定会让矿工们努力争取,扮成一个需要大量存储的“验证用户”,只要通过社区认证,就能拿到大量额度,再指定矿工给自己存,这样就完美了。
以下简单介绍一下社区治理的“验证用户”的社区认证“开光”过程:
整个治理分三个角色:根密钥持有人、公证人、客户群。这几个角色都可以是任何人。根密钥持有人是由社区选出,主要的任务就是持有根密钥,无条件执行社区决议。公证人也是由社区选出,主要职责就是把容量额度分配给申请额度的客户,以及向社区申请更多额度。社区投票通过后,就由根密钥持有人执行额度开通。额度开通后就可以分配给客户们去做“有效”存储了。
10、网络理论上的脆弱程度(是否容易被攻击):Storj更胜
Filecoin的矿工是容易被攻击的,矿工容易遭到DDOS攻击导致带宽占满,若是矿工因受到攻击而无法及时向网络提交存储证明,在超过14天后矿工将会被处罚扣除90天的区块奖励,同时扣除质押的代币,该存储扇区视为无效扇区,该扇区被分配的算力清零,此时矿工可以选择将文件丢弃,对用户而言意味着数据丢失的风险很大。在测试网阶段,就曾经有矿工因为攻击,而导致算力清0的情况。
这种攻击对Storj的矿工来说不是问题,Storj客户端对节点的任何操作都需要通过卫星进行,并且,即使个别节点受到攻击,也不影响用户数据的取回,除非存储该用户数据的80个节点里面,有超过51个节点同时受到攻击,导致数据无法取回,而且也无法修得,这样的难度,显然比单独攻击一个Filecoin矿工来的难多了。Storj的最大风险不在于节点,而是在于卫星,但是,卫星也不是单台服务器,而是一个服务器集群,集群的抗攻击能力显然会比单台服务器更强一些。
而且由于Filecoin的用户存储数据是单个矿工存储,所以一旦这矿工网络延迟或者出现被流量攻击的话,用户数据就很难取回。所以对于有用数据,用户还是要选择多个矿工存储。
而Storj的数据是以碎片分散存储,只要80个节点中的29个节点能正常在线,就能完整取回文件。相对来说,可靠性会比Filecoin高很多。
11、对社区支持程度:胡安啊,你该多招几个社区经理了
这是我很不想提起的一个点,只是Filecoin在这方面做的实在是在太差了,所以想借着这么一个机会,希望能引起官方重视。
Filecoin的主要社区是Slack,在Slack中咨询关于目前机制问题以及系统bug、更新问题或者是矿工挖矿疑问的信息,得到回复的速度较慢,基本集中在一个时间点,而且很多时候甚至是没人回复,根据回复情况,目前看来只有一个社区负责人主要回复社区中的疑问,大多时候是在聊天室的同韭出来回答问题,但是有些问题不经过官方确认,我们也不敢随便信啊!我想说Filecoin也募了不少钱了,听说光开发团队就有上百人。怎么也不多招几个人来好好回复社区的问题?这无形中劝退了很多想了解Filecoin的人。自己看也看不懂,去社区问也问不着。
Storj除了每季度定期市政会议之外,有推特,有论坛,有Support平台提交问题,头等仓在测试Storj网络的过程中,碰到了一些问题,在这些平台上咨询官方,几乎所有问题都会在隔天有人回复,从回复的情况来看,有好几个人员分别在回复各种不同领域的问题,基本能够做到有问必答,并且对各种细节提问表现得比较友好,也愿意公开大部分数据。
12、财务透明:这个双方差不多
Storj会按季度对代币支出和锁定情况进行公布,链上也可以查询到其代币锁定情况,但没有公布其法币募资资金的去向。它属于比较透明的项目。按目前官方公布的季度财务报告,团队手上的币,还够他花十几年。
Filecoin博客没有公布资金使用情况,ICO总额为2.57亿美元。我们并不清楚目前团队手上还有多少资金,如果有人有相关数据,欢迎提供。
13、市值&价格预期:这个不重要
这部分,其实我们不想做过多的解读,但是简单的说个结果又有给人喊单的嫌疑,所以我们稍做说明。
Storj目前价格为0.35刀左右,今年312“特价”0.08刀,短期高点0.73刀,目前总量4.25亿,官方手上还有2.62亿持币,市场流通的有1.62亿,未来随着业务量增长,官方手上的代币会逐步释放到矿工手中。只有当官方手上代币释放完后,才有可能改成向市场买币来支付矿工存储费用,而释放的速度是和业务量成正比的,业务量越多,释放越快,流通量就越多,官方持币是目前影响Storj价格比较突出的问题了。未来如果这部分有较大变动(比如销毁),则以目前Storj业务量的增长速度来说,未来机会还是有的。
Filecoin的话,那暂时就只能是一路下跌了,目前FIL还能维持一个高价格是因为质押的机制设计,强迫矿工去市场接盘来增加算力。但这肯定是不健康的,没有充分的,自由的市场博弈,没有充分的筹码交换,光靠质押,锁仓,来锁定流通性,以锁定高价格高市值,这是不科学的,这样的机制,如果让FIL一路维持数百亿美元的整体市值,那就没有投资机会,同韭们看戏就好。只是随着挖矿的币不断释放,整个流通量不断增加,我们认为价格还是会慢慢往下走的,它最终还是要达到一个平衡,那就是矿工买币质押的意愿,以及持币者卖出套现之间的平衡,重点可以关注代币释放速度和质押速度的对比,借贷市场上线后需要关注借贷市场的利率和借贷量。长线来说,我们还是看好Filecoin会有机会解决现有的存储领域的一些问题,但如果今天的Filecoin市值600亿刀,5年后的Filecoin市值1200亿刀,那于你我而言,又有何意义。买大饼不香吗?
二、核心业务的PK:谁能提供更好的云存储
要回答谁能提供更好的云存储这个问题,首先我们需要先理解云存储的服务标准SLA,它是目前全球商用云存储的黄金标准。我们以目前亚马逊S3云存储的SLA服务标准为标准线,以此来衡量双方在云存储核心业务上的表现(不过具体的亚马逊SLA的内容,我们就不罗列了。大家有兴趣可以去亚马逊官方查看)。亚马逊S3 SLA主要包含几个维度:
14、存储的耐用性与可用性:Storj更胜
Storj主要采用了纠删码技术来解决耐用性与可用性方面的问题,纠删码技术主要是会把文件以2.67倍的冗余,切分成80等份, 分散到网络上的80个节点上,只需要其中29个节点在线,便可恢复完整文件。通过这样的机制,Storj实现了99.99999%的文件耐用性,目前存储了1.7亿个文件,丢失文件数为0。因为Storj V3网络设计之初就对标亚马逊S3云存储的SLA服务标准而设计,因此在这部分的能力,Storj相对会更胜一筹。
Filecoin目前在文件耐用性与可用性方面,主要依赖对矿工有严厉的惩罚机制来实现,矿工每封装一个扇区,要质押大量的FIL代币在扇区上,如果扇区损坏,丢失,则矿工的质押的代币将被罚没,以此来激励矿工提供高耐用性、高可用性的存储服务,但目前来看,仍然避免不了矿工存储的扇区损坏,数据丢失。除此之外,Filecoin设计的机制里面,只要用户把文件分多个矿工,分别存储一份,那只要数据产生丢失,那这些矿工之间就能够互相修复文件,但前提仍然要用户多倍冗余存储,因此我们认为Filecoin 目前在文件耐用性与可用性方面是没有保障的。用户存储高价值数据量,需要由用户自行进行多倍冗余,而这直接造成存储成本成倍上升。而且多倍冗余的效果也不如Storj 这种分散80个碎片分别存储来的更安全。
15、存储定价与机制:肯定是Filecoin更便宜拉
Storj 的定价是对标亚马逊S3存储的服务价格,再结合其网络主要组成为闲置的硬件资源,以及由于纠删码的原因,Storj对存储的内容自动会有2.7倍的冗余,综上来说,Storj的存储服务定价为亚马逊的一半,存储1TB的数据价格为10美元/月,数据流量费为45美元/TB ,而Storj支付给矿工的价格为1TB的数据为1.5美元/月, 流量费为20美元/TB. 由于Storj 的主要目标是To B的用户,所以采用中心化的定价方式,以法币定价,避免代币价格波动,提供一个统一的市场价格。
Filecoin的定价是由市场因素决定的,由矿工和存储服务分别提供报价,最终由gossip 对双方进行交易撮合,撮合后的存储用户和矿工则自动对接,用户上传数据,矿工进行存储。计价方式用FIL 来定价,这样的方式优点是以市场供需来决定最终存储服务的价格,从目前来看,价格是存储1TB数据为0.67美元/月,价格是亚马逊价格的30分之一,在价格是上极具竞争力的。但是缺点是由于使用了FIL定价,而且定价规则是由市场供需关系决定,因此,在目前Filecoin 上线还不够久的情况下,代币价格波动大,而且存储供需市场博弈不充份,所以存储服务的价格波动较大,暂时只适合做一些存储测试,还不太适合B端用户进行实际大规模存储。而且笔者实测,每个矿工的定价天差地别,多的甚至差了一百倍,这样的机制,只是理论可行,现实情况不禁让人打了一排问号!
另外,从二者的模式来对比,Storj主打的是使用闲置资源,化废为宝的方式,通过纠删码及存储节点的管理规则来提供高SLA标准的云存储产品,Storj还是以一个比较传统的做生意的逻辑来提供云存储服务,生意逻辑就是:假设Storj向存储矿工以1.5美元/TB的成本每月采购了2700TB的容量,提供给有存储需求的用户,以10美元/TB的价格卖出1000 TB(纠删码生成2.7倍冗余),中间的利差就是团队挣到的钱。我们认为,低价批发,加价卖出,赚利差的方式,让Storj看起来很传统。
而Filecoin通过系统发行代币,由代币来支付给矿工费用,最终由代币交易市场为代币价格买单的方式,让羊毛出在猪身上,由二级市场投资者花钱购买代币,来支付矿工高昂的挖矿设备成本,因而矿工即可提供不计设备成本的云存储服务报价,我们称之为补贴,由系统发行代币补贴矿工以提供低成本的存储,最终由市场投资者买单。这样的代币经济模型设计的很巧妙,有效的转移了成本,提高了存储服务产品的价格竞争力。但是我们认为FIL还是有风险点的,一是目前Filecoin的存储节点硬件门槛高,导致硬件成本极高,同单位的存储容量的硬件成本是亚马逊的十倍以上,其主要成本是用于“挖矿”这件事情,而不是用于更好的提供存储,这明显是不合理的,这部分最终是由投资者来买单,但是我们认为不可持续。协议实验室最终应该要找到平衡硬件成本与挖矿安全性的方法,否则Filecoin的价格优势很难持续。
16、存储上传下载速度:不得不说,还是Storj胜出
从机制上来说,Storj使用了纠删码技术,文件的下载过程,是从80个存储节点中选择35个速度最快的节点进行竞争传输,最终客户端从29个最快的节点取回数据碎片。Storj快,首先是多点传输比单点传输要快,中心化云存储的一个问题,就是下载时从单个点往客户端传文件,传输速度非常受限于带宽,而Storj采用多点传输分散带宽需求的方式解决了单点带宽受限的问题——由29个节点的带宽去分担传输流量。而Filecoin的机制允许用户选择单个或者多个节点储存,但实际下载时还是从单个节点下载,因此其速度会受限于单个节点的带宽。
第二则是节点竞争,由于节点竞争的存在,Storj的节点都“被迫”保持高带宽来保证自己的高上传下载速度。每次用户上传数据,都有130个节点竞争存储数据碎片,其中80个较快完成存储的节点能够获得这部分数据和后续收入,另外50个什么都得不到。用户下载数据时也一样会有部分较慢节点一无所获。因此,节点的上传下载速度越快,越能够保证自己获得存储数据碎片/传输数据碎片的机会,获得收入。这就保证了网络整体的上传下载速度。
以下是头等仓为了取得Filecoin和Storj的真实上传下载速度,我们对其网络进行实测,首先必须强调我们只需要了解双方的速度大概量级,对于实验的数据精准程度,我们是不做要求的。测试过程分两部分,一部分是在国内,以家庭带宽为主进行的测试,第二部分是租用国外的服务器,以国外网络条件为主进行的测试,为了让大家更好的感受两个网络在存储能力上的差异,所以我们尽可能还原测试过程的每一个细节,同时也留下的测试文件CID等信息,大家可以在区块浏览器去查证,整个测试过程如下:
1)本地测试
笔者坐标中国厦门(因为头等仓就在厦门), 使用家庭200Mb 电信宽带,测试文件大小为1006MB。
Filecoin测试:
导入Lotus后生成文件指纹CID:bafykbzaceb7jcjsnozpv45wpqyqrzilmehqgzin5ozhfwfvfbu7rn7oon3iu2
从Slate.host 随机选取了几个条件合适的矿工 f08157、f03488、f09675
第一次选取矿工 f09675 提交存储订单(Deal)
30秒后生成订单CID:bafyreiheedhw7veoryrux6pznhrpagl32v5sb26gelhcpozwqwgits3dwq
但是大概6分钟后,发现Deal 消失, 可能的说法是矿工f09675拒绝交易。
所以第一次提交失败。
第二次选取矿工 f08157 提交存储订单(Deal)
从提交存储订单(Deal) 到最终StorageDealTransferring(文件传输完成给矿工)总共用时17分19秒,具体步骤如下:
第一步:提交存储订单(Deal) ,到生成Deal CID的用时为1分14秒,生成的订单CID(DEAL CID):bafyreidk5lzgtagrromd3qs4rk7akd57keaz7jlj5bibu7jhiy3wguf6sm
第二步:订单状态转为StorageDealClientFunding,这个意思貌似是矿工在核对余额,核对订单之类的。用时4分48秒
第三步:文件传输,用时11分14秒
第四步:生成了Deal id:961927, Deal状态显示为StorageDealSealing(正在封装中)
单独只取第三步文件传输的时间来计算文件上传速度的话,平均速度应该是1.49MB/S
如果取从Deal提交到文件传输完成的时间的话,平均速度是 0.97MB/S
觉得哪个速度更能代表本次测试的上传速度,就看大家自己选择。不得不提醒一点,Filecoin单点(用户)对单点(矿工)传输的机制决定了影响速度的不是Filecoin网络牛叉不牛叉,而是存储用户跟其选择的矿工的网络连接是否通畅、高速,因此本测试只能代表笔者自身的网络情况与本人随机选择的矿工的网络连通程度,无法代表Filecoin 网络牛叉不牛叉,每个人测试的速度都有可能不一样,从官方Slack 论坛了解到的信息,有的人速度快到十几MB,也有人速度慢到250KB。大家理性看待。
剩下就是等待矿工封装到扇区,预期时间为几个小时到几天,这段时间就不统计了。
(等了两天了,仍然没有被封装到扇区。)
等了两天了,矿工f08157 仍然未把文件封装成功,因此无法直接测试该矿工节点的下载速度,所以不得不从其它已封装成功的矿工那里来下载同一个文件进行测试。目前选择矿工f01782已经完成封装,如下测试从该矿工的节点取回(下载)文件。
第一次运行取回命令,只成功取回1.05MB数据,然后卡了10分钟,取回失败
第二次运行取回命令,显示Recv: 0 B,卡了十多分钟,取回失败
第三次运行取回命令,结果同上,卡住了,取回失败,了解了一下原因,原来是我本机Lotus的区块同步卡住了,没有同步到最新区块
折腾了一整个晚上,区块高度始终同步不上去,区块同步速度明显低于新块的产生速度,从这看来,测试网的区块同步问题还是没能很好的解决。明明昨天还同步的好好的,明明国内节点也不少,怎么今天就是同步速度这么慢,怎么搞都不行。而只要区块不同步,文件就下载不了。上官方论坛查找解决办法,得到的结果是,换电脑,改用AMD的CPU+NVMe固态硬盘(我这么穷,没办法)。最后,逼不得已,全部重装一遍,几个小时后,终于顺利的同步到了最新区块,并成功进行了第四次的下载测试。
第四次运行取回命令,在DealStatusCreatingChannel 这个环节卡了3分13秒,我以为可能是墙挡住了,所以试着开了VPN 20秒,然后又关闭VPN, 然后就顺利进入下一步,开始传输文件,传输文件这个环节总共用时3分28秒,平均速度为4.83MB/S,为了让我自己看起来更严谨一点,所以我又重新下载测试了一遍,结果下载环节用时9分11秒,平均速度1.82MB/S, 为了给Filecoin留点面子,我还是取4.83MB/S 作为本次下载测试的结果吧,到此,经历三次失败,第四次成功,本次下载测试总算是完成了。
Storj速度测试:(同等硬件与网络条件下)
Storj的上传测试相对简单,我选用了https://asia-east-1.tardigrade.io/ 亚洲的卫星。在上面注册完后,获取到了API,然后下载Filezilla,使用Filezilla 可以直接连接Storj 的Tardigrade网络,操作也比较简单。
上传过程就是配置好Filezilla ,选择要上传的文件,直接点击上传,上传的是跟Filecoin测试同样1006MB大小的文件,上传时间是14分27秒,平均速度1.16MB/S ,不过在上传过程中,文件每上传64MB会停顿大概1分钟,主要原因是Storj 需要对文件切成64MB的段,然后再进行纠删码冗余并分割成80小份。这些时间拖慢了Storj 的上传速度。所以用时14分钟多。
另外,可能由于亚洲节点太少的原因,在国内上传大文件时,Storj的上传并不稳定,本人上传了5次才成功一次。大部分是上传到60%-80%的时候卡住,然后反馈超时失败。
下载过程比较简单,直接选择文件,点击下载,下载用时2分21秒,平均速度为7.13MB/S,而且下载也比较稳定,试了几次都直接下载成功。
2)国外服务器测试
国外服务器使用的是Vultr的最高配的Bare Metal ,地理位置在新加坡,4核8线CPU,32GB内存。文件还是同样的文件,大小1006MB,文件CID不变。
Filecoin测试:
第一次从Slate.host随机选取了一名合适的矿工 f020904 提交存储订单(Deal)
大概30秒后生成Deal CID:bafyreicnzkb7csxxqwaqsbzxieoktlsk7ro42ad6slgncfoqmkmsmwg2ui
大概4分30秒后,订单状态转为StorageDealFundsEnsured 后,订单莫名消失。事实证明,订单提交失败!
第二次随机选取矿工f09569
第一步:大概28秒生成了Deal CID
第二步:一闪即过,太快了没看清楚,姑且认为它只有一秒
第三步:Deal进入StorageDealTransferring 状态,开始传输数据,但是这个环节使用了32分15秒(震惊)
第四步:文件传输完成后,生成了Deal id:962551 Deal状态显示为StorageDealSealing(正在封装中)
按本次测试文件传输32分钟的时间来计算,文件上传速度为0.52MB/S,我感觉我可能碰到了一个辣鸡矿工,或者我跟这矿工缘分不够,为了不冤枉Filecoin,所以我决定重新选一个矿工再测一遍。
第三次我实在受不了了,我决定选个有头有脸的大矿工,我用query-ask命令询价了算力排名前五的矿工,只有f01782 能询到价,其它的几个矿工不管是用国内客户端,还是用国外的客户端,询价时都没反应,难道是大家都不开门迎接用户数据吗?身为Filecoin矿工,如果你的硬盘只是为了挖矿而服务,那你和BHD有什么区别?先鄙视一遍!
第一步:提交存储订单(Deal)
27秒后生成订单CID:bafyreiczimrrwlhv2v2csn7bqmnq7yivtq4st4i3eyybkpiun3esxejnhy
第二步:一闪即过,太快了没看清楚,姑且认为它只有一秒
第三步:Deal进入StorageDealTransferring(数据传输中) 状态,开始传输数据,整个环节使用了2分31秒
第四步:文件传输完成后,生成了Deal id:962675 订单状态显示为StorageDealSealing(封装中)
(隔天起床后,Deal 状态已经是StorageDealActive,封装成功)
从第三次的测试结果来计算,上传时长如果以2分31秒来计算,平均上传速度为6.66MB/S,如果上传时长从提交Deal时开始计算,时长是2分59秒,平均上传速度为5.62MB/S。
下载文件是运行 retrieve命令,从矿工f01782取回文件
第一次文件取回只取回了10MB的文件后,报错超时,取回失败
第二次文件取回用时3分53秒。平均速度4.32MB/S
笔者从矿工f020904的节点上下载了另一个1.03GB的文件,是先前传上去做测试的,下载文件用时1分34秒,平均速度11.21MB/S, 我想这应该也是Filecoin的问题之一,就是不同矿工之间提供的存储性能、带宽不一致。有较大的差别。
Storj速度测试:(同等硬件与网络条件下)
采用国外的服务器来上传文件到Storj,这上传速度