该文章转载自本人的知乎专栏,有兴趣的小伙伴可以来我的专栏学习更多相关知识,包含了同态加密、安全多方计算、机器学习和联邦学习、近世代数等。下面是我的知乎文章首页,可以点专栏去查看确定方向的文章。所有相关文章都会在我的知乎专栏首发。

https://www.zhihu.com/people/an-quan-xiao-qi/posts

喜欢我的创作的朋友,别忘了去知乎关注我哦,我在知乎等你~

Abstract

数据共享在大数据分析、经济学和医学研究等许多领域已经变得至关重要,但当数据敏感时,仍然很难实现。 事实上,分享个人信息需要个人的无条件同意,或者往往由于隐私和安全原因而被简单地禁止。 在本文中,我们提出了Drynx,一个分布式的系统,用于分布式数据集的隐私意识 (privacy-conscious) 统计分析。 Drynx依赖于一组计算节点来实现诸如标准差或极值等统计数据的计算,以及对敏感和分布式数据的机器学习模型的训练和评估。为了确保数据机密性和数据提供者的隐私,Drynx结合了交互协议、同态加密、正确性的零知识证明和差异隐私。 它能够对输入数据和系统的所有计算进行有效和分布式的验证,从而在一个强大的对抗性模型中提供可审计性,在这种模型中,任何实体都不需要单独被信任。 Drynx是高度模块化、动态化和可并行化的。 我们的评估表明,它能够在不到 222 秒的时间内在121212个数据提供者之间分布的数据集(121212个特征和606060万条记录)上训练Logistic回归模型。 计算分布在666个计算节点之间,Drynx允许在不到222222秒内验证查询执行的正确性。

Index Terms

decentralized system, distributed datasets, privacy, statistics, machine learning, homomorphic encryption, zero-knowledge proofs, differential privacy.

分布式系统,分布式数据集,隐私,统计,机器学习,同态加密,零知识证明,差分隐私。

I. INTRODUCTION

为了得到有意义的结果,统计和机器学习分析往往需要大量的数据。 虽然数据存储和计算成本多年来有所下降(特别是由于低成本和强大的云计算解决方案),但共享这些数据仍然很麻烦。 每天生成大量数据,以跟踪个人的行为、健康、购物习惯、兴趣、政治和宗教观点[1],但隐私问题和道德/法律限制往往禁止或阻碍分享个人和敏感数据。 在欧洲,自2018年5月起生效的新的数据保护条例(GDPR) [2]要求:

  1. 个人数据的收集和使用只能在征得当事人同意的情况下进行;
  2. 数据在共享之前必须匿名或加密。

这导致了一个难题,特别是在人口、金融和卫生等领域,为了促进研究,数据必须共享,但它们也需要得到保护,以确保个人的基本隐私权。 跨境数据共享更具挑战性,因为各国之间的立法可能是不同的,迫使公司在地理上调整自己的隐私措施。

多个例子表明,即使可以共享数据,数据的集中也会产生严重后果,甚至影响到数亿人[3],[4];在Equifax事件[4]中,超过1.431.431.43亿消费者(约占美国人口的40%40\%40%)的个人信息(包括社会安全号码和信用卡信息)被泄露。 集中式解决方案会受到多种威胁,因为中央数据库存储着来自多个相互不信任的来源的数据,对可能的攻击者来说是一个高价值的目标,同时容易导致单点故障风险。

现有的安全数据库解决方案[5]、[6]、[7]、[8]、[9]通常会在查询引擎之上增加一个加密层,或者专门关注 data-release 的隐私,例如,使用差分隐私。然而,这些解决方案大多有很大的性能开销,或者仍然是完全集中式的,因此要么有单点故障,要么在查询执行过程中不保护数据。

在这种情况下,分散的数据共享系统[10]、[11]、[12]、[13]、[14]引起了相当大的兴趣,是关注隐私的大数据分析的关键促成因素。通过分布式存储和计算,从而避免单点故障,这些系统能够实现数据共享,并最小化集中解决方案所产生的风险。 然而,其中许多系统依赖诚实且好奇或完全可信的第三方假设,如果要共享的数据是高度敏感、有价值、有影响力或私人的,这些假设可能无法提供足够的保证。其他具有更强威胁模型的解决方案,例如UnLynx[16],在它们支持的计算中受到限制,例如只支持求和。 此外,这些解决方案都没有考虑计算实体和数据提供者都可能是恶意的。

改进和使用UnLynx中引入的一些技术,我们提出了Drynx,这是一个可操作的、去中心化的和安全的系统,它使查询者能够计算统计函数,并对托管在不同来源的数据(即分布式数据集)上的机器学习模型进行训练和评估。Drynx确保数据机密性、数据提供者(DPs)隐私,并保护个人数据不受最终结果发布所产生的潜在推论的影响,即确保差分隐私。它还提供了计算的正确性。 最后,它确保了 strong outliers,无论是由DPs恶意输入还是错误输入,都不能影响超过一定限度的结果,我们通过结果鲁棒性来表示这一点。这些保证是在一个强大的对抗性模型中确保的,其中没有实体必须单独可信,系统的一小部分实体可能是恶意的。Drynx依赖于交互式协议、同态加密、零知识正确性证明和分布式差分隐私。它是可扩展的、动态的和模块化的。任何实体都可以在任何时候离开或加入系统,Drynx提供的安全特性或属性可以根据应用的不同而强制执行,例如,差分隐私。

本文我们做出以下贡献:

  1. 我们提出了Drynx,一种高效、模块化和并行的系统,它在分布式数据集上保护隐私的统计查询以及机器学习回归模型的训练和评估。

  2. 我们提出了一个系统,提供数据机密性和个人隐私,即使在一个强大的敌手面前。 它确保计算的正确性,保护数据提供者的隐私,并保证查询结果的健壮性。

  3. 我们提出了使查询执行具有充分和轻量级可审计性的技术。 Drynx依赖于一种新的高效分布式解决方案来存储和验证查询有效性、计算正确性和输入数据范围的证明。 我们通过使用区块链来举例和评估这个解决方案的实现。

  4. 我们提出并实现了一个高效、模块化和多功能的查询执行pipeline

    • 引入了Collective Tree Obfuscation,这是一种新的分布式协议,它能够对加密数据进行集体和可验证的混淆;

    • 提出了多种数据编码技术,能够对同态加密数据的高级统计数据进行分布式计算。 我们提出了新的编码,并对以前引入的私有聚合编码进行了改进和调整,使其符合我们的框架和安全模型;

    • 将现有的输入范围验证的零知识方案适应我们的安全模型;

    • 提出了在UnLynx[16]中引入的密钥交换协议的新结构,提高了其性能和能力。

据我们所知,Drynx是唯一提供上述安全和隐私保障的操作系统。 drynx实现可在www.github.com/ldsec/drynx中下载和适用。

II. RELATED WORK

基于隐私保护的数据共享和可信硬件解决方案的集中式系统通常需要一个实体,即一个中心实体或一个硬件提供者被信任,这容易导致单点故障问题 [8]、[17]、[18]、[19]。 尽管这些系统可以比分布式系统更有效率,但它们往往需要集中或外包数据存储,这违反了规定,或难以实现[21],可能不适合敏感数据。 在Drynx中,我们通过分布式数据存储、计算和正确性验证来避免这些问题,从而有效地分配信任。

