Filecoin:一种去中心化的存储网络

深度研究可以分析去中心化存储项目一定会存在的问题。

FileCoin是一种协议代币。

  • 区块被存储数据的矿工所挖
  • 区块链运行在“时空证明”的机制上
  • FileCoin不依赖于单个存储服务商
  • 提供存储服务和数据检索服务

FileCoin的使用方式

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

FileCoin协议的四个组件

  • 去中心化存储网络
  • 新型的存储证明
  • 可验证市场
  • 有效的工作量证明

协议概述

  • 构建于区块链拥有原生代币的去中心化存储网络
    网络的构建需要有协议的存在,这样才能完成数据的传输。中心化存储模式中,需要依赖HTTP协议

  • 通过存储市场和检索市场来完成客户请求

现在所有的人都在想着挖IPFS的代币来赚钱,可是谁会来存储数据呢?这有点像币乎的羊毛党。

  • 时空证明和复制证明来确保数据被正确存储

  • 矿工参与到新区块的锻造,矿工对区块链的影响与他们在当前网络中的存储使用量成正比

去中心化存储网络

  • 多个独立存储提供商提供存储
  • 自我协调的提供存储数据和检索数据服务
  • 拥有不同的协调策略

DSN方案包括:PUT,GET,MANAGE。DSN方案(Π)必须保证数据的完整性和可恢复性。

管理故障定义为管理协议的参与者引起的拜占庭故障。一个DSN方案依赖于它的基础管理协议的故障容错。管理故障会影响系统的活跃度和安全性。

DSN的两个属性:数据完整性和可恢复性。

数据完整性:在存储数据之后,你将获得一个key,通过key可以提取你的数据,在提取的过程中,其他人不可能实现对数据的篡改。

可恢复性:可以通过key恢复你存储的数据。

DSN的其他属性:公开可验证性、可审查性、激励兼容性。

  • 公开可验证性:系统中会有专门负责验证数据有效性的验证者,这些验证者会从数据存储服务商手中获得一份证明,通过这份证明可以判断数据存储服务商存储的数据是否完整、有效。

  • 可审查性:审查是否在某个时间存储过数据。

  • 激励兼容性:有效完成存储和检索服务的节点可以获得奖励,对系统有害的节点将受到惩罚。

复制证明与时空证明。

通过复制证明和时空证明,可以让存储数据的人相信自己的数据已经被存储。

为什么需要设置复制证明和时空证明?

在数据存储中,有一种方案叫存储证明[POS],可以让存储数据的客户做两件事情:

  • 随时验证自己的数据是否依然被存储
  • 随时验证自己数据的完整性

但是上面的方案无法避免以下三种攻击:

女巫攻击:作恶矿工可能通过创建多个女巫身份假装物理存储很多副本(从中获取奖励),但实际上只存储一次。

外包攻击:依赖于可以快速从其他存储提供商获取数据,作恶矿工可能承诺能存储比他们实际物理存储容量更大的数据。

代攻击:作恶矿工可能宣称要存储大量的数据,相反的他们使用小程序有效地生成请求。如果这个小程序小于所宣称要存储的数据,则作恶矿工在Filecoin获取区块奖励的可能性增加了,因为这是和矿工当前使用量成正比的。

代攻击就是为了获得更多的奖励,欺骗系统说自己存储了大量数据在系统中,但实际上存储的数据要少很多。例如攻击者告诉系统存储了100G的数据在系统中,但是实际只存储了1G数据,这样挖矿就可以用很少的存储空间,获得更多的奖励。

复制证明重点在于存储副本,时空证明重点在于证明是否有存储数据。

FileCoin DSN的构建。

环境:参与者+网络N+账本+市场

参与者分为:客户+存储矿工+检索矿工

  • 客户在网络中进行数据存储和检索时,需要向矿工支付费用。
  • 存储矿工为网络提供数据存储。存储矿工通过“时空证明”来证明已经存储好了数据。作为存储矿工需要提交抵押品,当存储矿工作出有害系统的事情时,抵押品将会被没收或者部分没收。
  • 检索矿工为网络提供数据检索服务。检索矿工可以直接从客户或者从检索市场赚取收益。

网络N:运行FileCoin全节点的用户细化为一个抽象实体:网络。这些网络将作为运行管理协议的中介。这些众多的网络整体被称作网络N。

账本:FileCoin的协议适用于基于账本的货币。

市场:存储市场和检索市场。这是两个去中心化的交易市场,当客户提交的订单与矿工提交的订单相匹配的时候,网络中的管理协议将帮助双方自动完成交易。

数据结构:碎片+扇区+分配表+订单+订单簿+抵押

  • 碎片:假设你是客户,你在网络中存储的数据将会被分成不同的片段。这些片段在系统中被称作碎片。
  • 扇区:矿工向系统提供的磁盘空间。
  • 分配表:可以跟踪碎片和其分配的扇区。你的数据是在哪里存储的,可以通过分配表快速的找到,这就像是一个关系映射表。
  • 订单:客户为了存储和检索数据提交的请求,矿工们为了提供服务提交的报价请求。
  • 订单簿:订单的集合。
  • 抵押:为了保证服务可靠可信,矿工必须在系统中提供抵押品。

协议:客户生命周期+挖矿周期+网络周期

  • 客户生命周期:存储数据+检索数据。存储数据时,客户可以选择存储数据的物理副本的数量,副本越多存储的安全性越高。检索数据时,当检索市场有满足要求的订单,客户会收到来自矿工的碎片,之后双方进行签名,提交到区块链,进行交易确认。
  • 挖矿周期

