Proof of Replication 复制证明
技术报告
July 27, 2017
翻译:elninowang
抽象
我们引入了复制证明(PoRep),这是一种新的存储验证,可用于证明某些数据D已被复制到其自己独特的专用物理存储中。执行唯一的物理副本使审查者能够检查证明者是否不将D的多个副本重复数据删除到同一个存储空间中。这种结构在云计算和分散式存储网络中特别有用,它们必须是透明的,可以抵御女巫攻击,并且对外包不友好。
这项工作(a)审查存储证明并激发用例; (b)定义了可以公开可验证,透明,认证和有时限的新型复制证明; (c)展示了如何链接复制证明以建立有用的空间证明。
工作正在进行中。这是协议实验室的一项正在进行的工作技术报告。正在进行积极的研究,并将出现本文的新版本。有关意见和建议,请联系我们[email protected]
1 存储证据的动机和背景
1.1 Common Properties 通用属性
我们使用以下属性,通用于各种证明方案:
(可私下验证)如果V是安装期间生成密钥验证密钥的用户,或与用户共享此密钥的任何其他方,则该方案可私密验证。这些方案在云计算环境中非常有用,用户希望将数据存储外包给服务器,并可能将验证外包给可信验证方。在这项工作中,大多数存储验证(PoS)方案都是私下可验证的。
(可公开验证)如果V是可以访问公共数据的任何一方(例如验证密钥),但无法访问原始数据或者在方案设置过程中生成的秘密信息,则该方案可公开验证。可公开验证的方案在分散式存储网络设置中非常有用,其中验证者可能是只能访问公共数据的新参与者,作为先前证明方案设置的上下文。
(透明)如果没有额外的信息sk,使得任何P能够生成没有数据D的有效证明,则该方案是透明的。这意味着,没有一个恶意证明者可以用它来生成证明π* = ForgeProof(c,sk)的sk,使得1 =验证(c;π*)为P选择的c。分散式存储网络中需要透明的方案,其中证明者也可以是验证者或用户。虽然许多PoS方案需要信任用户或验证者来生成密钥,但透明PoS方案不需要。
(可获取性) 如果V有可能仅通过向P发出许多挑战c并聚合相应的证明f来提取和重构D,则该方案支持可获取性。见PoRet。
(动态) 如果PoS方案使得用户V能够动态地更新存储在服务器P处的数据D到D',以支持可变数据而不需要全新的设置,则PoS方案是动态的。动态PoS方案在云存储设置中非常有用,并且系统具有大型,频繁可变的数据,而不需要版本历史记录。
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.3 证明复制的动机
考虑以下情况:
2 复制证明
我们引入了复制证明(PoRep)方案,它允许证明者P对(a)承诺存储D的n个不同副本(物理上独立的副本),然后(b)说服验证者V 即P确实存储每个副本。我们正式确定了三个挑战:女巫攻击,外包攻击和生成攻击,都涉及复制。克服这些挑战的能力将PoRep方案与其他PoS方案区分开来。我们引入了一种名为RepGame的对抗游戏,即PoRep计划必须通过才能保证安全,并对PoRep计划进行正式定义。最后,我们探索PoRep方案的一个子类,时间有限的复制证明,这些方法明显容易实现。
定义2.3(生成攻击)如果攻击者A能够确定D,那么A可以选择D.
使得A可以根据需要重新生成D. 在收到质询c后,A重新生成D,并生成证明,假设A一直存储D.
防止生成攻击是困难的,并且通常不是传统云计算设置中的问题,所以它不是大多数PoS计划的目标。然而,这种攻击是阻止大多数PoS方案被用来构建分散式存储网络的原因,因为攻击者A可以请求存储D(甚至为其付费),然后证明存储D来收集网络奖励。之前的工作试图通过调整费用和奖励时间表来做到这一点并不合理,但这些方法阻碍了有用的经济建设,并且不能防止问题发生。通过强制这种攻击者存储数据来完全防止产生攻击是一个悬而未决的问题; PoRep旨在解决它。
我们现在构建一个游戏,共同测试三种攻击并将PoRep方案与其他PoS方案区分开来。如果PoS计划通过游戏,那么它是一个PoRep计划。
如果没有以超过可忽略概率赢得PoRep游戏的对手,则PoRep是安全的。用这些明确的攻击和比赛来测试安全性,我们现在可以正式定义PoRep方案。我们采用一般的方案建设,类似于上面的PoS建设。
2.1 时间有限的复制证据
构建证明复制协议可能有许多不同的策略。任何安全建设必须防止女巫攻击,外包攻击和生成攻击,并且必须通过RepGame。一些协议可能能够依赖可信硬件,而其他协议可能依赖于时间限制。在这项工作中,我们有兴趣创建可以部署到现有系统的构造,并且不依赖于可信方。我们给时间有限的PoReps建设,可以使用任何PDP或PoRet方案实例化,不依赖于可信方,并且从验证者的角度仅依赖于当地时间。这种结构适用于分散式存储网络,这是一种可公开验证的设置。
缓慢的PRP。通过在密码块链接(CBC)模式下使用分组密码(BC),可以容易地构建可以任意减速的PRP。CBC的以下三种变化顺序增加复杂性以实现期望的性质:
我们可以通过在SCIP计划(SNARKs,STARKs)[7,4,3,2]中计算这些数据(便宜地),使这些构造中的任何一个可公开验证。这样做会很昂贵,并且很可能直接以更便宜的方式使用SCIP方案构造中使用的原语。我们认为这是一个公开的问题。
3 时空证明
通常,大多数PoS和PoSpace方案是根据交互式挑战设置来描述的,其中验证者V向证明者P发出单个或周期性挑战。不可预知但频繁的挑战可以给予V信心,P已经正确地存储了所需的数据D 持续时间受到挑战。这些挑战必须频繁且难以预测,因为在V挑战之前,过于频繁或可预测的挑战可能会使P有机会通过检索D(从其他外包存储或从二级市场)获取作弊机会。V的信心随着挑战的频率而增加。这是云存储客户端(V)确保特定服务(P)能够正确存储客户端数据的有用方法。但是,这些交互式检查要求客户在线并在所有挑战中花费带宽和计算资源。
有时间限制的PoReps可以允许时间间隔很大,因为密封功能可以缩放到显着大于间隔之间的最大期望时间。然而,这并不能避免定期挑战的需要; 许多挑战仍然需要很长一段时间,而这些将需要V在线并花费资源来执行它们。在云存储和分散存储网络设置中,允许客户不频繁地检查证据是非常有用的,或许与其他必要的访问(例如检索D)结合在一起是非常有用的。具有显示P的可审计记录也是有用的行为正确-- 存储D -- 整个持续时间。这个记录甚至可以在区块链等公共分类账中加上时间戳。
减少磁盘访问和时间差异。计算这种证明链的过程将迫使证明者P不断运行PoS验证过程,这可能需要大量的计算资源和磁盘访问。对于大多数现代计算机来说,这不应该是一项太繁重的任务。但是,某些用例可能需要减少磁盘访问量,或者减少计算证明链每次迭代所需时间的差异。为此,我们可以调整链接方案以在推导下一个挑战时运行一些附加的顺序计算。这种计算可以调整为具有期望的特性:低时差,无磁盘访问,CPU有限,内存有限,存储有限使用等。例如,Sloth散列函数[9]可随时随地缩放,CPU有限,具有较低的时间差异,并且使零磁盘访问成为可能。气球散列函数[5]可随时随地扩展,内存有界,时间偏差小,并且可以实现零磁盘访问。这些只是连续过程的可预测运行时间的,可用于调整证明链计算的属性的两个例子。
证明链和时空。PoS或PoSpace证明的顺序证明链的创建意味着在特定的持续时间内存储了特定数量的空间被占用。换句话说,一片时空致力于存储相关数据D.因此,我们将这种连续证明的链接称为空间证明(PoSt)。这些证明本质上是有时间限制的,因为持续时间t的PoSt证明只有在不久后进行验证时才是有效的,但是该证书链可以任意延长。唯一的限制是计算每次迭代的时间差异。计算整个PoSt证明链的方差必须足够低以在时间间隔内具有可信度。
PoSt到区块链。当涉及时间戳服务时(例如比特币区块链),连续的PoSt证明链可以任意长。给定一个由P和V共同信任的时间戳服务,P可以定期对证明链头部(创建一个检查点)进行时间戳记,以及时有效地锚定证明链。当V处于离线状态时可能发生这种情况,未来V可以决定审核证明链及其带时间戳的检查点,并确认P在正确的时间间隔内正确生成证明链。
4 可实现的结构(TODO)
4.1 实现有限时间的复制证明
4.2 实现可用的空间证明
PoSt从5.1开始,经常检查或时间戳(进入区块链)。
致谢
这项工作是Protocol Labs团队内多个人的累积效应,如果没有协议实验室的合作者和顾问的帮助,评论和审查,将无法实现。Juan Benet和Nicola Greco与团队其他成员合作构思了复制证明,他们提供了有用的贡献,评论,评论和对话。
参考
[1] G. Ateniese, R. Burns, R. Curtmola, J. Herring, L. Kissner, Z. Peterson, and D. Song. Provable
data possession at untrusted stores. In Proceedings of the 14th ACM Conference on Computer and
Communications Security, CCS '07, pages 598{609, New York, NY, USA, 2007. ACM.
[2] E. Ben-Sasson, I. Bentov, A. Chiesa, A. Gabizon, D. Genkin, M. Hamilis, E. Pergament, M. Riabzev,
M. Silberstein, E. Tromer, et al. Computational integrity with a public random string from quasi-linear
pcps. In Annual International Conference on the Theory and Applications of Cryptographic Techniques,
pages 551{579. Springer, 2017.
[3] E. Ben-Sasson, A. Chiesa, D. Genkin, E. Tromer, and M. Virza. Snarks for c: Verifying program
executions succinctly and in zero knowledge. In Advances in Cryptology{CRYPTO 2013, pages 90{108.
Springer, 2013.
9
[4] N. Bitansky, A. Chiesa, and Y. Ishai. Succinct non-interactive arguments via linear interactive proofs.
Springer, 2013.
[5] D. Boneh, H. Corrigan-Gibbs, and S. Schechter. Balloon hashing: A memory-hard function providing
provable protection against sequential attacks. In International Conference on the Theory and Appli-
cation of Cryptology and Information Security, pages 220{248. Springer, 2016.
[6] C. Dwork and M. Naor. Pricing via processing or combatting junk mail. In Proceedings of the 12th
Annual International Cryptology Conference on Advances in Cryptology, CRYPTO '92, pages 139{147,
London, UK, UK, 1993. Springer-Verlag.
[7] R. Gennaro, C. Gentry, B. Parno, and M. Raykova. Quadratic span programs and succinct nizks without
pcps. In Annual International Conference on the Theory and Applications of Cryptographic Techniques,
pages 626{645. Springer, 2013.
[8] A. Juels and B. S. Kaliski, Jr. Pors: Proofs of retrievability for large files. In Proceedings of the 14th
ACM Conference on Computer and Communications Security, CCS '07, pages 584{597, New York, NY,
USA, 2007. ACM.
[9] A. K. Lenstra and B. Wesolowski. A random zoo: sloth, unicorn, and trx.
[10] T. Moran and I. Orlov. Proofs of space-time and rational proofs of storage. Cryptology ePrint Archive,
Report 2016/035, 2016. http://eprint.iacr.org/2016/035.
[11] S. Nakamoto. Bitcoin: A peer-to-peer electronic cash system, 2008.
[12] H. Shacham and B. Waters. Compact proofs of retrievability. In Proceedings of the 14th Interna-
tional Conference on the Theory and Application of Cryptology and Information Security: Advances in
Cryptology, ASIACRYPT '08, pages 90{107, Berlin, Heidelberg, 2008. Springer-Verlag.
如果有关于区块链学习的交流,可以通过下面的方式联系我: 扫二维码加我微信,注意备注:区块链学习
github: https://github.com/elninowang telegram: @elninowang
twitter: @elninowang
medium: https://medium.com/@elninowang_cn steemit: https://steemit.com/@elninowang zhihu: https://www.zhihu.com/people/elninowang/activities jianshu: https://www.jianshu.com/u/103321b574ba