Covalent-一个隐私保护的数据使用协议

Abstract-在这个论文里面,我们提出了一个直接的设计和一个未来主义的隐私保护数据使用协议,它能在隐私数据上计算隐私模型。一个扩展性的方案对于两个设计来说是建立在离线计算之上。一个直接的设计是基于可信计算环境,一个未来的设计是基于同态加密和零知识证明。

1.动机
2017年,全世界产生了22ZB的数据,但只有1%的被利用【1】。数据依然被锁定,因为数据的使用常常会危害数据隐私。一旦数据被分享和使用,它的提供者泄露出语义信息并且对于它分布和使用失去了控制。
虚弱的AI和机器学习应用的进步非常依赖于充裕的可用数据。在数据自然聚合的区域中,ai的速度提高了一个数量级。这些领域包括在线搜索,在线广告和电子商务。相反,AI在健康、教育、生产和主流金融市场领域落后了。这就是那些数据自然聚合的领域,结果就是AI模型限制了效果。
从一个历史的愿景来看,TCP/IP协议解决了数据转移问题;IPFS协议解决了数据存储问题;那未来需要的协议是解决数据使用问题。对于一个数据使用协议来说,任何人能使用他人的数据而不会破坏他们的隐私。开发者将选择去构建这个协议,因为这是极好的数据分享层。
中心化的数据中心这种传统的解决方案已经引人注目的在所有领域和国家都失败了,在它的本质上,有两个问题:
隐私。数据拥有这不能信任这些中心化的实体来处理他们的隐私数据。
价值网络。缺乏价值网络来货币化数据的分配和使用。
最近,在区块链和加密货币技术的发展已经开辟了一条面相未来的道路。在历史上第一次,一个隐私优先的去中心化数据网络可能被构建。
隐私。隐私模型可以在隐私数据上计算。
价值网络。数据所有者能因为他们数据的每一次基本使用而获得补偿。

2.综述
问题声明
数据所有者拥有一些隐私数据D。
模型训练者有一个隐私模型f()。
一个隐私保护数据使用协议的目标是:对于模型使用者,接收到计算结果R=f(D)在没有损害数据D或模型f()隐私的前提之下--模型训练者不会获得D的拷贝,数据所有者不会获得模型f()的拷贝。
问题分解。3个子问题需要被解决,而我们在论文中提出了相应的方案。
计算规模。模型f()的计算常常耗费几个小时或者几天。
计算隐私。计算需要数据所有者和模型训练者之间转移,并在相互隐私保证的前提之下。
计算证明。在去中心化的环境下,必须提供计算证明来保证计算的正确性。

A.计算规模
以太坊现在的虚拟机并不支持大数据计算。就像在以太坊白皮书里表述的【2】。
简单来说,如果模型f()耗费3个小时计算并被写入智能合约,之后所有的以太坊节点都不得不花费3个小时去执行合约,这是明显不可行的。
我们创造CVM来解决这个问题。在CVM中,计算被转移到离线的节点,所有其他的节点仅仅需要去验证它的计算证明。验证计算的过程明显的比运行那个计算本身,因此可能通过智能合约做大规模计算。未来,我们做重大的优化来让验证过程更加迅速。

B.隐私计算
有三种主流的替代方案解决隐私计算问题。
同态加密HE。
多方计算MPC。
可行执行环境TEE。


屏幕快照 2019-01-17 下午2.38.46.png

以上三种,同态加密【3,4,5,6】和MPC【7】仍然处在理论发展阶段与量子计算相当,因此没有合适的立即可用产品。现成的方案是基于TEE【8,9】。TEE唯一的缺陷是它禁止使用GPUs,给用户造成很多不便。我们采取TEE方案并且去除它们的限制通过将他们作为控制单元而非计算单元。
我们的Covalent X团队专注未来主义的解决方案,比如同态加密并且完成相关的系统设计和可用测试。我们严密地关注HE的可用性进展,并将第一个将他们带入到产品中。

C.计算证明
几乎所有的计算证明机制都需要一个信任的实体(包括TEE和zk-SNARK)。表2对比领先的可选方案。同样的,硬件安全区是一个最优先的选择在我们的领域,因为它在效率方面重大的改进。我们在现阶段的方案中采用它。


屏幕快照 2019-01-17 下午2.58.23.png

zk-STARK是一个近期的发展能使更无信任的计算证明成为可能。然而,这项技术就像量子计算一样不成熟。X团队又将联合HE和zk-STARK。

