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 GGHH——即沒有任何人知道是否存在yy使得yG=Hy*G=H成立。committer引入隨機private key xx,對aa的commitment爲:
Commitment=xG+aHCommitment=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 JJ,與GHG、H均不相關——即沒有任何人知道是否存在yy使得yG=JyH=Jy*G=J或y*H=J成立。
Switch commitment定義爲:
Commitment=xG+aHCommitment=x’*G+a*H,其中x=x+Hash(xG+aH,xJ)mod  px’=x+Hash(x*G+a*H,x*J)\mod p

1.3 ElGamal commitment scheme

ElGamal commitment schem具有perfectly binding和computationally hiding屬性。
EIGamal commitment定義爲:
(xG+aH,xH)(x*G+a*H,x*H),其左側就是1個Pedersen commitment。

以上三種commitment具有一個共性:都包含1個elliptic curve point,可理解爲是1個public key,但是沒有任何人知道與該public key像對應的private key。——即無法知道cc值,使得cG=xG+aHc*G=x*G+a*H成立。
因此,基於現有的簽名策略(即簽名者需要用與公鑰相對應的私鑰來進行簽名操作),無法將commitment值直接作爲公鑰用於現有的簽名算法中。

1.4 Mimblewimble transaction scheme

2016年Jedusor在Mimblewimble協議中指出,當Pedersen commitment commit to 0的時候,有:Commitment=xGCommitment=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情況下)爲:
(xiG+aiH)+(excess+offset)G=(xcG+acH)+(xrG+arH)+feeG(x_i*G+a_i*H)+(excess'+offset)*G=(x_c*G+a_c*H)+(x_r*G+a_r*H)+fee*G
其中:

  • (xiG+aiH)(x_i*G+a_i*H)爲input commitment owned by sender。
  • (xrG+arH)(x_r*G+a_r*H)爲output commitment for receiver。
  • (xcG+acH)(x_c*G+a_c*H)爲the change commitment for sender。
  • xi,xc,xrx_i,x_c,x_r爲private keys;ai,ac,ara_i,a_c,a_r爲amounts;feefee爲transaction fee。
  • offsetoffset爲a random number selected by the sender。
  • excessexcess' 可稱爲”public excess”,可作爲signature public key,滿足excess=(xcxioffset)G+xrGexcess'=(x_c-x_i-offset)*G+x_r*G,其中:
    (xcxioffset)G(x_c-x_i-offset)*G可作爲public key,僅有sender知道相應的private key。
    xrGx_r*G 可作爲public key,僅receiver知道相應的private key。

To sign this transaction with excessexcess' 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: excessexcess'.

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),其中ppkk-bit integer,G\mathbb{G}爲a cyclic group of order ppg,hg,h爲generator of G\mathbb{G}g,hg,h互不相關——即沒有任何人知道是否存在yy使得yG=Hy*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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章