数码小王|FileCoin仍或有不少缺陷,深谈Web3.0与分布式存储结合的未来( 四 )


ExpectedConsensus是Filecoin中用来规定出块规则的共识算法 , 是一种基于概率的拜占庭容错算法 。 根据ExpectedConsensus , 在生成每一个新的区块的时候都会选举出领导者进行出块 。 类似于BTC挖矿 , 被选出的概率与算力占全网算力的比例成正比 , 但是在Filecoin网络中是根据矿工提供的有效存储空间来计算而不是BTC网络中的计算能力 。 网络在每个区块生成之前 , 矿工会根据上一个区块prove的ticket值通过VRF、VDF的线性流程生成newticket , 然后通过比较newticket的数值和有效算力与全网总算力的比值来确认是否获得出块的资格 。 如果newticket小于其有效算力/全网算力 , 则此矿工被选举为出块矿工 。
不同于BTC网络 , Filecoin的选举方式可能会出现无人出块或者多人作为leader共同出块的情况 。 当无人出块是 , 网络中此高度则显示为空块 。 因为也有同时多人出块的可能 , 所以Filecoin团队设计出了tipset——tipset是一个区块的集合 。 如BTC网络一样 , 因为网络延迟的问题可能会出现两个tipset的同时存在情况 , 但是最终网络将会根据weight来选举出唯一tipset并向下发展链式机构 , 每个区块的Weight的计算公式如下:
Weight=ParentWeight+ECV+ECPrM*ratio
目前 , ECV设置为10 , ECPrM设置为100 , Ratio是当前节点的存储有效率(节点存储的容量/所有节点的存储容量) 。 也就是说 , 在目前的算法下 , 节点的ratio高 , Weight就高 。 当weight相同时 , ticket数值小的tipset将当选 。 因为这样的技术设计也使得filecoin的底层架构更偏向于DAG结构 。
Proof-of-Replication共识算法用来证明矿工的确实完成了指定的工作 。 在Filecoin网络中 , 矿工的主要工作就是存储用户的数据 。 矿工需要把用户的数据封存在一个扇区之中 , 在封存的过程中系统将生成一个DRG(Depth-Robust-Graph) , 也被称为replica值 。 只有生成replica值所对应的存储空间才可以被认定为有效存储空间 。
Prove-of-spacement共识则最后负责验证的步骤 。 在生成每一个新的区块是网络都会随机对矿工进行挑战 , 矿工需要提供replica值进行验证 , 通过零知识证明来进行验证 。 如果结果为正确 , 那么说明矿工正常存储了所封装的数据 , 其有效存储份额维持不变 。 如果其中有replica值无法正确验证 , 则此replica值对应的存储空间将会从有效存储空间中去除 。
六.Filecoin发展前景如何?
目前Filecoin的技术方案相对于传统成熟的云存储方案还有较大的差距 , 下面将对Filecoin目前的问题进行简单的分析 。
1.信息安全问题
相较于传统的中心化存储 , 去中心化存储最大的优势就是可以更好地保护数据安全的隐私性 。 但是Filecoin目前设计却使人们对于数据的安全性和隐私性提出质疑 。
具体来看一下用户存储的流程:在订单匹配成功过之后 , 用户会将原始数据直接发送给矿工 , 这时用户的数据是没有经过加密处理的和切分处理的 。 矿工可以直接访问完整的用户数据 , 而且无法被网络或用户所察觉 。 按照此技术方案运行 , Filecoin中用户个人数据的隐私安全性将会受到比较大的威胁 , 其安全性和隐私性甚至要弱于传统的云存储方案 。 同时 , 在存储流程的较早期就有造成数据直接泄露的漏洞 , 那么后续流程中的加密、切分等保证数据隐私的方法也变得没有太大的意义 。
另一方面 , 因为一个用户的所有数据都单一的存储在一个矿工的硬盘中如果矿工因为某些原因放弃继续挖矿 , 那么用户存在此处的数据将会从网络中完全丢失 , 且网络中没有设定相关的机制让用户在矿工推出之前取回自己的数据 。 那诸如此类不可以预测事件也使得存在Filecoin网络中数据的安全性和可靠性大大降低 。
同时根据之前该项目AMA中提到的信息 , Filecoin只是一个协议来协调存储提供者与使用方的需求 , 无法要求存储提供者做出指定操作 。 虽然这样减少了去中心化风险 , 减少了平台操控用户数据情况的发生 , 但却降低了存储提供者的作恶成本 , 即使存储适用方要求存储提供者删除或者销毁其存储的数据 , 存储提供者也可以欺骗用户私下拷贝用户数据甚至强行不执行用户要求 。 目前传统云存储的技术设备或服务提供方皆为大公司 , 在问题发生之后可以立即明确责任方并开始解决问题 , 但是像Filecoin等去中心化网络中的矿工相对较为分散且不知名 , 这样对于问题发生后的后续解决也造成了很大的阻碍 , 使得其综合安全性反而弱于中心化存储 。