FileCoin是知名的区块链存储项目,由美国Protocol Labs研发。
与公众的认知不同,Filecoin并没有商业化的存储功能,也不是去中心化存储,它只是一个存储交易市场。就像拼多多上可以买到手机,但拼多多公司并不设计、生产、制造手机,手机是由拼多多上的商户提供的一样,用户可以在Filecoin上买到存储,但Filecoin自身并不提供存储能力,存储能力是由存储矿工提供的。换句话说,通过Filecoin可以由去中心化的矿工提供中心化的存储能力。
Filecoin有独特的PoSt共识机制,用来验证每个节点是否真正保存了数据。该共识机制原本依赖一种可验证时延加密算法(Verifiable Time-Delay Encoding Function,简称VDF函数),该算法的特点是计算很慢但很容易验证。但由于VDF一直难以工程实现,后面又替换成了基于零知识证明的SNARK。但SNARK的工程实现也不够理想,不仅消耗很多CPU和内存,甚至还需要用GPU,使得硬盘以外的成本大幅度增加,也导致利用闲散存储空间的理想无法实现。
要成为存储矿工,首先需要抵押FIL(Filecoin发行的数字货币)。所抵押的FIL可以视为服务质量保证金,一旦存储矿工承接了存储订单,却没有保管好所存储的数据,就会受到惩罚。
Filecoin最基本的商业模式是各存储矿工报价,存储客户选择一个存储矿工签约,将数据存到该存储矿工的硬盘上,同时将存储费用支付一次性支付给它。存储矿工不仅获得存储费用,还能获得挖矿收入。存的数据越多,通过存储共识挖矿获得的奖励也越多。
存储矿工将各存储客户委托保存的数据打包成固定大小(256MB),以获取出块机会。出块机会是本节点打包的数量占整个系统打包的总量的比例,FileCoin将不断计算随机数,当该随机数与小于该矿工所占比例时,该矿工获得记账权,可以出块获得奖励。当随机数过于小时,可能没有任何矿工能够出块;而当随机数比较大时,可能会有多个矿工同时获得记账权。因此,FileCoin采用的是DAG(有向无环图)而不是传统的链式结构,一个区块可以有多个子区块,允许多个节点同时出块。可以视为区块网或者区块图。从概率上分析,最终每个矿工得到的区块奖励大体等于出块总数乘以出块机会。
FileCoin这种将数据打包的方式,便于进行存储共识,还能提高硬盘使用空间,从而减少IPFS对硬盘空间浪费的问题。
FileCoin还设计得有检索矿工的角色,为客户提供数据检索服务。检索矿工通过提供客户读数据请求所需要的数据来参与,赚取检索费用。与存储矿工不同的是:检索矿工不需要提供抵押,不需要提交存储证明,但也不参与挖矿。目前检索矿工的功能尚未实现。
FileCoin的优势
Filecoin的最大价值在于改变了区块链的挖矿模式,并使数字货币具备了商品属性。这两点都是对比特币等传统区块链项目的革命性变革。
比特币最让人诟病的有两点:虚耗资源的挖矿模式,以及比特币本身没有价值。
比特币是空耗算力来挖矿的,每年挖矿消耗的电力就超过了世界上159个国家,挖矿所使用的算力和电力没有被利用起来,都被虚耗掉了。另一方面,比特币本身市场没有商品属性的,其价格完全依靠共识来依托(因为它很有名,而且稀缺,所以很贵)。
Filecoin彻底改变了这两点。其发行的通证FIL是具有商品属性的,存储用户可以用FIL来购买存储空间,虚拟货币不再是空气币;另一方面,FileCoin提出要建立“consensus protocol with a useful work”,以对社会有价值的工作作为共识机制的基础,即将自己的硬盘空间共享给别人使用,提供真实的数据存储服务,谁帮别人存的数据多,谁就得到最多的FIL奖励,挖矿不再虚耗资源了,而且利他即利己,分享即赚钱,树立了良性的社会价值观。
Filecoin这两点的价值和贡献是怎么形容都不过分的,其价值观、伦理观上都无可挑剔。
Filecoin的不足
- 作为一个存储相关的项目,Filecoin的最大不足是没有建立数据持久性保障机制。Filecoin的白皮书计划了N+M冗余,但与其商业模式不兼容,也一直没有实现。而且也没有心跳监测和自动数据重建,因此数据持久性仍然处于听天由命状态,缺乏确实可靠的保障。
之所以说N+M冗余与Filecoin商业模式不兼容,是因为Filecoin的存储客户与存储矿工的交易是一对一的,而N+M冗余是需要一对多的,一个存储客户的数据需要保存在N+M个存储矿工的硬盘上,目前Filecoin设计的商业模式并不支持这种一对多的交易模式。 - Filecoin也没有提供数据安全性保障机制。虽然你存储的数据被分块然后跟其它数据打包在一起了,但任何人只要支付检索费用都可以堂堂正正地读取,就像你将外套保管在酒店的存衣处,但无需存衣牌,任何人只要支付小额的服务费就可以将你的衣服取走一样。
- FileCoin没有图灵完备的智能合约,只能提供存储服务,不能像以太坊、EOS那样开发多样性的DAPP。