SparkWorks- ARKWORKS中的本地硬件加速

tl; dr:

  • 我们通过在BN254曲线上运行ARKWORKS groth16来证明我们的云-ZK FPGA加速度的集成
  • 可以轻松地扩展这项工作,以支持ARKWORKS框架和各种系统/HW配置中的其他原语
  • 这是与几何研究

背景

云-zk是我们使用AWS上F1实例开发ZKP加速的工具包。它目前支持基于我们的算法的多尺度乘法(MSM)加速度管道纸。NTT支持是进行中

Cloud-ZK旨在将FPGA加速器引入ZK Dev-Frameworks,而无需在开发或资本要求中引入开销。机智的是,开发人员的体验与在AWS上运行CPU实例的情况完全相同。

对于常见的ZK问题中的相关电路尺寸,所需的MSMS结果是主要的计算瓶颈。当我们发布Cloud-ZK时,我们估计,仅使用MSM加速度,就可以显着改善ZKP系统的资源分配并引入有意义的延迟和吞吐量加速度。这项工作证实了我们的假设。

Arkworks是Zksnark编程的生态系统,用Rust编写。该框架包括前端,即电路构建,算术和约束生成,以及后端,即证明生成的加密结构。具体而言,它是代数,田间和多项式算术的实用程序存储库,以及专用于更高级别证明协议(例如Groth16,Marlin和Gemini)的存储库。ARKWORKS-RS为开发人员构建ZKP应用程序提供了最完整的工具链之一。ARKWORKS库是使用ZK的领先区块链项目高度维护和采用的。

ARKWORKS一直不支持硬件加速度……直到现在:)

使用ARKWORKS的项目(来源:RWC2022)

Groth16的解剖学 - HW挑战

我们选择使用BN254椭圆曲线专注于Groth16证明系统。这种选择是“以太坊友好的”,因为可以在以太坊区块链上有效验证证明。谚语的复杂性由MSM和NTTS主导。要更具体:对于给定的证人,n =2ᶜ最接近2的见证人大小的功率(舍入),我们有1 g1 msm的大小为n,3 g1 msms和1 msm的G2,所有(本质上)见证人的大小和7 ntts的大小n。NTT的复杂性随着n log n的增长而增长,而MSM复杂性在n中是线性的。因此,当我们增加尺寸n时,NTT变得更加主导。

G2中的曲线点是在基础场的二次扩展上定义的。这完全类似于复数在实际数字上的二次扩展。二次扩展字段中两个字段元素的karatsuba乘法至少三个真实乘法和三个添加/减法。因此,单个G2椭圆曲线操作的计算复杂性至少是G1操作的三倍。请注意,这也将用于表示曲线点的每个坐标的存储开销加倍。

SparkWorks-一个支持硬件的库,并用Epsilon更改为Arkwoks

我们有两个设计目标:

  • ZK应用程序开发人员的简单性。上游Arkworks没有更改
  • 保持Cloud-ZK接口清洁。硬件应该不可知betway娱乐官网

为了证明如何完成,我们仅专注于MSM计算。ARKWORKS使用一个称为变量BASEMSM的性状,该性状使用仿制药在指定的椭圆曲线上计算MSM。在我们的Arkworks版本中,我们只需要在cargo.toml中引入一项新功能。当使用此功能时,将使用我们在新库中实现的新结构来实例化变量basemsm,称为Sparkworks

该结构是FPGavariableBasemsm,是一个包装器,在识别椭圆曲线后调用相关的ZK-Cloud驱动程序。在我们的情况下,ZK-Cloud将在目标硬件上执行MSM计算。

引入SparkWorks是使我们能够实现两个设计目标的原因。该库负责从高级库处理请求,并将必要的转换和路由到Rust驱动程序,负责与硬件进行通信。Arkworks开发人员只需要确保它们可以访问硬件并打开功能。可以使用相同的驱动程序/接口来重新使用硬件以支持不同的编程生态系统。

高级系统图

引入SparkWorks作为中间件,使我们能够轻松地切换上面的软件堆栈,例如通过移动到其他证明的系统/曲线以及下面的硬件,例如从FPGA移动到GPU。

演示

我们从Arkworks的Groth16仓库中运行了基准。我们做出了小的更改,从硬编码的BLS曲线转换为BN254。我们在AWS F1实例上运行了代码,其中有16个CPU和两张FPGA卡。我们将一张卡用于MSM G1加速度,另一张卡用于MSM G2加速度。G1卡以250MHz的速度运行,而G2卡的运行量为187MHz。

我们测量了有和没有FPGA加速度的延迟。从图可以看出,我们看到了各种电路尺寸的速度至少提高了2倍。

请注意,与仅CPU相比,大多数CPU核心一直在工作,当FPGA计算MSMS时,CPU是空闲的。这意味着,在FPGA场景中,我们没有对使用系统资源进行优化。例如,当CPU闲置时,我们可以使用其内核来计算新的证明。因此,测量吞吐量,即每秒的证明数量,将达到更高的加速因素。

未来的工作

在这里,我们分享有关这项工作可能未来指示的详细信息。

首先,如果您有兴趣一起探索您的基于ARKWORKS的项目如何从硬件加速中受益 - 请接触到hi@ingonyama.com

我们的概念验证是特定于曲线的,尽管ZK-Cloud和Arkworks都支持许多其他曲线,但目前将不使用其他曲线。缺少的工作是添加适当的曲线检测和路由机制以及错误处理。如果您想继续这项工作,请联系andrija@geometry.xyz

实际上,在当前实现中,使用两个FPGA是多余的,因为G1和G2 MSM在不同的时间被调用,因此我们可以使用相同的FPGA。也就是说,没有什么可以阻止我们在两条单独的椭圆曲线上运行时并行运行G1和G2 MSM。在这种情况下,两个FPGA将产生更好的结果。

最后,我们计划以与MSM相似的方式添加对NTT加速度的支持,同时支持多个256位字段。随着NTT加速,将去除另一个主要的瓶颈,进一步促进供奉献。

跟随我们的旅程

推特:https://twitter.com/ingo_zk

Github:https://github.com/Ingonyama-zk

YouTube:https://www.youtube.com/@ingo_zk

加入我们:https://www.ingonyama.com/careers

- -

- -

获取中型应用betway娱乐官网

一个说“在应用商店上下载”的按钮,如果单击,它将带您到iOS App Store
一个说“获取它,Google Play”的按钮,如果单击它,它将带您到Google Play商店
Ingonyama

Ingonyama的意思是狮子。我们是下一代半导体公司,为零知识密码学设计了加速器。

Baidu