论文浅析:Bulletproofs: Short Proofs for Confidential Transactions and More

看论文自己的疑惑:
1.为什么在notation中定义离散对数时说是biding不是hinding,不能理解说不是hinding,是因为向量a最终是公开的吗

特点
Characteristic:short proofs and without a trusted setup 【使用的是一篇名叫Short signatures from the weil pairing论文中的方法,使公开参数能用一个种子通过哈希函数生成】
Proof size:logarithmic in the witness size【使用了改进的内积论证减少证明大小】
Application:[1]efficient range proofs on committed values.[2]provide short zero-knowledge proofs for general arithmetic circuits while only relying on the discrete logarithm assumption and without requiring a trusted setup【论文中最后的协议并没有指明公开参数的生成过程,但是也是用Short signatures from the weil pairing生成的】
Proof generation and verification times :linear in n. 【PV经过了一系列的计算,我并没有完全弄懂linear in n】
Suited:the distributed and trustless nature of blockchains.
改进
improve on the linear (in n) sized range proofs in existing proposals for confidential transactions in Bitcoin and other cryptocurrencies. 【优化为了n的对数大小】
supports aggregation of range proofs:a party can prove that m commitments lie in a given range by providing only an additive Oplogpmqq group elements over the length of a single proof.【支持聚合】
aggregate proofs from multiple parties:we enable the parties to generate a single proof without revealing their inputs to each other via a simple multi-party computation (MPC) protocol for constructing Bulletproofs. [This MPC protocol uses either a constant number of rounds and linear communication, or a logarithmic number of rounds and logarithmic communication]

1. 介绍

在这里插入图片描述
这里对这一段中的关键地方做一个摘要:
[1] 支付的隐私性分为身份的隐私性以及交易数额的隐私性。提出了比特币的一个缺陷:弱匿名性,即现实世界于比特币地址之间的关系。ZeroCash中提出的方案解决了这个问题。
[2] 目前对于CT的解决方案:Max16实现了隐藏,但似乎失去了公共验证性且数额均为正值,作者提出可以通过零知识证明解决。[PBF+]太大,需要一个信任阶段,不是我们想要的。 [BSCG+13, GGPR13],用零知识证明的方案需要一个可信的第三方。STARK [BSBTHR18]虽无可信第三方,但存在效率问题。
[3]基于此,作者提出了short proofs(解决了大小问题),无可信第三方,的非交互的零知识证明。

1.1 我们的贡献

文章
在这里插入图片描述在这里插入图片描述
[1]首先说明做了什么,提出了一个零知识论证系统,证明承诺的秘密值在一个给定的区间中,且不需要一个可信设置。使用离散对数假设并设用Fiat-Shamir技术实现非交互。
[2]相对于BCC+16,在内积上做出了改进,且消除了其中使用承诺公开算法作为验证电路的一部分。
[3]支持MPC协议,多部门对于他们的秘密值共同产生一个小的范围证明。
[4]可用于NP languages,证明大小是乘法门的对数大小且允许输入为Pedersen承诺
[5]多BulletProos的组合验证提高效率

1.2 应用

此处暂且不论

2. Preliminaries

在这里插入图片描述
[1]定义了非平凡离散对数关系。离散对数关系假设即敌手不能聪随机选择的群元素中找到一个非平凡离散对数关系。当n为大于等于一时等价于离散对数假设。
在这里插入图片描述
Efficient Zero-Knowledge Arguments forArithmetic Circuits in the Discrete Log Setting与此文章中定义相同。
在这里插入图片描述
同态承诺
在这里插入图片描述
可与Efficient Zero-Knowledge Arguments forArithmetic Circuits in the Discrete Log Setting比较,注意P[:]和P[|]的区别,:代表的是由左得右,右是果,左边是条件。而|代表得是左是果,右边是条件。
在这里插入图片描述
注意此处的定义与上面引用文章中Binding定义有所不同,一个是 PPT adversaries A,一个是non-uniform polynomial time adversaries,一个是约等于0,一个是小于等于可忽略的函数。
在这里插入图片描述
在这里插入图片描述
介绍了什么是零知识证明,给出了CRS-dependent language的定义
在这里插入图片描述
这个定义的概念的意思在敌手产生的u,s的情况下P生成合法的tr与模拟器产生的tr是以相同概率同分布的。即通过则可以提取出witness
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
上文说这意味着给定验证者挑战值,可能在不知道witness的情况下模拟论证。这意思是什么呢,即即使是由敌手选择statements和witness,对于合法的statements和witness,由诚实者和模拟器产生的tr对敌手来说是不可区分的。这里A1和A2是交互式敌手,注意此定义。
在这里插入图片描述
上文定义了什么是范围证明
在这里插入图片描述在这里插入图片描述
本节定义了此论文中要用到的术语。此处值得注意的点:[1] 向量的两种乘积方式。[2] 向量多项式的定义,注意系数是向量,同时注意多项式的乘积。

