Filecoin中文白皮书

Filecoin是一个基于区块链技术的去中心化存储网络,旨在通过激励机制将全球的闲置存储资源转化为一个可靠的云存储市场。矿工通过提供存储空间和检索服务来赚取Filecoin令牌,而用户则可以使用这些令牌来存储和检索数据。网络通过复制证明(PoRep)和时空证明(PoSt)确保数据的完整性和存储的可靠性。PoRep证明数据已被复制到独立的物理存储设备上,而PoSt则验证数据在特定时间段内的存储情况。Filecoin不仅构建了存储和检索市场,还引入了智能合约,允许用户编写条件化的存储请求和更复杂的交互。此外,Filecoin正在研究与其他区块链系统的集成,如与以太坊的桥接,以实现跨链存储和功能交互。
摘要由CSDN通过智能技术生成

FileCoin白皮书(中文版)

摘要

互联网正处于一场变革之中:中心化专门的服务将被去中心化的开放式服务所代替;信任机制将被可验证的计算代替;脆弱的路径地址将被弹性的内容地址代替;低效率大型服务器将被点对点算法市场所代替。比特币、以太坊和其他区块链的网络已经证明了去中心化交易账本的效用。这些公共账本可以运行一个复杂的智能合约,并且可以处理价值数百亿的加密资产。这些系统就是最开始的互联网开放式服务的先例,该系统中的参与者构成了一个去中心化的网络。该网络上在没有中心管理机制或者信任机制下提供有用的支付服务。IPFS通过本身自己去中心化的网页已经证明了内容可寻址的效用,它运行于全球的点对点对等网络中,为树十亿的文件提供服务。它把数据从孤岛中解放出来,解救了分片、离线和审查制度下的网络,并赋予数字信息永久性。

Filecoin是一个去中心化存储网络,它让云存储变成一个算法市场。这个市场运行在有着本地协议令牌(也叫做Filecoin)的区块链中。该市场上的矿工可以通过为客户提供存储来获取Filecoin,相反的,客户可以通过花费Filecoin来雇佣矿工来存储或分发数据。和比特币一样,Filecoin的矿工们也会相互竞争挖取带有巨大激励的区块,但Filecoin的挖矿能力是与积极的存储成比例的,这就会让矿工们直接去为客户提供有用的服务(不像比特币的挖矿仅是为了维护区块链的共识)。这种方式给矿工们创造了强大的激励,激励他们尽可能多的聚集存储器并且把它们出租给客户们。Filecoin协议将这些聚集的资源编织成世界上任何人都能依赖的自我修复的存储网络。该网络通过复制和分发内容实现其稳健性,同时还会自动检测和修复副本故障。客户可以挑选查看副本的参数来防范不同的威胁模型。该协议的云存储网络还提供了安全性,因为内容是在客户端端对端加密的,而存储提供者没有机会获得解密秘钥。Filecoin就像是在IPFS上加了一个激励层,它能够给任何数据提供存储基础设施。它对去中心化数据,构建和运行分布式应用程序,以及实现智能合同都非常有用。

本文主要讲以下内容:

(a)介绍Filecoin网络,概述这个协议以及详细介绍几个组件。

(b)分析去中心化存储网络(DSN)的体系与性质,然后像DSN一样构建Filecoin。

(c)介绍一种叫“复制证明”的新型存储证明方案,它允许验证任何数据副本都存储在物理上独立的存储器中。

(d)介绍一种新式好用的共识,它基于顺序的“复制证明”和将存储作为衡量算力的标准。

(e)分析可验证的市场,包括存储市场和检索市场,这两个市场分别管理如何写入数据和从Filecoin网络中读书数据。

(f)探讨下一些用例,如何连接其他系统以及如何使用这个协议。

1.介绍

Filecoin是一种协议令牌,其区块链运行在一种叫“时空证明”的新型证明机制上,里面的区块由存储数据的矿工生成。Filecoin协议通过一个存储提供者相互独立的网络来提供数据的存储和检索服务,这些提供者并不依靠一个单独的协调者。这个网络会发生:

  • 用户为数据存储和检索支付令牌;
  • 存储矿工通过提供存储空间赚取令牌;
  • 检索矿工通过提供数据服务赚取令牌;

1.1 基本组件

Filecoin协议由四个新型组件组成

  • 去中心化存储网络(Decentralized Storage Network)(DSN):我们提出一个由提供存储和检索服务的独立服务商网络的抽象的概念(在第二节)。接着我们提出了将Filecoin协议作为一个可激励的、可审计的和可验证的DSN结构(在第4节)。
  • 新型的存储证明:我们提出了两种新型存储证明方案(在第三节):(1)“复制证明”(Proof-of-Replication)允许存储提供者证明数据已经被复制到了他自己唯一专用的物理存储设备上了。确保唯一的物理副本,使验证者能够去检查证明者有没有在保存到存储空间之前将数据的副本去重。(2)“时空证明”(Proof-of-Spacetime)允许存储提供商证明在指定的时间内存储了某些数据。
  • 可验证的市场:在由Filecoin网络中,运行着两个去中心化的可验证的市场,我们在这两个市场上模型化的将存储请求和检索请求都作为订单(在第五节)。验证市场确保了当正确的提供了服务以后,酬金将会被支付。在我们提到的存储市场和检索市场上,矿工和用户分别会提交存储订单和检索订单。
  • 有效的工作量证明(Proof-of-Work):我们展示了如何基于“时空证明”来构建有效的工作量证明来应用于共识协议。矿工们不需要花费不必要的算力来挖矿,但相反的,他们必须在网络中存储数据。

