与博客Polynomial Commitments代码实现【1】——scipr-lab/poly-commit(含不同曲线性能对比)中类似,lovesh/kzg-poly-commit也是基于论文《Polynomial Commitments∗》的代码实现。

1. finite域及group element运算

https://github.com/lovesh/amcl_rust_wrapper是在https://github.com/miracl/amcl基础上进行了二次封装,同时:

  • 重载了+, -, *, +=, -=运算,保证方法运行为constant time。对于scalar multiplication,也提供了variable time算法实现。
  • 抽象了field元素和group元素vector的创建方法,支持scale,add,inner product和Hadamard product运算。
  • 通过serde进行序列化。
  • 实用clear_on_drop来清理不用的field和group元素。
  • 提供了wNAF variable time scalar multiplication方法,以及其它constant time和variable time multi-scalar multiplication方法,提供了batch(simultaneous)inversion 和Barrett reduction方法。

Cargo.toml中配置features来指定所需使用的曲线(支持bls381/secp256k1等等曲线):

[dependencies.amcl_wrapper]
git = "https://github.com/lovesh/amcl_rust_wrapper"
branch = "master"
features = ["bls381"]

目前https://github.com/miracl/amcl仅做bug维护,不做新功能更新。最新的库见https://github.com/miracl/core,该库为多曲线多语言实现,MIRACL Core was designed from the ground up with side-channel attack resistance in mind.

参考资料:
[1] 论文《Polynomial Commitments∗》
[2] 代码库:https://github.com/lovesh/kzg-poly-commit
[3] 博客polynomial commitment及实现方式对比
[4] 博客椭圆曲线形式下的Pedersen commitment——vector commitmnt和polynomial commitment

Polynomial Commitments代码实现【2】——lovesh/kzg-poly-commit相关推荐

  1. Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators学习笔记

    1. 背景知识 Benoˆıt Libert, Somindu C. Ramanna 和 Moti Yung 2016年论文 <Functional Commitment Schemes: Fr ...

  2. RedShift: Transparent SNARKs from List Polynomial Commitments学习笔记

    1. 引言 纽约大学Kattis和Matter Labs团队2019年论文<RedShift: Transparent SNARKs from List Polynomial Commitmen ...

  3. 论文笔记Dory:Arguments for Inner Products and Polynomial Commitments

    Lee, J. (2021). Dory: Efficient, Transparent Arguments for Generalised Inner Products and Polynomial ...

  4. 【我的Android进阶之旅】Android Studio 中 使用git提交代码报错:Can‘t commit changes from multiple changelists at once

    一.错误描述 今天在Android Studio中,Commit代码的时候报错了,然后解决了. 现在模拟复现下之前的错误,如下所示: 0 file committed, 2 files failed ...

  5. 使用SAP WebIDE往Github上推送代码修改时遇到错误消息 Commit request failed Commit failed. Ref must be HEAD and is HEAD

    Created by Jerry Wang, last modified on Nov 08, 2015 试图使用WebIDE 往github上推送change时,遇到如下error message: ...

  6. Compact Multi-Signatures for Smaller Blockchains代码解析

    1. 引言 Boneh等人2018年论文<Compact Multi-Signatures for Smaller Blockchains>,论文解读参见博客 Compact Multi- ...

  7. Musig方案代码解析

    1. 引言 Musig方案由Blockstream团队2018年论文<Simple Schnorr Multi-Signatures with Applications to Bitcoin&g ...

  8. Polygon zkEVM的pil-stark Fibonacci状态机代码解析

    1. 引言 前序博客有: Polygon zkEVM的pil-stark Fibonacci状态机初体验 STARKs and STARK VM: Proofs of Computational In ...

  9. 双变量polynomial commitment

    1. 引言 本博文主要研究的是 Benedikt Bünz 等人(standford,ethereum,berkeley) 2019年论文<Proofs for Inner Pairing Pr ...

  10. Subvector Commitments with Application to Succinct Arguments学习笔记

    1. 背景知识 Russell W. F. Lai 和 Giulio Malavolta 在Crypto 2019上发表的论文<Subvector Commitments with Applic ...

最新文章

  1. poj2987最大权闭包(输出最少建塔个数)
  2. 一个标准的PID算法
  3. 【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解
  4. 1106 Lowest Price in Supply Chain(甲级)
  5. SSM : 环境搭建
  6. 基于Scrapy框架的Python新闻爬虫
  7. 单片机是什么?单片机编程怎么入门?
  8. LumaQQ.NET 试用
  9. mysql数据库三表联查
  10. 计算机组成原理期末知识点复习及考点总结
  11. java.io.IOException: 远程主机强迫关闭了一个现有的连接。
  12. 红黑树详解三:红黑树的删除
  13. clip-path应用
  14. Vultr 修改 Root 账户密码教程
  15. Python发送邮件(以QQ邮箱为例)
  16. 浅析网络可视化分析技术
  17. 如何使用CSS画一个圆圈?圆圈中间写字?
  18. Hrbust 1176 小陈老师、雪人
  19. Maven学习(三) -- 仓库(转自--江湖小妞)
  20. P1162 填涂颜色

热门文章

  1. iPhone 与 Mac 怎么同步?同步有什么用
  2. 20条理由告诉你,为什么当前的深度学习成了人工智能的死胡同?
  3. 浅层介质过滤器工作原理介绍
  4. 我被开除了。。只因为看了骂公司的帖子
  5. 微信登录(官方指导)
  6. LuatOS之LVGL字体篇
  7. 苹果手机计算机没有记录吗,苹果手机恢复出厂设置备忘录里的便签内容都没了,怎么找回来啊...
  8. 服务器的分类都有哪几种?
  9. SpreadJS 纯前端表格控件应用案例:立信智能审计云平台(SACP)
  10. 信息系统项目管理师考试备考经验和心得(50天一次性通过)