4. 今回の論文
Title:
Simple Schnorr Multi-Signatures with Applications to Bitcoin
Author:
Gregory Maxwell, Andrew Poelstra, Yannick Seurin, and Pieter Wuille
Article:
https://eprint.iacr.org/2018/068.pdf
Published:
January 2018
7. Bitcoinのスケーリング問題
• Transactions in one block is full
• 1MB per block
• Increase of Bitcoin blockchain data size
• High TX fee
• ex. 360 satoshi / byte
• ~ 7 TX per second
• 10 min block time
• 1 Mbytes / 256 bytes / 10 min / 60 second = 6.8 TX per second
• This block time is necessary for stable Bitcoin blockchain and is enough for usual bitcoin payment.
• But it is very slow comparing with credit card or NFC.
• …
18. シュノア署名の
シンプルなマルチシグネチャ拡張
記述法
G: p次巡回群
g: Gの生成元
m: 署名対象メッセージ
i: 署名者に振った番号([1, n])
xi: 秘密鍵, {x1, …, xn}
Xi: 公開鍵, {X1=gx1, …, Xn=gxn} (x1はx1の意味)
H(・): ハッシュ関数
署名作成
乱数riを選ぶ([0,p-1])
Ri = gri mod p
R = R1R2…Rn
X~ = X1X2…Xn , (X~ の~はXの上の意)
c = H(X~, R, m)
si = ri + cxi mod p
s = s1+s2+…+sn
このとき、署名を(R, s)とする。
署名検証
gs = RXc が成り立つかどうかを確認。成り立てば署
名は正しい。成り立たなければ署名は不正
19. 比較
署名集約なし
署名作成
乱数rを選ぶ([0,p-1])
R = gr mod p
c = H(X, R, m)
s = r + cx mod p
このとき、署名を(R, s)とする。
署名検証
gs = RXc が成り立つかどうかを確認。成り立てば署
名は正しい。成り立たなければ署名は不正
署名集約あり
署名作成
乱数riを選ぶ([0,p-1])
Ri = gri mod p
R = R1R2…Rn
X~ = X1X2…Xn , (X~ の~はXの上の意)
c = H(X~, R, m)
si = ri + cxi mod p
s = s1+s2+…+sn
このとき、署名を(R, s)とする。
署名検証
gs = RXc が成り立つかどうかを確認。成り立てば署
名は正しい。成り立たなければ署名は不正