Concrete v2.8:与TFHE-rs的互操作性及自动模块追踪

  • ZamaFHE
  • 发布于 2024-10-09 14:24
  • 阅读 20

Concrete v2.8版本发布,主要更新包括: Concrete与TFHE-rs的互操作性,允许开发者在两者之间转换整数,利用各自的优势;自动模块追踪功能,简化了模块编译的流程;以及新增了多个教程,展示了FHE和Concrete在实际应用中的用例。此外,新版本还包括各种优化和错误修复,尤其是在Concrete GPU运行时,提高了FHE评估的速度。

博客

/

公告

Concrete

Concrete v2.8: 与 TFHE-rs 的互操作性和自动模块追踪

2024 年 10 月 8 日

-

Quentin Bourgerie


我们很高兴地宣布 Concrete v2.8 的发布,其中包含强大的新功能和改进。此更新引入了两项主要增强功能:TFHE-rsConcrete 之间的互操作性 以及自动模块追踪,从而可以更轻松地微调模块编译。此外,我们还对文档进行了许多改进,包括展示真实世界用例的新教程。Concrete v2.8 还包括各种优化和错误修复,尤其是在 Concrete GPU 运行时中,这使得全同态加密 (FHE) 评估更快。与往常一样,你可以在完整的发行说明中找到所有详细信息、性能改进和错误修复。

Concrete 与 TFHE-rs 的互操作性

Zama 拥有两个领先的 FHE 技术平台:Concrete 和 TFHE-rs,每个平台满足不同的需求。Concrete 针对小整数(约 8 位)进行了优化,并采用了高级优化技术,例如降低位宽、划分计算图和微调密码参数。相比之下,TFHE-rs 使用静态密码参数集处理较大的整数(最多 128 位)。

这两个平台都具有独特的优势,通过 Concrete v2.8,我们引入了 TFHE-rs 和 Concrete 之间的互操作性,允许开发人员在 Concrete 和 TFHE-rs 之间转换整数,从而充分利用这两种工具。

以下示例展示了如何使用此互操作性,你可以在互操作性文档中找到完整的说明。

## A function which take two TFHE-rs integer convert into concrete representation, make a computation then convert the result inro TFHE-rs integer
# 一个函数,它接受两个 TFHE-rs 整数,转换为 concrete 表示,进行计算,然后将结果转换成 TFHE-rs 整数
def compute(tfhers_x, tfhers_y):
      ####### TFHE-rs to Concrete #########
      # TFHE-rs 转换为 Concrete
      x = tfhers.to_native(tfhers_x)
      y = tfhers.to_native(tfhers_y)
      ####### Concrete Computation ########
      # Concrete 计算
      res = your_function_optimized_by_co(x, y)
      ####### Concrete to TFHE-rs #########
      # Concrete 转换为 TFHE-rs
      tfhers_res = tfhers.from_native(res, tfhers_type)
      ####### Concrete to TFHE-rs #########
      # Concrete 转换为 TFHE-rs
      return tfhers_res

你可以像在 Concrete 中一样编译此函数,使用 TFHE-rs 整数作为输入集:

compiler = fhe.Compiler(compute, {"tfhers_x": "encrypted", "tfhers_y": "encrypted"})
inputset = [(tfhers_int(randint(128)), tfhers_int(randint(128))) for _ in range(100)]
circuit = compiler.compile(inputset)

此功能目前处于 beta 版,虽然我们不断改进它,但随着我们扩展其功能,预计 API 会发生变化。请注意,Concrete ML 尚不兼容 TFHE-rs,但我们正在努力解决此问题,预计在第四季度末之前会发布更新。

更好的模块

在 Concrete v2.7 中,我们引入了模块,允许你同时编译多个函数。但是,为每个函数手动定义组合规则和输入集可能很复杂且容易出错。为了解决这个问题,Concrete v2.8 引入了自动模块追踪,从而可以更轻松地根据 Python 代码的自然流程定义和微调模块。

在以下代码段中,你可以看到模块的定义和管道的定义,该管道允许编译器了解模块的使用方式,然后计算每个函数的组合规则和输入集。

from concrete import fhe
from fhe import Wired

