PriCloud的加密设计,一种有偿的隐私保护的去中心化存储

摘要

在过去的几年里,由于成本的降低和服务的可用性,对文件托管的需求直线上升。然而,中心化提供商对用户的隐私有负面影响,因为他们能够读取和收集用户的各种数据,甚至通过支付将其与用户的身份联系起来。另一方面,像GNUnet这样的去中心化存储解决方案缺乏供应商的参与,因为没有可行的商业模式。本文提出PriCloud,一种去中心化的存储系统,允许用户通过在区块链上使用匿名存储智能合约和私人支付,在不牺牲隐私的情况下向存储提供商付款。我们能够向用户和存储提供商提供隐私,以及用户和文件之间的不可链接性。我们的系统提供去中心化的文件存储,包括强大的隐私保障和存储提供商的内置报酬。

索引词
分布式存储,P2P,应用密码学,区块链,隐私

引言

云存储系统,如Dropbox,已经被大众使用多年了。虽然提供了经济上可行的服务,但隐私通常只在这些系统中扮演次要角色。用户的电子邮件地址、支付信息或IP地址都可以暴露其身份。中心化提供商通常会被激励不顾隐私来提高效率,例如通过文件去重或个性化服务。集中式文件存储的另一个缺点是缺乏较小的竞争对手,产生单点故障,以及缺乏对审查的抵制,因为账户可以被暂停而不上诉。隐私改善很重要,因为存储解决方案被用于存储隐私敏感的文件,如密码列表、税务或银行信息。此外,存储解决方案可能被告密者和记者用于关键文件。
隐私友好的去中心化存储解决方案存在,例如GNUnet[1]和Freenet[2],它们的存储由网络的其他参与者提供。它们缺乏对参与者贡献存储空间的经济激励,导致了所谓的搭便车问题:用户正在消耗存储容量,但不愿自己提供存储空间。由于支付会带来隐私风险,添加支付方案并非易事。
由于去中心化存储系统缺乏经济上可行的替代方案,导致了PriCloud的诞生。PriCloud是一种新型的点对点存储系统,用户可以通过贡献[3]资源获得报酬。PriCloud使用基于区块链的代币系统,为那些向其他用户提供存储的参与者提供经济激励。与以往的存储方案不同,我们的系统利用加密技术实现了私人支付,保证了交易的不可链接性和不可追踪性。区块链的存储合同确保只对已履行的存储承诺付款,同时保留存储文件及其付款的不可链接性。与集中式系统相比,PriCloud提供了发送方和接收方匿名性、抗审查性以及减轻单点故障的可能性。

贡献

本文是我们的方案[3]的一个扩展版本。对可链接环签名方案及其安全性质进行了较为详细的描述,并给出了所使用的存储证明的安全性定义。此外,对相关工作进行了更广泛的比较,并讨论了除区块链层外对其他抽象层的需求。我们的工作贡献可概括如下:
  • 提出了一种新颖的隐私保护去中心化存储系统设计,该系统允许隐私保护支付。
  • 我们在区块链上的隐私保护支付机制基于环签名和一次性地址的密码学构造,以提供交易的不可链接性和不可追踪性。
  • 为了激励文件存储和可检索性,我们利用存储证明,并提供提供文件的激励的正式分析。
  • 最后,讨论除区块链之外,对抽象层的其他考虑,例如网络层。

论文大纲

第2节介绍了贯穿本文的相关符号。第3节概述了基于区块链的数字货币的机制。在第4节中,我们将介绍PriCloud系统,重点介绍支付的合同机制和隐私机制。第5节讨论了PriCloud与同类系统的差异和改进。PriCloud的描述集中在区块链的抽象层,但为了保持系统的私有性,还需要满足其他层的额外要求。这些将在第6节讨论。第七节结束了我们的工作。

符号

我们编写,将对输入x运行随机算法A的输出赋值给a。使用,我们表示在输入x上运行A的确定性结果和固定的随机性r。如果算法A在概率多项式时间内运行,我们称其为ppt。用Zp表示整数Z对模的剩余类。
我们说一个函数f是可以忽略的如果对于所有的正多项式p有一个自然数对于所有的n>N它是|f(n)|<1/p(n)。在整个文本中,带有表示一个文件,被视为一个包含块的向量。用符号表示{0,1}的Kleene闭包,即任意长的有限位串的集合。

背景

第一个真正的去中心化支付系统,不需要第三方,是比特币[4],其中双重支出,即花费相同的钱两次,被一组所谓的矿工用他们的计算能力对交易的有效性进行投票阻止。该设计被许多其他基于区块链的去中心化支付系统[5]复制,也被应用在我们的系统中。本章将概述这种设计范式。
比特币使用交易的概念,交易被表示为一个或多个输入和一个或多个输出的数据结构。每个输入都指向该事务将要花费的前一个输出。输出包含接收者的公钥,即接收者的身份和要转账的金额。输入包含与引用输出中的公钥相对应的签名。签名作为拥有密钥的证明,因此授权使用引用的输出。
创建交易后,发送者将其广播到网络中。所谓的矿工运行一种算法,用于验证并将有效的交易捆绑到所谓的区块中。一个区块包含一个时间戳、一个nonce以及对最近已知区块的引用。如果区块的哈希值小于前一个区块中的difficulty参数,则该区块是有效的。矿工需要找到这个哈希值作为工作量证明[6]。该难度是动态调整的,假设底层哈希率没有变化,预期的块频率为每10分钟一个块。这种数据结构称为区块链,是事务的一种共识形式。
在共识协议中利用工作证明机制防止Sybil攻击[7]、[8],通过创建身份来增加投票权。经典共识协议使用已知的静态身份来防止这种攻击。然而,比特币支持动态的参与者集合。
为了奖励矿工的参与,一种名为coinbase的特殊交易被包含在区块中。coinbase交易没有输入,只有输出,它授予该区块的矿工预定数量的比特币。为了鼓励矿工坚持在区块中进行交易,这些区块可以配备交易费用,该费用将奖励给包括本次交易的矿工。
如果同时找到两个不同的新块,这种情况称为分叉(fork)。在这种情况下,矿工会继续在随机选择的其中一条链上挖矿,直到其中一条更长,然后认为这条链是有效的。
如果区块包含无效交易,例如,它们有错误的签名,花费的钱是之前已经花费的,或者是从依赖于无效区块的区块中花费的,矿工会拒绝该区块。因此,矿工被激励只坚持区块链中的正确信息。
如果敌手更改了已经保存在区块链中的旧交易,则该区块的哈希值将更改,从而破坏对该区块的所有引用。为了让其他矿工相信这条链的有效性,它需要比当前的链长。在一个简单的分析中,敌手需要控制网络超过50%的哈希能力才能足够快地扩展他的链。这被认为是不可行的。使比特币安全的最强攻击者仍在研究中。
总之,区块链是一个没有可信第三方的分布式数据库。持久化的数据被复制到每个参与者,并由共识协议决定持久化哪些数据。此外,激励结构和验证规则的构建方式是只保存正确的信息。区块链在去中心化货币之外的应用包括安全公平多方计算[9]、[10]、[11]以及智能合约[12]、[13]。

