博客
关于我
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/

    你可能感兴趣的文章
    php的web路径获取
    查看>>
    php的一些小笔记--字符串
    查看>>
    php的几种运行模式CLI、CGI、FastCGI、mod_php
    查看>>
    php的四大特性八大优势
    查看>>
    RabbitMQ
    查看>>
    PHP的威胁函数与PHP代码审计实战
    查看>>
    PHP的引用举例
    查看>>
    PHP相关代码
    查看>>
    RabbitMQ
    查看>>
    php知识点记录
    查看>>
    PHP知识笔记:CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI区别
    查看>>
    PHP第三方登录—OAuth2.0协议
    查看>>
    php筛选js,php如何多条件筛选js代码
    查看>>
    R730服务器做了raid的硬盘,插在R720上面可以用吗?
    查看>>
    PHP类数组式访问(ArrayAccess接口)
    查看>>
    PHP系列:浅谈PHP中isset()和empty() 函数的区别
    查看>>
    PHP索引数组unset的坑-array_values解决方案
    查看>>
    PHP索引数组排序方法整理(冒泡、选择、插入、快速)
    查看>>
    PHP线程安全和非线程安全
    查看>>
    R3LIVE开源项目常见问题解决方案
    查看>>