论文笔记:Mystique: Efficient Conversions for Zero-Knowledge Proofs with Applications to Machine Learnin

2023-11-08

论文介绍

Mystique: Efficient Conversions for Zero-Knowledge Proofs with Applications to Machine Learning是UseNix信息安全顶会2021的论文
这篇论文目的是探索ZK算法在Machine Learning的应用和一系列优化工作

ZK在人工智能上的应用讨论

零知识(ZK)证明允许秘密证人的一方在不透露任何额外信息的情况下证明该证人的某些陈述。那么零知识证明可以适用于以下人工智能场景:

  • 使用ZK协议,发现模型中的错误(例如,逃避攻击)的白帽黑客可以在零知识中证明该错误的存在,例如,他们可以证明M(x1)≠ M(x2)的两个closed输入x1和x2的知识。
  • 使用ZK协议,模型所有者可以公开提交一个模型,然后在零知识的情况下证明提交的模型应用于用户提交的输入,从而产生所要求的结果。
  • ML模型可以在私有测试数据上进行评估。在这里,测试数据的所有者可以公开承诺其数据;然后,模型培训师可以将其模型(使用独立的训练数据开发)发送给数据所有者,数据所有者在本地评估模型的准确性。数据所有者可以使用ZK协议来证明提交的模型是在提交的数据上执行的。
    ZK在人工智能上的应用
    ZK在人工智能上的应用

现在仍然存在的问题

问题:最先进的zk-SNARK要求证明器的内存与语句大小成比例
最先进的zk-SNARK要求证明器的内存与语句大小成比例

ZK对于人工智能应用场景的适配和优化工作

适配工作

  • 算术/布尔值。受安全计算设置中类似想法的启发,我们设计了优化的协议,以在基于sVOLE的零知识的上下文中有效地在算术值和布尔值之间进行转换(以支持混合模式电路)。

  • 已提交/已验证的值。为了允许在ZK证明中使用公开提交的值,我们设计了一个有效的协议,该协议将这些值转换为由证明者和验证者私下认证的值,因此可以直接在基于sVOLE的ZK协议中使用。

  • 定点/浮点值。我们为符合IEEE-754标准的浮点运算设计了电路,并设计了有效的协议。

适配工作架构图

优化

除上述之外,我们还为矩阵乘法设计了一个有效的ZK证明,使得所需的私有乘法的数量在矩阵大小中是次线性的。与之前最著名的ZK矩阵乘法证明相比,我们的ZK协议将执行时间提高了7倍。

前置知识:sVOLE和位乘法电路

M定义

M是引入 δ \delta δ 后的一个模糊值

sVOLE

论文里的 F q F_q Fq素域满足以下性质:
F p 满足: G F ( p ) 中所有非零元素都存在逆元 G F ( p ) 内所有的运算都是模 p 实现的 F_p满足:\\ GF(p)中所有非零元素都存在逆元\\ GF(p)内所有的运算都是模p实现的 Fp满足:GF(p)中所有非零元素都存在逆元GF(p)内所有的运算都是模p实现的

在这里插入图片描述

例如对于:
素域 G F ( 5 ) = { 0 , 1 , 2 , 3 , 4 } , 即模 5 那可以得到 a = 2 的加法逆元 − a 为 3 ( 2 + ( 3 ) m o d 5 = 0 ) a = 2 的乘法逆元 a − 1 为 3 , ( 2 × ( 3 ) m o d 5 = 1 ) 素域GF(5) = \{0,1,2,3,4\},即模5 \\那可以得到a=2的加法逆元-a为3(2+(3)mod5=0) \\a=2的乘法逆元a^{-1}为3,(2\times(3)mod5 =1) 素域GF(5)={0,1,2,3,4},即模5那可以得到a=2的加法逆元a3(2+(3)mod5=0)a=2的乘法逆元a13,(2×(3)mod5=1)

在这里插入图片描述

论文里的 F q k n {F_{q^k}}^n Fqkn扩域( F q k F_{q^k} Fqk上的n维向量空间),参数就是均匀的随机n个值

扩域

sVOLE

sVOLE位电路乘法门:证明z = x * y (x,y,z是[x],[y],[z]其中的一位,可以认为是索引为i的乘法门电路)
双方可以通过随机线性组合一次检查上述所有N个方程:

