シュノア署名
1. 概要
シュノア署名は他のどの電子署名方式よりも計算が単純でわかりやすく、セキュリティも強固だといわれている
ECDSAではTxごとに署名が必要だがシュノアの署名では、複数人の送信に対し、一つの署名だけで完結する
これはマルチシグで真価を発揮する
https://gyazo.com/08dc4f53c733143001844b685fc8f848
要するに、シュノア署名では署名データのサイズを削減しブロックサイズはそのままに署名データを削減できるのでTxを多く格納することができ、スケーラビリティ向上につながる。
署名を集めるのにかかる時間も短縮され、手数料も安くなる
2. 導入の経緯
シュノア署名は効率がよく安全な署名方式と言われていたが、これはシュノア署名への変更にはハードフォークが必要だったため、ビットコインではECDSAからシュノア署名に署名方式が変更されることはなかった
この状況は2017年8月に有効化されたSegwitが最終テストに入った2016年春に、シュノア署名のハードフォークについて議論が始まった。
(SegwitとはSegregated Witnessの略称で「署名の分離」を意味し、その名前の通り、トランザクション本体から署名を分離し、Witnessと呼ばれる別の領域に格納するもの)
https://gyazo.com/d2c6c9a80be76608e438b2932bc18e33
Witnessに対してはハードフォークではなくソフトフォークで新しいルールを適用できるため、Segwitが有効化されたことでシュノア署名をソフトフォークで導入できるようになり、シュノア署名導入の障壁が大きく下がった
3. 特徴
3.1ECDSAと比べた利点
秘密鍵と元のメッセージから誰もが公開鍵で検証できる署名済データを作成する点、公開鍵や署名から秘密鍵を推測するのが極度に難しい点は現行のECDSAと同様
ただし、数学的な処理の特性から、シュノア署名には以下の特徴がある
「セキュリティーの証明がある」
「ECDSAの持つ展性という脆弱性を排除できる」
「線型性により効率よく署名を処理できる」
これらはECDSAでも実現は可能なもののシュノア署名でよりシンプルに実現できる応用がある
3.2高いセキュリティー
シュノア署名はECDLP(楕円線離散対数問題)の困難さを前提としてランダムオラクルモデルで証明できるが、現在ビットコインで使われているECDSAにはこのような証明がない。
また、ビットコインには秘密鍵を知らない第三者がトランザクションを改ざんできる展性と呼ばれる脆弱性があり、この一部はECDSAに起因するもので、署名の検証方法を変更するといった方策が考えられるが、シュノア署名にはおそらく展性はないだろうとされ、署名方式をECDSAからシュノア署名に変更することで展性の排除に貢献している。
3.3効率的な署名処理
シュノア署名を導入すると、特定のケースでECDSAに比べ署名済データのサイズを小さく保つことができる。
ECDSAでは、トランザクションにおいて受け取り先が同じでも、送金元それぞれで署名をする必要があるが、シュノア署名にはlinearity(線型性)と呼ばれる性質があり、複数の送金元が同一の受け取り先に送金する場合、送金元が共同でデータに署名でき、署名済のデータは送金元の公開鍵の和で検証可能。
3.4ビットコインのプライバシーを高める応用
シュノア署名のアプリケーションとしては、マルチシグだけでなく、n人中のk人による署名といった閾値付きの署名、アトミックスワップで署名鍵を橋渡しするアダプター署名、署名対象の作成者と署名者が異なるブラインド署名が可能になる
これらの応用にはビットコインのプライバシーを強化する効果も期待できます。
4.数学的なお話し
ゼロ知識証明がわかるのであれば、この辺の記事で十分理解できる
https://gyazo.com/d56c8d2eaa3a5a0392408dec7a7bbcf4
参考文献