为了在分布式数据集上执行查询和计算统计,多个去中心化的解决方案[10]、[12]、[14]、[22]、[23]、[24],[25]依赖于具有高表达能力的技术,如秘密共享和混淆电路。 这些解决方案通常在它们提供的计算中是灵活的,但通常假设(a)计算方诚实但好奇;(b)没有串通或两方模型。 此外,它们没有提供一种方法来检查系统中进行的计算。 虽然他们可能有效地分配信任,但当数据或计算的统计数据高度敏感时,他们强烈的诚实假设是有风险的。Bater等[10]实现了对一组不信任的数据提供者所托管的数据集的各种SQL查询的评估,但数据提供者和计算实体都是可信的,以遵循协议。Corrigan-Gibbs和Boneh[26]提出Prio,只要 nnn 中的一个计算实体是诚实的便能确保隐私,但在涉及的当事人都是诚实但好奇的情况下,它只保证最终结果的健壮性。 此外,Prio并不能防止各计算方相互勾结。

依赖同态加密[11]、[13]、[16]、[27]、[28]的系统往往在其提供的功能上受到限制(例如,仅限于和)。 与不太安全的同行相比,他们表现出高性能的开销,或者仍然依赖诚实但好奇的计算方。 在我们以前的工作中,我们提出了UnLynx[16],一个去中心化的系统,它能够在分布式数据集上计算(仅)和,并确保DPs的隐私和数据机密性。 UnLynx假设DPs是诚实但好奇的,与Drynx不同,它不能保证最终结果的健壮性。 此外,UnLynx没有为可审计性提供实用的解决方案。 在这项工作中,我们展示了如何克服这些限制,并提供了一个系统,使多个操作的安全计算能够适应一个更强的威胁模型。

对于以保护隐私的方式[13]、[27]、[30]、[31]、[32]、[33]、[34]、[35]和[36]对分布式数据的机器学习模型进行训练,提出了多种解决方案。 Mohassel和Zhang[30]提出了一种两方解决方案,即Secure ML;它能够训练特定的模型,例如线性回归。 Boura等人[31]提出了一种依赖于Logistic回归函数的新的和更灵活的近似的解决方案,但需要假设计算方是诚实但好奇的。Nikolaenko等人[27]和Juvekar等人[32]将同态加密和混淆电路相结合,分别进行脊(岭)回归和神经网络推理。 Aono等人[33]和Kim等人[13]依赖于同态加密来训练一个近似的Logistic回归函数。 zheng等人[36]将同态加密和分布式凸优化相结合,在他们的系统中称为Helen,以便协同训练线性模型。 最近,基于联合学习(依赖于差分隐私和边缘计算)的多种解决方案被提出[24],[37],[38],[39],[40],[41],[42]。 这些解决方案旨在保护生成的模型不受推理攻击[43],[44]。其中一些工作[37],[39]假设一个可信方持有数据,训练机器学习模型,并执行噪声添加,以实现差分隐私保证。 其他工作[24]、[29]、[38]、[45],[46]提出分布式设置的解决方案,其中双方在训练集全局模型的不受信任服务器的帮助下交换不同的私有模型参数。 这些方法在计算上是有效的,但通常需要很高的隐私预算来获得一个有用的集体模型(由于噪声的增加);因此,目前尚不清楚它们在实际[47]中实现了什么隐私保护。 为此,一些工作试图通过将差分隐私与同态加密[40]、[41]或多方计算技术[42]相结合,在分布式设置中获得更有用的模型。然而,大多数这些解决方案都是针对给定的操作而专门定制、参数化和优化的 (例如梯度下降),如果用于不同的操作需要重新设计。 最后,它们假设一个较弱的威胁模型,具有诚实但好奇的计算方,与Drynx不同,它们不能验证计算的正确性和结果的鲁棒性。

III. BACKGROUND

我们介绍了Drynx的主要组件和两个示例用例。 我们描述了用于分配信任和工作负载的加密工具。 我们介绍了我们用来实现我们的解决方案的区块链,以确保Drynx的正确性和可审计性。 最后,我们引入了差分隐私和verifiable shuffle 的概念,这是我们确保个人隐私的解决方案的核心。

A. Use Cases

我们展示了Drynx在医疗部门的效用,因为它是一个典型的例子,其中隐私是最重要的,数据共享是必要的。 最近,出现了多项举措,以实现个性化医疗的承诺,并应对医疗数据[48]、[49]、[50]日益数字化所带来的挑战。 在这种情况下,在保护患者隐私的同时共享高度敏感的医疗数据的能力正变得至关重要。 我们说明了Drynx在涵盖大多数医疗数据共享场景的两个特定设置中的可能使用:

  1. 医院数据共享(HDS),其中多家医院能够对其患者数据集进行统计计算和机器学习模型的训练(例如,[50]、[51]);
  2. 个人数据共享(PDS),其中一家医疗机构通过直接计算来自于人们的可穿戴设备中收集的数据(例如,[52]、[53])来进行研究,例如关于心脏问题的研究)。

B. ElGamal Homomorphic Encryption

Drynx需要一个加法同态的密码系统,我们选择依靠椭圆曲线ElGamal(ECEG)[54],它可以有效地使用零知识去证明其正确性[55]。 然而,Drynx的功能不受此选择的约束,可以与其他密码系统一起实现。 在有限域中,ECEG依赖于计算离散对数的困难问题;在这种情况下,Zp\mathbb Z_pZp​的椭圆曲线子群,ppp是一个大素数。 消息m∈Zpm∈\mathbb Z_pm∈Zp​的加密是EΩ(b)=(rB,mB+rΩ)E_Ω(b)=(rB,mB+rΩ)EΩ​(b)=(rB,mB+rΩ),其中rrr是Zp\mathbb Z_pZp​中的随机数,BBB是椭圆曲线GGG上的基点,ΩΩΩ为公钥。 符号表载于附录A。 加法同态性质表明,对于消息m1,m2m_1,m_2m1​,m2​和任意标量α,β\alpha, \betaα,β,有EΩ(αm1βm2)=αEΩ(m1)+βEΩ(m2)E_Ω(αm_1βm_2)=αE_Ω(m_1)+\beta E_Ω(m_2)EΩ​(αm1​βm2​)=αEΩ​(m1​)+βEΩ​(m2​)。 为了解密密文(rB,mB+rΩ)(rB,mB+rΩ)(rB,mB+rΩ),相应私钥ω(Ω=ωB)ω(Ω=ωB)ω(Ω=ωB)的持有者将rBrBrB和ωωω相乘得到ω(rB)=rΩω(rB)=rΩω(rB)=rΩ,进一步得到mB=mB+rΩ−ω(rB)mB=mB+rΩ-ω(rB)mB=mB+rΩ−ω(rB)。 然后将结果mBmBmB映射回mmm,例如,通过使用哈希表。 Drynx依赖于定点表示来加密floating values。

C. Zero-Knowledge Proofs

