BSV上的高效 zk-SNARK:技术解释

这篇具有很好参考价值的文章主要介绍了BSV上的高效 zk-SNARK:技术解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近,我们在 sCrypt 中实现了 zk-SNARKs,并在 BSV 上运行它。更具体地说,我们实现了 Groth16 算法的验证器,它允许直接在链上验证零知识证明。本文深入探讨了一些细节,阐明了如何在 BSV 上有效地实施其他高级加密技术。

椭圆曲线上的双线性对

Groth16 证明尺寸极小,并且可以快速验证。我们选择了最佳的 Ate 配对,因为它的效率已在实践中得到证明。

我们在配对友好的椭圆曲线 BN256(也称为 ALT_BN128 和 BN254)上实现它。我们使用 BN256 是因为

  1. 有流行的 ZKP 工具(如 ZoKrates 和 Circom)支持;
  2. 与以太坊等其他区块链兼容。

米勒算法用于有效计算最优 Ate 配对。在高层次上,它由两部分组成:

  1. 米勒循环:递归计算两个输入点 f(P, Q) 的中间函数
  2. 最终取幂:将 f 提高到大幂 c

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

等式 1

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

最佳 Ate 配对

减少到3个配对

验证者需要检查以下等式是否成立。

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

等式 2

元组 (A, B, C) 是证明,(α, β, ϒ, δ) 是验证密钥,L 来自公共输入。我们总共有 4 对 配对。我们注意到 αβ 在设置时是已知的,因此我们预先计算了第二对,并将 αβ 替换为验证密钥的一部分,从而减少了一对配对的技算。

一个单一的最终幂

等式 1 可以改写为:

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

它又可以写成如下,因为 e 是双线性的,我们可以将指数 (-1) 移动到括号中。

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

双线性

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

插入等式 2,我们得到:

使用bn256实现配对的go语言库,智能合约,区块链,零知识证明,智能合约

我们不需要计算 4 次最终的幂运算,幂运算是计算密集型的,我们最终只需要执行一次。

循环展开

在 sCrypt/Script 中,所有 if 分支都包含在交易中并产生交易费用,无论它们稍后是否执行。在米勒循环中,sᵢ 在编译时是已知的。我们展开循环并避免在第 5 行和第 7 行分支。

扩展域 twist

直接计算两点的配对需要在扩展域 Fq¹² 上进行椭圆曲线算法,这非常复杂且效率低下。我们使用 twist 将其映射到 Fq²,从而大大提高了效率。请参阅这篇文章以获得更详细的解释。

概括

经过所有这些优化,我们能够将配对的脚本大小减少 100 倍至 5MB。我们正在探索更多优化以进一步减少它。完整版本的代码可以在 GitHub 上找到。

传统上,优化程序的目标是最小化其 CPU 和/或内存使用量。在 BSV 中,交易费用与包含脚本的交易大小成正比,目标是最小化脚本大小。如何针对这一目标进行优化是一个有趣的开放课题,值得进行新的研究。文章来源地址https://www.toymoban.com/news/detail-791137.html