PRICLOUD系统

概述

PriCloud的目标是为其存储提供商提供一个分布式存储系统,并为参与其中的用户提供强有力的隐私保护。基于一个增强的匿名转账和存储合同的区块链实现了匿名支付下的文件存储,保证了支付方式不会泄露任何信息。
PriCloud支持三种角色:矿工、存储提供商和用户。PriCloud网络中的每个参与者都可以担任这些角色中的一个或多个。
矿工的功能与第3节所述相同。使用了参与者之间区块链的松散时间同步,以便存储合约可以有一个到期日期。
用户与存储提供商建立存储智能合约,在合约期内锁定用户的资金。这些钱可以在合同履行后由存储提供商支付,也可以在合同违约时由用户支付。为了履行合同,存储提供者需要在到期时出示文件存储的有效证明。在区块链中需要存储证明,因为合同状态需要对矿工进行公开验证。存储提供商不受用户信任,但由于经济激励,通常被认为是理性的。
想要参与的用户可以在交易所购买PriCloud代币(货币),或执行任何其他角色来赚取代币。矿工或存储提供商确实需要很少的设置,并且可以直接运行,但存储提供商应该拥有一些钱作为取回操作的安全保证金,以防止作弊,详见4.5.3节。
备注1(可能的扩展)。PriCloud只提供存储和检索数据块的抽象。使用标准方法可以在PriCloud之上添加更高级的功能,例如文件加密或通过纠删编码增加存储保证,其中一些将在第6节中讨论。

威胁模型

PriCloud由几个不同的组件组成,它们的安全性分析可以在各自的章节中找到。一般来说,PriCloud的参与者,即用户、存储提供商和矿工,被假定表现出理性行为,即提高他们对系统的利用。因此,利用率代表上传(对于用户)或通过存储文件赚钱(对于存储提供商)。不同的组件以不同的方式专门处理这个通用假设,以便为它们的用例产生更真实的结果。特别是,隐私绝不能被有意破坏系统的恶意行为者破坏。

挖矿

与比特币(参见第3节)不同,每个PriCloud矿工在每个新区块中都为自己包含一个新的一次性公钥(参见第4.4.2节),以实现其挖矿回报的隐私。因此,无法检测不同的coinbase奖励是否属于同一个矿工。

匿名支付

由于区块链中的交易数据是公开的,任何人都可以对其进行分析,从而推断参与者[14],[15]。根据冈本和Ohta[16]的说法,不可追踪性甚至是理想现金系统的六大属性之一。不可追踪性在他们的解释中意味着用户的隐私应该受到保护。特别是,用户和他的购买之间的关系必须是任何人都无法联系起来的。
在加密货币[17]中,不可追踪性的原始需求被分解为发送方匿名和接收方匿名。不可追踪性意味着对于每个传入事务,所有可能的发送者成为真正发送者的概率是相同的。不可链接性意味着对于任何两个交易,无法确定它们是否发送给了同一个收件人。同样,通过可链接环签名提供不可追踪性,而不可链接性通过一次性支付地址实现。我们结合标准机制来实现支付的不可链接性和不可追踪性,这将在下面解释。

可链接环签名

由于Rivest、Shamir和Tauman[18]的存在,环签名是一种特殊的数字签名。环签名证明文件是由一群签名者中的一个成员签署的。由于成员的身份没有透露,这提供了一定程度的隐私。在创建环签名时,签名者需要拥有自己的公私密钥对以及群中其他成员的公钥列表。特别地,与群签名相比,不需要群建立过程。在验证时,需要群成员的签名和公钥列表。简而言之,环签名是签名者是k-匿名的数字签名,即与k- 1个其他可能的签名者不可区分。
现在我们将定义关联环签名,然后通过一个具体的实例来解释它们在我们系统中的用法。本文基于Liu等人的[19]定义,但他们只定义了与一组固定公钥相关的连接性,而在我们的定义和构造中,连接性需要在环上的不同成员集合之间实现,否则将可能出现双重花费。为防止隐私泄露,交易输出被发送到一次性密钥中。只有当用户决定重复消费时,身份才会被显示。因为这是非法操作,所以有必要对用户进行识别。
定义1(可链接环签名[19])。一个可链接环签名是由一系列算法组成的
  • 是一个ppt算法。它接受一个安全参数,输出一对公钥和密钥对
  • 是签名者运行的用来创建环签名的PPT算法。它的输入是消息m、密钥sk以及公钥列表。在对签名算法的通常调用中,sk对应于公钥
  • 是一个由验证器运行的确定性算法,它返回一个比特b,其中'1'表示接受,'0'表示拒绝。它的输入是消息m、签名σ和公钥列表
  • 是一个确定性算法,它接收两个消息m和m',以及它们的签名σ和σ',并返回1比特l,其中l=0表示两个签名是链接的,即由同一个密钥sk签名,l=1表示它们是独立的。
对于可链接环签名,我们需要以下属性:
正确性保证正确签名的消息将被验证所接受。
对于所有安全参数,所有,其中对于某个,所有的消息m,所有的保证
直观地说,可链接性意味着使用相同密钥签名的两条消息会被算法链接发现。Link只能以可忽略的概率声明两个不同密钥的签名被链接。注意,这个定义假定了链接性,即使签名是使用不同的公钥集创建的。对于所有安全参数,所有,其中,对于所有,其中,任意消息m,m',术语
在λ中可以忽略不计。直观地说,这意味着算法链接将两个独立签名标记为链接的概率可以忽略不计。
此外,对于所有安全参数,所有,其中,所有,其中,对于一个j,它持有,对于某个i和任何消息m,m',术语

中可以忽略不计。这意味着即使某些环成员发生变化,算法链接将两个链接的签名标记为独立的概率也可以忽略不计。
签名者模糊性保证了消息真正签名者在环中其他成员的匿名性。一个无法获得密钥的算法试图猜测真正的签名者,与随机选择环中的一个成员相比,只有微不足道的优势。我们必须考虑到一些密钥可能会被泄露,因此猜测算法成功的几率会相应地更高,因为它可以验证泄露的密钥是否在环中使用过。如果是这样,那么知道真正的签名者。
形式上,对于任意ppt算法,输入任意消息m,任意n个公钥列表,任意t个对应的密钥集合,以及任意有效的签名由用户用公钥pkj生成
对于任意多项式
  • 如果,而且,那么
  • 否则
对于环签名的不可伪造性,我们可以使用Liu等人的攻击者模型[19]。

