Verifieable FHE(VFHE):使用Plonky2来证明Zama TFHE的“Bootstrapping的正确执行”

1. 引言

Zama团队2024年论文Towards Verifiable FHE in Practice: Proving Correct Execution of TFHE’s Bootstrapping using plonky2 中:

  • 首次阐述了,在实践中,将整个FHE bootstrapping操作,使用SNARK来证明。
  • 在其相应的https://github.com/zama-ai/verifiable-fhe-paper(Rust,Plonky2)开源代码实现中,为该bootstrapping操作设计了算术电路,并使用Plonky2进行了证明:
    • 在保证功能完整和安全的情况下,对TFHE的programmable bootstrapping中的操作进行了少量调整,使其能在算术电路中更高效地表示。
    • 在AWS C6i.metal实例上,证明该电路用时20分钟。
    • proof size约为200kB。
    • 验证该proof用时少于10ms。
    • 为实现memory-efficient,利用了(bootstrapping操作)该计算的结构化优势,以及,Plonky2的递归IVC能力,实现了递归证明。

Fully Homomorphic Encryption (FHE) 全同态加密技术:

  • 支持对密文输入做任意计算,生成密文输出。
  • 对密文输出解密的结果,等于,直接对明文输入做相应计算的结果。

Succinct Non-interactive ARguments of Knowledge (SNARKs) 密码学技术:

  • 支持Prover,让Verifier信服,某任意计算执行正确。【数据必须是明文的】

FHE和SNARKs各有所短:

  • FHE自身无法保证该计算的正确性,因此也无法提供任何计算完整性保证,使得在真实世界的FHE部署时,存在可疑的隐私攻击问题。
  • SNARKs可保证计算完整性,但需要知悉数据的明文信息,来证明基于这些数据的计算是正确的,对于某些特定隐私保护应用场景,是命令禁止提供数据明文信息的。

FHE和SNARKs相结合:

  • 可获得verifiable FHE(VFHE):支持Prover,让Verifier信服,基于密文数据的任意计算执行正确。

VFHE的迷人之处在于,可将该技术用于如下场景:

  • 改进区块链协议,以支持私有交易。
  • 解决计算外包中的安全问题,可用于替换安全硬件模块,将对硬件厂商的信任,转移至,对密码学假设的信任。

尽管这在理论上听起来不错,但实践中的核心问题在于:

  • 相比于明文运算,FHE会引入大量的开销。
  • 相比于待证明的计算本身,SNARKs Prover计算量要贵得多。

因此,核心在于:

  • 如何让VFHE具备实用性

经典FHE方案包括:

  • 1)密文操作:对明文的同态运算。通常可高效计算,且可使用SNARK证明。
  • 2)bootstrapping操作:最昂贵的操作。

若不熟悉FHE,可能对bootstrapping操作不了解,详情可参看:

  • Zama团队2022年5月4日博客 TFHE Deep Dive - Part I - Ciphertext types

可简单将bootstrapping操作看成是:

  • 一种密文管理操作。
  • 支持某program基于密文数据做无限计算。

bootstrapping操作通常为FHE方案中最昂贵的操作,因此,实现真正实用VFHE系统的最大障碍在于:

  • bootstrapping操作。

因此,VFHE系统实用性的关键,在于:

  • 对于FHE真实参数(而不是toy参数),使用SNARK,高效证明bootstrapping,的能力。

基于此动机,Zama团队2024年研究并发布了论文Towards Verifiable FHE in Practice: Proving Correct Execution of TFHE’s Bootstrapping using plonky2 。

Zama团队专注于TFHE:

  • TFHE提供了非常轻量级的programmable bootstrapping (PBS)。

尽管TFHE的bootstrapping,比其它FHE方案中的bootstrapping,计算开销更低,但其也足够复杂,使得若直观对其做SNARK-ifying操作,将导致Prover需要巨大的内存,对大多数应用来说是不切实际的。

  • Zama团队曾实践过,使用FHE toy参数(不是真实参数),在具有128GB RAM的AWS实例上运行,直接内存溢出。