普遍可验证的零知识证明(ZKPs)可用于确保计算完整性和证明加密数据在给定范围内。在Drynx中,我们选择使用Camenisch和Stadler介绍的关于离散对数的一般陈述的证明来验证计算完整性。这些证明使验证者能够检验证明者知晓公共值Y1=y1BY_1=y_1BY1​=y1​B和Y2=y2BY_2=y_2BY2​=y2​B的离散对数y1y_1y1​和y2y_2y2​,并且它们满足以下线性方程,

A1y1+A2y2=A,(1)A_1y_1+A_2y_2=A,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)A1​y1​+A2​y2​=A,                 (1)

其中A,A1,A2A,A_1,A_2A,A1​,A2​是GGG上的公共点。这是在没有透露任何关于y1y_1y1​或y2y_2y2​的信息的情况下完成的。

输入范围验证是依靠Camenisch和Chaabouni[56]提出的证明来完成的,通过这些证明,我们可以证明一个秘密信息mmm位于给定范围[0,ul)[0,u^l)[0,ul)内,其中uuu和lll为整数,但不透露mmm。并通过使用这些数字上的验证者签名对u\rm uu-ary\rm aryary数字进行承诺。创建的lll个承诺向验证者证明m∈[0,ul)m∈[0,u^l)m∈[0,ul)。我们在算法1中提出了这个适应我们框架的证明。最后,这两种证明都可以通过FiatShamir启发式[57]使之成为非交互式。

D. Interactive Protocols

交互式协议可以用来在多个计算节点CNsCNsCNs之间分配计算和信任。在Drynx中,每个 CNiCNiCNi拥有一个私钥-公钥对(ki,Ki)(k_i,K_i)(ki​,Ki​),其中kik_iki​ 是Zp\mathbb Z_pZp​中的一个均匀随机标量,Ki=kiBK_i =k_iBKi​=ki​B是GGG上的一个点。collective 公钥为K=Σi=1#CNKiK=\Sigma_{i=1}^{\#CN}K_iK=Σi=1#CN​Ki​。 相应的私钥k=Σi=1#CNkik=\Sigma_{i=1}^{\#CN}k_ik=Σi=1#CN​ki​。永远不会被重构,从而使加密的信息成为只有在所有CNCNCN参与的情况下,才可以通过使用kkk来解密。攻击者必须侵入所有的CNCNCN,才能解密消息。如第五节所示,为了产生预期的结果,Drynx协议需要所有CNCNCN的参与。

E. Blockchains

区块链通常是一个公共的、只可追加的账本,由一组节点分布式维护,作为一个不可改变的账本[58],59]。其主要应用于加密货币[59],[60],但也用于其他领域,例如:医疗[61]。数据被捆绑成区块,这些区块通过维护节点的共识[62],[63]进行验证,每个区块包含一个指针(即指向前一个有效区块的加密哈希)、一个时间戳、一个nonce和应用特定的数据,这些区块的链条构成了区块链。

F. Differential Privacy

差分隐私是由Dwork[64]提出的一种在统计数据集上报告结果的隐私保护方法。该方法保证在数据集DSDSDS上计算的给定随机统计量M(DS)=R\mathcal M(DS)=RM(DS)=R,在邻近数据集DS′DS'DS′上计算时,如果与DSDSDS完全不同的元素,则表现相似。更正式地讲,(ϵ,δ)(\epsilon,δ)(ϵ,δ)-差分隐私[65]定义为Pr⁡[M(DS)=R]≤exp⁡(ϵ)⋅Pr⁡[M(DS′)=R]+δ\operatorname{Pr}[\mathcal{M}(D S)=R] \leq \exp (\epsilon) \cdot \operatorname{Pr}\left[\mathcal{M}\left(D S^{\prime}\right)=R\right]+\deltaPr[M(DS)=R]≤exp(ϵ)⋅Pr[M(DS′)=R]+δ,其中ϵ,δ\epsilon,δϵ,δ是隐私参数∶它们越接近0,隐私级别越高。在函数f(DS)f(DS)f(DS)的输出中加入噪声,可以从平均数为0、标度为Δfϵ\frac {\Delta f}\epsilonϵΔf​的 Laplace 分布中提取噪声,其中Δf\Delta fΔf为原实值函数fff的敏感度,定义为△f=maxD,D′∣∣f(DS)−f(DS′)∣∣1△f={\rm max}_{D,D'}||f(DS)-f(DS')||_1△f=maxD,D′​∣∣f(DS)−f(DS′)∣∣1​.也有人提出了其他机制,如依靠高斯分布[66],[67]。

G. Verifiable Shuffles

为了从噪声值的公共列表中随机选择一个值,并确保差异隐私,我们依赖于verifiable shuffle [68]、[69]、[70]、[71]。我们实现并使用了由Neff[69]描述的基于ElGamal的verifiable shuffle。 该协议以X\mathcal XX ElGamal对(C1,i,C2,i)(C_{1,i},C_{2,i})(C1,i​,C2,i​)为输入,输出(C‾1,i,C‾2,i)(\overline C_{1,i},\overline C_{2,i})(C1,i​,C2,i​),使得对于所有1≤i≤χ,(Cˉ1,i,Cˉ2,i)=(C1,v(i)+rv(i)′′B,C2,v(i)+rv(i)′′Ω)1 \leq i \leq \chi,\left(\bar{C}_{1, i}, \bar{C}_{2, i}\right)=\left(C_{1, v(i)}+r_{v(i)}^{\prime \prime} B, C_{2, v(i)}+r_{v(i)}^{\prime \prime} \Omega\right)1≤i≤χ,(Cˉ1,i​,Cˉ2,i​)=(C1,v(i)​+rv(i)′′​B,C2,v(i)​+rv(i)′′​Ω),其中rv(i)′′r''_{v(i)}rv(i)′′​是重新随机化因子,υυυ是 permutation,ΩΩΩ是公钥。 υυυ用于改变ElGamal对的顺序,rv(i)′′r''_{v(i)}rv(i)′′​用于修改加密消息mmm的密文的值,使其解密仍然输出mmm。因此,不知道解密密钥vvv和rv(i)′′r''_{v(i)}rv(i)′′​的敌手无法将任何密文(C‾1,i,C‾2,i)(\overline C_{1,i},\overline C_{2,i})(C1,i​,C2,i​)与密文(C1,i,C2,i)(C_{1,i},C_{2,i})(C1,i​,C2,i​)联系起来。Neff [68,69]提供了一种方法来证明这样的shuffle是正确的,即存在permutation vvv和重新随机化因子ri,j′′r''_{i,j}ri,j′′​,有output=SHUFFLEv,ri,j′′(input)output=SHUFFLE_{v,r_{i,j}''}(input)output=SHUFFLEv,ri,j′′​​(input),而不显示任何关于vvv或ri,j′′r''_{i,j}ri,j′′​的内容。这是通过使用 honest-verifier 零知识证明来实现的。

IV. SYSTEM OVERVIEW

在本节中,我们描述了系统和威胁模型,然后介绍了Drynx的功能和安全需求。

A. System Model

系统模型如图1所示。为了简单起见,我们在这里描述了Drynx中的逻辑角色,在第八节中我们讨论了一个物理节点可以同时扮演多个角色的事实。查询者QQQ可以在DPsDPsDPs所持有的分布式数据集上执行统计查询和机器学习模型的训练和评估。CNsCNsCNs共同处理系统中的计算;也就是说,从QQQ的角度来看,它们模拟一个中央服务器,并为她的查询提供答案。 验证节点(VNs)(VNs)(VNs)的作用是提供可审计性;它们集体验证查询执行并永久存储相应的证明。 它们使审计员,例如QQQ或外部实体,能够轻松地验证(审计)查询执行的正确性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8HQL68Ol-1610589285376)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210112125158266.png)]

