Proof of Replication 复制证明
技术报告
July 27, 2017
翻译:elninowang
抽象
我们引入了复制证明(PoRep),这是一种新的存储验证,可用于证明某些数据D已被复制到其自己独特的专用物理存储中。执行唯一的物理副本使审查者能够检查证明者是否不将D的多个副本重复数据删除到同一个存储空间中。这种结构在云计算和分散式存储网络中特别有用,它们必须是透明的,可以抵御女巫攻击,并且对外包不友好。
这项工作(a)审查存储证明并激发用例; (b)定义了可以公开可验证,透明,认证和有时限的新型复制证明; (c)展示了如何链接复制证明以建立有用的空间证明。
工作正在进行中。这是协议实验室的一项正在进行的工作技术报告。正在进行积极的研究,并将出现本文的新版本。有关意见和建议,请联系我们research@filecoin.io
1 存储证据的动机和背景
本节提供了不同的存储证明和相关证明的背景和分类,并激发了对复制证明的需求。在本节中,我们解释使用证明者P的不同证明之间的区别,试图说服验证者V说P存储了一些数据D。V对P给出了一个挑战c,需要P用相应的证明来回答。证明方案的属性,效用以及D在协议外是否有用,或者是没有外部效用的随机字符串。
1.1 Common Properties 通用属性
我们使用以下属性,通用于各种证明方案:
l (可私下验证)如果V是安装期间生成密钥验证密钥的用户,或与用户共享此密钥的任何其他方,则该方案可私密验证。这些方案在云计算环境中非常有用,用户希望将数据存储外包给服务器,并可能将验证外包给可信验证方。在这项工作中,大多数存储验证(PoS)方案都是私下可验证的。
l (可公开验证)如果V是可以访问公共数据的任何一方(例如验证密钥),但无法访问原始数据或者在方案设置过程中生成的秘密信息,则该方案可公开验证。可公开验证的方案在分散式存储网络设置中非常有用,其中验证者可能是只能访问公共数据的新参与者,作为先前证明方案设置的上下文。
l (透明)如果没有额外的信息sk,使得任何P能够生成没有数据D的有效证明,则该方案是透明的。这意味着,没有一个恶意证明者可以用它来生成证明π* = ForgeProof(c,sk)的sk,使得1 =验证(c;π*)为P选择的c。分散式存储网络中需要透明的方案,其中证明者也可以是验证者或用户。虽然许多PoS方案需要信任用户或验证者来生成密钥,但透明PoS方案不需要。
l (可获取性) 如果V有可能仅通过向P发出许多挑战c并聚合相应的证明f来提取和重构D,则该方案支持可获取性。见PoRet。
l (动态) 如果PoS方案使得用户V能够动态地更新存储在服务器P处的数据D到D',以支持可变数据而不需要全新的设置,则PoS方案是动态的。动态PoS方案在云存储设置中非常有用,并且系统具有大型,频繁可变的数据,而不需要版本历史记录。
l (不可外包) 如果P不能将她的工作外包给其他证明人(例如存储,工作或证明),并说服V证明P完成了工作,则该方案是不可外包的。不可外包方案在云计算,加密货币和分散存储网络设置中非常有用,其中P可能因为提供空间而获得奖励,并且用户或V希望确保P实际上提供服务。
l (已认证) 如果在证明验证期间可以验证证明人的身份,则方案是已认证的。例如,数字签名可能需要作为生成证明身份,。认证可以帮助使方案不可外包,因为证明者必须向外包提供者揭示秘密标识信息(例如,他们的私钥)。
l (有时限) 如果证明只在一段时间内有效,则证明方案是有时间限制的。例如,一些方案声明P必须在接收到挑战c之后的特定时间内生成有效证明。如果P延迟超出一定的方案特定的时间限制,则证明不再有效,因为P有足够的时间来伪造它。
l (有用) 如果一个方案能够实现单独的有用工作或有用的存储作为其操作的一部分或作为副作用,则该方案非常有用。例如,存储和验证验证者选择的D(PDP,PoRet,PoRep)是有用的,而存储和验证随机生成的D(PoSpace)是没有用的。
1.2 证明的种类
这里我们概述各种证明方案,特别是存储证明及其变种:
l 数据拥有证明(PDP)方案[1] 允许用户V将数据D发送到服务器P,并且随后V可以重复检查P是否仍在存储D. PDP在云存储和其他存储外包设置中是有用的。PDP可以是私密可验证的或可公开验证的,并且是静态的或动态的。存在各种各样的PDP方案。
l 可检索证明(PoRet)方案[8],[12]与PDP类似,但也可以提取D,即可检索性。PDP允许验证者V检查P是否仍然存储D,但是P可以提交有效的PDP证明,但是仍然持有D的人质并且从不释放它。PoR通过使证明本身泄漏D的分片来解决这个问题,以便V可以发出一些挑战,然后从证明中重构D.
l 存储证明(PoS)方案允许用户V将数据D的存储外包给服务器P,然后重复检查P是否仍在存储D. PDP和PoRets是在2007年左右同时独立引入的。那么,存储证明概念概括了PDP和PoRets。这项工作介绍PoReps,一种新型的PoS。
l 复制证明(PoRep)方案(这项工作)是另一种存储证明,它另外确保P将专用物理存储专用于存储D. P不能假装存储D两次并删除存储重复数据。这种结构在云存储和分散存储网络设置中非常有用,确保适当的复制级别非常重要,理性服务器可以创建女巫身份并向同一用户出售其服务两次。PoRep方案确保每个副本独立存储。一些PoRep方案也可能是PoRet方案。
l 工作量证明(PoW)方案[6]允许证明者P说服验证者V P已经花费了一些资源。最初的用例[6]提出了这种方案,允许服务器V通过要求用户P按请求执行一些昂贵的工作来限制使用率。自那时以来,PoW计划已被改编用于加密货币,拜占庭共识[11]和许多其他系统。有趣的是,比特币网络[11]在哈希计划中花费了大量精力,用于建立共识并安全地扩展比特币分类账。
l 空间证明(PoSpace)方案允许证明者P说服验证者V P已经花费了一些存储资源。PoSpace方案是PoW方案,其中扩展资源不是计算(CPU指令),而是存储空间。从某种意义上说,PoS方案也是一种PoSpace,因为PoS意味着使用存储资源。
l 时空证明(PoSt)方案[10]允许证明者P说服验证者V P已经花费了一些“时空”(随时间使用的存储空间)资源。这是一个随时间推移检查序列的PoSpace。一个有用的PoSt版本将是有价值的,因为它可以用存储服务取代其他PoW方案。这项工作基于连续PoReps引入了这样一个方案。
定义1.1 () 这项工作还定义了一个简化的PoS验证方案
= (Setup; Prove;Verify),
这里:
l 其中和分别是针对P和V的方案特定的设置变量,取决于数据D和安全参数λ。
l 其中c是挑战,是P有权访问D的证明。
l {0, 1} 其中运行以检查来自P的证明是否正确。
1.3 证明复制的动机