这就意味着,直接对TFHE的bootstrapping做SNARK-ifying操作,不是高效的方案。为此,Zama团队专注于利用bootstrapping操作中的结构化特性:

  • TFHE的PBS中,包含一个具有多次(约600到700次)迭代的循环
  • SNARKs技术可使用Incrementally Verifiable Computation(IVC) 来高效证明该循环,而不是将该循环展开为一个大的电路。所谓IVC,是指一次证明一个迭代,而不是一次证明所有迭代。

Zama团队开源代码https://github.com/zama-ai/verifiable-fhe-paper(Rust,Plonky2)中,使用Plonky2实现了基于递归的IVC方案,并将该IVC方案用于了TFHE PBS。其中Plonky2支持非常高效的递归,适用于本场景。

  • 1)每次迭代中,会生成单个proof,该单个proof对应为:
    • 1.1)该次迭代的实际计算
    • 1.2)之前迭代的proof的verification
  • 2)在循环的最后一次迭代,所生成的final proof,可让Verifier信服,之前的中间态proof均是正确生成和验证通过的。

因此,可将传统PBS计算的循环操作,转换为统一算术电路格式——可使用IVC来证明该统一格式的算术电路。

Zama团队对其TFHE进行了少量调整,使其更适合于基于有限域的算术电路模型。如:

  • 将密文的modulus,修改为Plonky2原生使用的素数
  • 修改了key switch,使得可通过external product来执行

需要调整参数,但确保这些参数仍是正确的且是安全的(目标是128-bit安全性)。PBS的循环迭代电路,如下图所示:【其中忽略了检查之前迭代proof的verifier电路】
在这里插入图片描述
该电路会从前一迭代中接收loop counter n n n,以及前一迭代的结果,作为输入。该loop counter n n n值,决定了对前一迭代结果应用什么函数。该函数:

  • 要么为:简单的negacyclic polynomial rotation (“Rotate Poly”)
  • 要么为:在该input及其negacyclic rotation 之间有一个密文multiplexer(“Rotate Poly” + “External Product”)
  • 要么为:某key switching操作(通过“External Product”)。

该PBS中包含了以上3种操作。其中:

  • 对negacyclic polynomial rotation (“Rotate Poly”) 的子电路,以及,对external product的子电路,支配了整个电路size,从而支配了Prover开销。

详细的实现,可参看论文Towards Verifiable FHE in Practice: Proving Correct Execution of TFHE’s Bootstrapping using plonky2。

借助基于IVC的实现,所需内存量降了一个量级,使得消费级笔记本也可运行该Prover。在经典AWS示例中,计算proof需约20分钟,仍相对较长,但已接近实用水平了。

SystemProver Time (min)Verifier Time (ms)
M2 MacBook Pro - 8 cores, 24GB485
Hpc7a.96xlarge - 192 cores, 768GB188

同时,Zama团队将其Plonky2 IVC实现,与通用zkVMs(RISC0和SP1)对比发现,Zama团队的IVC方案性能要高2个数量级。

因此,Zama团队认为:

  • VFHE处于实用化的边缘。
  • 证明FHE方案中最困难部分(bootstrapping),可使用具有非常合理计算资源的SNARK来证明。
  • 这是一个重要的里程碑,也是一个开始。
  • 仍有许多途径待探索,如:
    • 如何将Prover,由PBS电路,扩展到,完整的FHE电路?
    • 是否有改进基于通用zkVM的实现的技术?是否有更适合FHE的zkVM?
    • 使用基于folding的IVC(如见2024年论文Mangrove: A Scalable Framework for Folding-based SNARKs),而不是基于递归的IVC,能否获得更好的效果?
  • 坚信VFHE方案将对隐私技术产生巨大影响,并将解锁众多惠及所有人的应用程序。

参考资料