定义2(针对自适应选择明文攻击者[19]的存在不可伪造性)。
是一个签名oracle,它接受一个消息m'和一个由n个公钥组成的列表作为输入,并产生一个签名,以达到。如果一个可关联环签名方案对任意一个ppt算法A,对于由A选择的n个公钥组成的列表,具有,其输出仅以可忽略的概率满足。注意,不应该对应于之前给签名Oracle的任何查询-响应对。
环签名可以为交易提供发送者匿名性。每个交易输入引用先前交易的多个交易输出,其中一个输出是真实输出,其他用于隐藏发送者,从而提高隐私性。环签名中使用的公钥是引用输出的公钥。已签名的消息是新事务的事务输出。与其他区块链系统一样,签名包含在输入中。对于观察者来说,真正的消耗输出与其他虚假输出是无法区分的。
为了检测双重花费,两个对相同输出的真实引用,可链接环签名允许在使用相同密钥进行签名的情况下链接签名,从而导致第二次交易无效。
参考交易的金额必须相等,否则不能从参考交易的输出集合中确定实际金额。因此,我们的系统使用标准化的面额。这类似于纸币和硬币,它们的可能值是固定的,需要组合这些值来支付不同的金额。数量的粒度以相反的方式影响可扩展性和隐私,因为要么需要许多输出,要么创建较小的匿名集。面额的初步选择是2的幂。该参数的合理选择还有待进一步评估和研究。初始匿名集由coinbase的交易给出。
加密货币[17]及其许多衍生物,如Monero或Bytecoin,使用FS可链接环签名[20]的变体。相比之下,我们的系统使用LWW签名的可链接变体[19],其优势是显著短于FS签名。在Shen Noether[21],[22]的基础上,我们给出了LWW方案的关联变化。签名算法可以在图1中找到
设G为生成器为G的椭圆曲线,设为环上成员的公钥,在非椭圆曲线环境下记为pki。假设对于第j个公钥,我们知道对应的私钥x。设为关键图像,其中是哈希函数。密钥映像包含在签名中,以便实现签名的链接,因为如果两个签名具有相同的密钥映像,则将它们链接起来。由于x是私有的,因此对密钥图像的了解不能揭示签名者。
设m是要签名的数据,H是一个哈希函数。设和si为椭圆曲线基域上的随机值,其中。要生成签名,需要计算以下值:

对于所有的,相继定义



最后一步是通过融合两端来闭合环。设,其中为椭圆曲线的群阶。然后定义



签名由。为了验证签名,重新计算序列,检查是否满足。如果是这样,则签名是有效的。

在加密货币[17]所使用的签名方案中,ci是随机选择并附加在签名中的。我们的构造使用hash函数作为PRNG,因此ci是伪随机选择的,并且可以在给定c1的情况下重构。因此,加密货币中的签名包括,因此比所描述方案中的签名要大。
该方案的安全性、可关联性和签名者模糊性证明是对Liu等人[19]的证明的简单修改,可以在Noether的[21]和[22]的证明中找到。
在区块链系统中对交易发送方使用可链接环签名时,如何选择匿名集中的其他交易是一个有待解决的问题。如果他们以一种糟糕的方式选择,隐私可能会受到影响。从区块链发布的所有输出中随机均匀地选择匿名集中的输出是有风险的,因为旧的交易被更多的环签名使用。因此,在匿名设置中,年轻的交易更有可能输出。Monero labs[23]更深入地处理了这个问题,但也未能提供足够的解决方案。Moser等人分析了对当前Monero系统的影响。哪种分布是合适的仍然是一个开放的问题。
综上所述,可链接环签名强制发送者匿名,也称为交易的不可追踪[17],因为包含在环中的所有身份都有相同的概率成为交易的真实发送者。我们使用LWW签名的一个变体,因为这些签名相对较短,并且允许链接签名,即使环中的其他公钥不同。

一次性付款地址

基于区块链的加密货币[17]引入了一次性支付地址[25],通过使用不同的不可链接接收者密钥来增加接收者的隐私性。
发送方不是简单地通过其公钥引用接收方,而是使用随机nonce和接收方公钥在每个事务输出中派生一个新的临时公钥。由此导出的一次性公钥(目的密钥)与接收方的原始公钥是不可链接的,且与原始公钥相关联的私钥是未知的。接收方可以利用自己的私钥和发送方包含在交易中的交易公钥恢复与目标密钥相对应的私钥。
通过使用恢复的私钥进行签名,接收者可以证明她确实是预期的接收者,从而在不暴露身份的情况下花费了资金,或者交易属于她的(长期)公钥。
更准确地说,设G是一个生成器为G的椭圆曲线,设是接收方的私钥,其中为椭圆曲线的群阶。Q=dG是接收者的长期公钥。
为了发送交易,发送者生成一个一次性的接收地址,如下所示。首先,发送方计算,其中是随机均匀选取的。发送方定义了共享的DH密钥,并将交易发送给一次性公钥。该交易需要包含接收者恢复Q'对应私钥所需的附加信息P。因为,接收方可以恢复Q'对应的一次性私钥d+H(dP)。
两个一次性密钥的不可链接性源于cG本质上是一个随机偏移量,它被添加到长期公钥中。根据dl假设,只有接收方能够恢复私钥,从而保证了方案的安全性。
这种方案不允许委托检查传入的交易。因为委托需要将私钥提供给第三方。然而,这个第三方将能够使用这些资金。在第三方审计(如税务欺诈调查)或低功耗设备中,需要委托交易处理。
为了允许委托事务检查,可以创建扫描密钥对和花费密钥对。扫描密钥对被提供给第三方,然后第三方可以检查(但也链接)即将到来的支付。对于花费交易,仍然需要花费键。
,为接收方的私钥和公钥扫描密钥,为接收方的私钥和公钥花费密钥。为了发送交易,发送方如上随机选择并计算。我们定义共享的DH密钥。如上所示。发送者现在将他的交易地址设置为。同样,P需要作为附加信息包含在交易中。
为了判断交易是否指向接收者,只需要扫描私钥d来检查。由于对应于R'的私钥为(f + c),因此为了花费交易的私钥f,可以在牺牲隐私的情况下委托对进入交易的检查。
综上所述,我们的一次性支付地址提供了不可链接的交易[17],交易处理可以委托,无需委托授权消费。

文件存储

我们的系统提供存储合同来提供数据存储。这些契约被实现为特殊的事务类型,其中需要满足额外的需求才能花费这笔钱。为了建立存储智能合约,用户通过广播存储请求来搜索存储提供商。这个存储请求包含文件大小和存储期等元数据。储存供应商以各自的价格履行合同。然后,用户将文件发送到所选择的存储提供商(例如,最便宜的)。同时,用户创建并签署存储契约。本合同包含文件标识符和约定的保存期限。然后,它像任何其他交易一样被包括在区块链中。存储提供商存储的数据不会以任何方式发布。
存储智能合约是用户向存储提供商支付的一笔款项,如果存储提供商能够在合约开始和到期时证明数据的存储,则只能由存储提供商支付。
这是通过一种称为存储证明(proof of storage)的加密机制实现的,将在4.5.2节解释。存储证明被持久化在区块链中,矿工可以对其进行验证,这样在未提供证明的情况下,用户可以在到期后使用资金。由于区块链的共识协议,这些支付规则由矿工强制执行。这意味着,如果矿工生成包含交易的区块,尽管存储提供商没有证明文件的存储,但这些交易会被区块链拒绝,只要有诚实的大多数(哈希能力)矿工。
到目前为止,我们的描述只涵盖了文件的存储。需要一个额外的机制来允许用户检索他们的文件,这将在4.5.3节解释。

