Filecoin将区块链引入到分布式存储领域,Filecash通过新的技术探索权衡安全与效率。
撰文:Luff
正如比特币扩容之争分叉出比特现金,在Filecoin诞生三年后,基于不同理念的社区人士发起了首个分叉项目Filecash。Filecoin是将区块链引入分布式存储领域的第一个吃螃蟹的人,它希望通过一系列机制设计成为存储人类重要数据的激励相容的网络系统。
但复杂的系统设计使得Filecoin的进展举步维艰,执着于「存储有价值数据」的初衷让Filecoin饱受争议,主要体现为两点:
技术方案:高证明成本导致网络参与门槛过高经济模型:抵押、惩罚等机制对矿工过于严苛作为Filecoin的分叉项目,Filecash试图通过方案改进来平衡社区的利益纷争。本文主要从技术角度阐述Filecoin的运行方式及Filecash的新探索。
Filecoin市场机制
为更好理解Filecoin的技术原理,我们先简单介绍Filecoin的市场机制。Filecoin构建了两个市场:数据存储市场和数据检索市场,两个市场分别存在矿工和用户。
Filecoin存储市场与检索市场运行流程,来源Filecoin白皮书
存储市场
存储市场是由存储矿工与有数据存储需求的用户参与的市场。存储市场中客户提出存储数据的需求,而存储矿工,提供他们的存储空间和存储服务。一个完整的存储周期如下:
智能投顾平台Betterment推出加密货币投资组合:10月12日消息,智能投顾平台Betterment与加密货币交易所Gemini合作推出四个加密货币投资组合,四个投资组合包含的加密货币均为在Gemini上市的代币,包含了元宇宙和DeFi领域。新的投资组合将直接在托管投资账户中持有加密货币,这些工具将允许投资者购买由Betterment算法管理的账户。此外,投资组合份额可以在交易所进行交易。(华尔街日报)[2022/10/12 10:32:50]
第一,存储矿工提供自身价格及存储要求至订单簿。订单薄是公开的,任何人都可以查看,存储市场的服务价格是由市场所决定。第二,当客户的需求价格与存储矿工的订单相匹配时候,交易自动撮合。第三,验证者验证矿工是否存储有效数据,采用零知识的非交互式证明进行验证,有效保护隐私。
检索市场
检索市场为链下市场,用户可以通过检索市场访问自己所需要的数据,由检索矿工来提供检索服务。检索矿工不参与区块生成环节,直接从客户端获取相应服务费用。
一个完整的检索周期如下:
第一,用户与检索矿工广播出价单和报价单,如发现订单匹配,则在链下订单簿发起交易。第二,达成交易后,双方建立链下支付及数据传输信道完成交易。第三,交易完成后,订单和交易提交至区块链记录,并验证交易结果。
Filecoin如何实现这样一个基于区块链的数据市场?共识机制是关键,它决定了区块链的基本运行逻辑并维护网络安全。
Filecoin共识机制:预期共识为主,复制证明时空证明为辅
Filecoin采用了预期共识为主,复制证明时空证明为辅的混合共识技术。其中预期共识决定在一个周期内由谁产生TipSet,而复制证明和时空证明则维护网络稳定安全运行。
预期共识
预期共识脱胎于权益证明共识机制,只不过将权益共识里面的代币权益换成了存储。每一轮选举一名或者多名领导矿工来创建新的区块,矿工赢得选举的可能性跟矿工当前的存储能力成正比。
每一轮,选举出来的领导矿工数期望值为e,被选举出来的矿工创建新的区块,并对网络进行广播。Filecoin区块链,每个区块高度对应到的是一个区块集合(Tipset),每个区块集合包含数量不定的区块,这种链式结构接近有向无环图(DAG)。
Filecoin希望构建一个开放的、人人可参与的、无需信任的经济系统。首先要保证系统安全稳定运行,防止网络攻击。从存储角度理解,网络面临两个问题:
矿工确实按照用户需求存储了数据的相应备份,并且数据能够被访问;在合同有效期内,矿工不得删除用户数据。如何约束矿工实现以上两点?Filecoin存储证明就是解决之道。Filecoin存储证明由复制证明与时空证明两部分组成。其中复制证明用于解决第一个问题,而时空证明则解决第二个问题。
复制证明
简单来讲,复制证明就是矿工证明自己真的存储了用户的数据。
用其发明者BenFisch的话来解释:
「复制证明是一个交互式证明系统。在这个系统中,存储的提供者需要提供可公开验证的证明,来表明其为一个数据文件副本分配了独有的空间资源,而且所存储的数据是可检索的。
进一步说,PoRep使证明者能够证明他们正在使用不低于需要的最小空间来存储信息,并实际使用该空间来存储有用的信息。同时,PoRep可以有效地提取存储的任何数据。」在复制证明过程中,存储矿工将用户数据存储到扇区。扇区被存满后,矿工对扇区进行封装,封装是一个计算量很大的过程,它会生成数据的唯一标识码。一旦数据被封装,存储矿工生成证明,然后对证明进行零知识证明压缩,最后将压缩结果提交到链上,成为存储承诺完成的证明。
复制证明通过四个阶段来完成:
密封预交付第1阶段:在这个阶段,进行PoRepSDR编码。这个阶段受CPU限制,是单线程的。这个阶段预计需要几个小时的时间,精确的时间取决于被密封的扇区的大小,当然,也取决于进行密封的机器的规格。密封预交付第2阶段:在这个阶段,Merkle树的生成是使用Poseidon哈希算法执行的。这个过程主要是GPU限制的,但应该预期会慢得多。当使用GPU时,此阶段预计需要45分钟到1小时。密封提交阶段1(C1):这是一个中间阶段,执行生成证据所需的准备工作。它受CPU限制,通常在几十秒内完成。密封提交阶段2(C2):最后,这个密封阶段涉及到创建一个SNARK,在它被广播到区块链之前,它被用来压缩必要的证据。这是一个GPU密集型过程,预计需要20-30分钟才能完成。时空证明
复制证明完成后,存储矿工必须证明其持续存储了用户数据,这将通过时空证明完成。时空证明是向存储矿工发出加密挑战的过程,只有直接封装扇区的矿工才能正确回答。存储矿工必须在严格的时间限制内应对这一挑战。Filecoin中时空证明有两大挑战:WindowPoSt和WinningPoSt,此处不作展开。
时空证明底层机制,来源Filecoin白皮书
Filecoin安全机制
Filecoin白皮书中提到复制证明可有效防止女巫攻击、生成攻击和外包攻击。但需要考虑一个问题:复制证明作为一种证明算法,本身可以否被伪造?答案是肯定的,事实上任何公开的的证明都可以被伪造,机制设计的目的就是提高攻击者的成本,让其攻击成本高于获利就能避免攻击。
不难想象这样一种攻击行为:
矿工在存储用户数据的时候发起复制证明,然后在复制证明完成后删除数据;而在需要时空证明的时候再做一次复制证明。这样,存储矿工别没有持续保存用户数据的备份,但却依旧能够完成整个存储证明而获得奖励。
其实在Filecoin存储证明中,复制证明与时空证明是相互依赖的。Filecoin通过两个证明过程的时间要求来避免攻击。具体来说,时空证明必须在很短的时间内完成,否则无效;而复制证明如果不能在很短的时间内完成的话,就不能发起攻击。当这两个时间的差距越大,安全性就越高。Filecoin网络对证明时间的要求:
时空证明要在小于一个区块时间内完成,时空证明的时间是网络设定的;复制证明被设计成通过数小时才能完成,复制证明的时间消耗是由于算法的复杂性造成的。单纯从安全角度考虑,复制证明所消耗的时间越长,对网络而言越安全,可以从以下两个角度考虑延长复制证明所消耗的时间:
算法长度:步骤越多的算法需要的时间越长算法可并行性:并行度可以通过增加资源减少运算时间具体来说,当前Filecoin复制证明所采用的的SDR算法在这两方面都保证了足够的强度。
算法长度通过多步骤计算实现:比如在复制证明中要计算11层labels,这个层数可以调整,层数越多,步骤越多,时间越长;每层计算之间强依赖关系来去并行化:在计算labels时,每一步的计算都依赖上一步的结果,所以不能通过增加资源的方式来缩短计算时间;
但是,安全的代价往往是高成本。Filecoin在保证网络安全性的同时带来了几个问题:
高昂的计算成本降低了网络的经济效率,类似PoW一样通过消耗昂贵的计算资源仅仅达成存储证明,这一点与Filecoin白皮书提倡的「有用共识」相悖;复杂的证明过程提升了对矿机硬件配置的要求,特别是CPU、GPU与RAM上的成本。主流Filecoin矿商CPU与GPU配置对比
Filecash的技术权衡
尽管ProtocolLabs一直在优化复制证明算法,例如计划升级到NSE算法以改善成本和检索延迟,但短期内仍然无法解决效率问题。在安全性与成本的权衡中,Filecash选择了适当降低安全性,换取更低的参与门槛。
Filecoin计算资源消耗主要集中在复制证明第一阶段,Filecash方案优化也主要在这个阶段,体现为以下几点:
升级P1核心算法,将SHA256算法升级为SHA512。由于AMD处理器支持SHA256扩展,这样会使得AMD处理器在P1阶段具备极大优势,可能使用英特尔处理器计算P1过程需要30个小时,而是用AMD处理器去只需要4个小时。这将导致大量闲置的英特尔机器因为不具备经济效益,无法参与Filecoin网络。而升级到SHA512算法Filecash可同时接纳不同处理器机器。将P1阶段计算层数由11层减为8层。参考一些容量证明项目,8层的计算层数已经能够提供足够的安全性,但是却可以大大提高经济效益。修改扇区大小为16G,降低内存占用量。目前Filecoin的扇区大小是32G和64G,这就要求矿工的电脑也至少需要64G的内存。一般的普通用户或者家用电脑无法满足这个配置需求,他们将被排除在系统之外。通过降低扇区大小,可以让更多相对低配置的设备参与到早期网络。Filecash技术方案核心逻辑是在于降低生态的参与门槛,让大量的闲置的设备,还有家庭的客户能够参与到网络,给网络提供共识。强壮的共识能为生态保驾护航,强壮的共识底层能为生态吸引更多开发者和使用者,活跃的生态才能为矿工提供稳定的挖矿收益,稳定的挖矿收益促进更多矿工参与到挖矿行为中,生态形成良性循环。
Filecoin的预期共识机制相当于在PoS基础上引入复杂证明过程,在太空竞赛第一阶段中表现出的网络性能令人担忧,以至于交易手续费激增,脱离了实际应用场景。针对TPS不足,内容无法有效审查等问题,Filecash调整了共识机制采用了:DPoSPoRepPoSt混合共识。网络围绕矿工开展一系列经济活动,矿工作为底层支撑提供共识和Token;DPOS节点作为核心承载,提供可靠的高TPS和网络可用性。同时,Filecash针对虚拟机、跨链、预言机等多个组件进行重新设计和优化,使Filecash网络能够无缝的与ETH\DOT\BTC等成熟区块链进行交互,解决区块链间应用生态互通困难的问题。
分布式存储领域新格局
Filecoin早已声名在外,而Filecash作为后起之秀能否撼动Filecoin还未可知。但是在Filecoin团队与社区矿工的纷争之下,关于分叉的声音越来越盛。可以预料的是,随着Filecoin主网上线,分布式存储领域会冒出许多新面孔,它们会探索和Filecoin不一样的道路。
与其说,Filecash是在向Filecoin发起挑战,不如说Filecash是在为分布式存储领域探索新的可能。
毕竟,历史没有记住第一个吃螃蟹的人,却记住了螃蟹的美味。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。