博客
关于我
Circom and Snarkjs,基于以太坊的零知识证明实现
阅读量:285 次
发布时间:2019-03-01

本文共 655 字,大约阅读时间需要 2 分钟。

Snarkjs 是一种基于 zkSnarks Pinoccio 和 Groth16 协议的零知识证明(zk-SNARK)实现工具,旨在为构建通用零知识证明语句提供支持。它能够在链外和链上验证,具备较高的灵活性和扩展性。

Snarkjs 的核心功能包括 constraint 解决、零知识证明验证等,适用于需要快速验证的场景。其性能表现虽然较为突出,但在处理大量约束时仍存在一定瓶颈,未来计划通过 Julia 语言重写以提升性能和可扩展性。

关键实现细节

Snarkjs 的主要模块包括 verifier.sol 智能合约,其包含两个核心组件: verifier 和 pairing。前者负责验证过程,后者则是实现零知识证明的关键算法模块。

使用指南

在使用 Snarkjs 时,需特别注意以下事项:

  • 环境配置:建议使用 MetaMask 加上 Ropsten 测试网络,确保ether供应。
  • 部署合约:仅需部署 verifier.sol 智能合约即可。
  • 调用接口:将 snarkjs 生成的验证脚本粘贴至 verifyProof 方框,点击调用按钮即可获得验证结果。
  • Snarkjs 提供了直观的接口,例如 calculatewitness 和 printconstraints 工具,极大简化了开发流程。其生成的 verifier.sol 智能合约基于经典论文 Page-25 的算法设计,兼顾高效性和准确性。

    通过以上方法,开发者能够轻松集成 Snarkjs 进行零知识证明验证,充分发挥其强大的功能优势。

    转载地址:http://puqx.baihongyu.com/

    你可能感兴趣的文章
    Python requests模块
    查看>>
    python request与grequests该如何选择
    查看>>
    python request模块
    查看>>
    Python requirements.txt的使用方法
    查看>>
    Python REST(Web 服务)框架的推荐?
    查看>>
    Python rsa 加密
    查看>>
    Python RSA操作
    查看>>
    Python轻松实现统计学中重要的相关性分析
    查看>>
    Python scrapy 常见问题及解决 【遇到的坑】
    查看>>
    Python Seborn热图数据的动态更新
    查看>>
    Python Seborn绘制空白直方图
    查看>>
    Python Selenium - 获取href值
    查看>>
    Python Selenium实现自动化测试及Chrome驱动使用!
    查看>>
    Python Selenium搭建UI自动化测试框架
    查看>>
    Python Selenium模块详解
    查看>>
    Python selenium爬取影评生成词云图
    查看>>
    python selenium自动化测试报告
    查看>>
    Python selenium自动化测试框架实战 —— 登录测试案例
    查看>>
    Python Selenium设计模式 —— POM
    查看>>
    Python Serial:如何使用 read 或 readline 函数一次读取多个字符
    查看>>