存储智能合约的生命周期

为了存储一个文件,用户在给定的存储周期c内搜索一个接受请求大小的文件的存储提供商。双方以商定的价格创建一个合同,该价格可由存储提供商的一次性密钥支付。
然后,用户生成新的公钥对pk和sk,并按照4.5.2节的规定对文件进行编码。密钥sk被丢弃,因为知道密钥就可以在不存储文件的情况下创建有效的存储证明。
之后,用户发布最终的存储合约,包括用于证明存储的公钥pk、文件标识符st、用户的退款地址ref、存储期c和支付交易tx。经过验证后,该存储合约最终被矿工持久化在区块链中。
在下一步中,存储提供者可以看到契约被持久化到区块链中,并接受文件传输。存储文件的算法由算法1给出。
如果合同违约,需要用户的退款地址ref来退还用户投入的款项。用户购买退款时,参照已毁损的存储合同证明其违约。为了减少验证成本,交易包含了一个提示:缺少了哪个存储证明:第一个还是最后一个。
在我们的存储智能合约中,存储提供商需要在合约开始时和合约到期时证明数据的存储,如图2所示。存储的有效期证明意味着存储提供商在整个合同期间都可以访问数据。排除了预先计算的存储证明,因为挑战来自于依赖于到期日期的时间段内的块。时间范围是处理延迟问题所必需的。
为了防止恶意存储提供商长时间锁定用户资金,需要在初始阶段提供额外的证明。虽然存储提供者仍然可以丢弃数据,但存储提供者必须至少存储一次数据。存储数据失败将退还用户的货币。
理论上,我们的设计支持比两种存贮证明更复杂的存贮合同条款。可以想象,在存储提供商需要证明存储的情况下,设计存储智能合约,例如,在五个固定的时间点中的两个。由于我们的设计关注隐私,所以我们决定不使用这些更灵活的合同。智能合约中的条件越独特,匿名集的规模越小。图2给出了契约生命周期的概述。
存储交易证明包含对存储合同的引用和对矿工的交易费用,因为它们被发布给区块链。为了保持占用的存储空间,证明本身不包含在块的哈希计算中。因此,可以在不改变数据块的哈希值的情况下删除证明。这意味着存储证明的完整性不能得到保证,因为只有保证其有效性才是重要的。这不是问题,因为仍然无法切换
因为包含无效事务的块将被丢弃,所以无效事务的有效存储证明已经被无效事务持久化。其次,包含在区块链中的完整性检查不能保证证明在传输过程中被恶意修改。

证明的存储

存储证明是由存储提供者生成的一种加密证明,它可以借此证明文件的所有权。在我们的系统中,它们的大小需要独立于被证明存储的文件大小,理想情况下它应该是恒定的。为了在区块链中使用,存储证明需要公开验证。为了满足这些要求,我们使用了自己的方案[26]。我们现在将提供关于存储的公开可验证证明的正式定义和更多细节,然后继续解释它在我们系统中的使用。
定义3(存储证明([27,定义5]))。一个公开可验证的存储证明是由四个算法组成的元组
  • 是一个概率算法,由客户端U运行来建立方案。它的输入是一个安全参数k,输出是一对公私密钥对(pk,sk)。
  • 是一个概率算法,由客户端运行以对文件进行编码。它以密钥sk为输入,将文件视为一个固定大小分块b的向量,输出一个编码文件f'和状态信息st。编码过程可以认为是对文件进行分割,并用同态签名对每个分块进行签名。特别是编码不提供任何形式的机密性。为了实现这一点,客户端必须在编码之前对文件进行适当的加密。
  • 是由存储提供商运行的确定性算法,它以公钥pk、编码文件f'和挑战作为输入。挑战通过哈希函数扩展到一组块的索引和相应的系数。根据挑战中的索引和系数,将分组和同态签名相结合,输出π证明。
  • 是一种确定性算法,它以公钥pk、状态st、挑战和证明为输入。它输出一个比特位,其中'1'表示接受,'0'表示拒绝,这是通过检查聚合后的签名是否是聚合后块的正确签名来实现的。状态st用于检查聚合是否在正确的块上进行。
