Filecoin 介绍

在这里插入图片描述
Filecoin是由协议实验室发起的一种分布式存储解决方案,它将现有的云存储转化为一个自带区块链算法的分布式存储市场。

Filecoin 是一个去中心化的存储网络(DSN),通过 Filecoin 项目来实现其协议。worker通过提供数据存储或检索来获得 token(也称为“filecoin”)。相反,客户向worker支付 token 以存储或分发数据并进行检索。

  • Filecoin的首个实现版本go-fileoin于2019年2月15号上线。2019年12月15日,Fileoin的第二个实现版本lotus测试网上线, 两个实现可互操作。
  • 安全证明采用WinningPoSt 和 WindowPoSt 的零知识证明(zkSNARK)来保证worker确实存储了用户的数据;而且是持续完整地存储了用户数据
  • 采用堆叠式深度鲁棒图(SDRG)和扩展图(EG)技术来解决存储证明的时延要求,和时空证明的时间上的安全要求,从而防止存储的欺骗

Filecoin 共识 - 预期共识(EC)

采用创新的预期共识(EC)机制来实现高效的选举,并达到接近SSLE(秘密单领导人选举)的效果

预期共识:预期共识 EC 的基础在于在每个纪元确定地、不可预测地并且秘密地选举一小部分领袖。期望是每个纪元都只选出 1 个领袖,但一些纪元内可能会出现 0个或者多个领袖。领袖通过创建一个区块并将其传播到网络的方式来拓展区块链条。在每一个纪元,区块链将被延伸一个或多个区块。在没有领袖的纪元里,一个空的区块将被添加到区块链中。虽然区块链中的区块可以线性排序,但它的数据结构是一个有向无环图。EC 是一个概率共识,每个纪元都比前面的区块更加确定,最终因为不同历史可能性足够小的缘故达到足够的确定性。如果绝大部分的参与者通过扩展链或签名区块的方式将他们的权重添加到区块所属的链上,那么这个区块就被确定了。

网络选择一个worker来创建新区块(称之为worker的投票权)的概率与当前这个worker使用中的存储和网络其余部分相关的存储的关系成正比。

在任意时间点,worker可以通过抵押新扇区并且填充新扇区的方式来添加新的存储。这样worker便可以改变他们的功率。

选举worker

在每一个纪元,每个worker都会检查它们是否当选为领袖. 其中 rand(t) 是一个可以在纪元 t 从区块链中提取的公开的随机变量
在这里插入图片描述

在期望共识协议中的领袖选举

存力与出块率

Filecoin的出块时间是45秒,意味着worker需要在这个时间内打包好数据提交到链上,这意味着节点封存的数据越多,要处理的数据量就越大。在一阶段测试网时,这就导致一些节点存力很大但出块率很低,干了很多货但是拿到的奖励却很少。

零知识证明实现

Filecoin利用零知识证明(Groth16)实现"数据的压缩",用户存储的数据(数据量很大)不需要直接上链,只需要将数据证明(数据量比较小,几百个字节)存储在链上。

Filecoin工程上最新的实现方案采用了BLS12-381(一种Zcash中所使用的新型zk-SNARK椭圆曲线加密算法,隶属于Bellman库,由Rust语言所实现,它的特点是小巧易用,能快速验证),同时兼备加密时延和快速可验证两个特性。可缩小算术电路的大小,降低密钥的大小,以及简化协议

filecoin 与 IPFS 的关系

类别IPFSFilecoin
功能基于内容寻址的分布式存储基础设施IPFS 网络之上的激励层,提供一个云存储领域的自由市场
对标对象HTTP大型集中式孤岛存储提供商,如国外的 aws、国内的 aliyun 等
存储权限对有所有权的 IPFS 节点具备存储权限1 除对有所有权的 IPFS 节点具备存储权限外
2 还可以通过支付的方式,在其供应商的节点之上具备存储权限
读取权限ALL(只要知道内容 cid)ALL(只要知道内容 cid)
架构设计另行文章补充分析原则上需要无缝对接到 IPFS
1Filecoin 将 IPLD 用于区块链数据结构
2 Filecoin 节点使用 libp2p 建立彼此的安全连接
3 节点和 Filecoin 块传播之间的消息传递使用 libp2p pubsub
使用场景1 存储自己的节点数据,分享数据等,类似 BT
2 基于 IPFS 或其中部分组件构建企业自己的分布式云存储架构、区块链架构等
1 成为 filecoin worker,提供分布式检索及存储服务
2 成为 filecoin 客户,享受 filecoin 网络的检索及存储服务
3 基于 filecoin,开发第三方管理系统

IPFS 现在和将来都可以free下载,运行和使用,并且将独立于 Filecoin 运行。一旦 Filecoin 正式网络启动,IPFS 节点还可以在 Filecoin 检索市场上提供其文件的检索。

filecoin 网络中的角色

角色说明主要影响因素
存储worker存储worker通过为客户存储数据来获得 Filecoin;获得区块奖励和Gas的概率与worker对 Filecoin 网络的存储量成正比存储容量
检索worker检索worker的带宽和事务的出价/响应时间(即延迟和与客户的接近度)将决定其在网络上关闭检索事务的能力带宽
检索客户支付 filecoin 获取检索服务
存储客户支付 filecoin 获取存储服务

worker收益方式

收益来源类比分析
提供存储服务存储worker收益来自两部分
1 工资(提供存储)
2 按照出资比例(区块奖励就是按照有效存储占比来实现的)
提供检索服务检索worker是 offchain 的,不参与出块,收益来自
1 工资(提供检索)

往期精彩回顾:
区块链知识系列
密码学系列
共识系列
区块链调研系列
以太坊系列
EOS系列
智能合约系列
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