3. 改善的内积论证

在这里插入图片描述
对BCC+16论文内积做了改进如下
在这里插入图片描述
最简单的方法是直接将a,b发给验证者,但大小是2n,下面作者将介绍一个更好的方法
在这里插入图片描述在这里插入图片描述
这里注意等式(3),提出了与BCC+16不同的承诺方案,可以看到,上述此方法比将向量a,b直接给验证者多出了[1] 验证者要向证明者发送一个x。 [2]证明者要两次向验证者发送消息[3] 证明者发送的消息比直接的方法少了接近一半的通信量。总的来说一次完整的交互增加了两次单项通信,减少了一半的消息
在这里插入图片描述
这里说明了通过rewind提取a,b的方法。
在这里插入图片描述
由于可以写成上述形式,也就是初始状态的形式,所以这个协议可以循环使用,当使用 log2n轮的时候,最后P一共向V发送了2log2n 加上最后的a,b;V向P发送了log2n个x,一共进行了2log2n + 1次单向交流。,3.1中会将PV中的指数降低至一个多重化指数,section将进一步优化。下面将证明其安全性。
在这里插入图片描述在这里插入图片描述
上述说明了(1)可以向(2)转化
在这里插入图片描述
将所有的取幂推到最后一轮以达到multi-exponentiation的目的。最后的压缩代表V一次向P传送log2n个x。这里的难点主要在等式的左边
在这里插入图片描述在这里插入图片描述
上述等式已验证
在这里插入图片描述
4.1 展示如何构造一个范围证明,验证者可以检查一个内积在两个向量间。
4.2 4.1中的check可以被替换为一个高效的内积论证。
4.3 展示如何将m个范围论证聚合成为一个短的论证。
4.4 使用Fiat-Shamir使交互变为非交互。
4.5 展示了允许多方构造一个简单的聚合范围证明。
4.5讨论了一个拓展到后量子安全范围证明。
在这里插入图片描述
工具:[1] Pedersen commitment [2] 证明取值0或1的方法 [3]将多个限制转变为内积论证的方式 [4] 零点的稀疏性的运用
在这里插入图片描述
盲化的方法
在这里插入图片描述
在这里插入图片描述
验证等式成立的方法(包括如何隐藏witness,如何检查内容的一致性,如何验证相等)
在这里插入图片描述
在这里插入图片描述
作者说可以用上一节的内积优化的方法对目前的方法进行优化,减少要发送的群元素。具体的优化后的协议没有给出。这里注意优化需要与V多进行一次交互。
在这里插入图片描述
通过对4.1的简单修改就可以达到多交易聚合的目的,其主要思想就是将向量变为矩阵的形式,基本思想是一样的。
在这里插入图片描述
作者此处的思想:[1] 使用Fiat-Shamir将交互变为非交互(带有st的哈希函数,这里为什么不带st不安全暂且不论),作者提出使用Fiat-shamir容易出错,建议使用第三方库。[2]使用哈希函数生成公共参数以避免使用可信第三方【参考文献:Short signatures from the weil pairing】
在这里插入图片描述
在这里插入图片描述
MPC步骤如下:[1] 首先给每个party生成公开参数。[2] 每个party生成自己的证明 [3] 将所有的证明交给一个人[4] 个人将生成的证明组建发送给每个party。[5]最后各个party将l,r发送给个人[6]个人声称内积论证和最后的证明
MPC的特点:有一定的交互cost,但我没有计算;使用零知识证明保证安全;需要一个汇总者
作者提出:将MPC有效的用于复杂的电路是一个待解决的问题

下面是对算数电路的零知识证明部分

在这里插入图片描述在这里插入图片描述在这里插入图片描述
顶层思想是将Hadamard-product 关系和约束转化为一个简单的内积关系。《Efficient Zero-Knowledge Arguments forArithmetic Circuits in the Discrete Log Setting》这篇文献中是转化为多项式的系数。本文的思想是线性组合,其组合是由验证者随机选取的。下面对协议的关系做了一个简要的说明,咱也没太看懂,看下下面的协议。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
可以结合4.3一起来分析,其本质还是多内积聚合以及一个限制嵌入。但是可以看到其是交互的过程,可以用Fiat—Shamir 或者 上述作者提到的库的方法使其变为非交互。看其协议结构仍需可信第三方,不知可以用上述作者提到的方法消除可信第三方。

下面是理论上的性能分析,这里暂且不论。

接下来看下附录
在这里插入图片描述
总结
值得学习的技术:内积优化技术;运用内积进行范围证明和电路的零知识证明。

现在的疑惑点:协议的零知识性以及安全性还比较模糊,就是缺乏soundness。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值