双方可以通过随机线性组合一次检查上述所有N个方程
双方可以通过随机线性组合一次检查上述所有N个方程述

现在把sVOLE作为一个黑盒,考虑怎么把它用在人工智能的矩阵运算中呢?

ML应用程序的优化

优化
这里的思想就是把 n × m n\times m n×m维度的证明优化成向量程度的证明:

[ A ] ⋅ [ B ] = [ C ] ⇒ u T ⋅ [ A ] ⋅ [ B ] ⋅ v = u T ⋅ [ C ] ⋅ v [A]·[B] = [C] \\\Rightarrow u^T· [A]·[B]·v =u^T· [C] ·v [A][B]=[C]uT[A][B]v=uT[C]v
左乘一个均匀随机分布的向量 u ∈ ( F q k ) n u \in ( F_{q^k})^n u(Fqk)n,右乘均匀随机向量 v ∈ ( F q k ) l ) v \in (F_{q^k})^l) v(Fqk)l)
⇒ ( u T ⋅ [ A ] ) ⋅ ( [ B ] ⋅ v ) = u T ⋅ [ C ] ⋅ v \Rightarrow (u^T· [A])·([B]·v) =u^T· [C] ·v (uT[A])([B]v)=uT[C]v
[ x ] T = [ u T ⋅ A ] ∈ ( F q k ) m , [ y ] = [ B ⋅ v ] ∈ ( F q k ) m , [ z ] = [ u T ⋅ C ⋅ v ] ∈ F q k [x]^T =[u^T· A]\in ( F_{q^k})^m,[y]=[B·v]\in ( F_{q^k})^m, [z]=[u^T· C·v] \in F_{q^k} [x]T=[uTA](Fqk)m,[y]=[Bv](Fqk)m,[z]=[uTCv]Fqk
⇒ [ x ] T ⋅ [ y ] = [ z ] \Rightarrow [x]^T·[y] = [z] [x]T[y]=[z]
经历过以上转换后就转化成了sVOLE的位验证电路,我们只需要采样一些随机向量u和v就可以完成验证,与之前最著名的ZK矩阵乘法证明相比,该论文的ZK协议将执行时间提高了7倍。

论文结论

ResNet-101推理的执行时间分解。顶栏用于公共模型私有特征推断;底部的条用于私有模型私有特征推断。网络带宽被限制为200 Mbps。
ResNet-101推理的执行时间分解
零知识神经网络推理的性能。所有模型都使用CIFAR-10数据集进行训练。
零知识神经网络推理的性能。所有模型都使用CIFAR-10数据集进行训练。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文笔记:Mystique: Efficient Conversions for Zero-Knowledge Proofs with Applications to Machine Learnin 的相关文章

