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

BIP 341

Taproot — SegWit バージョン 1 の使用ルール

原題: Taproot: SegWit version 1 spending rules

Status
Deployed
Type / Layer
Specification / Consensus (soft fork)
Author
Pieter Wuille, Jonas Nick, Anthony Towns
割り当て日
Status 検証日
原文
github.com/bitcoin/bips/blob/master/bip-0341.mediawiki

要約

SegWit バージョン 1 の出力(P2TR)とその使用ルールを定めたコンセンサス仕様。狙いは、コインを使う条件のうち実際に使われた部分以外をチェーン上に出さないことにある。出力は 32 バイトの公開鍵ひとつとして置かれる。この鍵は内部鍵 P に、スクリプトのマークルルートへのコミットメントを加算した Q = P + int(hashTapTweak(P || マークルルート))G として作られる。使い方は 2 通りある。鍵パスでは Schnorr 署名 1 つを witness に置くだけで使用でき、その出力にどんなスクリプトが仕込まれていたかは一切現れない。スクリプトパスでは、実行するスクリプトとマークル経路、制御ブロックを開示する。木のうち実行した枝しか見せなくてよいため、条件をいくつ並べても未使用の分はチェーンに載らない。全員が協調できたときは鍵パスで決済し、もめたときだけスクリプトを開くという設計である。署名の対象には使用する全入力の金額とスクリプトが含まれ、オフラインの署名者に手数料や実行条件を偽れない。アドレスは Bech32m で符号化され bc1p で始まる。

技術的意義

BIP340(Schnorr 署名)・BIP342(Tapscript)と一組で 2021 年 11 月に有効化されたコンセンサスルールである。鍵集約と組み合わせると、マルチシグや条件付きの契約が通常の単一鍵送金と外形上見分けられなくなり、プライバシーと効率が同時に改善する。ただし効果は条件付きで、スクリプトパスを使った時点で条件はチェーン上に現れる。

関連する BIP

関連する解説記事

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

bitcoin/bips で原文を読む