IPFS生态日趋成熟,Filenet携手Filecoin共同打造共享存储新格局
前言:不断有圈内开发者公开表示要支持Filenet,甚至一度宣称已放弃Filecoin。原因不言自明,Filecoin白皮书发布已有1年时间,直到8月5日才公开工作。至于什么时候可以开始挖矿?对此,官方一直没有正面回答,上线时间被不断延期。
近日,我们联系到Filenet中国社区开发者,为我们分析一下为什么Filecoin项目开发如此困难、难在哪里,我们从技术的角度,通过几个关键问题的解读,来阐述清楚这个问题。
Filecoin的挖矿方式是怎样?
答:Filecoin挖矿有三种方式:存储挖矿、检索挖矿、打包区块挖矿。存储挖矿是由存储用户付费,通过存储市场竞争获得收益。检索挖矿是由检索用户付费,通过检索市场获得收益。
打包区块挖矿只能由存储矿工参与,获得打包的机会与有效存储的数据大小占整个市场数据总量的权重成正比。
这种新颖的挖矿方式将存储和检索分开计算,并且由存储矿工来打包区块,增大了存储的价值。存储矿工挖矿需要抵押代币,并且做好存储服务,提供复制证明(PoRep)和时空证明(PoSt),否则就会损失代币。存储挖矿需要专业,很负责任才能做好,而检索挖矿则没有什么门槛,想挖就挖。
什么是复制证明?怎么去实现?
答:复制证明是指存储矿工为用户存储数据时,必须真实地存储用户指定的数据和指定的份数,并且向系统提供证明。复制证明会面对三种攻击:女巫攻击,外部数据源攻击,生成攻击。女巫攻击指的是声称自己存储了多份文件,实际上只存储了一份。外部数据源攻击指的是不实际存储文件,当用户需要时,从别的数据源获得数据再转发给用户。生成攻击是指通过一小段程序生成一大段文件,慌称存储了一大段文件,当用户需要时,通过这段程序生成还原一大段文件。例如“从一到万”,只用四个字就可以生成一个一万字的数据。
至于复制证明怎么去实现,Filecoin官网目前并没有透露任何细节,官方公布的所有材料和邮件都只是讲概念。我们只有综合现在的一些技术,了解一下项目的难度。
所谓的复制证明,通俗点讲,就跟背课文一样。一篇课文怎样才算是背熟了呢?自然课文中随便抽取一段,都能倒背如流。复制证明也是如此,除了存储文件之外,还要存储一下可供验证的信息。如果矿工存储了这些数据就会计算出正确的答案。当然,矿工也有可能碰巧蒙上,或者说记住答案。这就要求我们验证的题库要足够大,从中随机选题,验证次数也要足够多,这样矿工猜对的概率就几乎等于零,并且记住答案的开销远大于存储数据的开销,这样矿工就不会作弊,而是老老实实存储文件。
复制证明难就难在需要额外的开销,包括额外的存储资源,额外的计算资源,消息确认的延迟等等。让本来高效低成本著称的IPFS网络变得毫无价值,甚至比普通中心化机房或CDN服务器代价还大。
Filecoin的复制证明还要求按数据份数计算,也就是用户需要多少份,就要存多少,这样是有悖常理的。正常情况应该是用户只需付一份钱,至于为了安全为了稳定,系统应该做多少备份,应该是系统考虑的事情。这个额外的需求也会进一步消耗系统性能。
Filecoin复制证明还要求抵抗生成攻击。事实上,实现这个目标非常困难。一般意义来讲,生成攻击不应该算作弊。对于一个存储系统来讲,提交的数据我存了,需要的时候我能给出完整的数据,这就足够了。比方说带数据压缩的文件系统,本身数据存入的时候,由一个程序压缩,实际上不需要原来那么大的存储空间,取数据时,再由另一个程序将数据解压缩,这种文件系统实际很常见,但Filecoin认为他是作弊了,而且这种作弊方式Filecoin很难排除。这个矛盾实际上是由Filecoin的系统设计导致的,由于Filecoin打包区块挖矿跟有效存储的大小有关,而这个漏洞会导致,用户将一些生成攻击产生的无效数据上传到IPFS网络。这一漏洞虽然列出来了,但是实际上很难解决。
什么是时空证明?实现困难在哪?
答:时空证明要求矿工定期向系统提供证明,表明这段时间数据一直安然无恙地存放,没有被删除。时空证明会定期上传到区块链上,即便当时不在线的质疑者也可以根据区块链中的内容获得时空证明,从而判断矿工是否有忠实地干活。
时空证明要求矿工定期将存储证明发到区块链网络中,这一技术实现并不难,然而额外的开销是非常明显的。一个IPFS的数据分片为256K,每个数据分片,在每个证明周期(n个区块周期间隔),会上传一个时空证明。如果系统性能高,区块产生速度快,时空证明产生的区块间隔不是很大(太大会影响用户结算时间),这里产生的数据是非常大的。很快就会超过数据本身,并且不断增长。同时,其他矿工验证这些数据的计算量更是惊人的。
Filecoin区块链如何搭建?效率如何?
答:Filecoin区块链基本上是按照时空证明的链条搭建,因为时空证明中包含每个节点存放的每个分片存储多长时间的证明。这一信息足以计算出每个节点有效存储在全网络中的比重有关,根据此概率选取节点获得打包收益。记账、转账都是在这个基础上来做。
Filecoin区块链最困难的地方也在于此,由于Filecoin区块链跟实际存储的数据大小有关,而这一信息更新很频繁,并且记录在整个去中心化网络之中。实时收集这些数据,统计出全局的数据,同时还要验证证明是否有效,这就在挑战系统的极限了。同时,还要防止恶意攻击和一些不诚信的行为,安全方面的设计也是必不可少,这更是增加了系统的负担。
目前区块链转账都要求很高的TPS(每秒交易数),好一点的区块链项目都能做到每秒上百万。而Filecoin又跟存储检索相关,存储跟检索都需要支付代币,而存储检索都无法容忍延迟。一旦TPS起来了,并发用户多了,带来的数据处理量增加非常明显,系统效率又降了。这是一个矛盾,按照现在Filecoin架构永远无法消除。试想想,如果一套存储系统给你,需要付费才能玩,而付费了还需要等待几十分钟才能确认收到,提供正常的服务,这样的系统谁会接受。
最后:Filenet与Filecoin同作为IPFS的激励层,也都选择了共享存储的赛道,但很明显,Filecoin落地有着天然的障碍。同比之下,Filenet发展得更为迅速,也有更多的人正在向Filenet靠拢,并且已高举Filenet的大旗向IPFS迈进!
网友评论