Fig. 1: A querier QQQ, Data Providers DPiDP_iDPi​ , Computing Nodes CNiCN_iCNi​ and Verifying Nodes VNiV N_iVNi​.

在Drynx的典型工作流中,查询由querier QQQ定义,然后广播到CNsCNsCNs和DPsDPsDPs。 在将结果发送到QQQ之前,DPsDPsDPs用它们的加密响应回答,然后由CNsCNsCNs集体聚合和处理。 我们假设使用的数据格式在不同的DPsDPsDPs之间是足够均匀的,并且DPsDPsDPs能够解释查询,例如,有一个共同的属性本体,并且查询语言在系统设置期间是一致的。

在HDSHDSHDS场景(SectionIII\rm Section\ IIISection III-AAA节)中,该系统模型的实例化将以CNCNCN作为大学的特征,这些大学希望使研究人员(QQQ)能够计算由多家医院(DPsDPsDPs)持有的数据)。 虚拟国家可以是独立的或政府机构,确保数据保护条例得到遵守。

我们假设系统的拓扑结构和公共信息,例如公钥,是所有实体都知道的。 认证和授权超出了本文的范围,我们在SectionVIII\rm Section\ VIIISection VIII中简要讨论了它们。

B. Threat Model

我们假设一个强大的威胁模型

  • Queriers. 它们被认为是恶意的,因为它们可以尝试从查询结束结果,或通过与系统中的其他实体串通来推断有关DP的信息。
  • Computing Nodes. 我们考虑一个AnyTrust模型[72],这意味着所有Drynx的安全和隐私保证(SectionIVSection\ IVSection IV-DDD)都得到了保证,只要至少有一个CNsCNsCNs是诚实的(或简单的诚实)。
  • Data Providers. DPDPDP被认为是恶意的,因为它们可以尝试对查询产生不正确的答案,以便对最终结果进行偏差。 它们还可以与其他节点串通,以推断有关其他DPsDPsDPs或查询结束结果的信息。
  • Verifying Nodes. 我们假设VNsVNsVNs的阈值数是诚实的。 这个阈值,例如,fh=2f+1f_h=2f+1fh​=2f+1 out of ft=3f+1f_t=3f+1ft​=3f+1(其中ftf_tft​是VNsVNsVNs的数目)是根据共识算法来定义的[62, 63],用于确保校样验证结果的正确性和不可变。

C. Functional Requirements

Drynx允许在分布式数据集上计算可编码操作族中的任何操作。 可编码操作可以分为两部分:DPsDPsDPs的局部计算和集体聚合。 在集体部分中,计算是在加密数据上执行的,因此受到使用的加密方案中的同态限制,例如加法和/或乘法。DPsDPsDPs的计算在本地执行,因此不受限制。

Definition 1. 在NNN个DPsDPsDPs之间计算的可编码操作 fff 被定义为:

f(r‾)≡π({ρ(ri‾)}i=1N)f(\overline r)\equiv \pi(\{\rho(\overline {r_i}) \}^N_{i=1})f(r)≡π({ρ(ri​​)}i=1N​),

其中编码ρρρ为

ρ(ri‾)≡(Vi,ci)ρ(\overline {r_i})≡(\mathbf{V_i},c_i)ρ(ri​​)≡(Vi​,ci​),

其中Vi=[vi,1,...,vi,d]\mathbf{V_i}=[v_{i,1},...,v_{i,d}]Vi​=[vi,1​,...,vi,d​]是在一组ci=∣ri‾∣c_i=|\overline {r_i}|ci​=∣ri​​∣记录上计算的ddd值的向量,其中∣.∣|.|∣.∣代表基数。r‾\overline rr是所有分布式数据集记录的集合,ri‾\overline {r_i}ri​​是属于DPiDP_iDPi​的记录集,πππ是编码ρρρ输出的多项式组合。 编码被定义为每个DPiDP_iDPi​的子集ri‾\overline {r_i}ri​​上的局部计算函数。 还可以将可编码操作表示为递归函数:

fk(rˉ)≡π({ρ(rˉi,fk−1(rˉ))}i=1N)f_{k}(\bar{r}) \equiv \pi\left(\left\{\rho\left(\bar{r}_{i}, f_{k-1}(\bar{r})\right)\right\}_{i=1}^{N}\right)fk​(rˉ)≡π({ρ(rˉi​,fk−1​(rˉ))}i=1N​)

在Drynx中,对于任何特定的操作fff,每个DPiDP_iDPi​创建一个在其记录集ri‾\overline {r_i}ri​​上计算的编码ρρρ。 然后,πππ分两部分执行:CNsCNsCNs首先聚合所有DPsDPsDPs的编码输出Σi=1N\Sigma^{N}_{i=1}Σi=1N​,如果需要,则查询者对汇总结果进行后处理πππ。(例如,如果πππ涉及在同态加密下CNsCNsCNs不可执行的信息保存操作)。

我们在这里给出了 Definition 1 的实例化,它允许计算平均值,在 Section VII 中,我们展示了如何实例化编码,以便能够计算:和、计数、频率计数、平均值、方差、标准差、余弦相似度、min/max、AND/OR和集合交集/联合,以及线性和Logistic回归模型的训练和评估。

例如,如果QQQ想计算多个医院多个患者的平均(f)(f)(f)心率 ( HDSHDSHDS (ScectionIII\rm Scection\ IIIScection III-AAA),每个医院(DPiDP_iDPi​)用每个患者心率的编码(h:ρ(ri‾)≡([Σj=1cihi,j],ci)h:\rho(\overline{r_i} )\equiv ([\Sigma^{c_i}_{j=1}h_{i,j}], c_i)h:ρ(ri​​)≡([Σj=1ci​​hi,j​],ci​)。 然后,这些编码(同态)被添加到所有医院,QQQ可以(解和)通过使用π=Σi=1Nvi,1/ΣiNciπ=\Sigma^{N}_{i=1}v_{i,1}/\Sigma^{N}_{i}c_iπ=Σi=1N​vi,1​/ΣiN​ci​来计算全局平均值。我们在这里指出,虽然ρρρ和πππ依赖于应用程序,但工作流对于所有可能的操作都是常见的。

最后,在Drynx中,审计员可以有效地审计一个查询的执行。此外,可审计性所需的证明也会被生成,它们的生成不会影响查询运行时间。

D. Security Requirements

Drynx必须确保:

  • Data confidentiality. 数据输入必须随时保密, 只有QQQ能看到查询答案。
  • DPs’DPs’DPs’ privacy. 没有任何实体能够推断出关于一个DPDPDP或任何个人将其数据存储在DPDPDP数据库中的信息。
  • Query Execution Correctness. 当满足结果鲁棒性和计算正确性要求时,我们认为查询执行是正确的:1)1)1) 结果的稳健性, 查询结果受到保护,不受DPsDPsDPs恶意或错误输入的强异常值的影响。2)2)2) 计算的正确性, 由CNsCNsCNs进行的任何计算都是正确执行的。