D.Covalent解决方案
在本篇论文里,我们提出现阶段和未来的方案去面对这些问题。
CVM解决计算规模问题;
CES提供一个现成方案能解决隐私计算和计算证明;
CX提供一个未来的方案通过融合HE和zk-STARK。

3.CVM
在Covalent智能合约协议中,计算被转移到链下的一个单节点,同时所有其他的节点只需要验证计算证明。验证计算的过程明显的快于执行计算冗余,因此做大数据运算可能通过智能合约。我们也坐了重大的优化来让验证过程更为迅速。

A.crackHash
一个简单的例子来说明为什么验证能尤其快过计算是,用智能合约执行一个crackHash计算,在合约中我们定义一个在验证功能方面的crachHash函数,接收需要的hash,报告的输出来自网络上的单独用户。这样,密集计算逻辑一次性地由单个节点执行,同时更简单的验证计算由网络中闲置的节点执行。


屏幕快照 2019-01-17 下午3.26.12.png

B.计算证明
在我们主要的模型训练中,我们根据验证函数定义startTraining函数,验证函数处理模型训练所涉及的计算完成的证据。比方说,安全区和zk-SNARK都允许计算证明被以对比计算模型本身少得多的工作得到。

C.实现
CVM兼容EVM的字节码,但是我们添加了3个自定义指令来启用所述的计算 - 验证范例。
一个承诺函数PF是一种特殊类型的智能合约函数,由伴随验证器函数隐式定义,该函数接收函数的输入和用户在网络上提出的返回输出,并以确定的方式确定输出是否正确。
当一个智能合约调用PF执行,执行智能合约产生并向网络发出事件。如果网络上的一个用户提供一个对于伴随VF,然后执行将继续,并且将向用户提供由原始执行者支付的奖励。
三个自定义的指令如下:
promcreate--一个指令用来保存注册状态、VF指针和一个给予函数的可选处罚函数指针到内存中。它为承诺创造了一个唯一的id基于承诺数据的存储位置,产生子程序的执行,并发出一个事件。
promsolce--一个指令,为一个给予的存储内存位置调用VF。
promcancel--将promise数据(实际上让它无法解决这个承诺)与指向适当的vf的指针一起归零的指令。

D.优化
我们将增加两个指令来优化验证处理。
GCM128DEC--解密输入数据并用AES 128bit GCM Mode来解密的指令。
RSA2048VERIFY--接收一个RSA-2048公钥,报告和签名,确保提供的签名与公钥签名的数据匹配。
验证计算能将能很快和这些增加的指令一起。我们的原型显示出通过实现GCM128DEC指令,我们降低了86.04%的gas消费。看Fig.1.


屏幕快照 2019-01-17 下午5.07.23.png

4.CES
我们的数据市场由这三条角色组成:
data owners(DOs)列举自己的隐私数据出售使用权;
model trainers(MTs)想训练他们的隐私模型在市场的可用数据集上;
SGX host miners促进交易同时满足隐私和计算证明的需求。


屏幕快照 2019-01-17 下午5.31.02.png

一个简单的心理模型在这很有用。我们的解决方案本质的带着数据所有者的数据和模型所有者的模型到一个虚拟的、安全的和隐蔽的计算环境。然后只有计算结果被返回给模型所有者,同时数据所有者得到报酬。
模型训练者支付使用数据集,而非获得它。模型训练者不会一览无余地看到数据集,但是去训练它们的模型并提取有用的模型参数。
数据所有者不会看到训练者的模型。


屏幕快照 2019-01-17 下午5.51.51.png

SGX Host Miners不会看到数据或模型。
网络中剩余这不会看到数据或者模型。
计算证明被反射到智能合约用于所有节点快速验证。
图2、3、4显示出数据监听和发现的细节处理。
图5显示出隐私优先的计算处理的全部的设计。

A.隐私:分离传输
隐私数据或模型都不通过任何对方能控制的环境。

