- 集中式专有服务正在被去中心化开放服务所替代
- 信任式参与被可验证式计算所代替
- 脆弱的位置寻址被弹性的内容寻址所代替
- 低效率的整体式服务被点对点算法市场所代替
Filecoin是一个去中心化存储网络协议IPFSd的代币,IPFS让云存储变成一个算法市场。这个市场运行在有着本地协议令牌(也叫做Filecoin)的区块链。区块链中的旷工可以通过为客户提供存储来获取Filecoin,相反的,客户可以通过花费Filecoin来雇佣旷工来存储或分发数据。
Filecoin的旷工们为了巨大的奖励而竞争式挖区块,但Filecoin的挖矿效率是与存储活跃度成比例的,这直接为客户提供了有用的服务。
这种方式给旷工们创造了强大的激励,激励他们尽可能多的聚集存储器并且把它们出租给客户们。Filecoin协议将这些聚集的资源编织成世界上任何人都能依赖的自我修复的存储网络。该网络通过复制和分散内容实现鲁棒性,同时自动检测和修复副本失败。
客户可以选择复制参数来防范不同的威胁模型。该协议的云存储网络还提供了安全性,因为内容是在客户端端对端加密的,而存储提供者不能访问到解密秘钥。Filecoin的成果作为可以为任何数据提供存储基础架构的IPFS最上面的激励层。它对去中心化数据,构建和运行分布式应用程序,以及实现智能合同都非常有用。
- 用户为数据存储和检索支付Filecoin
- 存储矿工通过提供存储空间赚取Filecoin
- 检索矿工通过提供数据服务赚取Filecoin
Filecoin代币的IPFS有四个新型组件组成
- 去中心化存储网络(Decentralized Storage Network)(DSN):我们提供一个由提供存储和检索服务的独立服务商网络的抽象。接着我们提出了Filecoin协议作为激励,可审计和可验证的DSN构建。
- 新型的存储证明:我们提出了两种新型存储证明方案:
- (1)“复制证明”(Proof-of-Replication)允许存储提供商证明数据已经被复制到了他自己唯一专用的物理存储设备上了。执行唯一的物理副本使验证者能够检查证明者是否不存在将多个数据副本重复拷贝到同一存储空间。
- (2)“时空证明”(Proof-of-Spacetime)允许存储提供商证明在指定的时间内存储了某些数据。
- 可验证市场:我们将存储请求和检索需求作为两个由Filecoin网络操作的去中心化可验证市场的订单进行建模。验证市场确保了当一个服务被正确提供的时候能执行付款。我们介绍了客户和矿工可以分别提交存储和检索订单的存储市场和检索市场。
- 有效的工作量证明(Proof-of-Work):我们展示了如何基于“时空证明”来构建有效的工作量证明来应用于共识协议。旷工们不需要花费不必要的计算来挖矿,但相反的必须存储数据于网络中。
- Filecoin协议是构建于区块链和带有原生令牌的去中心化存储网络。客户花费令牌来存储数据和检索数据,而矿工们通过提供存储和检索数据来赚取令牌。
- Filecoin DSN 分别通过两个可验证市场来处理存储请求和检索请求:存储市场和检索市场。客户和矿工设定所要求服务的价格和提供服务的价格,并将其订单提交到市场。
- 市场由Filecoin网络来操作,该网络采用了“时空证明”和“复制证明”来确保矿工们正确存储他们承诺存储的数据。
- 最后,矿工们能参与到区块链新区块的锻造。矿工对下一个区块链的影响与他们在网络中当前存储使用量成正比。
DSNs聚集了由多个独立存储提供商提供的存储,并且能自我协调的提供存储数据和检索数据服务给客户。这种协调是去中心化的、无需信任的:通过协议的协调与个体参与者能实施验证操作,系统可以获得安全性操作。DSNs可以使用不同的协调策略,包括拜占庭协议,gossip协议或者CRDTs,这取决于系统的需求。
-
DSN方案(Π)是由存储提供商和客户运行的协议元组: (Put, Get, Manage)
- Put(data) → key: 客户端执行Put协议以将数据存储在唯一的标识符秘钥下。
- Get(key) → data: 客户端执行Get协议来检索当前使用秘钥存储的数据。
- Manage(): 网络的参与者通过管理协议来协调:控制可用的存储,审核提供商提供的服务并修复可能的故障、管理协议由存储提供商来运行,并且经常与客户或者审计网络结合(在管理协议依赖区块链的情况下,我们认为矿工是审计人员,因为他们验证和协调存储提供商)。
-
DSN方案(Π)必须保证数据的完整性和可恢复性,并且能够容忍在后面章节中所定义的管理和存储故障。
- 管理故障
将管理故障定义为管理协议的参与者引起的拜占庭故障。一个DSN方案依赖于它的基础管理协议的故障容错。违反故障容错的管理故障假设可能会影响系统的活跃度和安全性。
例如,考虑一个DSN方案,其中管理协议要求拜占庭容错来审核存储提供商。在这样的协议中,网络收集到来自存储提供商的存储证明,并运行拜占庭容错对这些证明的有效性达成共识。如果在总共n个节点中,拜占庭容错最多容忍f个故障节点。那么我们的DSN可以容忍f<n/2 个故障节点。在违反了这些假设的情况下,审计上就要做出妥协。
简单来说:管理故障就是有些节点存在说谎,比如某个存储提供商说自己存储了内容,然后让各个节点来证明达成共识,然后如果有多少节点(f<n/2)存在说谎,整个系统就做不到拜占庭容错。
- 存储故障
我们将存储故障定位为拜占庭故障,阻止了客户检索数据。例如存储矿工丢失了他们的数据,检索矿工停止了他们的服务。一个成功的Put操作的定义是(f,m),既是它的输入数据被存储在m个独立的存储提供商(总共有n个)中,并且它可以容忍最多f个拜占庭存储提供商。参数f和m取决于协议的实现。协议设计者可以固定f和m,或者留给用户自己选择。将Put(data) 扩展为Put(data,f,m)。如果有小于f个故障存储提供商,则对存储数据的Get操作是成功的。
例如,考虑一个简单的方案。它的Put协议设计为每个存储提供商存储所有的数据。在这个方案里,m=n,并且f=m-1。但总是f=m-1吗,不一定的,有些方案可能采用可擦除式设计,其中每个存储供应商存储数据的特定部分,这样使得m个存储供应商中的x个需要检索数据,在这种场景下f=m-x。
- 数据完整性
- 数据可恢复性
- 公开可验证性
- 可审查性
- 激励兼容性
要求没有有限的对手A可以让客户在Get操作结束的时候接受被更改或者伪造的数据。
考虑到我们的Π的容错假设,如果有些数据已经成功存储在Π并且存储提供商继续遵循协议,那么客户最终能够检索到数据。
一个DSN方案(Π)是公开可验证的:对于每个成功的Put操作,存储网络的供应商可以生成数据当前正在被存储的证明。这个存储证明必须说服任何只知道键但并不能访问键所对应的数据的有效验证者。
一个DSN方案(Π)是可审查的:如果它产生了可验证的操作轨迹,并且在未来能被检查在正确的时间上数据确实被存储了。
一个DSN方案(Π)是激励可兼容的:如果存储提供商由于成功提供了存储数据和检索数据的服务而获得激励,或者因为作弊而得到惩罚。所有存储提供商的优势策略是存储数据。