为了保证正确性,我们要求对于所有,所有输出的,所有文件,所有输出的,以及所有,有
第一步,用户生成一个公钥和密钥对。然后,用户使用自己的密钥和文件对文件进行编码。直观地说,这一步对应于将文件分割为大小为B的块,并在每个块上计算同态线性认证,然后将这些认证附加到文件中。此外,在编码步骤生成状态st作为文件标识符。编码后的文件f'和文件标识符st被上传到存储提供者。存储提供者通过运行算法证明来创建证明。为此,它使用编码文件、挑战值c和用户的公钥pk。将挑战c作为伪随机数生成器的种子进行扩展,文件的块根据扩展后的挑战进行同态组合。由于编码的文件由同态线性认证器组成,线性认证器的线性组合是文件块线性组合的有效认证器。存储π的证明由数据块的线性组合和验证者的线性组合组成。线性组合中使用的系数是扩展挑战。
算法Verify用于验证这样的证明π。需要用户的文件标识符st、挑战c以及公钥pk。没有秘密知识,因此任何人都可以进行验证。
利用Ateniese等人给出的安全性定义,定义了存储证明系统[28]、[29]的安全性。在那里,可靠性是使用知识提取器[30],[31]作为[28],[29]。特别地,我们的定义使用所谓的“目击者扩展模拟”[32]。
定义4(公开可验证的存储证明的安全性([27,定义6]))。设作为公开可验证的存储证明。我们说Π是安全的,如果有一个期望的多项式时间的知识提取器K,这样对于任何ppt对手A,我们有:
图2. 合同生命周期和付款随时间变化的可视化。从左到右:用户向存储提供商承诺付款并传输数据。存储提供商提供存储证明,它为包含在区块链中而花费少量费用。这在合同期满时重复。为了检索数据,用户需要向存储提供商支付额外的费用,这将在4.5.3节中解释。
非正式地说,证人扩展模拟是指给定一个敌手以一定的概率生成一个有效的证明,存在一个模拟器以相同的概率生成一个类似的证明,同时提供一个证人,即文件f'。
第一个性质是对知识提取器输出的限制,并保证知识提取器以相同的概率产生与敌手相同的证明。第二个性质保证了知识提取器在证明正确时可以提供证人,即如果证明被验证者接受,则证明者可以访问原始文件。
备注2(储存证明、可取回证明及可证明持有资料)。文献中有与之相关的可检索性证明、存储性证明和数据持有性证明等概念,它们用于描述相似但又不同的概念。
[33],[34],[35],[36],[37],[38],[39],[40],[41]的可恢复性证明是一个质询-应答协议,它证明了一个文件是可恢复性的,即不丢失或损坏是可恢复的。数据持有性证明[42],[43],[44],[45],[46]是仅在少量数据损坏情况下仍能成功验证的相关证明。在数据持有性证明中,只需要一个知识提取器能够提取文件的知识,而存储证明[27],[29],[47]要求知识提取器在期望的多项式运行时间内可计算(cf.定义4)。我们的系统可以应用可检索性证明或数据持有性证明,导致较弱的安全模型。
备注3(什么存储证明不是)。存储证明并不保证文件的机密性,但这可以通过第6节中解释的标准加密机制实现。
存储证明不能防止文件的修改或丢失,但证明者不能在不访问完整的原始文件的情况下生成进一步的有效证明。为了防止数据被修改或丢失,可以使用纠删码。原始文件无法通过存储证明恢复。
存储证明并不保证文件可检索。存储提供者可以拒绝其他参与者从他那里检索文件。需要有一个额外的激励结构,如4.5.3节所述。
为了在我们的系统中使用,用户生成一个用于编码其文件的随机密钥对。对应的密钥被删除。公开密钥在存储合同中公布,以允许公开验证存储证明。
到目前为止,我们描述了存储空间的交互式证明,但实际上我们需要一个非交互式的存储空间证明,因为我们不能假设可信挑战者的存在。利用Fiat-Shamir启发式算法[48],我们可以用一个随机源来代替挑战者,从而消除交互。具体来说,我们选择挑战c作为区块链中一个区块在需要证明时的哈希值。注意,这个哈希值是事先不知道的,因此存储证明无法预先计算。
生成的存储证明必须在用于挑战的块之后的预定义块窗口中持久化在区块链中。这对于处理区块链中的分支是必要的,因为在区块链中不能保证立即持久性证明。
矿工不需要保存整个存储证明。当矿工收到一个包含存储证明的区块时,它可以使用用于编码文件和文件标识符st的公钥pk来验证存储证明,因为这包含在存储智能合约中。当证明无效时,区块被拒绝。然而,如果证明是有效的,矿工只需要存储该文件的有效存储证明。由于证明本身不包含在区块的哈希计算中,因此可以在不改变区块哈希的情况下删除它们,类似于比特币[4]中对已用交易的修剪。

文件检索

除了补偿存储提供商存储文件之外,还需要鼓励允许检索文件。
现有的交换协议区分强公平性和弱公平性[49]。在弱公平中,诚实的参与者可以向外部仲裁者证明其他参与者已经收到了它所期望的物品。这可以用于声誉系统。PriCloud作为一个信誉系统,由于缺乏身份,不可行,因此需要很强的公平性。在强公平性中,协议终止时,参与者要么得到自己想要的,要么双方都得不到。研究表明,没有可信的第三方[50],交易的强公平性是不可能实现的。
目前已知的同时公平交换协议[51],[52],[53],[54]存在两个问题:参与者输入垃圾信息时仍然可以收到[55],或者协议[56]被中止。简单的协议不满足强公平性,在支付和文件交换过程中中止,一方只能得到预期的物品、支付或文件,另一方则什么都得不到。
本文提出了一种比比特币更简单的方法,泄漏了哈希值[57],[58],[59]的原像,借鉴了博弈论中理性行为者的假设,这在密码学文献中是非标准的。尽管机制不同,但这些领域在不信任方的协作交互中存在重叠[60],[61],[62]。因此,我们认为我们对理性行为者的假设是合理的。
如[63]所建议的,为了阻止双方欺骗,我们使用安全存款。我们的系统对每个文件检索使用一个特殊的事务,称为相互保证销毁(MAD)事务,与NASHX1事务类似。
为了进行MAD交易,用户U和存储提供商P各自提供安全押金DU和DP。用户还需要为数据和存储提供商在文件检索过程中产生的费用(如带宽)支付p。这些资金被合并为交易的输入,U和P双方需要签署才能使用。在下一步中,存储提供者将文件传输给用户。在收到数据后,用户会检查文件的完整性以及是否收到了正确的数据。为了释放资金,用户和存储提供商签署支付交易。用户和存储提供者收到他们的存款DU和DP,而存储提供者也收到付款p。图3提供了这个过程的图形化描述。
图3. 用户U和存储提供商P之间的疯狂交易,包括支付P和存款DU和DP
存储提供商首先创建支付交易并签署它。该交易被发送给用户,用户在自己签名后向网络广播它。
如果用户或存储提供商欺骗,不付款或不传输文件,另一方将拒绝签署第二次交易,双方将失去安全押金。如果存储提供商传输了不正确的文件,情况也是如此,因为用户将无法解锁资金。这就产生了如图4所示的收益矩阵。在图中,f表示文件的值。参与者都作弊的两个策略对(作弊,作弊)和参与者都遵守的两个策略对(遵守,遵守)就是纳什均衡。然而,(服从,服从)弱支配其他纳什均衡,因此将被理性行为者选择。
从理论上讲,用户可以将存储提供商的押金作为人质:在第二次交易之后,用户收到文件后,拒绝对多重签名交易进行签名,而是创建一个不同的交易,向存储提供商授予一个小的非负金额。剩余金额DP + DU + p−”给用户。如果存储提供商签署它,只丢失DP−”,而不是全部押金。理性的存储提供商会同意这种形式的勒索。
在我们的方法中,我们防止了这种勒索,因为发起资金释放的是存储提供商而不是用户。没有进一步的消息,软件可以传输或显示给用户。因此,用户要么同意释放资金,要么失去全部安全保证金,但无法使用第三种勒索策略,因为没有沟通渠道来沟通这种勒索。

相关工作

KopperCoin

KopperCoin[63]是我们之前提出的一种付费的点对点存储方案。与本文的提案相比,KopperCoin对存储提供商和矿工没有区别,因为存储文件是由矿工完成的。在KopperCoin中,区块链的挖掘过程被系统用户先前上传的数据的存储证明所取代。通过将区块链中前一个块的哈希值作为文件标识符,确定需要计算存储证明的文件。KopperCoin的一个主要缺点是缺乏隐私保障,因为矿工通过他们的挖矿奖励与他们存储的文件相关联。
PriCloud的存储是通过不干扰采矿过程的合同实现的。这允许为存储合同实现隐私增强机制。

Permacoin和Retricoin

Permacoin[64]是第一个将去中心化文件存储和区块链相结合的方法。矿工证明了大型数字档案的部分可恢复性,单个矿工不太可能有资源存储整个档案。但是,数字档案在区块链创建时是固定的。与我们的设计相反,用户不能上传或下载数据。Retricoin[65]比Permacoin提供了一些效率上的改进,但继承了它们的主要设计决策。