B.隐私:中立
我们的硬件安全区COVAClave是中立的对于数据所有者、模型训练者和网络的其余部分。安全区所属主机,网络中的矿工,也没有存取安全区内容的权限(这就是为什么称之为安全区,应为它保护外人窥视,甚至它是root主机。所有的主机能做的是停止、运作和调用公认的预定义函数来执行参与者的交易。
在其中进行重型模型训练计算的云实例是由COVAClave单独控制的,因此继承了它的中立性。

C.安全性
COVACLave的安全性继承了SGX的安全级别。SGX在美军和智能服务中广泛使用,它是安全的在绝大多数用例中。未来,我们使用SGX-盾牌[10]来增加地址布局的熵,从而为我们提供概率保证,即对手无法在任何实际时间范围内提取秘密。我们还使用独立密钥对任何凭证进行超级加密,以进一步防止侧通道攻击。
计算实例的安全继承了云计算提供者的安全级别,比如AWS,Azure或者阿里云。这些所有者提供的安全性足够健壮对于几乎所有的用例来说,同时几乎比所有本地可选择的计算环境都要更强大。

D.计算证明
安全区发出一个计算证明伴随计算结果返回给智能合约,允许剩余的网络去验证这个交易而不需要执行多的计算。

E.结果检查
那个结构、规模和提交的计算结果的内容被阉割的检查,在发回给模型训练者之前。

最低限度地揭示结构MRS。一个模型是一个数据集中的结构的广义表达。为了最大限度的隐私保护,MRS需要被提取出来。进一步的,MRS必须是不可逆的。

当前模型训练实践。数据科学家主要使用流行的框架比如skLearn/Caffe/TensorFlow。Covalent促进这些框架的使用通过显示数据集的MRS。
数据科学家使用数据主要在两个方面:
训练ML模型:MT想要一些摘要(和更多重要的不可逆的)数据集的结构,通过运行多样流行的ML模型,比如随机森林,神经网络,或SVM。
总结统计:MT想要提取总结统计。比方说:MT想要知道公司A支付不同族裔的平均薪水。

结果检测模型。在训练传统ML模型,多个方法在结果检测中被采用:
1)围绕着存在的流行模型结构和模型性能方法的封装器。确保只有这些元素能作为结果返回。
2)严格限制返回结果的规模。
3)索引随机选择来制止多样的数据拷贝。
4)使用不同的隐私算法进行预处理。
在附录B中,我们展示一些在图片数据上训练神经网络的模型训练代码的例子。

代码和图片 TODO

提取统计资料的情形中,更多短缺的方法被采用:
1)提供一个官方的分组和映射库。所有可能的计算都被限制在这个里面的函数。
2)一个自动K-匿名算法【11】被应用数据集上去确保急切的隐私保护。
在上述代码片段2的示例中,我们论证了MT如何使用CovaSecureSummary撰写简易的统计运算模型,只从加利福尼亚州的业主的个人信息记录中获取隐私保护的汇总表。

F.时序安排
在很多情况下,模型训练者想要使用map-reduce范例在一个数据集上并行运算。我们允许这个和其他的分布计算范例并提供一样的隐私保护。

设计原则
每一个工作都指派给单一的SGX主机矿工。
在云计算环境中每一个工作都有一个控制实例。所有范围内外的通信都按照这个控制实例的路径发送。这最小化了攻击面。
这个单一的控制实例能换到任何分部计算范例。绝大多数使用的框架是Apache Hadoop和Spark,但是其他利基框架同样为我们的设计兼容。
我们每个ec2实例只允许1个计算任务。这可以防止由于vm转义导致的数据缺陷。产生ec2实例所花费的时间与实际计算所花费的时间相当。
Map reduce。图6是一个细节的设计图表显示了Covalent数据网络是如何兼容AWS Elastic Map-Reduce.
任务分配相关的参数通过各种结构体来关联,他们的细节在图标的底部。
SGX主机挖矿者的营私保护继续存在于控制器实例,其后转移到每一个ecs实例。通信的传递经过控制实例为了最小化攻击面。

5.Covalent X
Covalent X是一个未来的隐私优先的去中心化数据网络。它是未来的因为它依赖有希望的且仍然未成熟的技术来达到完全的免信任构建。
Covalent X不需要任何行人构建,因此它是完全去中心化的。
Covalent X使用同态加密来确保数据和模型安全。
Covalent X使用零知识证明来提交计算证明。
在这个章节,我们以下列顺序来推进:
1)介绍同态加密
2)介绍零知识证明
3)讨论一个对于FHE和ZKP的最大问题的全面的可能性分析
4)提出一个全面的使用FHE和ZKP的系统设计来达到隐私优先的去中心化数据网络,同时完整的免信任设置