[1] Zama团队2024年5月5日博客 Verifiable FHE Bootstrapping using SNARKs
[2] Zama团队2024年论文Towards Verifiable FHE in Practice: Proving Correct Execution of TFHE’s Bootstrapping using plonky2

FHE系列博客

  • 技术探秘:在RISC Zero中验证FHE——由隐藏到证明:FHE验证的ZK路径(1)
  • 基于[Discretized] Torus的全同态加密指引(1)
  • 基于[Discretized] Torus的全同态加密指引(2)
  • TFHE——基于[Discretized] Torus的全同态加密 代码解析
  • 技术探秘:在RISC Zero中验证FHE——RISC Zero应用的DevOps(2)
  • FHE简介
  • Zama TFHE-rs
  • Zama TFHE-rs白皮书(1)
  • Zama TFHE-rs白皮书(2)
  • ZK系统内隐私 VS. FHE系统内隐私
  • ZK vs FHE
  • FHE全同态加密简介
  • FHE与TEEs区别:Downfall攻击
  • Greco:使用ZKP来证明FHE参与方的RLWE密文格式正确
  • FHE入门

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/739543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Appium+python自动化(二十一)- 让猴子按你指令大闹手机,让我们都成为耍猴高手(超详解)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 简介  一年一度的暑假如期而至,每年必不可少的,便是《西游记》这部经典电视连续剧的播出,作为一名90后,对于这部经典剧的情谊&#xff…

探索蓝牙协议的奥秘:用ESP32实现高质量蓝牙音频传输

蓝牙(Bluetooth)是一种短距离无线通信技术,广泛应用于各种电子设备之间的数据传输。自1994年由爱立信公司首次提出以来,蓝牙技术已经经历了多个版本的更新和改进。本文将详细介绍蓝牙协议,并通过一个具体的项目——使用…

自然语言处理:第三十九章 中文测评榜单-CEval

文章链接:2305.08322 (arxiv.org) 官网: C-Eval: 一个适用于大语言模型的多层次多学科中文评估套件 (cevalbenchmark.com) 主页: hkust-nlp/ceval: Official github repo for C-Eval, a Chinese evaluation suite for foundation models [NeurIPS 2023] 在人工智能领域&#…

Vue 项目居然有4种包管理器,你了解吗?

在vue项目中,用于依赖包管理的主流工具居然有四种,这是重复造了多少轮子呀。作为主要从事后端开发的我来说,这真是不可思议。Java的依赖包管理工具主要就两种,Maven和Gradle,而且据我多年实际开发经验来看,…

MySQL集群高可用架构之MySQL InnoDB Cluste

今天我将详细的为大家介绍Centos 7.5 基于 MySQL 5.7的 InnoDB Cluster 多节点高可用集群环境部署的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!! 一、MySQL InnoDB Cluster 介…

Go 在结构体中定义下划线(_)字段原来还有这个特殊用途?

作者:陈明勇 个人网站:https://chenmingyong.cn 文章持续更新,如果本文能让您有所收获,欢迎点赞收藏加关注本号。 微信阅读可搜《程序员陈明勇》。 这篇文章已被收录于 GitHub https://github.com/chenmingyong0423/blog&#xff…

ECMAScript6介绍及环境搭建

这实际上说明,对象的解构赋值是下面形式的简写。 let { foo: foo, bar: bar } { foo: ‘aaa’, bar: ‘bbb’ }; 也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而…

【经验分享】免费版虚拟机VMware Workstation Pro 17下载方式

【经验分享】免费版虚拟机VMware Workstation Pro 17下载方式 前言一、免费虚拟机下载方式二、 安装过程总结 前言 我真的是服了,现在的CSDN时效性为什么这么差了。都快一个月了还没有博主更新个人免费版虚拟机VMware Workstation Pro,甚至很多人还不知…

【数据结构】线性表:顺序表

文章目录 1. 线性表2. 顺序表2.1 概念及结构2.2 接口实现2.3 顺序表的问题及思考 1. 线性表 线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是…

