Advertisement

Libsnark:用于zkSNARK的C++库

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
Libsnark是一款用C++编写的开源软件库,专门设计用于实现zkSNARK(零知识字符串承诺),它允许一方证明他们知道某些信息而不必透露该信息本身。 libsnark 是一个用于生成 zkSNARK 证明的 C++ 库。该库由项目团队及贡献者开发,并依据 MIT 许可证发布(详情请见相关文件)。版权所有 ©2012-2017 SCIPR 实验室和各贡献者。 此库实现了若干 zkSNARK 方案,这是一种加密方法,用于在零知识下证明计算的完整性。具体来说,计算可以表示为一个 NP 语句的形式: “如果给定输入栏和一些其他输入 qux,则 C 程序 foo 在执行时将返回退出代码0。” 或者等价地表述为: “布尔电路 foo 可以通过某些输入 qux 被满足。” “算术电路 foo 扩展到某个完整赋值 qux 时,部分赋值栏可以接受。” “当扩展至某个完整分配 qux 时,部分赋值栏可使约束集 foo 得到满足。” 知晓 NP 陈述证人(即满意的输入/赋值)的证明者能够提供一个简短的证明来验证该陈述的真实性。任何人都能通过此证明验证其真实性,并且这种验证具有以下特性:

全部评论 (0)

还没有任何评论哟~
客服
客服
  • LibsnarkzkSNARKC++
    优质
    Libsnark是一款用C++编写的开源软件库,专门设计用于实现zkSNARK(零知识字符串承诺),它允许一方证明他们知道某些信息而不必透露该信息本身。 libsnark 是一个用于生成 zkSNARK 证明的 C++ 库。该库由项目团队及贡献者开发,并依据 MIT 许可证发布(详情请见相关文件)。版权所有 ©2012-2017 SCIPR 实验室和各贡献者。 此库实现了若干 zkSNARK 方案,这是一种加密方法,用于在零知识下证明计算的完整性。具体来说,计算可以表示为一个 NP 语句的形式: “如果给定输入栏和一些其他输入 qux,则 C 程序 foo 在执行时将返回退出代码0。” 或者等价地表述为: “布尔电路 foo 可以通过某些输入 qux 被满足。” “算术电路 foo 扩展到某个完整赋值 qux 时,部分赋值栏可以接受。” “当扩展至某个完整分配 qux 时,部分赋值栏可使约束集 foo 得到满足。” 知晓 NP 陈述证人(即满意的输入/赋值)的证明者能够提供一个简短的证明来验证该陈述的真实性。任何人都能通过此证明验证其真实性,并且这种验证具有以下特性:
  • Groth16 zkSNARKZKP执行与验证框架
    优质
    本研究构建了一个高效的零知识证明(ZKP)系统,采用Groth16 zkSNARK技术,旨在提供安全且快速的执行与验证机制。 ZKP 是一种实用的零知识证明系统,可以为任意计算提供小型且高效的零知识证明。该系统使我们能够以低成本、快速验证时间构造简洁的非交互式证明。 编译阶段程序建设依赖于一个受信任的设置,这个过程生成了描述门的功能组成的JSON协议,这些门执行加法、乘法和带限运算。这一库可以使用任何其他编译器或库发出JSON格式的数据作为其交换方式。提供的包包括电路构造语言的参考库。 可以通过命令行运行受信任的设置程序(例如:`zkp setup --prover Groth16 --input`),这将生成特定电路所需的单次参数。这些参数可以随后销毁,也可以通过Shamir秘密共享配置分发给多个参与者。在 Shamir 分享机制中,至少需要n个参与者的密钥组合以重建受信任的设置。
  • Libsnark-Tutorial:zkSNARK开发与教程指引
    优质
    简介:《Libsnark-Tutorial》是一份全面指南,旨在帮助开发者理解和实现zkSNARK技术。它提供了详细的教程和实用案例,使复杂的零知识证明协议变得易于学习和应用。 libsnark教程介绍 在这个库中,我们将使用创建一个简单的zkSNARK应用程序。这是一个用于构建zkSNARK证明的C++库。 zkSNARKs使证明者能够简洁地向验证方展示给定陈述的有效性,而无需透露除该陈述有效性之外的任何信息。 这项技术已经为诸如协议奠定了基础,这些协议提供了一种方式来确保用户及其交易的匿名性。本教程将指导您安装libsnark、设置开发环境以及构建简单的zkSNARK应用程序,并且可以扩展此库以支持测试框架和性能分析基础设施等。 目录介绍 Shafi Goldwasser, Silvio Micali 和 Charles Rackoff 首次引入了零知识证明的概念。这种技术允许一方(即证明者)说服另一方(验证者),给定的陈述是真实的,而不透露除该陈述的真实性之外的任何信息。zkSNARKs 是一种特殊的零知识证明形式,它使证明者能够简洁地向验证者展示特定语句的有效性,并且在计算上实现“零”开销。
  • Libharu:CC++开源PDF生成
    优质
    Libharu是一款功能强大的开源软件开发工具包,专门用于在C和C++编程语言中创建PDF文档。它提供了丰富的API接口以支持广泛的PDF特性与操作需求。 libharu 是一个用于编写 PDF 的开源 C 和 C++ 库,我已经使用 VS2010 编译过了,可以直接使用或调试学习。
  • LibMediasoupClient:MediasoupC++客户端
    优质
    LibMediasoupClient是一款专为WebRTC应用场景设计的C++客户端库,它提供了与Mediasoup服务器交互所需的接口和功能。该库简化了音视频通信应用程序中媒体流处理、传输等复杂操作,助力开发者快速构建高性能的实时通讯应用。 libmediasoupclient 是一个用 C++ 编写的客户端库,用于构建基于 Google libwebrtc C++ 库的应用程序。 该库由 José Luis Millán 和 Iñaki Baz Castillo 开发维护。
  • 多物理场仿真C++-C/C++开发
    优质
    这是一个专为多物理场仿真设计的C++库,旨在简化复杂工程问题的模拟与分析过程。该库支持多种物理现象的耦合计算,提供高效、精确的数值求解工具,助力科研人员和工程师快速实现创新性研究及产品开发。 Chrono项目是社区的一项工作,旨在基于独立于平台的开放源代码设计,构建基于物理原理的建模与仿真基础设施。该软件基础结构称为Chrono。 该项目的主要功能包括: - Chrono在车辆动力学、机器人技术和机器设计等领域应用广泛。 - 在车辆动力学方面,Chrono已经为轮胎和地形之间的交互模型及仿真的开发提供了成熟的支持。
  • C++调封装C#类
    优质
    本文章介绍了如何通过C++调用封装好的C#类库的方法与步骤,帮助开发者实现跨语言编程的高效集成。 在C++中调用一个由C#编写的类库,并实现了C++的string与C#的string之间的互相转换功能。
  • Eigen:线性算术C++模板
    优质
    Eigen是一款高效的C++模板库,专注于线性代数运算,提供矩阵和向量操作等功能,适用于各种计算密集型应用。 Eigen 是一个用于线性代数的C++模板库,涵盖了向量、矩阵及其相关算法。它具有强大、快速且优雅的特点,并支持多平台使用。
  • 一个解析Gerber文件C++
    优质
    这是一个用C++编写的开源库,专门设计来解析Gerber文件格式。它提供了高效、灵活的方法去处理电子产品制造中的图形数据表单。 就是要免费提供 Gerber 文件解析的 C++ 代码给大家。