A.同态加密:隐私
同态加密仅仅使用密码学来解决数据隐私问题。给予数据集D,模型f所有者想执行计算f(D)。然后,因为数据所有者D因为担心隐私而不愿意分享数据,计算就不能执行,数据依然被锁定。对于同态加密来说,首先加密数据-E(D),然后发送给模型训练者来计算f(E(D))。这种形式的计算不可思议的地方是能确保f(E(D))=f(D)。模型训练者不会看到D应为它是加密的,但是它可以继续运行、执行需要的计算并获得同样的结果!
更正规的说,HE是一种加密形式,它指示密文计算的结果与明文上的计算的解密结果相匹配。符号E(X)被用来指代加密消息X。
一个加密模式E被认为对于某个符号@是同态的,当且仅当E(a@b)=E(a)@E(b)。如果加密模式是同态的,同时支持加法和乘法操作,那时它可以支持在密文上面的任意计算。这就是全同态(FHE)。Craig Gentry[12],使用基于格的密码学,描述了完全同态加密方案的合理构造。
格基础的FHE。理论上,Gentry的FHE构建包含几个关键的中间步骤:
构造支持低次多项式估计的“有些同态”方案
将解密“压缩”到低次多项式
稍微修改方案使其成为“启动技术”(即能够评估自己的解密电路以及另外一个操作)

我们需要以下理想格的数学概念。设f∈Z[x]为n次的单变量多项式,取商z [x] / f。对于理想的I⊆Z[x]/f,理想的晶格是这样的整数晶格L(B)⊆Z^n。于是
B = {g mod f : g∈I }
形式上加密模式E有6个算法:KeyGenE,EncryptE,DecryptE,SplitKeyE,ExpandCTE,EvaluateE,EvaluateE以公钥pk,一个电路C∈CE和一个密文W作为输入评估E的正确性。进一步的,我们有计算复杂度的需求,这些计算都必须是安全参数入的多项式。
现在,核心的算法-加密算法E函数如下所示:
KeyGenE/SplitKeyE/EncryptE/ExpandCTE/DecryptE可在网络中寻找。
在Gentry、Brakershi和Vaikuntanathan[13]进一步的合作下,产出了第二代FHE系统。FHE主要的问题仍然是效率极低。最近,Fan和Vercauteren[14]在LWE问题的基础上移植Brakerski的FHE到ring-LWE设置并且介绍两个重复线性化的优化版本,不仅结果在更小的重复线性钥匙上面,也达到了更快的计算。我们仍然乐观一个突破将在未来5-10年到来。

B.零知识证明:计算证明
在类似完全去中心化和免信任的Covalent X中,游戏系统的激励很强,所以任何算力或者其他事情的贡献需要被证明。进一步的,在关注隐私之外,证明必须最小化且不会泄露计算的内容。这看起来似乎是一个不可能完成的任务,除非使用零知识证明。
正式来说,一个ZKP是证明者能向其他验证者证明一个声明是真的而不需要暴露除了这个声明是真的之外的任何信息。它必修满足3个属性:
完整性。如果声明是真的,诚实的证明者将确信诚实的证明者的真相。
公正性。如果声明是假的,没有恶意的证明者能让诚实的验证者相信那是真的,除了非常小的概率。
零知识。如果声明是真的,没有验证者能学到出了那个声明是真的之外的更多信息。

zk-SNARK。Zcash协议[15]。
zk-STARK。Ben-Sasson提出的坦率ZKP[16],它不依赖信任构建。

C.可行性分析
在计算理论水平,FHE和zk-STARK都面临一样的挑战:多项式插值和评估(前者效果更差)。因此,我们将可行性分析简化为单独的zk并获得有用的数量级下限。
在时间和空间复杂度的最大的瓶颈是执行跟踪的低度扩展性能。LDE通常通过多项式插值计算,然后是其逆运算 - 多点多项式评估步骤。
Ben-Sasson[16]运行一个DNA简况匹配程序来估算复杂度。程序的尺寸描述如下表3。表4中显示了复杂度结果。通过这些结果,调用总计90954个乘法门需要消耗6分钟和131G的内存。


屏幕快照 2019-01-19 下午12.22.29.png

Toy机器学习算法。OLS回归是机器学习和AI的鼻祖。我们有兴趣知道可以运行的OLS,其中zk-STARK计算证明仍然可以生成。
接下来做了一个实验,结果不太理想。
这些结果清晰的表明这些算法还没有准备好作为商业生产,我们认为它们尤其值得估计,特别是意识到我们面临的难题。世界上有很多杰出的想法在其上工作。更多地可验证计算和缩短证明长度是有希望的[17]。近期的进展来自IBM的Halevi[18]加速了线性变换达75倍。

