デジタル署名は、ビットコインの取引認証の根幹を担う技術です。送信者が秘密鍵で署名し、受信者や検証者が公開鍵でその正当性を確かめることで、二重支払いを防ぎ取引の信頼性を保証しています。
ビットコインは2009年の誕生以来、ECDSA(楕円曲線デジタル署名アルゴリズム)を使用してきました。しかし2021年11月のTaprootアップグレードにより、新しいアドレス形式でSchnorr署名が使えるようになりました。なぜこの変更が行われたのか、そしてSchnorr署名が何をもたらすのかを詳しく見ていきましょう。
本記事では、ECDSAとSchnorr署名の技術的な仕組みの違い・セキュリティ特性・鍵集約の具体的な仕組み・ビットコインへの実際の影響について解説します。
1. デジタル署名の基礎:なぜ署名が必要か
1-1. ビットコイン取引における署名の役割
ビットコインの取引(トランザクション)において、デジタル署名は「この資金の所有者である私が、この送金を承認する」ことを証明します。公開鍵暗号方式に基づいており、秘密鍵を知らなければ正当な署名を作れないという数学的保証が土台です。
ビットコインのUTXO(未使用トランザクション出力)を使用するには、そのUTXOを作成した際に指定したスクリプト条件を満たす必要があります。最も一般的なP2PKH(Pay to Public Key Hash)やP2WPKH(SegWit v0)では、「正しい公開鍵と、その公開鍵に対応する秘密鍵で作成した署名を提示すること」が条件です。
1-2. 楕円曲線暗号(ECC)の基礎
ECDSAとSchnorr署名はともに楕円曲線暗号(ECC)に基づいています。ビットコインはsecp256k1という特定の楕円曲線を使用しており、この曲線上の点Gをジェネレーター(基点)と呼びます。
秘密鍵kは256ビットのランダムな整数であり、公開鍵PはP = k × G(楕円曲線上のスカラー倍算)として計算されます。k × Gを計算するのは容易ですが、PからkをPからkを逆算することは現在の計算能力では事実上不可能——これが楕円曲線離散対数問題の安全性根拠です。
2. ECDSAの仕組みと制約
2-1. ECDSA署名の生成プロセス
ECDSAによる署名生成の手順を概略で説明します。
- メッセージm(トランザクションデータ)のハッシュ値e = hash(m)を計算する
- ランダムなノンスk(一度だけ使う乱数)を生成し、R = k × G を計算する
- Rのx座標をrとし、秘密鍵dを使って s = k⁻¹(e + r・d) mod n を計算する
- 署名は(r, s)のペアとなり、各64バイト(合計72バイト程度)
検証時には公開鍵Pと署名(r, s)を使って計算を行い、期待されるrが再現できるかを確かめます。
2-2. ECDSAの既知の弱点
ECDSAには幾つかの技術的な制約があります。まず非線形性の問題があります。ECDSA署名は数学的に線形ではないため、複数の署名を一つに集約することが非常に困難です。これがマルチシグの非効率性(各署名者の署名を個別に格納・検証する必要がある)の根本原因です。
次にノンスの秘密性への依存があります。ノンスkが繰り返し使われたり推測されたりすると秘密鍵が漏洩します。2010年にPlayStation 3のECDSA実装が乱数生成の不備で秘密鍵を露出した事例はその典型です。
さらに署名の展性(Malleability)問題があります。ECDSAでは(r, s)と(r, -s mod n)の両方が同一メッセージへの有効な署名となります。SegWitで展性問題はほぼ解消されましたが、理論的な余地が残ることは事実です。
3. Schnorr署名の仕組みと利点
3-1. Schnorr署名の生成プロセス
Schnorr署名の生成手順は以下のとおりです(BIP340の仕様に基づきます)。
- ランダムなノンスkを生成し、R = k × G を計算する
- e = hash(R || P || m)(RとP公開鍵とメッセージの連結ハッシュ)を計算する
- s = k + e・d mod n(dは秘密鍵)を計算する
- 署名は(R, s)のペア(64バイト固定)
検証時には、R =? s・G – e・P が成立するかを確かめます。ECDSAより数学的にシンプルで、署名サイズも固定64バイトです(ECDSAは最大72バイト)。
3-2. 線形性がもたらす鍵集約
Schnorr署名の最大の技術的優位点は「線形性」にあります。Schnorrの構造では、複数の参加者の公開鍵と署名を単純に加算(楕円曲線上の点加算とスカラー加算)するだけで集約できます。
具体的には、3人の参加者(公開鍵P1・P2・P3、秘密鍵d1・d2・d3)によるマルチシグを考えます。各参加者がノンスk1・k2・k3を生成し、R_agg = R1 + R2 + R3を計算します。集約公開鍵P_agg = P1 + P2 + P3を使って共通のe = hash(R_agg || P_agg || m)を計算し、各参加者がsi = ki + e・diを計算して合計s_agg = s1 + s2 + s3を求めます。
検証時には通常の単一署名と同じ式R_agg =? s_agg・G – e・P_aggで確認できます。ブロックチェーン上には(R_agg, s_agg)の一組だけが格納されるため、3人のマルチシグも単一署名と外観上区別がつきません。
4. MuSig2:実用的な鍵集約プロトコル
4-1. MuSig1の問題点とMuSig2の改良
単純な鍵集約には「ローグキー攻撃(Rogue Key Attack)」と呼ばれる脆弱性があります。悪意ある参加者がP_malicious = P_target – P_honest のような公開鍵を登録することで、相手の署名なしに有効な集約署名を偽造できる問題です。
MuSig1はこれをKey Aggregation Coefficient(各公開鍵にハッシュ由来の係数をかける)で解決しましたが、3ラウンドの通信(コミットメント→ノンス共有→署名共有)が必要でした。
2022年に提案されたMuSig2は、各参加者が二つのノンスを使うことで安全性を保ちながら2ラウンド通信に削減しました。実用性が大幅に向上したMuSig2は、LNDなどのLightning実装やTrezorなどのハードウェアウォレットに採用されています。
4-2. Threshold Signatureとの違い
MuSig2はn-of-nマルチシグ(全員の署名が必要)を単一署名に集約します。一方、m-of-nマルチシグ(n人中m人の署名で足りる)をシングルシグに見せるにはThreshold Signature(閾値署名)が必要です。
FROST(Flexible Round-Optimized Schnorr Threshold Signatures)はSchnorrをベースにした閾値署名プロトコルで、2-of-3や3-of-5などの構成もブロックチェーン上ではシングルシグと同一外観で実現できます。FROSTの実装はウォレット・取引所のセキュリティ向上に活用されつつあります。
5. セキュリティ特性の詳細比較
5-1. 証明可能安全性
セキュリティの証明という観点では、Schnorrは「離散対数問題が困難である限り安全」という証明がランダムオラクルモデルで厳密に与えられています。ECDSAも安全とされていますが、同等の厳密な証明は得られていません。この点でSchnorrは学術的に明確な優位性を持ちます。
5-2. 量子コンピューターへの耐性
SchnorrもECDSAも楕円曲線暗号に基づくため、十分な性能の量子コンピューターに対しては、どちらも理論的には解読可能性があります。量子耐性を得るにはポスト量子暗号への移行が必要であり、これはビットコインコミュニティが長期的に検討すべき課題として認識されています。現時点(2026年)では実用的な脅威には至っていません。
6. バッチ検証によるノードの高速化
6-1. バッチ検証の仕組み
Schnorrのもう一つの重要な優位点がバッチ検証です。通常、n個のトランザクションを検証するにはn回の楕円曲線演算が必要ですが、Schnorr署名では複数の署名を同時に検証する数学的方法が存在します。
具体的には、n個の(R_i, s_i, e_i)の組について、乱数a_iを使って合計計算を一度に行うことで個別検証よりも大幅に計算コストを削減できます。
6-2. フルノードの同期コスト削減
ビットコインのフルノードは全ブロックチェーンをダウンロードして検証します。初期同期(IBD: Initial Block Download)では数百万件のトランザクション署名を検証する必要があります。バッチ検証により、この処理が理論上最大30〜40%高速化できると試算されています。
Taproot普及率が高まるにつれてバッチ検証の恩恵も大きくなり、ビットコインネットワークの分散性(フルノードを誰でも運営しやすくなること)に貢献すると期待されています。
7. 既存アドレスへの影響と後方互換性
7-1. SegWit v0とTaprootの共存
TaprootはSegWit v1として定義されており、v0(P2WPKH・P2WSH)との後方互換性が保たれています。既存のP2PKH・P2SH・P2WPKHアドレスへの送金は引き続き有効であり、ユーザーが古いアドレスを使い続けても問題ありません。
新しくウォレットを設定する場合、多くのソフトウェアウォレットはデフォルトでNative SegWit(P2WPKH)またはTaproot(P2TR)アドレスを生成します。Taprootアドレスへの移行は任意ですが、プライバシーと手数料の両面でメリットがあります。
7-2. マイナーによるTaproot有効化の経緯
TaprootはSpecdy Trialと呼ばれる活性化メカニズムを使用しました。各2016ブロックの調整期間内に90%以上のマイナーがシグナリングすれば、そのブロック高でロックインされます。2021年6月にロックインされ、11月14日に有効化されました。
このプロセスはBitcoin Coreコミュニティ・マイナー・取引所・ウォレット開発者が協調した結果であり、強制的なハードフォークなしにネットワーク全体に新機能を追加できることを示しました。
まとめ
ECDSAからSchnorr署名への移行は、プライバシー向上(鍵集約による外観統一)・効率改善(固定サイズ署名・バッチ検証)・セキュリティ強化(証明可能安全性)という複数の観点から合理的な判断でした。MuSig2やFROSTといった応用プロトコルの実装が進むにつれて、Schnorrの恩恵はさらに広がることが期待されます。
ビットコインの署名方式の変遷を理解することは、ネットワークの技術的基盤と将来の発展方向を把握する上で重要な知識となるでしょう。
よくある質問
Q1. ECDSAで作成したアドレスの資産はTaproot移行で無効になりますか?
無効にはなりません。ECDSAベースのP2PKH・P2SHアドレスはこれまで通り使用できます。Taprootは新しいアドレス種別を追加するソフトフォークであり、既存のアドレスや資産は完全に保護されています。
Q2. Schnorr署名を使うウォレットはありますか?
2024年以降、Bitcoin Core・Sparrow Wallet・Blue Wallet・Ledger・Trezorなど主要なウォレットがTaprootアドレス(Schnorr署名使用)をサポートしています。Taproot対応のウォレットを使えば、自動的にSchnorr署名が利用されます。
Q3. MuSig2は取引所のコールドウォレットでも使えますか?
はい、MuSig2はまさにこうした用途に適しています。複数の署名者が必要なセキュリティ構成を維持しながら、オンチェーンでの外観はシングルシグとなるため、取引所にとってはセキュリティ・プライバシー・手数料削減の三つのメリットがあります。実際に一部の取引所や機関向けカストディサービスで導入が進んでいます。
※本記事は情報提供を目的としており、投資を推奨するものではありません。暗号資産への投資は元本割れのリスクがあります。投資判断はご自身の責任で行ってください。