Filecoin

Filecoin是另一种基于区块链的去中心化存储系统,用户可以上传下载文件并为存储付费。他们提供了两个建议作为白皮书[66],[67]。
在他们的第一份白皮书中,工作证明过程被存储证明增强了,这样就需要两个证明来挖掘一个区块,这敦促矿工也要成为存储提供者。存储在Filecoin中的文件只能用于奖励,直到过期。存储提供商不愿意让用户访问其数据。
在第二份白皮书中,存储证明被替换为复制证明,证明任何
数据的副本存储在物理独立的存储器中。Filecoin还包括时空证明,以确保数据在一定的时间范围内存储。然而,只给出了定义。即使在他们关于复制证据的专门技术报告[68]中,也没有提供任何构造。值得注意的是,本报告的第4章被称为“可实现的结构(TODO)”。
在存储和检索文件方面,Filecoin引入了两个市场。订单册在区块链上发布,允许矿工自动结算过程。但是,一些问题没有得到解决,例如在将事务持久化到区块链之前重新排序以获得财务优势(称为前端)。
两份白皮书都没有考虑隐私问题。总之,Filecoin团队的文章并没有为去中心化存储的问题提供一个可行的解决方案,并且留下了许多悬而未决的问题。
匿名存储系统
有许多匿名存储系统,如GNUnet[1],[69]或Freenet[2],它们依赖于参与者自愿贡献的存储资源和带宽。这些系统关注隐私。GNUnet面向匿名和抵制审查的文件共享,而Freenet则被设想为互联网的匿名替代品,因为只有静态网站才是可能的。GNUnet和Freenet都没有为提供存储提供报酬,因此它们的设计做出了显著不同的权衡。例如,GNUnet中的路由是基于文件地址的,该文件地址依赖于一个基于分布式哈希表的系统,类似于Kademlia[70]。在Freenet中,文件在路由时每一跳都被复制,因此地址簇会汇聚在一起。没有一个专门负责某一特定文件的存储供应商可以获得报酬。因此,与我们提供财务存储保证的系统相比,没有存储保证。在Freenet中,那些很少被查询的数据被设计成慢慢地从系统中消失。

额外的注意事项

到目前为止,我们讨论了区块链层的隐私,例如,交易的不可链接性,因为它们存储在区块链中。然而,只关注这一层是不够的[71]。本节将讨论在实践中使用PriCloud系统时对其他层面的额外考虑。

文件

真正的私有文件存储需要确保文件只能被授权的实体读取。为了达到这一目标,需要一种强文件加密方案。这些可以由公共库(如NaCl)或专用软件(如MiniLock)提供。PriCloud的核心系统与这些系统无关,但建议使用这样的附加功能,因为否则存储提供商和每个愿意为下载付费的人都可以阅读内容。

区块链传输

与区块链的交互,例如创建交易或传播新区块,通常使用点对点网络。这对隐私有影响:一个连接良好的节点,或多个节点合谋,可以识别出发起者的IP地址[72]。发起者的IP地址被认为是可识别的个人信息,可用于追踪用户的活动。
为了防止这种身份识别,需要一种保护隐私的广播机制。对于这个问题有多种解决方案,包括为区块链广播设计的协议[73],[74]。

文件传输

区块链中的合约使用现有的隐私机制,但实际的文件传输将需要遍历网络。直接通信暴露了发送者和接收者,从而侵犯了用户和存储提供商的隐私。然而,间接通信可能会将信息泄露给网络中的任意参与者。
为了保证匿名性,需要一个隐私保护的文件传输系统。一个可能的解决方案是通过提供隐藏服务的Tor[75]会合点的信息来加强合同谈判,为双方创建Tor通信隧道。这提供了发送者和接收者的匿名性,但受限于Tor攻击者模型。在没有经济激励的去中心化存储解决方案之后,可以模仿更完整的网络解决方案,例如GNUnet[1]或Freenet[2]。

总结

本章介绍的PriCloud的所有考虑因素都有许多解决方案,这些解决方案已经在现实世界中得到了应用。这些解决方案都有各自的优点和缺点,需要根据设想的用例进行评估,特别是在隐私和操作速度方面的权衡。

结论

这篇文章介绍了PriCloud,一种新颖的去中心化分布式存储,它允许用户通过匿名货币向存储提供商付费。交易经过加密加固的区块链实现了支付的不可追踪性和不可链接性。存储决定存储期的智能合约包含在区块链中,从而允许自动执行支付。如果存储提供商能够提供合同中规定的文件在某些特定时间点存储的有效证明,那么它就可以从合同中支付款项。因此,存储提供商只有在诚实地存储了用户的文件的情况下才会收到付款。我们的PriCloud系统为作为存储提供商的参与者提供保护隐私的经济奖励,从而为参与者提供激励。

致谢

这项工作是由巴登-符腾堡州议会资助的。

引用