1.2 协议概述

  • Filecoin协议是一个去中心化存储网络建设,由一个区块链和其自带的令牌组建的。客户花费令牌来存储数据和检索数据,而矿工们通过提供存储和检索数据来赚取令牌。
  • Filecoin DSN 分别通过两个可验证市场来处理存储请求和检索请求:存储市场和检索市场。客户和矿工设定所要求服务的价格和提供服务的价格,并将其订单提交到市场。
  • 市场由Filecoin网络来操作,该网络采用了“时空证明”和“复制证明”来确保矿工们正确存储他们承诺存储的数据。
  • 最后,矿工们都能参与区块链新区块的生成。矿工生成下一个区块的概率与他们在当前时刻网络中实际存储的数据量成正比。

1.3 论文组织

本文的其余部分安排如下:我们在第二节中介绍了对一个理论上的DNS方案的定义和需求。在第三节中我们定义和介绍我们的“复制证明”和“时空证明”协议,以及Filecoin将其用于加密地验证数据按照订单的要求被持续不断的存储。第四节描述了Filecoin DSN的具体实例,描述了数据结构,协议,以及参与者之间的交互。第5节定义和描述可验证市场的概念,还有存储市场和检索市场的实施。第6节描述了使用“时空证明”协议进行演示,并且评估矿工对网络的贡献,这对扩展区块链块和区块奖励是必要的。第7节简要介绍了Filecoin中的智能合约。在第8节中讨论了未来的工作作为结束。

Figure 1: Sketch of the Filecoin Protocol
Filecoin协议的框架:

  • 网络
    在账本L中,每个时期t时:
  1. 对每个新区块:
    (a) 检查区块的结构是否有效;
    (b) 检查所有的交易是否有效;
    © 检查所有的订单是否有效;
    (d) 检查所有的证明是否有效;
    (e) 检查所有的抵押是否有效;
    (f) 如果以上条件任意一个不满足,那么丢弃该区块。
  2. 在t时间内,对每一个订单O:
    (a) 添加订单O到存储市场的订单簿;
    (b) 如果O是bid(出价订单):lock O.funds(上锁该订单的资金);
    © 如果O是ask(询价订单):lock O.space(上锁订单上提供的存储空间);
    (d) 如果O是deal(成交订单):run Put.AssignOrders(买卖双方对deal进行签字)
  3. 存储市场中订单簿的每一个订单:
    (a) 检查订单是否过期 (或者被取消):
    1) 将该订单从订单簿中移除;
    2) 返还订单中的上锁资金;
    3) 从分配表中释放上锁的存储空间。
    (b) 如果O是deal,通过运行Manage.RepairOrders检查是否有想要的证明存在:
    1) 如果,证明丢失一个,那么会罚没存储矿工抵押品的一部分;
    2) 如果证明超过∆fault个,那么取消该订单,并将其重新引入到市场;
    3) 如果数据碎片不能被检索和重新组合,那么取消该订单并返还用户抵扣的资金;
  • 客户
    任意时间:
  1. 通过Put.AddOrders提交新的存储订单:
    (a) 通过Put.MatchOrders寻找匹配的询价订单;
    (b) M将要保存的文件发送给已匹配成功的矿工;
  2. 通过Get.AddOrders提交一个新的检索订单:
    (a) 通过Get.MatchOrders查找到与之匹配的订单;
    (b) 创建一个支付矿工M的支付通道。

客户一旦收到来自存储矿工M的成交订单时:
1) 对成交订单进行签名;
2) 通过Put.AddOrders将签名过的成交订单提交到区块链中。

客户一旦收到来自检索矿工M的数据碎片:
1) 确认碎片是否有效,以及是不是自己需求的;
2) 发送一个小型支付给矿工M。

  • 存储矿工
    任意时间:
  1. 通过Manage.PledgeSector重新构建一个过期的抵押;
  2. 通过Manage.PledgeSector抵押新的存储;
  3. 通过Put.AddOrder提交一个新的询价订单。

在每段时间t:

  1. 对订单簿中每一个询价订单Oask:
    (a) 通过Put.MatchOrders查找匹配的订单;
    (b) 与匹配的客户建立联系,并创建一个新的成交订单。
  2. 对每一个抵押的扇区:
    (a) 通过Manage.ProveSector生成一个存储的证明;
    (b) 如果发布证明的时间一到 (每隔∆proof时间), 将证明提交到区块链。

