Taproot:ビットコイン史上最大のアップグレード
2021年に有効化されたTaprootは、シュノア署名、MAST、Tapscriptを通じてビットコインのプライバシー、効率性、スマートコントラクト能力を根本的に向上させたソフトフォークです。
2021年11月14日、ブロック高709,632において、ビットコイン史上最も重要なアップグレードの一つが静かに有効化された。花火も、ハードフォーク論争もなかった。新しいブロックがマイニングされ、それとともにビットコインプロトコルの根本的な変革が発効したのだ。これが**Taproot(タップルート)**である。
SegWit以来4年ぶりの主要プロトコルアップグレードであるTaprootは、3つのビットコイン改善提案(BIP)で構成されている。BIP 340(シュノア署名)、BIP 341(Taproot)、BIP 342(Tapscript)だ。この3つが組み合わさることで、ビットコインのプライバシー、効率性、プログラマビリティが新たな次元へと引き上げられた。単純なデジタル通貨から洗練された金融プロトコルへとビットコインを進化させる基盤が整ったのである。
本稿では、Taprootが正確に何を変えたのか、なぜそれが重要なのか、そしてビットコインの未来にとって何を意味するのかを深く掘り下げる。
Taproot以前のビットコイン:何が問題だったのか
Taprootを理解するには、まず既存のビットコインがどのように機能していたかを知る必要がある。
ビットコインのすべてのトランザクションは、Scriptと呼ばれるシンプルなプログラミング言語で条件が設定される。「このビットコインを使うには、アリスの秘密鍵による署名が必要」といった条件だ。単純な送金であればこれで十分である。しかし、現実世界の金融ははるかに複雑だ。
例えば、企業資金を管理する3-of-5マルチシグ(multisig)ウォレットを考えてみよう。5人の取締役のうち3人が同意しなければ資金を移動できない。Taproot以前のビットコインでは、このようなマルチシグトランザクションがブロックチェーンに記録される際、その複雑な構造がすべて露出していた。ブロックエクスプローラーで調べれば「このアドレスはマルチシグを使用しており、全5人中3人が署名した」ということが誰にでも分かったのだ。
これは2つの深刻な問題を生み出した。
第一に、プライバシーの問題。 マルチシグの使用有無、参加者数、署名者数がすべて公開された。大規模機関がマルチシグを使用しているという事実自体が攻撃対象となり得る情報だった。単純な送金と複雑なスマートコントラクトが外見上完全に異なっていたため、チェーン分析企業はトランザクションタイプだけで多くの情報を推測できた。
第二に、非効率性の問題。 マルチシグトランザクションは複数の署名を含む必要があったためデータサイズが大きかった。より大きなデータはより高い手数料を意味する。条件が複雑なトランザクションほどブロックスペースを多く消費し、ネットワーク全体のスループットにも影響を与えていた。
Taprootはこの2つの問題を同時に、エレガントに解決した。
BIP 340:シュノア署名 — 暗号学の基盤アップグレード
ECDSAからシュノアへ
ビットコインが2009年に誕生した際、サトシ・ナカモトは**ECDSA(楕円曲線デジタル署名アルゴリズム)**を署名方式として選択した。ECDSAは当時最も広く使用され、標準化されており、特許問題のないアルゴリズムだった。合理的な選択だったと言える。
しかし、暗号学者の間では**シュノア署名(Schnorr Signatures)が数学的により優れたアルゴリズムであることが広く知られていた。1991年にクラウス・ペーター・シュノア(Claus-Peter Schnorr)が発明したこのアルゴリズムは、ECDSAよりコンパクトな署名を生成し、よりクリーンなセキュリティ証明を持ち、何より線形性(linearity)**という驚くべき数学的特性を備えていた。問題は、シュノア署名が2008年まで特許で保護されていたことだ。サトシがビットコインを設計した当時は法的リスクがあったため、ECDSAが選ばれたのである。
特許が失効した後、ビットコイン開発者たちはシュノア署名をプロトコルに導入する方法を研究し始めた。その成果がBIP 340である。
線形性:なぜシュノアが革命的なのか
シュノア署名の核心的な利点は線形性にある。数学的にこれが意味するところは以下の通りだ。
複数の人の公開鍵と署名を足し合わせることができる。アリスの署名+ボブの署名+チャーリーの署名を合算すると、1つの署名のように見える**集約署名(aggregate signature)**が生成される。この集約署名は通常の署名とサイズも同一だ。
これが実用的に何を意味するか考えてみよう。3-of-5マルチシグで3人が署名する場合、ECDSAでは3つの個別署名がブロックチェーンに記録される必要がある。しかしシュノアでは、この3つの署名が1つに統合され、単一署名と区別できなくなる。外部の観察者には、これが1人の署名なのか100人の署名なのか判別できない。
鍵集約(Key Aggregation)
シュノアの線形性は**鍵集約(key aggregation)**を可能にする。複数の参加者の公開鍵を1つの公開鍵に結合できる。この結合された公開鍵は、通常の公開鍵と完全に同一に見える。
MuSigはこの原理を活用した代表的なプロトコルだ。改良版のMuSig2はわずか2ラウンドの通信でマルチ署名を生成でき、実用的なn-of-nマルチシグを実現する。生成された署名と公開鍵は、ブロックチェーン上で通常の単一鍵・単一署名トランザクションと完全に同一に見える。
バッチ検証(Batch Verification)
シュノア署名のもう1つの利点は**バッチ検証(batch verification)**だ。ビットコインノードが新しいブロックを受信すると、そのブロックに含まれるすべてのトランザクション署名を検証しなければならない。ECDSAでは各署名を1つずつ個別に検証する必要があった。署名が100個あれば100回の検証演算が必要だった。
シュノア署名は複数の署名をまとめて検証できる。100個の署名を一括検証する場合、個別検証の約2-3倍程度の演算ですべての署名の有効性を確認できる。これによりノードのブロック検証速度が大幅に向上する。特に初期ブロック同期(IBD:Initial Block Download)で数十万ブロックを高速検証する必要がある新規ノードにとって、この最適化は大きな差を生む。
BIP 341:Taproot — 洗練された構造設計
核心的洞察:協力パスと非協力パス
Taprootの中心的な洞察は驚くほどシンプルだ。ほとんどの複雑なコントラクトは、最終的にすべての参加者が合意して終了する。
2-of-3マルチシグエスクローを考えてみよう。売り手、買い手、仲裁者の3人が参加する。理論的にはさまざまな紛争シナリオが考えられるが、実際にはほとんどの取引が当事者間の合意で完了する。複雑な条件(タイムロック、仲裁者介入など)が使われるケースは極めてまれだ。
Taprootはこの観察を活用する。すべてのTaproot出力(output)には2つの支出パスがある。
鍵パス(Key Path):すべての参加者が合意した場合、シュノア鍵集約で作成した単一署名だけで資金を移動できる。この場合、ブロックチェーンには通常の単一署名トランザクションと完全に同一のデータが記録される。どのような複雑な条件が設定されていたかは一切露出しない。
スクリプトパス(Script Path):参加者が合意に至らない場合にのみ使用される。特定の条件(例:タイムロック後の仲裁者+一方当事者の署名)を開示し、それを満たして資金を移動する。ただし、ここでもMAST構造のおかげで、使用された条件のみが公開され、残りの条件は非公開のままとなる。
トウィーク(Tweak):2つのパスを1つに
技術的に、この2つのパスを1つの出力にエンコードする方法には**トウィーク(tweak)**と呼ばれる暗号学的手法が使われる。参加者の集約公開鍵にスクリプトツリーのマークルルート(Merkle root)を加えて、**トウィークされた公開鍵(tweaked public key)**を生成する。このトウィークされた鍵がブロックチェーンに記録される出力鍵だ。
鍵パスで支出する場合は、トウィークに合わせて調整された署名を提供する。スクリプトパスで支出する場合は、元の公開鍵、マークル証明、実行するスクリプトを提供する。いずれのパスでも、外部からTaproot出力は1つの公開鍵として見える。それ以上の情報は分からない。
MAST:マークル化抽象構文木
従来のスクリプトの限界
Taproot以前のビットコインで複雑な条件を実装するには、P2SH(Pay-to-Script-Hash)またはP2WSH(Pay-to-Witness-Script-Hash)を使用する必要があった。問題は、資金を支出する際にスクリプト全体を公開しなければならないことだった。5つの条件のうち1つだけを使用する場合でも、残りの4つの条件がすべてブロックチェーンに記録された。
これはプライバシーの問題であるだけでなく、効率性の問題でもあった。使用しない条件が占めるデータスペースの分だけ余分な手数料を支払う必要があったのだ。
MASTの解法
**MAST(Merklized Abstract Syntax Trees:マークル化抽象構文木)**は、この問題をマークルツリー(Merkle Tree)構造で解決する。各条件(スクリプト)をマークルツリーの葉(leaf)として配置し、このツリーのルートハッシュのみを記録する。
資金を支出する際は、使用する条件のスクリプトと、その葉からルートまでの**マークル証明(Merkle proof)**のみを提供すればよい。検証者はこの証明により、当該スクリプトが元のツリーに含まれていたことを確認できる。残りの条件はハッシュ値としてのみ存在するため、その内容は永久に非公開のままとなる。
実質的な利点
具体的なシナリオで説明しよう。相続計画のためのビットコインスクリプトを設計すると仮定する。
- 条件1:本人の署名(日常的な使用)
- 条件2:配偶者の署名+6ヶ月タイムロック(本人がアクセス不能な場合)
- 条件3:弁護士+配偶者+子供のうち2人のマルチシグ+1年タイムロック(災害時)
- 条件4:弁護士の署名+2年タイムロック(最後の手段)
従来の方式では、条件1で普段資金を使用するだけでも、相続計画の全構造(配偶者、弁護士、子供の関与事実、タイムロック期間など)が公開されていた。MASTでは条件1のスクリプトのみが公開され、残りの3条件はハッシュ値の背後に隠される。相続計画の存在自体を外部から知ることはできない。
そしてTaprootの鍵パスと組み合わせるとさらに強力になる。条件1(本人の署名)を鍵パスに設定すれば、日常使用時のトランザクションは通常の単一署名送金と完全に同一に見える。相続計画が存在するという事実自体がブロックチェーン上で観察不可能となるのだ。
BIP 342:Tapscript — 未来のための設計
新しいスクリプト体系
Tapscript(タップスクリプト)は、Taprootのスクリプトパスで使用される更新されたスクリプト体系だ。既存のビットコインスクリプトを基盤としつつ、いくつかの重要な変更が加えられている。
OP_CHECKSIGADD:従来のOP_CHECKMULTISIGとOP_CHECKMULTISIGVERIFYがOP_CHECKSIGADDに置き換えられた。旧マルチシグオペコードは署名検証時に非効率的な「1つずつ試す」方式を使用していたが、OP_CHECKSIGADDは署名カウンターを直接管理し、より効率的でシュノア署名と互換性のあるマルチシグを実現する。
署名ハッシュの改善:Tapscriptは改善された署名ハッシュ(sighash)アルゴリズムを使用する。すべての入力の金額とスクリプトが署名にコミットされるため、ハードウェアウォレットが安全に手数料を計算できるようになった。これはSegWitでも部分的に対処されていたが、Tapscriptでより完全なものとなった。
将来のアップグレード容易性
Tapscriptの最も重要な特徴は将来の拡張性だ。Tapscriptでは、未使用のオペコード(OP_SUCCESSシリーズ)が将来のソフトフォークによる新機能追加のために予約されている。これはSegWitのバージョン管理システムと組み合わさり、ビットコインプロトコルへの新機能追加が以前よりもはるかにクリーンになった。
この設計のおかげで、その後提案されたOP_CHECKTEMPLATEVERIFY(CTV)、OP_CAT、OP_VAULTといった新しいオペコードがTapscriptフレームワーク内で自然に追加できる道が開かれた。Taprootは単に現在の改善にとどまらず、ビットコインの将来の発展のためのプラットフォームでもあるのだ。
プライバシー革命:すべてのトランザクションが同一に見える
Taprootがもたらした最も根本的な変化はプライバシーの次元で起きている。
Taproot以前は、トランザクションタイプが外見上区別可能だった。P2PKH(レガシー送金)、P2SH(スクリプトハッシュ)、P2WPKH(SegWit単一署名)、P2WSH(SegWitスクリプト)など、それぞれが異なるオンチェーンフットプリントを持っていた。チェーン分析企業はこの違いを利用して資金の流れを追跡し、ユーザーをプロファイリングすることができた。
Taprootでは、鍵パスで支出されるすべてのトランザクションが同一に見える。単一署名であれ、10-of-15マルチシグであれ、複雑なタイムロック条件であれ、ライトニングチャネル開設であれ — 鍵パスで支出されればブロックチェーンには同一形式のデータが記録される。
これはビットコインの**代替可能性(fungibility)**を大幅に向上させる。すべてのビットコインがオンチェーンで同一に見えれば、特定のコインの「履歴」を根拠に差別することが困難になる。これはビットコインが真の通貨として機能するための核心的な属性だ。
手数料削減と効率性
Taprootは複数の面でトランザクションサイズを削減し、手数料を節約する。
鍵集約効果:n-of-nマルチシグでn個の署名が1つに圧縮される。3-of-3マルチシグの場合、署名データが約67%削減される。
MAST効果:複雑なスクリプトで使用された条件のみを公開すればよいため、不要なデータがブロックチェーンに記録されない。
鍵パス優先:最も一般的なケース(全当事者の合意)に最小限のデータしか必要としない。鍵パスでの支出は、従来のP2WPKHトランザクションよりも効率的になり得る。
これらの効率性向上は、個々のユーザーの手数料削減にとどまらず、ビットコインネットワーク全体のスループットを事実上増加させる効果がある。同じブロックスペースにより多くのトランザクションを格納できるからだ。
スマートコントラクトの可能性拡大
Taprootはビットコインのスマートコントラクト能力を大幅に拡張した。
ライトニングネットワークの改善
ライトニングネットワークのチャネル開設トランザクションは本質的に2-of-2マルチシグだ。Taproot以前は、このトランザクションがオンチェーンでマルチシグとして識別可能だった。Taproot以後は、チャネル開設が通常の送金と区別できなくなる。これはライトニングユーザーのプライバシーを向上させ、チャネル管理コストを削減する。
DLC(Discreet Log Contracts)
DLCはオラクルを活用した条件付き決済プロトコルだ。スポーツ競技の結果や金融商品の価格といった外部データに基づくベッティングや保険契約をビットコイン上で実装できる。Taprootのシュノア署名とMAST構造はDLCをより効率的でプライベートにする。
PTLC(Point Time Locked Contracts)
Taprootは、既存のライトニングネットワークのHTLC(Hash Time Locked Contracts)をPTLCに置き換えるための基盤を整えた。PTLCはシュノア署名の**アダプター署名(adaptor signatures)**技法を活用し、HTLCより優れたプライバシーを提供する。HTLCでは同一の決済ハッシュがルートのすべてのホップで使用されるため相関分析が可能だったが、PTLCでは各ホップごとに異なるポイントが使用されるため、ルート追跡が大幅に困難になる。
有効化プロセス:Speedy TrialとLOT=true論争
Taprootの技術的内容と同様に、その有効化プロセスもビットコインガバナンスの重要な事例として記録に残った。
SegWit戦争の教訓
2017年のSegWit有効化は激しい論争と対立を伴った。マイナーと企業連合がSegWit有効化を遅延させようとしたことで、UASF(User Activated Soft Fork)運動が発生し、最終的にはBitcoin Cashのハードフォークにまで至った。この経験はビットコインコミュニティに深い傷跡を残した。
Taprootの有効化を議論する際、コミュニティはこの教訓を反映しようとした。中心的な争点は**LOT(Lock-in On Timeout)**パラメータだった。
LOT=true vs LOT=false
LOT=false:シグナリング期間が終了すると有効化の試みは失敗に終わる。マイナーがシグナリングしなければ、アップグレードは単純に有効化されない。
LOT=true:シグナリング期間終了までにマイナーがシグナリングしなければ、期間終了時に強制的に有効化される。これは事実上、UASFを内蔵したものと同等だ。
LOT=true支持者は、マイナーにアップグレードの拒否権を与えるべきではないと主張した。LOT=false支持者は、強制有効化がネットワーク分裂のリスクを高めると反論した。
Speedy Trialという妥協
最終的にSpeedy Trialという妥協案が採用された。短いシグナリング期間(約3ヶ月)の間にマイナーの90%以上がシグナリングすれば有効化が確定し、達成できなければ再度議論するという方式だった。
結果は圧倒的な支持だった。シグナリング期間中、マイナーの99%以上が支持シグナルを送った。Taprootは2021年6月にロックイン(lock-in)、11月に有効化された。SegWit戦争の苦しい経験とは対照的に、Taprootの有効化は比較的順調に進んだ。これはアップグレードの技術的価値に対するコミュニティの幅広い合意があったからこそだ。
Taproot以後:採用状況と今後の展望
Taproot有効化後、採用は段階的に進んでいる。2023年に入り、OrdinalsやBRC-20トークンの登場によりTaprootトランザクションの比率が急増したが、これはTaprootの当初の設計意図とはやや異なる方向性だった。
ウォレットやサービスのTaproot対応は着実に拡大しており、主要ハードウェアウォレットもTaprootアドレス(bc1p…)をサポートしている。ライトニングネットワークの実装もTaprootチャネルに取り組んでおり、ライトニングのプライバシーと効率性を一段階引き上げることが期待されている。
今後Taprootの上に構築可能な技術には以下のものがある。
- クロスインプット署名集約(Cross-Input Signature Aggregation):1つのトランザクションに含まれるすべての入力の署名を1つに統合する技術。実装されればトランザクションサイズが画期的に縮小される。
- OP_CTV / OP_CAT:コベナント(covenants)を可能にする新しいオペコード。ビットコインのプログラマビリティをさらに一段階拡張する。
- MuSig2ベースのプロトコル:より精緻なマルチ署名スキームと閾値署名(threshold signatures)の実用的な実装。
SegWit以来最も重要なアップグレードである理由
SegWit(2017)がビットコインのスケーラビリティ問題を解決し、ライトニングネットワークの基盤を整えたのだとすれば、Taproot(2021)はビットコインのプライバシーとプログラマビリティの天井を引き上げた。
SegWitがブロックサイズ戦争の砲火の中で生まれたのに対し、Taprootは比較的静かに、しかしより根本的な変化をもたらした。シュノア署名はビットコインの暗号学的基盤をアップグレードし、MASTはスクリプトプライバシーのパラダイムを変え、Tapscriptは将来のイノベーションへの扉を開いた。
ビットコインはしばしば「変わらないプロトコル」と誤解される。しかしTaprootは、ビットコインが極めて慎重に、しかし確実に進化できることを示した事例だ。数年間の研究、数百回のレビュー、コミュニティ全体の合意を経て有効化されたTaprootは、ビットコイン開発の模範であり、分散型プロトコルがどのようにアップグレードされ得るかを示す教科書的な事例だ。
Taprootの真の影響はまだ完全には展開されていない。新しいウォレット、プロトコル、アプリケーションがTaprootの機能を活用するにつれて、ビットコインはより プライベートで、より効率的で、より強力な金融プロトコルへと進化し続けるだろう。