Simple Schnorr Signature with Pedersen Commitment as Key学习笔记

1. 引言

Gary Yu 2020年论文《Simple Schnorr Signature with Pedersen Commitment as Key》,目前暂无收录信息。

A signature is a zero-knowledge (ZK) proof of knowledge where the prover convince the verifier that they know a/some secret information, without revealing the secret info itself.

目前的Schnorr signature算法,Musig算法,都是secure in the plain public-key model(即signers are only required to have a public key, but do not have to prove knowledge of the private key corresponding to their public key to some certificate authority or to other signers before engaging the protocol)。要求签名者在签名时必须使用与公钥相对应的私钥。

在Monero/Grin/Beam/Gotts等支持隐私交易的区块链系统中,使用了Pedersen commitment scheme来隐藏交易中的input amounts和output amounts。

1.1 Pedersen commitment scheme

Pedersen commitment的定义为:
已知两个互不相关的genertors G G H H ——即没有任何人知道是否存在 y y 使得 y G = H y*G=H 成立。committer引入随机private key x x ,对 a a 的commitment为:
C o m m i t m e n t = x G + a H Commitment=x*G+a*H

Pedersen commitment scheme 具有perfectly hiding和computationally binding属性。

1.2 Switch commitment scheme

Grin中使用了Switch commitment scheme(Tim Ruffing等人2017年论文《Switch Commitments: A Safety Switch for Confidential Transactions》),Switch commitment scheme constitute a cryptographic middle ground between computationally binding and statistically binding commitments。
相对于Pedersen commitment,额外引入了第3个generator J J ,与 G H G、H 均不相关——即没有任何人知道是否存在 y y 使得 y G = J y H = J y*G=J或y*H=J 成立。
Switch commitment定义为:
C o m m i t m e n t = x G + a H Commitment=x’*G+a*H ,其中 x = x + H a s h ( x G + a H , x J ) m o d    p x’=x+Hash(x*G+a*H,x*J)\mod p

1.3 ElGamal commitment scheme

ElGamal commitment schem具有perfectly binding和computationally hiding属性。
EIGamal commitment定义为:
( x G + a H , x H ) (x*G+a*H,x*H) ,其左侧就是1个Pedersen commitment。

以上三种commitment具有一个共性:都包含1个elliptic curve point,可理解为是1个public key,但是没有任何人知道与该public key像对应的private key。——即无法知道 c c 值,使得 c G = x G + a H c*G=x*G+a*H 成立。
因此,基于现有的签名策略(即签名者需要用与公钥相对应的私钥来进行签名操作),无法将commitment值直接作为公钥用于现有的签名算法中。

1.4 Mimblewimble transaction scheme

2016年Jedusor在Mimblewimble协议中指出,当Pedersen commitment commit to 0的时候,有: C o m m i t m e n t = x G Commitment=x*G ,则此时可将其看作是一个ECDSA public key。而对于有效的隐私交易,“outputs-(inputs+transaction fees)=0”应成立。
隐私交易的发送方sender可将outputs与inputs的差值作为public key来对交易签名,
2017年,Peverell 《Introduction to Mimblewimble and Grin》中指出了典型的Mimblewimble transaction scheme(有1个 input和2个outputs情况下)为:
( x i G + a i H ) + ( e x c e s s + o f f s e t ) G = ( x c G + a c H ) + ( x r G + a r H ) + f e e G (x_i*G+a_i*H)+(excess'+offset)*G=(x_c*G+a_c*H)+(x_r*G+a_r*H)+fee*G
其中:

  • ( x i G + a i H ) (x_i*G+a_i*H) 为input commitment owned by sender。
  • ( x r G + a r H ) (x_r*G+a_r*H) 为output commitment for receiver。
  • ( x c G + a c H ) (x_c*G+a_c*H) 为the change commitment for sender。
  • x i , x c , x r x_i,x_c,x_r 为private keys; a i , a c , a r a_i,a_c,a_r 为amounts; f e e fee 为transaction fee。
  • o f f s e t offset 为a random number selected by the sender。
  • e x c e s s excess' 可称为”public excess”,可作为signature public key,满足 e x c e s s = ( x c x i o f f s e t ) G + x r G excess'=(x_c-x_i-offset)*G+x_r*G ,其中:
    ( x c x i o f f s e t ) G (x_c-x_i-offset)*G 可作为public key,仅有sender知道相应的private key。
    x r G x_r*G 可作为public key,仅receiver知道相应的private key。

To sign this transaction with e x c e s s excess' as the public key, the Simpler Variants of MuSig interactive signature scheme is used, meaning both the sender and the receiver exchanges the public key and public nonce info, then executes a MuSig partial signature in both side, then either the sender or the receiver finally aggregate these two partial signatures to get a final joint Schnorr signature, which can be verified exactly as a standard Schnorr signature with respect to a single public key: e x c e s s excess' .

1.5 ZK proof of Pedersen commitment

Camenisch 等人2009年论文《On the Portability of Generalized Schnorr Proofs》中指出:
在这里插入图片描述
亦可参见博客 基于Sigma protocol实现的零知识证明protocol集锦 第2.4节Knowledge of the opening of Pedersen commitment。

2. 本论文新的签名机制——ComSig

本论文提出了新的签名机制——ComSig,基于的是Schnorr signature scheme。
主要的group参数有 ( G , p , g , h ) (\mathbb{G},p,g,h) ,其中 p p k k -bit integer, G \mathbb{G} 为a cyclic group of order p p g , h g,h 为generator of G \mathbb{G} g , h g,h 互不相关——即没有任何人知道是否存在 y y 使得 y G = H y*G=H 成立。
在这里插入图片描述在这里插入图片描述
为了抵抗rogue key attack,借助Musig方案思想,构建支持aggregate multi-signature的ComSig方案:
在这里插入图片描述
Musig方案各签名方需要交互,而ComSig针对的场景是blockchain using the Pedersen commitment as output,a single signer can complete the signature to prove the ownership of a Pedersen commitment output。

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/107055627