一旦从客户那里获取到数据碎片p:

  1. 检查碎片的大小是否与客户出价订单里描述的一致;
  2. 创建一个成交订单,签名,并发送给客户;
  3. 将碎片存储到扇区中;
  4. 如果扇区存储已满,将运行Manage.SealSector
  • 检索矿工
    任意时刻:
  1. 在网络中四处广播询价订单;
  2. 在网络中监听出价订单。

一旦检索矿工接收到客户的请求:

  1. 开启一个与客户C的支付通道;
  2. 将检索到的数据分成多份;
  3. 当收到支付以后,才发送数据,一份一份的方式发送。
    在这里插入图片描述

Figure 2: 凭借对Filecoin协议的直觉,我们脑海中有了客户和矿工交互的概览。存储和检索市场分别显示在图2的上方和下方,时间从左边的订单匹配阶段推进到右边的结算阶段。
注解:在执行检索服务的小型支付之前,客户必须对要支付的资金上锁。

2 DSN定义

我们介绍一下一个“去中心化网络存储”的概念,英文简称DSN。DSN体系聚集了由多个独立存储提供商提供的存储,并且能自我协调的提供存储数据和检索数据服务给客户。这种协调是去中心化的、无需信任的:通过协议的协调和个体参与者的验证操作,系统可以获得安全性操作。DSN体系可以使用不同的协调策略,包括拜占庭协议,gossip协议或者CRDTs,这取决于系统的需求。在后面,第四节,我们提供Filecoin DSN的的一个构建。

定义 2.1

DSN方案(Π)是由存储提供者和客户运行的协议元组,包含:
(Put, Get, Manage)

  • Put(data) → key: 客户端利用一个唯一的标识密钥,执行Put协议,将数据保存。

  • Get(key) → data: 客户端使用密钥,执行Get协议,检索当前已经存储的数据。

  • Manage(): 网络通过管理协议来协调,实现:控制可用的存储,审核存储提供者提供的服务以及修复可能的故障。管理协议由存储提供者来运行,并且经常与客户或者审核网络结合(在管理协议依赖区块链的情况下,我们认为矿工是审核人员,因为他们验证和协调存储提供商)。

DSN体系(Π)必须保证数据的完整性和可恢复性,并且能够容忍在后面章节中所定义的管理和存储故障。

2.1 故障容错

2.1.1 管理故障

我们定义管理故障为拜占庭故障,是由在管理协议中的参与者造成的故障。一个DSN体系依赖于它的基础管理协议的故障容错。违反故障容错的管理故障假设会影响系统的活力和安全。

例如,考虑一个DSN体系Π,其中管理协议要求使用拜占庭协议来审核存储提供者。在这样的协议中,网络收集到来自存储提供商的存储证明,并运行拜占庭协议对这些证明的有效性达成共识。如果在总共n个节点中,拜占庭协议最多容忍f个故障节点。那么我们的DSN可以容忍f<n/2 (?)个故障节点。在违反了这些假设的情况下,审核将会出现问题。

2.1.2 存储故障

我们将存储故障定义为拜占庭故障,它会阻止客户检索数据。例如存储矿工丢失了他们的数据碎片,或者检索矿工停止了他们的服务。一个成功的Put操作是:在(f,m)容错情况下,m个独立的存储提供者已经成功的存储了输入的数据,并且能够容忍最多f个拜占庭存储提供者。参数f和m取决于协议的实现。协议设计者可以修改f和m的值,或者留给用户自己修改。将Put(data) 扩展为Put(data,f,m)。如果有小于f个故障存储提供者,则对存储数据的Get操作是成功的。

例如,考虑一个简单的方案。它的Put协议设计为每个存储提供者存储所有的数据。在这个方案里,m=n,并且f=m-1。但总是f=m-1吗,不一定的,有些方案可能采用可擦除式设计(erasure coding),其中每个存储提供者存储数据的特定部分,这样使得m个存储供应商中的x个需要检索数据,在这种场景下f=m-x。

2.2 属性

我们首先描述DSN体系所必须的两个属性,然后描述Filecoin DSN体系需要的另外的一些其他属性。

2.2.1 数据完整性

该属性要求不存在一个敌对节点A能够说服客户在执行Get命令后去接受那些被更改了的或被伪造的数据。

定义 2.2

一个DSN方案(Π)提供了数据完整性:如果在使用密钥k的情况下,对数据d任意成功的Put操作,那就不存在敌手A能使得客户接受d’,因为使用密钥k执行Get命令后得到的d和d’不相同。

2.2.2 可恢复性

该属性满足了以下要求:给定我们Π中的容错假设,如果有些数据已经成功存储在Π中并且存储提供者继续遵循协议,那么客户最终能够检索到数据。

定义 2.3

一个DSN体系(Π)提供可恢复性:如果利用密钥成功执行Put命令,将数据得以保存,那么也会存在用户使用相同的密钥成功执行Get命令,得到想要的副本数据。(这个定义并不保证每次Get操作都能成功,如果每次G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值