1. 首页
  2. 知识百科

Filecoin的终极指南(二)

终极指南在手,了解Filecoin无忧

上一篇我们对FileCoin网络的工作原理进行了概述,这篇我们将深度剖析FileCoin协议filecoin白皮书中未讨论的其他部分,以及FileCoin协议有待改进的地方

深度剖析Filecoin协议

Filecoin引入了分散存储网络(DSN)的概念。DSN是一种具有独立客户端和存储提供商的网络。DSN聚合了由多个独立的存储提供商提供的存储,并进行自我协调,为客户提供数据存储和数据检索。协调是去中心化的,因此不需要可信的各方:这些系统的安全操作是通过协调和验证执行各方的操作的协议实现的。DSN可以根据系统的需求采用不同的协调策略,包括拜占庭协议、八卦协议或CRDT。

DSN涉及三个功能的实现:放置、获取和管理。Put允许客户机在唯一标识符下存储数据。get允许客户端使用标识符检索数据。通过测量可供租用的空间、审核提供程序和修复可能的数据故障来管理协调网络。管理协议通常需要存储供应商与客户机或审计员网络一起运行(这涉及下面讨论的拜占庭式错误)。

DSN有几个属性。前2个基本上是必需的。

数据完整性意味着客户机总是收到与存储相同的数据,也就是说,存储供应商无法使客户机收到错误数据,而可检索性仅仅意味着客户将能够随时检索其数据。

DSN的可选属性:
公共可验证性:网络上的每个人都可以在不知道数据本身的情况下验证数据是否被存储。
可审计性:可以验证数据是否存储在正确的时间段内。
激励相容性:致力于奖励丰厚的服务提供商,惩罚奖励少或者没有奖励的服务提供商。
实现保密性:将数据私有化的客户必须在将数据提交到网络之前对其数据进行加密。

容错

DSN容忍两种可能的故障:

管理故障:这些故障是由管理协议中的参与者(存储供应商、客户和审计员)引起的拜占庭式故障。DSN方案依赖于其底层管理协议的容错性。违反管理故障的容错假设可能会危及系统的活跃性和安全性。例如,考虑一个DSN方案,其中管理协议要求拜占庭协议(因为节点可以谎称其审核)审核存储提供程序(如果它们正在存储根据商定条件应存储的所有数据)。在这种协议中,网络从存储提供商处接收存储证明,并运行拜占庭协议(BA)以认同这些证明的有效性。如果BA在n个节点中最多能容忍f个故障,那么DSN可以容忍f<n/2个故障节点。在假设不成立的情况下,审计可能会受到影响,从而瘫痪整个系统。

存储故障:存储故障是拜占庭式的故障,会阻止客户检索数据:即存储矿工丢失他们的工件,检索矿工停止提供工件。如果成功的Put执行使其输入数据存储在m个独立的存储提供程序中(总共n个),并且可以包容最多f个拜占庭提供程序,则它是(f,m)容忍的。参数f和m取决于协议实现情况;协议设计者可以修复f和m,或者留给用户,从而将put(数据)扩展到put(数据,f,m)。如果故障存储提供程序少于f个,则对存储数据执行get成功。例如,在这种方案中,输出协议的设计是使每个存储提供者存储所有数据。在这个方案中,m=n,f=m−1,但它总是f=m-1吗?不,某些方案可以使用擦除编码进行设计,其中每个存储提供程序存储数据的特殊部分,因此需要m个存储提供程序中的x个来检索数据;在这种情况下,f=m−x。

共识算法

Filecoin DSN协议可以在任何允许验证Filecoin证明的共识协议之上实现。工作证明方案通常需要解决那些解不可重用或需要大量计算的难题。

不可重复使用:大多数无权限的区块链都要求矿工解决计算难题,例如反转哈希函数。通常,这些难题的解决方案是无用的,除了保护网络之外没有任何内在价值。一些区块链,如以太坊(执行智能合约逻辑)和PrimeCoin(寻找新的质数),试图利其计算能力来做有用的工作。

浪费:从机器成本和能源消耗的角度来看,解决困难可能非常昂贵,尤其是在这些难题完全依赖于计算能力的情况下。当挖掘算法令人难堪地并行时,解决这一难题的普遍因素是计算能力。

减少浪费:理想情况下,网络的大部分资源应该花在有用的工作上。一些工作要求矿工使用更节能的解决方案。例如,spacemint需要矿工们专门分配磁盘空间而不是计算;虽然更节能,但这些磁盘仍然“浪费”,因为这些磁盘充满了随机数据。另外,可以以传统的拜占庭协议取代难题,该协议基于股权证明,利益相关者对下一个区块的投票与其在系统中的货币份额成比例。