[1] K. Bennett, T. Stef, C. Grothoff, T. Horozov, and I. Patrascu, “The gnet whitepaper,” Purdue University, Technical report, 06 2002.
[2] I. Clarke, O. Sandberg, B. Wiley, and T. W. Hong, “Freenet: A distributed anonymous information storage and retrieval system,” in
Designing Privacy Enhancing Technologies. Springer, 2001, pp.46–66.
[3] H. Kopp, D. Modinger, F. J. Hauck, F. Kargl, and C. B ¨ osch, “Design ¨ of a privacy-preserving decentralized file storage with financial incentives,” in
2017 IEEE European Symposium on Security and Privacy Workshops (EuroS PW). IEEE, 2017.
[4] S. Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” 2009, https://bitcoin.org/bitcoin.pdf.
[5] F. Tschorsch and B. Scheuermann, “Bitcoin and beyond: A technical survey on decentralized digital currencies,”
IEEE Communications Surveys & Tutorials, vol. 18, no. 3, pp. 2084–2123, 2016.
[6] C. Dwork and M. Naor, “Pricing via processing or combatting junk mail,” in
Advances in Cryptology — CRYPTO’ 92. Springer, 1993, pp. 139–147.
[7] J. R. Douceur, “The sybil attack,” in
Peer-to-peer Systems. Springer, 2002, pp. 251–260.
[8] J. Aspnes, C. Jackson, and A. Krishnamurthy, “Exposing computationally-challenged Byzantine impostors,” Yale University Department of Computer Science, Tech. Rep. YALEU/DCS/TR-1332, 2005.
[9] M. Andrychowicz, S. Dziembowski, D. Malinowski, and L. Mazurek, “Secure multiparty computations on bitcoin,” in
IEEE Symposium on Security and Privacy 2014. IEEE, 2014, pp. 443–458.
[10] I. Bentov and R. Kumaresan, “How to use bitcoin to design fair protocols,” in
Advances in Cryptology–CRYPTO 2014. Springer, 2014, pp. 421–439.
[11] A. Kiayias, H.-S. Zhou, and V. Zikas, “Fair and robust multi-party computation using a global transaction ledger,” in
EUROCRYPT 2016: Int. Conf. on the Theory and Applications of Cryptographic Techniques. Springer, 2016, pp. 705–734.
[12] A. Kosba, A. Miller, E. Shi, Z. Wen, and C. Papamanthou, “Hawk: The blockchain model of cryptography and privacy-preserving smart contracts,” in
IEEE Symp. on Sec. and Priv. IEEE, 2016, pp. 839–858.
[13] G. Wood, “Ethereum: A secure decentralised generalised transaction ledger,” 2014, http://gavwood.com/paper.pdf.
[14] S. Meiklejohn, M. Pomarole, G. Jordan, K. Levchenko, D. McCoy, G. M. Voelker, and S. Savage, “A fistful of bitcoins: characterizing payments among men with no names,” in
Conference on Internet measurement. ACM, 2013, pp. 127–140.
[15] D. Ron and A. Shamir, “Quantitative analysis of the full bitcoin transaction graph,” in
Financial Cryptography and Data Security. Springer, 2013, pp. 6–24.
[16] T. Okamoto and K. Ohta, “Universal electronic cash,” in Proceedings of the 11th Annual International Cryptology Conference on Advances in Cryptology, ser. CRYPTO ’91. Springer, 1992, pp. 324–337.
[17] N. van Saberhagen, “Cryptonote v 2.0,” 2013, https://cryptonote. org/whitepaper.pdf.
[18] R. L. Rivest, A. Shamir, and Y. Tauman, “How to leak a secret,” in
Advances in Cryptology—ASIACRYPT 2001. Springer, 2001, pp. 552–565.
[19] J. K. Liu, V. K. Wei, and D. S. Wong, “Linkable spontaneous anonymous group signature for ad hoc groups,” in
ACISP. Springer, 2004, pp. 325–335.
[20] E. Fujisaki and K. Suzuki, “Traceable ring signature,” in
Public Key Cryptography–PKC 2007. Springer, 2007, pp. 181–200.
[21] S. Noether, “Ring signature confidential transactions for monero,” Cryptology ePrint Archive, Report 2015/1098, 2015.
[22] S. Noether, A. Mackenzie
et al., “Ring confidential transactions,” Ledger, vol. 1, pp. 1–18, 2016.
[23] A. Mackenzie, S. Noether, and Monero Core Team, “Improving obfuscation in the cryptonote protocol,” Tech. Rep., 2015, https://lab.getmonero.org/pubs/MRL-0004.pdf.
[24] M. Moser, K. Soska, E. Heilman, K. Lee, H. Heffan, S. Srivastava, ¨ K. Hogan, J. Hennessey, A. Miller, A. Narayanan
et al., “An empirical analysis of traceability in the monero blockchain,” Proceedings on Privacy Enhancing Technologies, vol. 2018, no. 3, pp. 143–163, 2018.
[25] S. Noether and S. Noether, “Monero is not that mysterious,” Tech. Rep., 2014, https://lab.getmonero.org/pubs/MRL-0003.pdf.
[26] H. Kopp, F. Kargl, and C. Bosch, “Publicly verifiable static proofs ¨ of storage: A novel scheme and efficiency comparisons,” in
Information and Communications Security, D. Naccache, S. Xu, S. Qing, P. Samarati, G. Blanc, R. Lu, Z. Zhang, and A. Meddahi, Eds. Cham: Springer International Publishing, 2018, pp. 459–477.
[27] G. Ateniese, S. Kamara, and J. Katz, “Proofs of storage from homomorphic identification protocols,” in
Advances in Cryptology– ASIACRYPT 2009. Springer, 2009, pp. 319–333.
[28] G. Ateniese, R. Burns, R. Curtmola, J. Herring, L. Kissner, Z. Peterson, and D. Song, “Provable data possession at untrusted stores,” in
CCS ’07. ACM, 2007, pp. 598–609.
[29] H. Shacham and B. Waters, “Compact proofs of retrievability,”
Journal of cryptology, vol. 26, no. 3, pp. 442–483, 2013.
[30] M. Bellare and O. Goldreich, “On defining proofs of knowledge,” in
Advances in Cryptology–CRYPTO’92. Springer, 1992, pp. 390–420.
[31] U. Feige, A. Fiat, and A. Shamir, “Zero-knowledge proofs of identity,”
Journal of cryptology, vol. 1, no. 2, pp. 77–94, 1988.
[32] Y. Lindell, “Parallel coin-tossing and constant-round secure twoparty computation.”
Journal of Cryptology, vol. 16, no. 3, 2003.
[33] A. Juels and B. S. Kaliski Jr, “Pors: Proofs of retrievability for large files,” in
CCS ’07. ACM, 2007, pp. 584–597.
[34] F. Armknecht, J.-M. Bohli, G. O. Karame, Z. Liu, and C. A. Reuter, “Outsourced proofs of retrievability,” in
SIGSAC. ACM, 2014, pp. 831–843.
[35] K. D. Bowers, A. Juels, and A. Oprea, “Proofs of retrievability: Theory and implementation,” in
CCSW ’09. ACM, 2009, pp. 43–54.
[36] D. Cash, A. Kupcu, and D. Wichs, “Dynamic proofs of retrievability via oblivious ram,” Cryptology ePrint Archive, Report 2012/550, 2012, http://eprint.iacr.org/.
[37] Y. Dodis, S. P. Vadhan, D. Wichs
et al., “Proofs of retrievability via hardness amplification.” in TCC, vol. 5444. Springer, 2009, pp. 109–127.
[38] E. Shi, E. Stefanov, and C. Papamanthou, “Practical dynamic proofs of retrievability,” in
SIGSAC. ACM, 2013, pp. 325–336.
[39] J. Yuan and S. Yu, “Proofs of retrievability with public verifiability and constant communication cost in cloud,” in
Workshop on Security in Cloud Computing. ACM, 2013, pp. 19–26.
[40] Q. Wang, C. Wang, J. Li, K. Ren, and W. Lou, “Enabling public verifiability and data dynamics for storage security in cloud computing,” in
ESORICS. Springer, 2009, pp. 355–370.
[41] J. Xu and E.-C. Chang, “Towards efficient proofs of retrievability,” in
Symp. on Inf., Comp. and Comm. Sec. ACM, 2012, pp. 79–80.
[42] G. Ateniese, R. Burns, R. Curtmola, J. Herring, O. Khan, L. Kissner, Z. Peterson, and D. Song, “Remote data checking using provable data possession,”
TISSEC, vol. 14, no. 1, pp. 12:1–12:34, Jun. 2011.
[43] G. Ateniese, R. Di Pietro, L. V. Mancini, and G. Tsudik, “Scalable and efficient provable data possession,” in
SecureComm ’08. ACM, 2008, pp. 9:1–9:10.
[44] Y. Zhang and M. Blanton, “Efficient dynamic provable possession of remote data via balanced update trees,” in
ASIA CCS ’13. ACM, 2013, pp. 183–194.
[45] R. Curtmola, O. Khan, R. Burns, and G. Ateniese, “Mr-pdp: Multiple-replica provable data possession,” in ICDCS’08. IEEE, 2008, pp. 411–420.
[46] Y. Zhu, H. Hu, G.-J. Ahn, and M. Yu, “Cooperative provable data possession for integrity verification in multicloud storage,”
IEEE Transactions on Parallel and Distributed Systems, vol. 23, no. 12, pp. 2231–2244, 2012.
[47] J. Xu, A. Yang, J. Zhou, and D. S. Wong, “Lightweight and privacypreserving delegatable proofs of storage.”
IACR Cryptology ePrint Archive, vol. 2014, p. 395, 2014.
[48] A. Fiat and A. Shamir, “How to prove yourself: Practical solutions to identification and signature problems,” pp. 186–194, 1987.
[49] N. Asokan, “Fairness in electronic commerce,” Ph.D. dissertation, 1998.
[50] H. Pagnia and F. C. Gartner, “On the impossibility of fair exchange ¨ without a trusted third party,” Technical Report TUD-BS-1999-02, Darmstadt University of Technology, Department of Computer Science, Darmstadt, Germany, Tech. Rep., 1999.
[51] M. Blum, “How to exchange (secret) keys,”
ACM Trans. Comput. Syst., vol. 1, no. 2, pp. 175–193, May 1983.
[52] M. Luby, S. Micali, and C. Rackoff, “How to simultaneously exchange a secret bit by flipping a symmetrically-biased coin,” in
Proceedings of the 24th Annual Symposium on Foundations of Computer Science, ser. SFCS ’83. IEEE Computer Society, 1983, pp. 11–22.
[53] T. Okamoto and K. Ohta, “How to simultaneously exchange secrets by general assumptions,” in
Proceedings of the 2Nd ACM Conference on Computer and Communications Security, ser. CCS ’94. New York, NY, USA: ACM, 1994, pp. 184–192.
[54] I. B. Damgard, “Practical and provably secure release of a secret ˚ and exchange of signatures,”
Journal of Cryptology, vol. 8, no. 4, pp. 201–222, 1995.
[55] E. F. Brickell, D. Chaum, I. B. Damgard, and J. van de Graaf, ˚ “Gradual and verifiable release of a secret (extended abstract),” in
Advances in Cryptology — CRYPTO ’87, ser. Lecture Notes in Computer Science, C. Pomerance, Ed. Springer, 1988, vol. 293, pp. 156–166.
[56] T. Tedrick, “Fair exchange of secrets (extended abstract),” in
Advances in Cryptology, ser. Lecture Notes in Computer Science. Springer, 1985, vol. 196, pp. 434–438.
[57] J. Liu, W. Li, G. O. Karame, and N. Asokan, “Towards fairness of cryptocurrency payments,”
CoRR, vol. abs/1609.07256, 2016.
[58] S. Delgado-Segura, C. Perez-Sol ´ a, G. Navarro-Arribas, and  J. Herrera-Joancomart´ı, “A fair protocol for data trading based on bitcoin transactions,”
Future Generation Computer Systems, 2017.
[59] M. Campanelli, R. Gennaro, S. Goldfeder, and L. Nizzardo, “Zeroknowledge contingent payments revisited: Attacks and payments for services,”
Commun. ACM, 2017.
[60] Y. Dodis and T. Rabin, “Cryptography and game theory,”
Algorithmic Game Theory, pp. 181–207, 2007.
[61] G. Kol and M. Naor, “Cryptography and game theory: Designing protocols for exchanging information,”
Theory of Cryptography, pp. 320–339, 2008.
[62] G. Asharov, R. Canetti, and C. Hazay, “Towards a game theoretic view of secure computation.” in
EUROCRYPT, vol. 6632. Springer, 2011, pp. 426–445.
[63] H. Kopp, C. Bosch, and F. Kargl, “Koppercoin - a distributed file ¨ storage with financial incentives,” in
Information Security Practice and Experience: 12th Int. Conf., ISPEC 2016, Proceedings. Springer, 11 2016, pp. 79–93.
[64] A. Miller, A. Juels, E. Shi, B. Parno, and J. Katz, “Permacoin: Repurposing Bitcoin Work for Data Preservation,” in
IEEE Symposium on Security and Privacy, 2014. IEEE, 2014, pp. 475–490, http://cs.umd.edu/%7Eamiller/permacoin.pdf.
[65] B. Sengupta, S. Bag, S. Ruj, and K. Sakurai, “Retricoin: Bitcoin based on compact proofs of retrievability,” in
Proceedings of the 17th Int. Conf. on Distributed Computing and Networking, ser. ICDCN ’16. ACM, 2016, pp. 14:1–14:10.
[66] filecoin.io, “Filecoin: A Cryptocurrency Operated File Storage Network,” 2014, https://filecoin.io/filecoin-jul-2014.pdf.
[67] Protocol Labs, “Filecoin: A Decentralized Storage Network,” 2017, http://filecoin.io/filecoin.pdf.
[68] ——, “Proof of replication,” 2017, https://filecoin.io/proof-of-replication.pdf.
[69] C. Grothoff, K. Grothoff, T. Horozov, and J. T. Lindgren, “An encoding for censorship-resistant sharing,” 2003. [Online]. Available: http://www.gnu.org/software/GNUnet/