随机推荐

  • 模拟电路设计(13)--- 振荡器电路原理简介

    概述 所谓振荡器电路就是一种在没有外界输入信号的情况下能自行产生周期性交变信号输出的电子电路 可以作为信号源 定时源 能量变换电路 频谱变换电路等等 普遍应用于通信电子系统 振荡器的种类很多 按原理分 反馈振荡器和负阻振荡器 按输出频率分
  • JavaBean转有序的Json字符串

    前言 随着国密算法普及 接口json加签传输对字段顺序有要求 处理代码 public static void main String args throws IllegalAccessException User user new User
  • chatgpt配合xmind制作思维导图

    原理 xmind支持将markdown文件转化成思维导图的形式 提示词 我将提供以下文章 请帮我使用Xmind工具创建一个 的思维导图 其中包含多个主题和子主题 以及叶子节点 请你提供一些Markdown格式的文本 以便与Xmind兼容 在
  • Oracle监控的关键指标(一)

    先收集一些Oracle的关键指标 最近有空的话再考虑将一些比较有代表性的监控点进行指标化 指标化的数据在通过python脚本对进行性能上监控 最终部署在目前维护的oracle数据库上 0 找使用CPU多的用户session select a
  • WSL安装教程

    wsl安装教程 引言 前期准备工作 安装wsl 第一步 第二步 检测系统版本 第三步 确定虚拟机特性 第四步 下载Linux内核的更新包 第五步 设置WSL 2作为默认版本 第六步 选择Linux发行版本并设置Linux账号 小TIPS 引
  • CocoaPods导入第三方库,提示找不到头文件的解决方法

    最近一直在了解MVVM架构模式 也知道了ReactiveCocoa框架对MVVM实现的便利与优雅 但是CocoaPods导入ReactiveCocoa框架后 却出现一个问题 就是引入头文件的时候说找不到头文件 如下图 解决方法如下 1 找到
  • Fragment详解

    Fragment有自己的生命周期 Fragment依赖于Activity Fragment通过getActivity 可以获取所在的Activity Activity通过FragmentManager的findFragmentById 或f
  • QT5.15以及QT VS TOOL安装教程

    QT5 15以及QT VS TOOL安装教程 1 QT5 15下载安装教程 点击这个链接 https download qt io 在official release online installers目录下选择exe文件下载windows
  • vue重新进页面重新加载mounted或者created中的内容

    vue的项目中 如果再次进入当前页面需要重新加载mounted方法可以使用 activated 这个方法内就可以执行需要进入页面重新加载的方法来替代mounted或者created方法 这样就可以满足不重新加载页面就可以直接将方法重新执行一
  • 打印机错误0x00000bc4的解决办法

    共享打印机在使用过程中难免会出现一些问题 比如连接共享打印机错误 提示代码0x00000bc4 这该如何解决 共享打印机出现问题是件非常麻烦的事 下面就来看看小编整理的解决办法吧 Win11连接共享打印机错误0x00000bc4解决方法 1
  • RabbitMQ:work结构

    gt 只需要在消费者端 添加Qos能力以及更改为手动ack即可让消费者 根据自己的能力去消费指定的消息 而不是默认情况下由RabbitMQ平均分配了 生产者不变 正常发布消息到默认的exchange gt 消费者指定Qoa和手动ack 生产
  • 2023Web前端面试题及答案(一)

    答案仅供参考 每人的理解不一样 文章目录 1 简单说一说事件流原理 事件流 1 事件流是指页面 接收事件的顺序 2 假设页面中的元素都具备相同的事件 并且这些个元素之间是相互嵌套的 关系 3 那么在触发一个元素的事件时候 会触发其他的元素
  • 华为od机考真题-HJ105-记负均正II(较难)

    非负数缓存 data lst 负数个数 count 0 while 1 try data int input if data gt 0 data lst append
  • 卷积核大小不一样的卷积

    这种不是33而是51的 参考这个https blog csdn net qq 37541097 article details 102926037 也就是说把中间写成 3 5 就可以了
  • Open3D:Win10 + VS2017配置Open3D(C++、python)

    累了就要打游戏 2020 08 25 15 13 10 3350 收藏 25 分类专栏 Open3D 文章标签 点云 Open3D C 版权 Open3D 专栏收录该内容 5 篇文章1 订阅 订阅专栏 20200825 今天七夕 呱呱呱 O
  • 苹果开发者账号申请教程

    只有苹果开发者账号才能上架App Store 苹果开发者需要年费 是苹果公司收的 公司 政府和企业账号申请比较复杂 如果不想麻烦 或没有visa银行卡 可以联系他们技术代申请 如果只是安装ios应用到自己手机测试 现在只需要注册一个普通的苹
  • CSDN自带编辑器语法

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • FlatBuffers使用简介

    tools flatbuffers opensource 概述 Google在今年6月份发布了跨平台序列化工具FlatBuffers 提供了C Java Go C 接口支持 这是一个注重性能和资源使用的序列化类库 相较于Protocol B
  • POI高级使用法则

    各位兄台 想必经过昨日好梦 早已精神饱满 请允许小编接听上回 讲解POI进阶功法 昨日奇闻 POI搞定电子表格 我们经过昨日的学习 懂得了POI基本的读写操作 今日让我们进一步看一下POI的高级使用方法 壹 我们知道对于Excel是含有03
  • 论文笔记:Mystique: Efficient Conversions for Zero-Knowledge Proofs with Applications to Machine Learnin

    论文笔记 Mystique Efficient Conversions for Zero Knowledge Proofs with Applications to Machine Learning 论文介绍 ZK在人工智能上的应用讨论 现