所以,Filecoin矿工制造时空证明是而不是奢侈的工作证明以参与共识。

有用的工作:如果计算结果对网络有价值,我们就可以认为矿工在共识协议中所做的工作不仅仅是保护区块链,还有其他贡献。

Filecoin提出了一个实用的工作共识协议,其中,网络选择矿工创建新块的概率(我们将其称为矿工的投票权)与他们当前使用的与网络其余部分相关的存储成正比。FileCoin协议的设计使矿工宁愿投资于存储,而不是计算能力,以并行挖掘计算。矿工提供存储和重复使用计算,证明数据正在存储,以参与共识。

采矿建模电力

电力故障容限:在技术报告中,电力故障容限是一个抽象概念,根据参与者对协议结果的影响重新界定拜占庭式故障。每个参与者都控制着某种力量,其中n是网络中的总力量,f是由错误或敌对参与者控制的力量的一部分。

filecoin中的功率:在filecoin中,时间t时矿工m的功率p是m的存储分配的总和。m的影响i是m的功率占网络中总功率的一部分。在FileCoin中,Power具有以下特性:

公用:网络中当前使用的存储总量是公用的。通过读取区块链,任何人都可以计算每个矿工的存储分配-,因此任何人都可以计算每个矿工的功率和任何时间点的总功率。
可公开验证:对于每个存储分配,矿工需要生成时空证明,证明正在提供服务。通过阅读区块链,任何人都可以验证矿工声称的权力是否正确。
变量:在任何时间点,矿工可以通过承诺新的扇区并填充该扇区,向网络添加新的存储。通过这种方式,矿工们可以通过时间来改变他们拥有的能量。

要了解更多关于这种能力如何在共识算法中(数学上)发挥作用的信息,请参阅白皮书。

还有机制防止恶意矿工可能利用的三种攻击:Sybil攻击、外包攻击、代攻击。
Sybil攻击:恶意矿工可以通过创建多个Sybil身份来假装存储(并获得报酬)比物理存储的副本多,但只存储一次数据。
外包攻击:恶意矿工可能承诺存储的数据超过其物理存储量,这是由于从其他存储提供商那里快速获取数据。
生成攻击:恶意矿工可能声称他们存储了大量数据,而不是使用一个小程序高效地按需生成。如果程序小于据称存储的数据,这会增加恶意矿工在filecoin中赢得区块奖励的可能性,而filecoin与矿工当前使用的存储成比例。

存储供应商必须说服客户,说明他们存储了其应该存储的数据。在实践中,存储提供商将生成区块链网络(或客户本身)验证的存储证明(POS)。

为了使存储行为能够公开验证,FileCoin引入了两种共识算法:复制证明(porep)和时空证明(post)。如果你对共识算法还不熟悉,或者想了解更多,那么可点击此网站:
https://hacker noon.com/consensuspedia-an-encyclopedia-of-29-consensus-algorithms-e9c4b4b7d08f

复制证明(porep)是一种新的存储证明,允许服务器(即prover p)说服用户(即verifier v)将某些数据D复制到自己唯一专用的物理存储中。我们的方案是一个交互式协议,其中证明者P:(a)承诺存储某些数据D的n个不同的副本(物理上独立的副本),然后(b)说服验证者V,P确实是通过挑战/响应协议存储每个副本。porep改进了por和pdp方案,防止了sybil攻击、外包攻击和代攻击。

时空证明:存储方案证明允许用户检查存储提供商在挑战时是否存储外包数据。我们如何使用POS方案来证明某些数据是在一段时间内存储的。这个问题的答案是要求用户反复(例如每分钟)向存储提供商发送挑战。但是,每个交互中所需的通信复杂性可能是系统(如FileCoin)的瓶颈,存储供应商需要向区块链网络提交证明。

为了解决这个问题,我们引入了一个新的证明,即时空证明,在这个证明中,验证者可以检查验证者是否在一段时间内存储其外包数据。直觉要求证明者

  • 生成存储的顺序证明(在我们的例子中是复制证明),作为确定时间的一种方法。
  • 递归编写执行以生成短期证明 Filecoin的终极指南(二)

柱状图

验证程序从验证程序接收一个随机挑战(c),并按顺序生成复制证明,将证明的输出作为另一个的输入,用于指定的迭代次数t。从而确保完成的所有工作都是可重用的(如上所述)。

post&amp;porep使用zk-snarks,制作的证明非常简短,易于验证。

要了解更多关于post实际实现的信息,请参阅白皮书。

智能合约

智能合约允许FileCoin的用户编写有状态的程序,这些程序可以使用令牌,请求在市场中存储/检索数据,并验证存储证明。用户可以通过将交易发送到触发合同中函数调用的分类帐来与智能合同进行交互。我们扩展了智能合约系统以支持FileCoin特定的操作(例如市场操作、验证)。

