ZKP6.3 Discrete-log-based Polynomial Commitments (Bulletproofs)

ZKP学习笔记

ZK-Learning MOOC课程笔记

Lecture 6: Discrete-log-based Polynomial Commitments (Yupeng Zhang)

6.3 Bulletproofs and other schemes based on discrete-log

  • KZG:

    • Pros:
      • Commitment and proof size: O(1), 1 group element
      • Verifier time: O(1) pairing
    • Cons: trusted setup
  • Bulletproofs [BCCGP'16, BBBPWM'18]

  • Transparent setup: sample random g 0 , g 1 , g 2 , . . . , g d g_0, g_1, g_2, ..., g_d g0,g1,g2,...,gd in G G G

  • High-level idea

    • Example: 3-degree polynomial

    • Degree reduction: 3 degree -> 1 degree -> constant degree

    • Cross term to commit L and R

    • Similar with FFT

  • Correctness

  • Eval and Verify

  • Properties of Bulletproofs

    • Keygen: O(d), transparent setup!
    • Commit: O(d) group exponentiations, O(1) commitment size
    • Eval: O(d) group exponentiations (non-interactive via Fiat Shamir)
    • Proof size: O(log d)
    • Verifier time: O(d)
  • Other improvement

    • Hyrax [Wahby-Tzialla-shelat-Thaler-Walfish'18]
      • Improves the verifier time to O(d) by representing the coefficients as a 2-D matrix
      • Proof size: O( d \sqrt{d} d )
    • Dory [Lee'2021]
      • Base on pairing
      • Improving verifier time to O(log d)
      • Key idea: delegating the structured verifier computation to the prover using inner pairing product arguments [BMMTV'2021]
      • Also improves the prover time to O( d \sqrt{d} d )exponentiations plus O(d) field operations
    • Dark [Bünz-Fisch-Szepieniec'20]
      • Based on group of unknown order
      • Achieves O(log d) proof size and verifier time
        • Delegate some part of verifier to the prover
  • Summary

相关推荐
时间之城11 分钟前
笔记:记一次使用EasyExcel重写convertToExcelData方法无法读取@ExcelDictFormat注解的问题(已解决)
java·spring boot·笔记·spring·excel
灏瀚星空20 分钟前
用Obsidian四个插件打造小说故事关联管理系统:从模板到图谱的全流程实践
经验分享·笔记·开源
一只可爱的小猴子34 分钟前
2022李宏毅老师机器学习课程笔记
人工智能·笔记·机器学习
孞㐑¥1 小时前
C++11介绍
开发语言·c++·经验分享·笔记
使一颗心免于哀伤1 小时前
《重构》笔记摘录 - 9.处理继承关系
笔记
再睡一夏就好1 小时前
Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别
linux·服务器·c语言·c++·笔记
俺的图图呢?2 小时前
Django笔记——CSRF
笔记·django·csrf
我的golang之路果然有问题2 小时前
快速了解redis,个人笔记
数据库·经验分享·redis·笔记·学习·缓存·内存
无心水2 小时前
【Java面试笔记:基础】8.对比Vector、ArrayList、LinkedList有何区别?
java·笔记·面试·vector·arraylist·linkedlist
卡皮巴拉爱吃小蛋糕2 小时前
MySQL的MVCC【学习笔记】
数据库·笔记·mysql