Gemini: Elastic SNARKs与Stacking Sigmas框架综合解析
1. Gemini: Elastic SNARKs实现与优化
在zk - SNARKs的开发中,研究人员借助并扩展了arkworks这个Rust生态系统,实现了弹性论证。所实现的名为ark - gemini的项目是开源的,遵循MIT许可。该实现的代码结构遵循协议的模块化设计,结合了弹性多项式承诺方案和弹性(全息)PIOP。下面详细介绍其实现的关键部分。
1.1 流式基础设施
为了表达空间高效的协议,研究人员对arkworks框架进行了扩展,增加了对流的支持。流是 iter::Iterator (Rust中处理迭代器的接口)的包装器,它可以重新启动并多次迭代。通过使用Rust的借用抽象,流在可能的情况下避免复制元素,要么返回一个域元素,要么返回一个域元素的引用,实现了零复制接口。在实际应用中,输入流可以用数组(如内存映射文件)或从网络下载的并发数据流实例化。该设计支持流组合,并且有可能扩展到新的前端。
另外,Baum等人的研究也在研究流式证明者,并提供了一个基于Rust并发特性(Rust async)的空间高效证明算法,这与基于迭代器的框架兼容。
以下是流式基础设施的关键特性总结:
| 特性 | 描述 |
| ---- | ---- |
| 流包装器 | 基于 iter::Iterator |
| 零复制接口 | 避免不必要的数据复制 |
| 输入流实例化 | 数组或网络数据流 |
| 兼容性 | 与Rust async兼容 | <
超级会员免费看
订阅专栏 解锁全文
607

被折叠的 条评论
为什么被折叠?