[70] P. Maymounkov and D. Mazieres, “Kademlia: A peer-to-peer information system based on the xor metric,” in Peer-to-Peer Systems. Springer, 2002, pp. 53–65.
[71] A. Biryukov and I. Pustogarov, “Bitcoin over tor isn’t a good idea,”
arXiv preprint arXiv:1410.6079, 2014.
[72] A. Biryukov, D. Khovratovich, and I. Pustogarov, “Deanonymisation of clients in bitcoin p2p network,” in
Proc. of the ACM SIGSAC Conf. on Comp. and Comm. Sec. (CCS). ACM, 2014, pp. 15–29.
[73] S. Bojja Venkatakrishnan, G. Fanti, and P. Viswanath, “Dandelion: Redesigning the bitcoin network for anonymity,”
Proc. of the ACM Measurement and Analysis of Comp. Sys. (POMACS), vol. 1, no. 1, pp. 22:1–22:34, Jun. 2017.
[74] D. Modinger, H. Kopp, F. Kargl, and F. J. Hauck, “Towards ¨ enhanced network privacy for blockchains,” in
Proc. of the 38th IEEE Int. Conf. on Distributed Computing Systems (ICDCS), 2018.
[75] R. Dingledine, N. Mathewson, and P. Syverson, “Tor: The secondgeneration onion router,” DTIC Document, Tech. Rep., 2004.

全部评论
学习到了,很有用,感谢分享
点赞 回复
分享
发布于 2022-08-09 11:41

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务