element-ui table使用type=‘selection‘复选框全禁用-全选禁用_elementui table禁用全选

问题点:当条件数据全被禁用时,全选按钮不是禁用的状态。 复选框全被禁用时,全选按钮将被隐藏 问题总结: 当条件数据全被禁用时,全选按钮也变成禁用的状态,而不是隐藏。有会做的小伙伴希望跟帖。谢谢&#x…

Java基础的重点知识-08-接口、多态

文章目录 接口多态 接口 从之前的章节中,我们了解到类的内部封装了成员变量、构造方法、成员方法,那么接口的内部主要就是封装了方法,包含了抽象方法(JDK7及之前),默认方法和静态方法(JDK8&…

思看科技冲刺上市疑云:募资用途遭强烈质疑,IPO前突击分红

近日,思看科技(杭州)股份有限公司(下称“思看科技”)已更新提交2023年最新财务资料,重启科创板IPO进程。贝多财经了解到,思看科技的上市申请于2023年6月获上交所受理,目前已进入问询…

yarn:终极包管理器指南 - 提高您的项目效率和性能

Yarn使用教程大纲 一、介绍1.1 什么是Yarn1.2 Yarn的优势1.3 Yarn与npm的比较 二、安装Yarn2.1 Windows安装Yarn2.2 macOS安装Yarn2.3 Linux安装Yarn2.4 注意事项 三、初始化项目3.1 在项目中使用Yarn3.2 创建新项目3.3 在已有项目中使用Yarn 四、添加依赖4.1 添加依赖4.1.1 安…

【Pandas驯化-15】Pandas中几个特征工程函get_dummies、factorize、diff、rank技巧

【Pandas驯化-15】Pandas中几个特征工程函get_dummies、factorize、diff、rank技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内…

磨坊中年轻的面包师

磨坊中年轻的面包师 The young baker in the mill 每天清晨(early morning),喜欢裸睡(sleep naked)的面包师(baker)在面包房(bakery)中醒来(wake up)后,就会到湖(lake)边取水,在刷(brushing)牙洗(washing)脸后,他就会开始烘焙(ba…

Linux_应用篇(22) 音频应用编程

ALPHA I.MX6U 开发板支持音频,板上搭载了音频编解码芯片 WM8960,支持播放以及录音功能!本章我们来学习 Linux 下的音频应用编程, 音频应用编程相比于前面几个章节所介绍的内容、 其难度有所上升, 但是笔者仅向大家介绍…

【源码】含70演示高转化率Magento2外贸时装女装跨境电商模板V1.2.2

MagMog是下一代最高转化率和可扩展的跨境电商Magento2主题,让您几乎可以立即上手。这是一个终极解决方案:主题附带一系列电子商务功能,可以启用您商店的隐藏功能,并且您无需支付任何额外费用。 100% 免费。 MagMog从定制设计到内…

焦化超低排平台组成部分

焦化行业作为重工业的重要组成部分,其环保问题一直备受关注。近年来,随着环保意识的提升和技术的不断进步,朗观视觉焦化超低排平台应运而生,成为推动焦化行业绿色发展的重要力量。本文将深入剖析焦化超低排平台的组成部分&#xf…

《梦醒蝶飞:释放Excel函数与公式的力量》4.3常用OR函数

Excel中的OR函数是一种逻辑函数,它用于检查多个条件中至少有一个是否满足。如果任何一个条件为TRUE,OR函数将返回TRUE;如果所有条件都为FALSE,OR函数将返回FALSE。 1) OR函数的基本语法是:OR(logical1, [logical2], .…

超声波眼镜清洗机是交智商税吗?四样超卓超声波清洗机独具特色

相信大家都知道超声波清洗机,每次眼镜脏的时候,去眼镜店里让老板帮忙清洗,她们用的就是超声波清洗机,通过超声波的原理深入物品深处清洁,清洁效果非常好。相对手洗的方式,超声波清洗机能够保护镜片在清洗过…