存储矿工

抵押->接收订单->密封->证明

检索矿工

收到订单->发送

  • 网络周期:分配
    当出现问题时,系统会尝试修复或者重新分配。当矿工的证明丢失或者失效将会扣除抵押品;大量证明丢失或失效,会认定订单失效,网络会重新创建订单;如果接受该订单的所有数据存储矿工都出现错误,则认定数据丢失,订单取消,客户将收到退款。

担保和要求

完整性:客户存储完数据之后,会获得一个哈希值,我们可以把它看作是一把钥匙,通过这把钥匙我们可以找到自己的数据,当从矿工那里收到返回来的数据时,也可以通过这把钥匙来验证数据的完整性。

可恢复性:当你在FileCoin中存储数据时,你的数据将会拥有多个副本。如果有矿工下线或者消失,会有部分副本丢失,但是依然在网络中的副本,将会保证你的数据依然可以完整的恢复。

公开可验证和可审核性:当需要审核存储的数据是否依然有效时,你可以单独的完成审核过程,并不需要下载你的数据。审核依赖的是矿工提交的存储证明,这些证明存储在区块链中,所有操作痕迹都公开可查。

激励兼容性:矿工按照协议完成存储和检索将会得到奖励,如果做出对系统有害的事情,将会受到惩罚。

保密性:当你存储的数据需要实现隐私时,必须自己在存储之前进行加密。

FileCoin的存储和检索市场

  • 验证市场

为什么需要验证市场?

去中心化的参与者必须能够在买家和卖家间验证交易。去中心化模式下,没有人来管理交易市场,订单的匹配、结算、有效性,通过验证市场可以自动完成,并得到保障。

  • 存储市场

需求

链式订单簿:订单会被添加到FileCoin区块链。这样做有两个好处:
1.存储矿工的订单全部公开,最便宜的订单会被更多的人知道,客户可以做出最好的选择;
2.客户订单提交给网络,当客户的要求被满足的时候,市场会根据新的交易价格,做出新的调整。

参与者投入资源:存储矿工需要提供与其上报的存储容量相对应的抵押品,在矿工做出违反系统规则的时候,会扣除抵押品作为惩罚。客户需要提前充值一定数量的资金,从而保证在结算时的资金。

故障自处理:订单会在确认矿工提供的证明有效的情况下,完成订单的结算。

数据结构

put订单:有三种类型的订单:存储矿工创建询价订单,客户创建出价订单,当双发达成一致时,共同创建交易订单。

put订单簿:存储市场的订单簿是目前有效和开放的询价、出价、交易订单的集合。

存储市场协议

订单匹配:客户和存储矿工提交交易订单到订单簿,完成匹配之后,客户将数据碎片发送给矿工,双方完成交易之后,将交易签名并提交到订单簿。

结算:存储矿工的扇区用完之后,要进行密封,后续会不间断的向网络提交存储证明,证明存储的数据依然存在并有效,网络会根据存储证明进行验证或者故障修复。

检索市场

检索市场允许客户端请求检索特定的数据,由检索矿工提供这个服务。

链下订单簿:客户为了检索所提供的订单,会采用非区块链的方式来实现,因为区块链的使用会导致检索瓶颈的出现。

无信任方检索:在没有信任的环境中,客户想要完成数据的检索,矿工想要收到付款,是不太可能的,因为可能出现欺诈行为。为了解决这个问题,当客户检索到自己想要的数据时,矿工会以碎片的形式依次将完整的数据发送给客户,客户会在收到碎片的过程中逐步的向矿工付款,当中途发生意外时,交易将会被终止。

支付通道:检索矿工只有在收到付款的时候,才开始向客户发送数据,但是区块链上的支付会产生瓶颈,所以快速有效的链下支付是唯一的选择。当出现纠纷时,可能会用到区块链。

数据结构

获取订单:客户端创建的出价单,检索矿工创建的询价单,存储矿工和客户端达成的交易订单。

获取订单簿:是有效的和公开出价订单、询价订单、交易订单的集合。每个用户的订单视图是不一样的,因为每个用户只关心自己想要的数据。

检索市场协议:订单匹配+结算

订单匹配:客户端和检索矿工通过广播的方式,将订单提交给订单簿,

结算:检索矿工在向客户逐步发送碎片的时候,每一个碎片的成功交付,检索矿工都会收到一个收据,矿工向区块链出示收据,从而获得奖励。

有用工作共识

常见的共识机制,例如pow,存在着大量的能量浪费,所做的工作并不能重复使用。有用的工作共识旨在解决计算浪费,将之前所做工作进行重复使用。

FileCoin共识

  • 公开:网络中当前正在使用的存储总量是公开的。

  • 可公开验证:每个存储任务,矿工都需要生成“时空证明”,从而可以验证其是否可以持续提供服务。

  • 变量:矿工可以增加存储空间或者补充的抵押品来增加自己的功率。

功率会计和时空证明

  • 全节点验证:全节点可以验证矿工生成的每一个时空证明。

  • 简单存储验证

使用功率达成共识

预计将会在现有的权益证明共识机制上进行扩展,让FileCoin的共识策略更加的多样化,权益证明共识机制中的权益将会替换为分配的存储。FileCoin中的共识机制暂时可以叫做预期共识,每个矿工在选举中获胜的概率和他们提供的存储成正比例。

FileCoin智能合约

FileCoin中增加了智能合约来支持特定的操作。

与其他系统集成

你可能感兴趣的:(Filecoin:一种去中心化的存储网络)