IPFS技术研究所

FileCoin:复制证明的新型结构

2018-04-20  本文已影响40人  波波BBBlockChain

复制证明(PoRep)是一种新的存储验证,可用于显示某些数据D已被复制到其自己独特的专用物理存储中。本文档提供了复制证明及其相关的开放问题。

介绍

本文提供了复制证明(PoRep),激发了它的使用案例,提供了一个定义并列出了相关的未解决问题列表。有关PoRep方案的更正式介绍,请参阅我们的复制证明技术报告。

动机

集中式云。当前的云基础设施运行在一个集中的环境中:云提供商被客户信任,以正确地提供他们的服务,例如存储数据或执行计算。集中式设置使客户难以发现故障和恶意行为。这样产生的云基础架构需要依赖于可信的供应商。

不受信任的云。在过去十年中,在不可信的云环境中委托计算和存储方面进行了大量工作。如果云提供商的操作是可验证的,那么客户不需要信任提供商。直觉是提供者必须为他们的服务生成一个证明,客户可以验证。在天真的情况下,客户可以将数据存储在云存储提供商处,并挑战提供商将整个数据提供回来,以验证存储提供商是否仍在存储数据。然而,这种稻草人解决方案对于标准的云使用是不切实际的。实际的解决方案依赖于加密假设,即存储提供者生成客户可以便宜验证的短密码证明。有几种用于证明存储的密码证明系统,我们特别提到可检索性证明(PoR)和证明数据拥有证明(PDP)。

分散式存储网络。分散式存储网络是点对点系统,其中节点(无论是利他主义还是激励)存储其他同伴的数据。与不可信云设置类似,客户端节点验证密码证明,而不是依赖信任来确保其他节点正在存储其数据。

复制证明。目前的方案只能保证存储提供者在生成证据时有文件。但是,这并不能保证文件是按时存储的,并且某些存储专用于该特定文件。此外,在供应商按比例向其存储进行奖励的系统(例如Filecoin的采矿奖励)中,由于存储提供商可能对存储撒谎,因此不能使用当前现有的方案。复制证明是一种新颖的证明系统,存储提供者不能对存储文件撒谎,因为他们必须为每个要存储的文件或副本存储唯一的物理排列(我们称之为副本)。

注意:有关复制证明的更详细用例,请参阅我们的技术报告(第1.3节)。

目前的PoR和PDP方案存在问题

目前在可验证的云存储和分散存储网络中使用的最先进的可检索性证明(PoR)和证明数据拥有方案,只能保证提供者拥有数据的时间挑战/响应互动,他们受到以下三种攻击:

Sybil攻击:恶意存储提供程序可以假装存储了(并获得付款)比多个Sybil身份实际能存储的更多副本,但实际只存储了一次数据。
外包攻击:恶意存储提供商可以承诺存储更多的数据,而不是实际存储的数据量,这取决于从其他存储提供商快速获取数据。
世代攻击:恶意存储提供商可能声称存储大量数据,却使用小程序高效地按需生成这些数据。如果程序比实际存储的数据小,这会恶化恶意存储提供商在Filecoin中获得块奖励的可能性,这与当前正在使用的存储提供商的存储成正比。

注意:有关不同的存储证明的更详细的调查,请参阅我们的技术报告(第1.2节)

问题定义

复制证明允许存储提供者说服用户某些数据D已被复制到其自己的唯一存储中。这个定义比PoR和PDP更严格,因为它强制证明者存储文件的唯一副本。

定义

复制证明使得证明者P能够说服验证者V说明P正在存储复制品R,复制品R是对P唯一的一些数据D的物理上独立的副本。该方案由多项式时间算法的元组定义(Setup,Prove ,Verify)。假设在安装之后副本会很难(如果不是不可能的话)生成。

注意:有关复制证明的正式定义,请参阅我们的技术报告(第2节)。

有时间限制的复制证明(可视)

时机假设。有时间限制的复制证明是PoRep的时间假设结构。假设是复制品(因此设置)的产生需要花费大量的时间t,比生成证明所需的时间(因此是时间(证明))和发送挑战的往返时间(RTT)并收到证明。

区分恶意证明者。没有R的恶意证明者必须在证明步骤之前获得它(或生成它)。验证者可以将真实的证明者与恶意证明者区分开来,因为恶意者会花费很长时间来应对挑战。如果接收证明者的证明需要比超时更长的时间(证明时间和密封时间之间),验证方将拒绝。

下图显示了时间线上复制证明的不同步骤。我们将生成副本的过程称为“密封”。

注意:有关时间有限复制证明的正式定义,请参阅我们的技术报告(第2.1节)。

超越时间有限的复制证明

还有其他的证明复制方案不依赖于时间假设,而是依赖于信任假设。例如,复制品可以通过多方计算生成,并假定所有相关方在将来不会共谋。

开放问题

尽管存在复制证明的一些候选结构,但仍然有改进使这种结构更实用。理想的PoRep结构应尽可能具有以下许多属性。

理想的属性

透明度:没有这样的额外信息,证明者可以使用它来生成有效的PoRep证据,而不需要在证明期间存储副本本身。

实用慢排列:如果证明时间需要时间(证明),往返时间为RTT,则理论时间(安装)的下限是安全的,即RTT +时间(证明)。如果时间(安装)和RTT +时间(证明)之间的时间间隔很小而不破坏安全性,则慢置换是实用的。时间间隔越小,排列越实际。

验证时间短:如果验证时间在安全参数O(λ)中保持不变,对于一个小常数或对于数据大小是次线性的,则验证时间很短。 (注意:对于合理的数据大小,例如10GB,持续验证具体可能需要比次线性验证更长的时间)

短证明:如果证明在安全参数O(λ)中是常量,对于小常量是常数,或对于数据大小是次线性的,则证明是短的(注意:对于合理的数据大小,例如10GB,恒定证明大小可能具体地大于次线性证明大小)

不可并行化置换:置换不应该是可并行化的,证明者不应该通过增加计算能力来获得任何优势。这对于Filecoin网络来说很重要,矿工应该使他们的回报与他们的存储成正比,而不是他们的能力。 (注意:我们允许探索Rational Proof-of-Replication,允许并行化,但生成证明会更昂贵)。

快速并行化解码:可以并行化从副本检索原始数据的算法。
无大小扩展:副本的大小应与原始数据的大小相等(或不变)。

具体开放问题

重要资料

Filecoin白皮书
复制证明
Filecoin复制动机证明
复制构建证明(视频

信息来源:https://github.com/protocol/research/issues/4

上一篇下一篇

猜你喜欢

热点阅读