到了这里,关于BSV上的高效 zk-SNARK:技术解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 发布 Whatsonchain 上的 BSV20 插件

    我们发布了 whatsonchain 上的 BSV20 插件来验证 BSV20 代币。 对于任何交易,whatsonchain 都可以通过以下网址打开: 我们使用此 bsv20 v2 1 交易 打开 Whatsonchain 。 打开whatsonchain后你会看到BSV20插件: 点击插件,你会看到: 根据插件我们可以看到以下信息: id: 代币 ID op: bsv20 协议中

    2024年02月04日
    浏览(39)
  • BSV 上的信息不完整游戏

    我们展示了如何使用零知识证明(ZKP)开发 BSV 上的信息不完整游戏,这通常被认为无法在透明的区块链上实现。我们使用两个游戏来举例说明关键过程。 游戏分为两类: 信息完整游戏 : 所有玩家都知道有关游戏状态的一切。例如,在国际象棋中,两个玩家都知道所有棋子在

    2023年04月24日
    浏览(29)
  • BSV 上的付费解密智能合约

    Alice 有一条加密消息,即密文。Bob 有原始消息,明文。Alice 想付费给 Bob BSV 以换取明文。如果 Alice 先付钱给 Bob,Bob 可能不会给她明文。相反,如果 Bob 先把明文告诉 Alice,Alice 可能会拒绝付费。 我们设计了一个称为支付解密的智能合约,使交易原子化且无需信任,确保只有

    2024年01月17日
    浏览(40)
  • BSV 上的零知识隐私机器学习

    此前,我们已经演示了在 BSV 上运行一个成熟的深度神经网络,其中机器学习 (ML) 算法的输入和模型都是公开的。在实践中,通常希望将输入或模型保持在链下并因此保持私有,同时仍确保 ML 算法如实运行。我们通过将零知识证明 (ZKP) 应用于 ML 来实现这一点。 涉及 ML 时,有

    2024年01月15日
    浏览(50)
  • BSV 上的点对点结算衍生品:远期合约

    远期合约是两方在特定未来时间以预定价格买卖资产的衍生工具。它是一种非常常见的对冲波动性的工具。因此,使用 USD 远期合约可以对冲 USD 兑 BSV 汇率的波动。 远期合约的收益图 例如,Alice 与 Bob 签订了一份 USD 远期合约。Alice 同意从现在起一个月后以每 BSV 100 USD 的价格

    2024年01月20日
    浏览(54)
  • “可一学院”区块链学习平台正式启动,助力BSV技术普及与传播

    2023年8月8日,上海可一澈科技有限公司(以下简称“可一科技”) 正式发布区块链学习平台“可一学院BitClass”。“可一学院” 立足于BSV区块链技术本源,汇集了多层次的专业课程和学习资源,致力于打造一个适合各类人群使用的一站式区块链学习平台。 马上点击访问可一

    2024年02月13日
    浏览(68)
  • “可一学院”一站式区块链学习平台正式启动,助力BSV技术普及与传播

    2023年8月8日,上海可一澈科技有限公司(以下简称“可一科技”) 正式发布区块链学习平台“可一学院BitClass”。“可一学院” 立足于BSV区块链技术本源,汇集了多层次的专业课程和学习资源,致力于打造一个适合各类人群使用的一站式区块链学习平台。 马上点击访问可一

    2024年02月04日
    浏览(44)
  • 密码协议形式化分析与可证明安全实验2——使用circom和snarkjs来创建一个零知识snark电路

    过程 环境配置 RUST的安装 作者此次使用的OS为WIN10系统,在Rust官网下载对应的版本进行安装。最好使用镜像网站,不然下载速度会非常缓慢。 按照指示一步一步走完后,在命令行输入rustc --version查看是否正确安装 NODE的安装 Node.js下载安装及环境配置教程【超详细】_nodejs下载

    2024年01月19日
    浏览(61)
  • 亚太地区是Aleo下一个重点市场!ZK技术将重塑区块链世界!

    4 年,3 亿美元,基于 ZK 的隐私公链,是 Aleo 最直观的三个标签。区块链的致富效应,已经让传统金融蠢蠢欲动,想参与Aleo私募和头矿的朋友请于文末添加微信。 对于Aleo副总裁兼业务发展主管Joanna Zeng来说,近期专访中频繁出现的是\\\"Technology\\\"。以下是整理的专访实录,

    2024年02月03日
    浏览(42)
  • 使用HTML5技术控制电脑或手机上的摄像头

    理想情况下我们应该先判断你的设备上是否 有摄像头或相机,但简单起见,我们在这里直接 写出了HTML标记,而不是用JavaScript先判断 然后动态生成这些标记 – Snap Photo 在写出上面这些标记前应该判断用户的客户端是否有摄像头支持,但这里为了不那么麻烦,这里直接写出了

    2024年04月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包