V. DRYNX DESIGN

为了克服现有工作中的局限性,满足上一节提出的要求,我们提出了一种新的系统模型,通过引入VNsVNsVNs来实现查询的可审计性。 此外,Drynx在一个更强的威胁模型中提供了多个功能,它依赖于编码本地计算结果的DPsDPsDPs,这些结果被证明在一定范围内。它通过控制DPsDPsDPs的结果在这些预定义的范围内来限制对DPsDPsDPs的信任。 我们提出了一个系统,它仍然是通用的和实用的,同时在一个比现有工作更强大的威胁模型中运行。 我们现在讨论这个系统的设计。

在Drynx的安全设计(SectionV\rm Section VSectionV-AAA节)中,我们展示了如何构建Drynx以满足其所有安全要求:

  • 在VVV-A1A1A1节中,我们介绍了一个简单的查询执行 pipeline,以实现Drynx的功能并保护数据的机密性。
  • 在VVV-A2A2A2节中,我们建立在先前引入的查询执行 pipeline 的基础上,并通过引入neutral encoding的新概念来解释如何确保DPsDPsDPs的隐私。 这使DPDPDP能够私下选择是否回答查询。 我们还解释了Drynx如何处理按位操作并维护DPsDPsDPs的隐私。 最后,我们引入了分布式差分隐私,用于确保没有实体从查询结束结果中输入有关单个DPDPDP或个人的信息。
  • 在VVV-A3A3A3节中,我们展示了如何通过依赖一组VNsVNsVNs以有效的方式提供可审计性。 我们描述了Drynx如何通过利用范围证明来确保结果的鲁棒性,以及如何通过依赖正确性证明来验证所有Drynx的计算。

在Drynx的优化设计((SectionV\rm Section VSectionV-BBB节)中,我们讨论了如何优化Drynx的性能:

  • 在VVV-B1B1B1节中,我们介绍了Drynx的完整查询执行 pipeline。 我们展示了如何同时运行查询执行和验证的多个部分,从而优化了Drynx的运行时长。
  • 在VVV-B2B2B2节中,我们通过启用查询执行的概率验证来引入安全性和性能之间的权衡。

A. Drynx Security Design

我们提出了Drynx核心安全架构。

V-A1 Data Confidentiality:

首先,我们引入了一个保密的分布式数据共享系统(图2),它可以运行与Drynx相同的操作,但只满足一个安全要求:数据机密性。

我们描述了查询执行协议,并勾勒出该系统的机密性证明。 然后,我们描述了如何增强这种结构,以满足Drynx的其他安全要求,而不破坏数据机密性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Om9Ye01m-1610589285380)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113102344151.png)]

Fig. 2: Confidential System Query Execution.

  1. Initialization. 每个CNi、DPiCNi、DPiCNi、DPi和QiQiQi 生成自己的密钥对(ki,Ki)(ki,Ki)(ki,Ki)。 然后将CN′sCN'sCN′s的公钥相加,以创建KKK,即CNsCNsCNs的公共集体密钥,用于加密所有处理的数据。

  2. Query. QQQ制定了通过CNsCNsCNs向DPsDPsDPs清楚地广播的查询。 虽然querier可以直接与DPsDPsDPs通信,但我们的选择简化了系统内的通信方案和同步,因为CNsCNsCNs必须知道查询并接收DPsDPsDPs输入,以便在其余步骤中执行计算。 查询定义操作、计算操作的属性、参与的DPDPDP和(可选的)过滤条件。drynx独立于查询语言工作。我们用一个类似SQL的查询来说明它的用途,以计算由nnn个DPsDPsDPs持有数据的患者的平均心率:SELECT average heartrate ON DP1*,…, DPn* WHERE patientstate = ‘hypertensive’

  3. **Retrieval & Encoding. **DPsDPsDPs通过以下ρρρ计算它们的本地答案,这是在操作编码中定义的(Define 1)。 为此,他们首先在本地检索相应的数据。

  4. Encryption**.** DPsDPsDPs在KKK下加密编码的响应,并将相应的密文发送回CNsCNsCNs。

  5. Collective Tree Aggregation (CTA). CNsCNsCNs通过执行依赖 UnLynx[16] 中定义的 Collective Aggregation 协议的CTACTACTA协议来聚合所有DPsDPsDPs的响应。 CNsCNsCNs被组织成一个树结构,使得每个CNCNCN等待接收来自其子代的聚合结果,并在将结果传递给自己的父代之前它们进行总结。

  6. Collective Tree Key Switching (CTKS). CNsCNsCNs将在KKK下加密的聚合结果集体转换为在QQQ的公钥K′K'K′下加密的相同结果,而无需解密。该协议 (Protocol 1) 是UnLynx[16]中提出的Key Switching 新结构。从概念上讲,每个CNCNCN部分地解密mmm(即step 2中计算中的(C1)ki(C_1)k_i(C1​)ki​),并用QQQ的公钥K′K'K′(即step 2中计算中的 +αiK′+\alpha_i K'+αi​K′)重新加密它。我们通过改变密文的转换方式和在树结构中组织CNCNCN来提高CTKSCTKSCTKS的效率,从而减少其执行时间。 在这种结构中,多个CNCNCN可以并行执行它们的本地操作(3个标量乘法和1个加法),CTACTACTA需要#CN−1\#CN-1#CN−1聚合和节点之间的通信。 我们在表II\rm IIII中显示了所有Drynx协议的计算复杂度。

  7. Decryption. QQQ解密并解码查询结果。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kk6AlhmR-1610589285381)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113111544673.png)]

Security Arguments. 我们表明,只要一个CNCNCN是诚实的,控制剩余CNsCNsCNs、DPsDPsDPs和QQQ的敌手就无法破坏数据机密性。 在不失去一般性的情况下,我们假设至少有一个DPDPDP是诚实的,因为只有在这种情况下能在敌手存在的情况下保护数据。我们通过依赖 “ real/ideal ” 的模拟范式来勾画证明[73],并表明对手不能区分“real”世界实验,其中对手被赋予 “real” 数据 (由诚实的DPsDPsDPs发送),以及 “ideal” 世界实验,对手被赋予由模拟器生成的随机数据。 可以看出,DPsDPsDPs发送的加密数据在被QQQ的公钥聚合和重新加密(CTKSCTKSCTKS)之前从未被解密。 因此,由于密码系统的语义安全性,敌手无法区分 simulation 和 real 实验。 可以看出,在端到端查询执行过程中,数据机密性得到了保证:

在检索和编码中,DPDPDP只对其本地数据进行操作,任何恶意方都看不到外部数据。 在加密中,DPsDPsDPs用KKK加密它们的响应,这些响应在CTACTACTA中被聚合,仍然处于加密状态。 除非所有CNCNCN串通,否则无法解密(求和)密文。然而,这是不可能的,因为它们遵循AnyTrust模型。 最后,在CTKSCTKSCTKS(Protocol 1)中,密文从KKK转换为QQQ的公钥,使得QQQ可以解密:

  • 在CTKSCTKSCTKS步骤:1−31-31−3. 密文是在KKK下加密的,因此如果没有所有CNCNCN的串通,就不能解密。
  • 在CTKSCTKSCTKS步骤:444。 密文总是(C~1,C~2)=(r~B,mB+r~K′)(\tilde C_1,\tilde C_2)=(\tilde rB,mB+\tilde rK')(C~1​,C~2​)=(r~B,mB+r~K′),其中r~=Σi=0tαi,0≤t≤#CN\tilde r=\Sigma^t_{i=0}α_i, 0\leq t\leq \# CNr~=Σi=0t​αi​,0≤t≤#CN,并且只有当ttt个CNCNCN与QQQ相勾结时才能解密,其中QQQ是消息的预期接收者。

**V-A2 DPs’ Privacy: **

Drynx通过确保 (a)(a)(a) 每个DPDPDP可以私下决定是否回答查询来保护DPsDPsDPs和个人的隐私; (b)(b)(b) 只有操作编码定义的操作结果被披露给QQQ; (c)(c)(c) 没有任何实体可以推断出关于单个DPDPDP或个人的信息。

a)a)a) Neutral Response: 如果DPDPDP确定查询可能危及其隐私,则可以选择不响应,也可以选择以neutral response回答,从而隐藏其拒绝参与查询而 distorting 的查询结果。 为此,我们定义了neutral response

Definition 2. DPiDPiDPi通过ρ(ri‾≡(O,0))\rho(\overline {r_i} \equiv (\mathbf O,0))ρ(ri​​≡(O,0))定义其响应编码(Definition 1)来发送neutral response,其中O\mathbf OO是 neutral 向量,使得W+O=W\mathbf W+\mathbf O=\mathbf WW+O=W,W\mathbf WW是任何编码向量;ci=0c_i=0ci​=0,因为DPiDP_iDPi​对000个记录进行计算。

在SectionVII\rm Section VIISectionVII中,我们描述了如何为每个列出的编码生成 neutral 响应。

Security Arguments. 不响应查询的DPDPDP会向其他实体建议此查询对其太敏感。DPsDPsDPs的响应总是加密的,由于底层密码系统的不可区分性,neutral 响应与non-netural响应是不可区分的,从而有效地隐藏了DPDPDP的拒绝。

b)b)b) Privacy-Preserving Bit-wise Operations: 在Drynx中,DPsDPsDPs的响应是通过可用的加法同态来求和的;如果这些响应是二进制的,那么和的结果比操作结果更容易泄漏到QQQ中。 例如,当OROROR操作在一组DPDPDP上执行时,QQQ应该只知道答案是真(1)(1)(1)还是假(0)(0)(0)。 然而,如果DPsDPsDPs的响应被简单地聚合,QQQ得到了回答“1”“1”“1”和“0”“0”“0”的DPsDPsDPs的数量。 为了克服这一问题,我们提出了 Collective Tree Obfuscation (CTOCTOCTO)协议,详见 Protocol 2。 对于按位操作,CTOCTOCTO在查询执行的步骤CTACTACTA和CTKSCTKSCTKS之间运行。 在CTOCTOCTO中,CNsCNsCNs通过将密文与随机密钥相乘来集体混淆密文。

CTOCTOCTO允许在Drynx中保持隐私位操作,因为"1""1""1"被混淆为一个随机值,而"0""0""0"被保留。 要知道操作的结果,QQQ只检查最终值是否为"0""0""0"。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qC2nG3X-1610589285384)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113130539863.png)]

Security Arguments. Protocol 2 不会暴露mmm的机密,并且确实 obliviously 和statistically 混淆了 mmm。机密性依赖于密码系统的语义安全性,因为mmm在整个协议执行过程中仍然是加密的。 在Zp\mathbb Z_pZp​中mmm的乘法盲化由s⋅ms·ms⋅m定义,其中sss是Zp\mathbb Z_pZp​中的一个秘密标量值。 CTO协议的输出是(Σsi)⋅m(\Sigma s_i)·m(Σsi​)⋅m的加密。我们可以通过分离诚实的CNshCNs\ hCNs h 和恶意的CNse:(∑i∈hsi+∑i∈esi)⋅m=(∑i∈hsi)⋅m+(∑i∈esi)⋅mCNs\ e: \left(\sum_{i \in h} s_{i}+\sum_{i \in e} s_{i}\right) \cdot m=\left(\sum_{i \in h} s_{i}\right) \cdot m+\left(\sum_{i \in e} s_{i}\right) \cdot mCNs e:(∑i∈h​si​+∑i∈e​si​)⋅m=(∑i∈h​si​)⋅m+(∑i∈e​si​)⋅m的 contributions 来重写(Σsi)⋅m(\Sigma s_i)·m(Σsi​)⋅m (由我们的AnyTrust模型假设可知,至少有一个诚实的CNCNCN)。即使敌手知道(∑i∈esi)⋅m\left(\sum_{i \in e} s_{i}\right) \cdot m(∑i∈e​si​)⋅m,(∑i∈hsi)\left(\sum_{i \in h} s_{i}\right)(∑i∈h​si​)也会导致Zp\mathbb Z_pZp​中mmm的乘法盲化。

c)c)c) Distributed Differential Privacy: Drynx依赖于Unlynx[16]中引入的 Collective 差分隐私(CDP)协议,以确保差分隐私,并防止从查询结果中推断一些DPDPDP “和/或” 个人的信息。 为了完整起见,我们简要介绍了CDP(Protocol 3),并请参阅[16]以获得更多细节。 参数的选择取决于应用程序的隐私策略,超出了本文的范围。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hg3wLCn9-1610589285385)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113132004595.png)]

Security Arguments. 我们观察到,噪声值的列表是可验证的从差分隐私参数生成的,并且所有CNsCNsCNs都私下shuffle 这些值。 在UnLynx[16]中详细分析了该协议的安全性。

V-A3 Query Execution Correctness

我们首先描述Drynx如何通过对查询执行正确性进行有效的验证来提供可审计性。 后者是通过保证结果的鲁棒性和计算正确性来实现的。第一个是通过将DPsDPsDPs的值限制在一个特定的范围内(通过范围证明)来确保的,第二个是通过对所有CNsCNsCNs计算使用ZKPZKPZKP来确保的。

a)a)a) Auditability: 为了为查询验证提供有效的解决方案,Drynx依赖于一组VNsVNsVNs,这些VNsVNsVNs与查询的执行并行,并在不影响其运行时的情况下验证查询的正确性。在每次操作之后,QQQ、CNsCNsCNs和DPsDPsDPs创建正确的计算或值范围的证明,它们用私钥签名(以提供身份验证)。 他们的签名证明被发送给所有的VNsVNsVNs。 这使得查询的高效执行成为可能,因为证明创建和验证是独立于它执行的。

为了实现这一解决方案,我们可以依赖于VNsVNsVNs的分布式体系结构,并且可以通过使用块链(即证明块链)来提供完整性和不可变性。这使查询及其验证结果都能够公开和不可变的存储。此外,它还能够对查询的正确性进行高效和轻量级的验证。审计员,例如QQQ,只需请求与查询对应的块,验证VNsVNsVNs签名并检查查询验证结果。我们在 Protocol 4 中详细介绍了这一点,并在 Figure 3 中描绘了一个证明块链的示例。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejdwz1Xp-1610589285387)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113165205679.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ZVKx0t5-1610589285388)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113165226918.png)]