## Module declaration without composition rules
# 没有组合规则的模块声明
@fhe.module()
class MyModule:
      @fhe.function({"x": "encrypted"})
      def increment(x):
            return (x + 1) % 100
      @fhe.function({"x": "encrypted"})
      def decrement(x):
            return (x - 1) % 100
      @fhe.function({"x": "encrypted"})
      def decimate(x):
            return (x / 10) % 100

## Define a unique inpuset for the whole module
# 为整个模块定义一个唯一的输入集
inputset = [np.random.randint(1, 100, size=()) for _ in range(100)]

## Iterate over the inpuset and write a natural Python code with composition
# 迭代输入集并编写具有组合的自然 Python 代码
with MyModule.wire_pipeline(inputset) as samples:
     for s in samples:
            MyModule.increment(MyModule.decimate(MyModule.decrement(s)))

## Compile without providing inputset for each function
# 编译时无需为每个函数提供输入集
module = MyModule.compile()

更多教程和示例

在此版本中,我们还添加了一些新的教程,展示了 FHE 和 Concrete 的有趣用例:

  • Prime-match:用于匹配私人银行和客户订单的库存匹配系统。
  • IBAN 名称检查:比较名称,例如用于 IBAN 验证,而无需泄露名称。
  • 浮点数管理:在 Concrete 中执行浮点数计算。
  • 私有信息检索:私下访问服务器数据库,例如,检查电话号码是否被标记为垃圾邮件。

我们鼓励你浏览这些教程。如果你使用 Concrete 开发了自己的用例,请告诉我们,我们很乐意在未来的版本中介绍它们。

其他改进

Concrete v2.8 还包括各种优化和错误修复,尤其是在 Concrete GPU 运行时中,这使得 FHE 评估更快。这些改进不需要任何 API 更改,因此你可以无需额外努力即可享受这些好处。有关更多详细信息,请参阅我们的 GitHub 或完整的发行说明。

感谢你的持续支持和反馈。我们努力使 FHE 对每个人都更易于访问和高效。

附加链接