FileCoin支持特定于数据存储的合同,以及通用的智能合同:

文件合同:我们允许用户对他们提供或提供存储服务的条件进行编程。例:(1)签约矿工:客户可以事先指定提供服务的矿工,而不参与市场;(2)支付策略:客户可以为矿工设计不同的奖励策略,例如合同可以随着时间的推移向矿工支付越来越高的报酬,另一个合同C由受信任的Oracle通知的一组存储价格,(3)票务服务:一个合同可以允许矿工代表他们的用户存储令牌和支付存储/检索费用,(4)更复杂的操作:客户可以创建允许数据更新的合同。

智能合约:用户可以将程序与他们的交易关联起来,就像在其他系统(如以太坊)中那样,这些系统不直接依赖于存储的使用。我们预见了诸如:分散命名系统、资产跟踪和众包平台等应用程序。
交叉链相互作用

桥接器旨在连接不同区块链的工具;支持跨链交互,以便在其他基于区块链的平台中实现filecoin存储,并将其他平台的功能引入filecoin。

其他平台中的Filecoin:其他区块链系统,如比特币、Zcash,尤其是以太坊和Tezos,开发者可编写智能合约;但是,这些平台提供的存储能力非常小,成本非常高。我们计划为这些平台提供存储和检索支持的桥梁。我们注意到IPFS已经被一些智能合约(和协议令牌)用作引用和分发内容的方法。添加对filecoin的支持将让这些系统保证存储IPFS内容以交换filecoin令牌。

FileCoin中的其他平台:我们计划提供连接其他区块链服务与FileCoin的桥梁。例如,与zcash的集成将允许支持发送在隐私中存储数据的请求。

其他问题

在这里,我们列出了一些在白皮书中没能说明的潜在问题。

检索市场的可扩展性:小额支付系统(检索市场)在检索协议上产生了大量开销。为了实现与当今集中式基础设施相匹配的检索速度,需要大量采用FileCoin和因此而产生的IPFS,以便创建一个密集的状态通道网络。

审查(非法内容):正如我们过去在Napster和海盗湾看到的那样,缺乏审查最终导致网络上出现非法内容,会将黑暗网络带到了表面。解决方案可能是人工智能驱动的协议,随着时间的推移,会自动检测非法内容并采取必要的措施。但是,为了使网络成为一个民主的网络,协议需要由用户自己管理(从而引入拜占庭行为),以决定内容是否需要一些操作。

开源:根据上述问题推断,最初为了保护网络不受此类内容的影响,协议实验室也可能对其进行管理,这可能是一个封闭的软件(免费使用,但不能公开修改)。但是,即使他们这样做,也可能没有什么帮助,因为人们可以在上面运行一个未经审查的版本(通过修改原始软件)。

货币波动:考虑到FileCoin将在交易所上市,想象这样一个市场中的小额支付系统(存储和检索将涉及小额支付)有多实际?从目前市场的成熟度和一般的分散空间来看,硬币/代币的使用更像是一种投资工具,而不是实用工具。这是我们今天在基于代币的项目中没有太多采用的最大原因之一。

filecoin协议的可能改进

在这里,我们列出了一些filecoin协议有待改进的部分。

Tahor Lafs加密方案:当添加值时,客户端首先对其进行加密(使用对称密钥),然后将其拆分为可管理大小的段,然后擦除对这些段进行编码以实现冗余。例如,“3取2”擦除编码意味着该段被拆分为3个片段,但其中任何2个片段都足以重建原始片段(更多了解ZFEC)。然后这些段成为共享,存储在特定的存储节点上。存储节点是共享的数据存储库;用户不依赖它们来保证数据的完整性或机密性。

Filecoin的终极指南(二)
最终,加密密钥和一些帮助找到正确存储节点的信息将成为“功能字符串”的一部分(了解更多有关编码过程的信息)。重要的是,功能字符串对于从网格-中检索值是必要的,并且是够用的;当太多的节点变得不可用(或脱机)并且您无法再检索足够的共享时,就会失败。

有写、读能力和验证能力;可以减少为“不太权威”的离线能力。也就是说,具有写能力的人可以将其转换为读能力(不需要与服务器交互)。验证功能可以确认值的存在和完整性,但不能解密内容。可以将可变值和不可变值都放入网格中,但不可变值没有写入能力。

感谢您的阅读!

 

原创文章,作者:三色団子,如若转载,请注明出处:https://ipfsdrop.com/wiki/filecoindezhongjizhinaner/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

(+86)18301922335

在线咨询:点击这里给我发消息

邮件:haskell@freechains.cn

工作时间:7×24小时

QR code