Fig. 3: Proof blockchain. Each block contains Query ID and content, and each V N’s query-proofs map. RP stands for range proof.

Security Arguments. 如果一个实体信任VNsVNsVNs的阈值fhf_hfh​,它可以通过检查证明块中的相应块来验证查询的正确执行。验证者可以检查fhf_hfh​个节点是否同意证明的正确性。 为每个查询创建一个块,即使证明是错误的,从而使任何实体能够确定哪些当事人参与了错误计算的查询。否则,由于所有的证明都是可验证的,并由所有的VNsVNsVNs存储,审计员,不信任VNsVNsVNs的fhf_hfh​,可以从其中的一个子集请求证明,并自行检查证明。

b)b)b) Results Robustness: 如果查询器在DPsDPsDPs值上定义了具有范围边界的查询,则要求DPsDPsDPs按照 Algorithm1\mathbf{ Algorithm\ 1}Algorithm 1中详细说明的算法创建范围证明。该算法是通过适应Camenisch等人为了建议AnyTrust模型提出的[0,ul)[0,u^l)[0,ul)范围证明。 在该算法中,prover,即DP,在base-uuu中写入其秘密值mmm,并通过在这些 digits 上使用CNISCNISCNIS的签名提交给uuu-ary digits (算法1中的Ai,bA_{i,b}Ai,b​)。lll创造的承诺完成了证据。 为了使该算法适应AnyTrust模型,DPDPDP必须通过组合所有CNsCNsCNs的签名 (即Zi,Ai,bZ_i,A_{i,b}Zi​,Ai,b​),计算多个证明元素,即c,Vi,j,ai,jc, V_{i,j}, a_{i,j}c,Vi,j​,ai,j​。 这确保DPDPDP至少使用一个CNCNCN的签名,而且它不知道其潜在的 secret。 [56]中的相同变换可用于将证明推广到任何范围[bl,bu)[b_l,b_u)[bl​,bu​)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ut08Sj8B-1610589285389)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113165349208.png)]

Security Arguments. 范围证明的正确性和零知识性质都得到了Camenisch等人的证明 [56]。这些证明在AnyTrust 模型中是普遍可验证的和合理的。 后者来自一个事实,即依赖于CNsCNsCNs secret 的元素xix_ixi​被计算为所有公共签名的组合。 由于至少有一个CNiCNiCNi是诚实但好奇的,其中一个xix_ixi​是未知的(没有揭示)给DP(prover)。

c)c)c) Computation Correctness: 为了确保查询执行的正确性,CNCNCN执行的每个计算都必须被证明是正确的。

  • Collective Tree Aggregation. CNsCNsCNs提供了可能聚合的输入密文和由此产生的构成ZKPZKPZKP的密文。
  • Collective Tree Obfuscation. 在SectionIII\rm Section\ IIISection III-CCC节中,CNsCNsCNs通过依赖表达公式(1)(1)(1)来产生混淆证明。每个CNiCNiCNi通过sis_isi​乘以CCC获得混淆的密文(C1′,C2′)(C'_1,C'_2)(C1′​,C2′​)与 (a) C1′=siC1C'_1=s_iC_1C1′​=si​C1​和 (b) C2′=siC2C'_2=s_iC_2C2′​=si​C2​。对于这两个方程,y1=siy_1=s_iy1​=si​是离散对数,我们有公共值A=C1′,A1=C1A=C'_1,A_1=C_1A=C1′​,A1​=C1​代表 (a),A=C2′,A1=C2A=C'_2,A_1=C_2A=C2′​,A1​=C2​代表(b),这构成了证明。
  • Collective Differential Privacy. 在该协议中,每个CNCNCN依次执行Neffshuffle\rm Neff \ shuffleNeff shuffle,并产生SectionIII\rm Section IIISectionIII-GGG节中描述的相应的正确性ZKPZKPZKP。 此证明基本包含输入和输出列表、公钥加密密文和承诺值。
  • Collective Tree Key Switching. 在SectionIII\rm Section IIISectionIII-CCC节中,CNsCNsCNs通过公式(1)(1)(1)来创建ZKPZKPZKP,其中我们分别有y1=Ki,y2=αiy_1=K_i,y_2=α_iy1​=Ki​,y2​=αi​即kiB=Kik_iB=K_iki​B=Ki​和αiBα_iBαi​B的离散对数。 Ki,αiB,A=wi,2,A1=−rBK_i,α_iB, A=w_{i,2},A_1=-rBKi​,αi​B,A=wi,2​,A1​=−rB和A2=K′A_2=K'A2​=K′都被公开,不泄露任何关于潜在的 secret 的信息。

Security Arguments. 我们依赖的证明是 universally 可验证和零知识。 它们不会影响数据机密性,超出从已证实的事实本身可以推断的范围。

B. Drynx Optimized Design

在描述如何优化查询验证的性能之前,我们介绍了Drynx的最终查询执行管道。

V-B1​ Full Query Execution Pipeline

我们在 Figure 4 中显示了 Drynx 的完整 pipeline。 查询执行和验证同时执行,查询执行的多个步骤可以并行执行。CNsCNsCNs 在CTACTACTA中汇总每个DPDPDP的响应,一旦他们收到它。 在汇总所有结果之后,必须添加CDPCDPCDP产生的噪声。 然而,如果预先定义了差分隐私参数,则可以独立于其他步骤执行此协议,甚至可以预计算。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZMMGUEz-1610589285389)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113174501578.png)]

Fig. 4: Drynx’s complete optimized query-execution. Arrows represent causal links. Steps without direct links can be executed independently and dashed steps are optional.

V-B2 Probabilistic Query Verification

为了提高查询验证的性能,我们启用了VNsVNsVNs对证明的概率验证。我们表明,这种策略仍然允许验证器以较高的概率检测行为不端的实体,但大大提高了性能(见SectionIX\rm Section\ IXSection IX)。特定操作的证明 (例如,一组密文SSS的CTKSCTKSCTKS)可以有多个子证明 (例如,一个密文C∈SC∈SC∈S的CTKSCTKSCTKS)。 如果一个或多个子证明是不正确的,则一个证明被认为是不正确的。我们介绍了两个阈值TTT和TsubT_{sub}Tsub​,它们分别定义了验证单个证明和子证明的概率。 我们修改 protocol 4 中描述的查询执行步骤2中的VNsVNsVNs操作,方法是添加基于TTT和TsubT_{sub}Tsub​的概率验证。 每个VNVNVN存储它收到的所有证明。 然后,它生成一个随机值r∈[0,1]r∈[0,1]r∈[0,1];如果r<Tr<Tr<T,则开始对子证明进行概率验证。对于每个子证明,应用相同的方法,使用TsubT_{sub}Tsub​。

Security Arguments. 概率验证不一定会损害系统的安全级别,因为每个证明的验证都是由每个VNVNVN冗余完成的。用概率pver=1−(1−T)NVNp_{ver}=1-(1-T)^{N_{VN}}pver​=1−(1−T)NVN​验证证明,其中NVNN_{VN}NVN​是VNVNVN的数目,并用概率pversub=1−((1−T)+T(1−Tsub))NVNp_{{ver}_{sub}}=1-((1-T)+T(1-T_{sub}))^{N_{VN}}pversub​​=1−((1−T)+T(1−Tsub​))NVN​验证证明。 证明或子证明被至少fhf_hfh​节点验证的概率为

