メインコンテンツへスキップ

BIP 340

secp256k1 のための Schnorr 署名

原題: Schnorr Signatures for secp256k1

Status
Deployed
Type / Layer
Specification
Author
Pieter Wuille, Jonas Nick, Tim Ruffing
割り当て日
Status 検証日
原文
github.com/bitcoin/bips/blob/master/bip-0340.mediawiki

要約

secp256k1 曲線上の 64 バイト Schnorr 署名の標準を定めた提案。ビットコインは長らく ECDSA を使ってきたが、同じ曲線上の Schnorr 署名には利点があると仕様は述べる。第一に証明可能安全性で、楕円曲線離散対数問題の困難性を仮定した乱択オラクルモデルのもとで強偽造不可能性(SUF-CMA)が証明できる。ECDSA について知られている最良の結果は、より強い仮定を必要とする。第二に線形性があり、複数の鍵と署名を数学的に足し合わせられる。これがマルチシグや複数入力の署名集約の基礎になる。第三に署名が 64 バイト固定で、ECDSA の DER エンコードに伴う可変長や展性の余地がない。仕様はさらに、公開鍵を x 座標のみで表現する方式、nonce を秘密鍵とメッセージから決定的に導出する方式(乱数生成器の事故で鍵が漏れる事象を防ぐ)、署名対象ハッシュにタグを付ける方式などを定めている。

技術的意義

署名の線形性は、複数の署名者を単一の 64 バイト署名にまとめる道を開き、検証コスト・手数料・プライバシーを同時に改善しうる。BIP341(Taproot)・BIP342(Tapscript)と一組で 2021 年 11 月に有効化され、以後のマルチシグ・集約署名の設計はこの規格を土台にしている。

関連する BIP

関連する解説記事

このページに掲載しているのは原文の翻訳ではなく日本語の要約です。BIP は原文が正であり、Status を含むメタデータは上記の検証日時点で bips リポジトリから転記した値です。実装・検証の際は必ず原文を参照してください。

bitcoin/bips で原文を読む