[对此帖子有任何问题或想法吗?

在 Zama 社区论坛中与我们的团队一起参与讨论!我们创建了一个专门的帖子,用于讨论与此主题相关的所有内容——欢迎你的参与。](https://community.zama.ai/t/concrete-v2-8-enhanced-interoperability-and-automatic-module-tracing/1336)

阅读更多相关帖子

[视频教程] 在 Concrete 中使用 TFHE-rs 互操作性功能 \ 在本教程中,Zama 团队成员 Ayoub Benaissa 向你展示如何在 Concrete 中使用 TFHE-rs 互操作性功能。 2024 年 10 月 24 日\ \ Ayoub Benaissa

Concrete

教程

Concrete ML v1.7:Transformer 模型微调和 DNA 祖源应用 \ Concrete ML v1.7 引入了在加密数据上微调模型、GPU 加速和 DNA 祖源应用。 2024 年 10 月 8 日\ \ Andrei Stoian

公告

Concrete ML

TFHE-rs v0.8:加密数组和改进的多 GPU 支持 \ TFHE-rs v0.8 引入了数组类型,增强了多 GPU 计算并进行了许多改进。 2024 年 10 月 8 日\ \ Jean-Baptiste Orfila, Arthur Meyre, Agnes Leroy

公告

TFHE-rs

Zama 产品发布 - 2024 年 10 月 \ 随时了解 Zama 2024 年 10 月的产品发布,包括 TFHE-rs、Concrete 的新版本... 2024 年 10 月 8 日\ \ The Zama Team

公告

Concrete Concrete ML FHEVM TFHE-rs

产品与服务

隐私保护机器学习 机密区块链 阈值密钥管理系统

开发者

博客 文档 GITHUB FHE 资源 研究论文 赏金计划 FHE STATE OS

公司

关于 FHE 简介 活动 媒体 职业 法律

联系方式

与专家交流 联系我们 X Discord Telegram 所有社区频道

隐私对于电子时代的开放社会是必要的。隐私不是秘密。私事是不想让全世界知道的事情,而秘密是不想让任何人知道的事情。隐私是有选择地向世界展示自己的力量。如果双方有某种交易,那么双方都会记住他们的互动。每一方都可以谈论他们对这件事的记忆;谁能阻止它呢?可以制定法律来禁止它,但言论自由,甚至比隐私更重要,是开放社会的基础;我们不寻求限制任何言论。如果许多方在同一个论坛上一起发言,那么每一方都可以向所有其他方发言,并将关于个人和其他方的知识汇总在一起。电子通信的力量使这种群体言论成为可能,它不会仅仅因为我们想要它而消失。既然我们渴望隐私,我们必须确保交易的每一方只知道该交易直接需要的知识。既然任何信息都可以被谈论,我们必须确保我们尽可能少地披露信息。在大多数情况下,个人身份并不重要。当我在商店购买杂志并将现金交给店员时,没有必要知道我是谁。当我要求我的电子邮件提供商发送和接收消息时,我的提供商不需要知道我在与谁说话或我说什么,也不需要知道别人在对我说什么;我的提供商只需要知道如何将消息发送到那里以及我欠他们多少费用。当我的身份被交易的底层机制泄露时,我没有隐私。我无法在这里有选择地展示自己;我必须始终展示自己。因此,开放社会中的隐私需要匿名交易系统。到目前为止,现金一直是主要的此类系统。匿名交易系统不是秘密交易系统。匿名系统使个人能够在需要时并且仅在需要时透露自己的身份;这是隐私的本质。开放社会中的隐私也需要密码学。如果我说了一些事情,我希望只有我打算让其听到的人才能听到。如果我的言论内容对全世界开放,我就没有隐私。加密是为了表明对隐私的渴望,而使用弱密码加密是为了表明对隐私的渴望并不强烈。此外,当默认设置为匿名时,要确保透露自己的身份需要密码签名。我们不能期望政府、公司或其他大型的、没有面孔的组织出于他们的恩惠而给予我们隐私。谈论我们对他们有利,我们应该期望他们会谈论。试图阻止他们的言论是与信息的现实作斗争。信息不仅仅是想免费,它渴望免费。信息扩展以填充可用的存储空间。信息是谣言的年轻、更强大的表亲;信息比谣言跑得更快,拥有更多的眼睛,知道更多,但理解得更少。如果我们想要拥有任何隐私,我们必须捍卫自己的隐私。我们必须走到一起,创建允许匿名交易发生的系统。几个世纪以来,人们一直在用耳语、黑暗、信封、关闭的门、秘密握手和信使来捍卫自己的隐私。过去的技术不允许强大的隐私,但电子技术允许。我们这些密码朋克致力于构建匿名系统。我们正在使用密码学、匿名邮件转发系统、数字签名和电子货币来捍卫我们的隐私。密码朋克编写代码。我们知道必须有人编写软件来捍卫隐私,而且由于除非我们所有人都这样做,否则我们无法获得隐私,所以我们将编写它。我们发布我们的代码,以便我们的密码朋克伙伴可以练习和使用它。我们的代码可供所有人使用,全球范围内。我们不太在意你是否不认可我们编写的软件。我们知道软件不能被摧毁,并且一个广泛分散的系统不能被关闭。密码朋克谴责对密码学的法规,因为加密本质上是一种私人行为。事实上,加密行为将信息从公共领域中移除。即使是反对密码学的法律也只能达到一个国家的边界和暴力的手臂。密码学将不可避免地遍布全球,随之而来的是它使之成为可能的匿名交易系统。为了使隐私得到广泛应用,它必须是社会契约的一部分。人们必须走到一起并部署这些系统以实现共同利益。隐私的范围只延伸到社会中同伴的合作。我们这些密码朋克寻求你们的问题和你们的担忧,并希望我们能够吸引你们参与,这样我们就不会欺骗自己。但是,我们不会因为某些人可能不同意我们的目标而改变我们的路线。密码朋克正在积极地使网络对隐私更加安全。让我们一起加速前进。前进。作者:Eric Hughes。1993 年 3 月 9 日。

  • 原文链接: zama.ai/post/concrete-v2...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ZamaFHE
ZamaFHE
Zama是一家开源密码学公司,专注于为区块链和人工智能构建最先进的完全同态加密(FHE)解决方案。