Pfh=∑i=fhNVN(NVNi)pi(1−p)NVN−iP_{f_{h}}=\sum_{i=f_{h}}^{N_{V N}}\left(\begin{array}{c} N_{V N} \\ i \end{array}\right) p^{i}(1-p)^{N_{V N}-i}Pfh​​=∑i=fh​NVN​​(NVN​i​)pi(1−p)NVN​−i

其中ppp是pverp_{ver}pver​(用于证明)或pversubp_{ver_sub}pvers​ub​(用于子证明)。 例如,如果NVN=7N_{VN}=7NVN​=7,T=1T=1T=1和Tsub=0.3T_{sub}=0.3Tsub​=0.3,则所有证明都至少部分验证,每个子证明都由fh=5VNsf_h=5VNsfh​=5VNs验证,PfhP_{f_h}Pfh​​为98.48%98.48\%98.48%。 因此,每个子证明都由具有高概率的VNsVNsVNs的至少fhf_hfh​验证。 由于 honesty 假设,子证明至少由一个诚实的VNVNVN验证,概率很高。 此外,阈值TTT和TsubT_{sub}Tsub​可以被设置为任意降低一个子验证不被至少一个诚实节点验证的概率。因此,如果参与验证的所有VNsVNsVNs都同意结果,审计员知道证明是正确的,否则它可以选择只信任一些VNsVNsVNs,或者提取所有的证明并验证它们本身,因为所有的证明都是普遍可验证的。例如,审计员可以选择只验证未经她信任的任何VNsVNsVNs检查的 proofs 。

部分验证,每个子证明都由fh=5VNsf_h=5VNsfh​=5VNs验证,PfhP_{f_h}Pfh​​为98.48%98.48\%98.48%。 因此,每个子证明都由具有高概率的VNsVNsVNs的至少fhf_hfh​验证。 由于 honesty 假设,子证明至少由一个诚实的VNVNVN验证,概率很高。 此外,阈值TTT和TsubT_{sub}Tsub​可以被设置为任意降低一个子验证不被至少一个诚实节点验证的概率。因此,如果参与验证的所有VNsVNsVNs都同意结果,审计员知道证明是正确的,否则它可以选择只信任一些VNsVNsVNs,或者提取所有的证明并验证它们本身,因为所有的证明都是普遍可验证的。例如,审计员可以选择只验证未经她信任的任何VNsVNsVNs检查的 proofs 。

Drynx: 基于区块链的去中心化隐私保护机器学习系统相关推荐

  1. 基于区块链的去中心化存储(区块链存储)的工作流程

    引入 个人电脑上存储有限,而且如果硬盘损坏数据丢失的话,也不容易恢复.因此很多人愿意把数据上传到云盘里,也就是云存储.但是云存储是服务提供商控制的,比如阿里云,百度云等,我们称为中心化的存储 ,人们对 ...

  2. 基于区块链的去中心化抗量子密钥管理系统

    摘要: 区块链技术在2008年被提出被称为比特币(我觉得应该是翻译为比特币应用了区块链技术),区块链技术是一种分布式的数据库.公钥基础设施PKI(Public Key Infrastructure)系 ...

  3. 去中心化 去区块链_基于区块链的去中心化应用的四种架构模式候选

    去中心化 去区块链 Blockchain has a diverse set of use cases, ranging from finance to a decentralized Interne ...

  4. 基于区块链的去中心化交易系统

    引言: 类似淘宝,京东这些传统的交易平台,是以一个中心化的管理买卖双方交易过程的模式.马云曾说过:不要想着弯道超车,弯道是无法超车的,你直道都超不过,弯道更无法超过.只有走不同的道路,才有可能超过.而 ...

  5. 基于区块链的去中心化身份技术有哪些应用前景?

    在当前数字化世界中,数据隐私安全的重要性不言而喻.随着区块链技术的兴起,基于区块链的去中心化身份(Decentralized Identity,以下简称"DID")逐渐成为技术社区 ...

  6. 基于Solana区块链的去中心化交易所Orca正式启动

    2月25日消息,基于 Solana 区块链的去中心化交易所 Orca 现已正式启动.Orca 自称是以人为本(而非程序化)的自动做市商(AMM)和聚合器.目前,非美国地区用户可开始交易 SOL.BTC ...

  7. 区块链要去中心化么?

    本文摘自< 深度探索区块链:Hyperledger技术与应用 >,原文发布在华章计算机. 区块链(Blockchain)技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准.Wikiped ...

  8. 以太坊区块链实现去中心化购物功能

    在当今的中国,网上购物已经成为了我们不可或缺的一部分,通过电商网站查看商品,下单购物,支付,付款到支付宝,买家收货确认后,货款自动打入卖家的账户,这些购物的体验多数人每天都可能发生.大家都知道,淘宝的 ...

  9. 区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链的去中心化VS传统互联网的去中心化:技术与治理的双重困境11 主要观点: 1.传统互联网经典的去中心化项目BitT ...

最新文章

  1. LeetCode简单题之柠檬水找零
  2. 【numpy学习笔记】数组的创建和基本运算
  3. oracle 内存结构 share pool sql解析的过程
  4. Sql Server 监控 Job 执行情况
  5. Django从理论到实战(part12)--应用命名空间和实例命名空间
  6. 推荐一款 IDEA 神器 ,人工智能帮你写代码,再也不用加班了!!
  7. python编程工时计算_Python编程题:两个日期间的天数统计(附代码)
  8. 听说有62%的人口嫌体直想卖隐私?
  9. xx信息管理系统设计
  10. golang中base64编码_Rust 中的字符集编码 Rust 实践指南
  11. 各种语音编码方法,所需要的带宽
  12. ZigBee(CC2530)(03)数据手册分享(英文+中文)
  13. vue实现页面锁屏完美解决
  14. 如何让ie6 ie7 并存
  15. 用C语言编写5个学生,每个学生有3门课程成绩,从键盘输入学生数据(学号,姓名,3门成绩)计算平均成绩,将成绩放入磁盘文件stud中
  16. 特征图谱字典_空间数据图谱为特征
  17. 感谢谦哥的家族为中国相声事业做出了贡献。
  18. RemoteViews讲解
  19. 学习python的方法
  20. Android手机输入法按键监听-dispatchKeyEvent

热门文章

  1. 快消品企业数字化转型解决方案
  2. Cris 的Python日记(四):Python 数据结构之序列和列表
  3. 用纯CSS画一颗爱心
  4. 七夕专属博文-使用QGraphics画“红心“或“黑心“(含数学模型讲解)
  5. 2022第一位华为“天才少年”!绩点1.8逆袭!
  6. 不忘初心,专心练剑!
  7. 如何基于WebRTC搭建一个简单的视频会议
  8. AI大事件 | WaveNet推出了谷歌助手,苹果发布CoreML转换器
  9. 破解工具SoftICE与TRW2000操作入门
  10. 手把手教你Masonry的理解