D.系统设计
在无计算设置中,数据能被简单的通过FHE加密并被直接交易。FHE来保证数据隐私。在第三方计算设置中,一个矿工能在FHE加密的数据上计算并提交一个ZKP计算证明来确认交易。
无计算设置。通过FHE,数据能被销售就像在Amazon中的任何元素一样。数据隐私在销售、流通和使用中被自然的保护。
可以设想以数据为中心的范例,即使是微数据产品也可以方便地以多种方式(流媒体,许可,交换等)向多方(模型培训师,数据聚合器,其他数据所有者)销售数据。看图片7。一个数据网络将被标准化:隐私数据以高速度和高流动性流通各种系统,并一直保持隐私安全。


屏幕快照 2019-01-19 下午5.30.34.png

可追溯所有权在这个范例中被置于中心舞台。数据所有者将在所有数据的流通和使用中得到回报。作为一个公开账本,区块链技术是解决这个问题的大的部件。Steem,BAT,Factom都是主动触及这个领域的解决方案。

三方计算设置。在很多解决方案中,数据所有者可能不想转移加密数据给对方。这可能因为两方面因素:
数据所有者有版权问题或希望按使用付费收费。
将计算逻辑直接写在智能合约上是理想的方案。这是情景包括私人拍卖,在线诊断,私人期货合约等。在这些情景下,允许第三方进行计算并提交证据更为直观。
图片8是整体设计。


屏幕快照 2019-01-19 下午6.10.34.png

如下是一个更严厉的讨论。
数据所有者:DOi和同态加密的输入DiFHE以及公开的输入Dipub
算力供应者:C,返回计算结果Ri

计算过程经历三个阶段。这些阶段被严格的增长的区块时间T所限制。这对于防止因故障导致中途中止而言非常重要。
1)初始化。每一个DOi提交存款Dicoin并加密输入DiFHE到智能合约中。T1被用来限制这个操作。中途中止导致退款给各方。
2)计算。C收到以上所有数据,然后执行智能合约。
3)返回。在Oi产生以后,C构建zk-STARK的计算证明Pc来表明Ri得到了正确计算。每一个Ri被相应的DOi的公钥Di^pub加密并返回。证明和加密结果在限制时间T2内返回,否则合约就流产。Pc被智能合约验证,资金相应的得到分配。每一个DOi使用自己的私钥解密返回的结果Ri。
注意无论是FHE还是zk-STARK在处理中都不依赖信任设置,因此处理在无信任环境中是完整去中心化的。

6.链,挖矿和通证经济
链。扩展性是区块链首要的关注点。传统的扩展性的最佳评估是交易数量,一个链能提供的TPS。计算扩展性的最佳评估指标是执行智能合约的计算逻辑的gas消耗。Covalent主要的贡献在改进计算扩展性。
计算扩展性。CVM和它相关的计算证明设计(TEE或ZKP)能使我们的链拥有本质的无穷计算扩展性。无论计算多么大或者自定义,都可以被我们的智能合约系统最高的可能效率执行-一个节点计算,剩余的仅仅需要来验证。这是以太坊很大的短板。
传统扩容。在无许可的方面,即将来临的POS四通提供了一个对于无许可链的有希望的扩展方案。不断发展的状态通道和切片有强大的希望。在许可方面,BFT被证明是扩展性的方案。Covalent将首先采用Tendermint的许可制BFT共识算法在选择一个扩展的无许可POS共识算法被证明的安防出现之前。
挖矿。在目前的方案中,Covalent的SGX主机款共将通过执行两个函数来得到回报。
生产区块和验证交易。
托管硬件飞地并促进计算实例的产生。
在未来的方案中,Covalent的矿工将从两个函数赚取收入。
生产区块和验证交易。
提供计算资源作为第三方电脑。

科学的通证经济。新的tokens通过挖矿产生。存在的tokens以存款和支付的形式在系统中流转。
通过没收处罚存款来回收代币。通证经济设计的目标是确保y一下主要角色的恰当行为。
提供算力和环境的矿工因为他们验证交易和托管硬件安全区获得回报。
用户在交易中存款和支付。在违反规则的情况下,存款被没收并回收到令牌供应中。
开发者贡献流行的合约和dapps,收获技术功能栈和带来新的用户。
新用户通过营销活动获得奖励,成为社区的一部分。

引用和附录不详述。附录是一个关于机器学习的初始读本。

你可能感兴趣的:(Covalent-一个隐私保护的数据使用协议)