SegWit(セグウィット、Segregated Witnessの略)は、ビットコインのプロトコルにおいて、その誕生以来最も重要なアップグレードの一つです。システム全体を一新するのではなく、この高度な改良は特定の技術的脆弱性に対処しながら、ビットコインのスケーリング方法を変革するインフラの改善を導入しました。SegWitが何を行い、なぜ重要なのかを理解するには、その解決を意図した問題を見る必要があります。## 核心の問題:トランザクションのマレーフィーとLayer 2の障壁SegWit以前、ビットコインはトランザクションの改ざんが可能な奇妙な暗号学的問題、いわゆるトランザクションマレーフィーに直面していました。ビットコインの取引を検証するデジタル署名は、元々作成者でない誰かによって変更されても、取引自体の見た目を変えることができました。これは取引を無効にしたり、その基本的な効果を変えたりするわけではありませんでしたが—コインは依然として送信者から受信者へ移動しました—しかし、これは二層目のソリューションの展開をほぼ不可能にする重大な脆弱性を生み出しました。ライトニングネットワークやその他のLayer 2プロトコルは、取引の完全性に対する絶対的な確信を必要とします。トランザクションのマレーフィーを解決しない限り、これらのスケーリングソリューションはビットコインの上で信頼性を持って動作できませんでした。この問題は単なる不便さだけでなく、ビットコインの高スループット決済システムへの進化にとっての行き詰まりを意味していました。## SegWitの技術的解決策:証人データの分離SegWitの優雅さは、トランザクションのマレーフィー問題をどのように解決したかにあります。署名データ—「証人データ」と呼ばれるもの—をメインの取引スペースから各ビットコインブロックの別の部分に移動させることで、SegWitは取引署名の操作を不可能にしました。この構造の再編成は、いくつかの下流の効果をもたらしました。まず第一に、Layer 2の開発を解放しました。ライトニングネットワークや類似のプロトコルは、今や自信を持って動作でき、ビットコインが基本層で許容するよりも指数関数的に多くの取引を処理できる道を開きました。この主な恩恵を超えて、SegWitは「重み単位」と呼ばれる技術的仕組みを通じてブロック容量の拡大をもたらしました。単にブロックサイズを増やすのではなく(これは議論を呼ぶハードフォークを必要としたでしょう)、SegWitはブロックデータのカウント方法を巧妙に再定義し、理論上は約4メガバイトのデータを持つブロックを実現可能にしました。ただし、実際にはトランザクションの構成によって2メガバイト程度に収まることが多いです。この効率向上により、SegWit対応ウォレットを持つユーザーは取引手数料が低減されました。さらに、SegWitの技術アーキテクチャは、「スクリプトバージョン」と呼ばれるフレームワークを生み出し、将来のビットコイン改善を容易に展開できるようにしました。例えば、ビットコインのプログラマビリティと柔軟性を高めるシュノア署名などの新技術も実装可能となりました。これらすべては、ハードフォークではなく、マイニングハッシュパワーの過半数の支持だけで済むソフトフォークを通じて達成されました。この技術的選択は、意見の対立によるネットワークの分裂を避けることに寄与しました。## 開発者の革新:Bitcoin Coreによるアップグレードの実装SegWitの実装への道のりには複数のチームが関わりました。Blockstreamは当初、Elementsサイドチェーンプロジェクトのためにこの概念の初期バージョンを開発しました。しかし、突破口となったのは、Bitcoin Coreの貢献者であるLuke-jrが、後方互換性のあるバージョンをビットコインのメインネットに展開できると認識したことでした。Bitcoin Coreの開発チームが実装作業を担当し、Eric Lombrozo、Johnson Lau、Pieter Wuilleが主なBitcoin Improvement Proposal(BIP)の著者およびリード開発者として関わりました。彼らの作業は技術的な土台を築きましたが、多くの他のコア開発者もレビュー、テスト、改善を通じて貢献しました。実装の起動メカニズム自体は、コミュニティの意見を取り入れて進化しました。Litecoinの開発者ShaolinfryやBitmainのエンジニアJames Hilliardは、後に重要となるシグナルベースの起動方法の代替案を開発しました。## 起動の闘い:マイナー、ユーザー、UASFSegWitの提案から実装までの過程は、技術的アップグレードの背後にある政治的複雑さを明らかにしています。2015年12月に公開提案され、1年以内にコードが準備されたものの、SegWitは2017年まで有効化されませんでした—これは、重要なビットコインマイナーがアップグレードへの支持を示さなかったための2年間の遅れです。ビットコインの技術コミュニティ内では、SegWitに対する懐疑的な見方は少なかったです。外部の議論は、代替のスケーリングアプローチを優先すべきか、それともSegWitだけで十分かという点に集中していました。しかし、これらの正当な意見の相違は、起動の争いと絡み合いました。観測者の中には、マイナーがSegWitを交渉の武器として使っていると推測する者もいました。より挑発的には、特定のマイニング操作が、SegWitと互換性のないAsicBoostという独自の最適化技術を使っている証拠もあり、彼らにはアップグレードを妨害する経済的インセンティブがあったと考えられています。この行き詰まりは、草の根の反動運動を促しました。2017年、ビットコインのユーザーはShaolinfryが提案したアイデア、すなわちユーザーアクティベートソフトフォーク(UASF)に賛同しました。これらのユーザーは、その夏に自分たちのノードでSegWitを有効化する計画を発表し、マイナーの支持に関係なく実行するつもりでした。これが成功すれば、SegWitを持つビットコインと持たないビットコインの二つのネットワークが生まれ、エコシステムにとって壊滅的な結果となる可能性がありました。この「核オプション」に直面し、マイナーはJames Hilliardが設計した新しい起動メカニズムを使ってSegWit支持をシグナルし、数日後にUASFの期限を迎える前に降伏しました。2017年8月までに、SegWitはビットコインネットワーク上で稼働を開始しました。## 実用的な利用:SegWitアドレスと取引手数料SegWitの利用は、単にこの技術を組み込んだウォレットを使うだけで済みます。そのようなウォレットはSegWitアドレスを生成し、自動的にSegWitの仕組みを経由して取引をルーティングし、ユーザーは即座に手数料の削減の恩恵を受けます。SegWitには2つのアドレス形式があります。P2SHアドレスは「3」で始まりますが、すべての「3」から始まるアドレスがSegWitアドレスであるわけではなく、視覚的な識別は不完全です。Bech32アドレスは「bc1」で始まり、確実にSegWit対応であり、すべてのビットコインアドレスタイプの中で最も低い手数料を提供します。これらのbech32取引は、より効率的に重み単位システムを利用するため、P2SH SegWit取引よりも安価です。従来のアドレスで「1」から始まるものは、決してSegWitアドレスではありません。SegWitをサポートする人気のウォレットにはBitcoin Core、Electrum、Green、Trezor、Ledgerなどがあり、採用は徐々に進んでいます。## 現在の採用状況:なぜSegWitは普及しないのかSegWitの有効化からほぼ10年が経過しましたが、その採用は完全には進んでいません。ビットコインの取引の半数以上が現在SegWitを利用していますが、ネットワークの大部分は依然としてレガシーな取引フォーマットに頼っています。この遅い採用の背景には、技術的および政治的な要因があります。技術的な障壁には、実装の負担があります。大規模な金融機関や決済プラットフォームにとっては、SegWitの統合にはシステム全体の移行と大規模な開発リソースが必要です。小規模なウォレット開発者やサービス提供者は、他の機能に比べて相対的に優先順位を下げており、統合は比較的容易であるにもかかわらず、遅れています。政治的な側面も存在します。一部の団体は、SegWitのスケーリングアプローチに抗議する形で採用を抵抗しているとされます。彼らは異なる解決策を好むか、SegWitがビットコインのスループット制約を十分に解決していないと疑っている可能性もあります。観測者の中には、意図的に高いビットコイン手数料を維持することで、ユーザーを他の暗号通貨に誘導しようとしていると推測する者もいます。ただし、SegWitの採用が不完全であっても、早期導入者には利益があります。アップグレードしたユーザーは、ネットワーク全体の参加に関係なく、手数料の削減を享受します。採用が広がるにつれて手数料の優位性は増しますが、その恩恵は段階的に得られます。興味深いことに、SegWitの採用が低いほど、平均ブロックサイズも小さくなり、ノードの効率やネットワークの耐障害性といった技術的な利点も生まれます。
SegWitの解説:ビットコインの署名問題から現代的な実装まで
SegWit(セグウィット、Segregated Witnessの略)は、ビットコインのプロトコルにおいて、その誕生以来最も重要なアップグレードの一つです。システム全体を一新するのではなく、この高度な改良は特定の技術的脆弱性に対処しながら、ビットコインのスケーリング方法を変革するインフラの改善を導入しました。SegWitが何を行い、なぜ重要なのかを理解するには、その解決を意図した問題を見る必要があります。
核心の問題:トランザクションのマレーフィーとLayer 2の障壁
SegWit以前、ビットコインはトランザクションの改ざんが可能な奇妙な暗号学的問題、いわゆるトランザクションマレーフィーに直面していました。ビットコインの取引を検証するデジタル署名は、元々作成者でない誰かによって変更されても、取引自体の見た目を変えることができました。これは取引を無効にしたり、その基本的な効果を変えたりするわけではありませんでしたが—コインは依然として送信者から受信者へ移動しました—しかし、これは二層目のソリューションの展開をほぼ不可能にする重大な脆弱性を生み出しました。
ライトニングネットワークやその他のLayer 2プロトコルは、取引の完全性に対する絶対的な確信を必要とします。トランザクションのマレーフィーを解決しない限り、これらのスケーリングソリューションはビットコインの上で信頼性を持って動作できませんでした。この問題は単なる不便さだけでなく、ビットコインの高スループット決済システムへの進化にとっての行き詰まりを意味していました。
SegWitの技術的解決策:証人データの分離
SegWitの優雅さは、トランザクションのマレーフィー問題をどのように解決したかにあります。署名データ—「証人データ」と呼ばれるもの—をメインの取引スペースから各ビットコインブロックの別の部分に移動させることで、SegWitは取引署名の操作を不可能にしました。この構造の再編成は、いくつかの下流の効果をもたらしました。
まず第一に、Layer 2の開発を解放しました。ライトニングネットワークや類似のプロトコルは、今や自信を持って動作でき、ビットコインが基本層で許容するよりも指数関数的に多くの取引を処理できる道を開きました。この主な恩恵を超えて、SegWitは「重み単位」と呼ばれる技術的仕組みを通じてブロック容量の拡大をもたらしました。単にブロックサイズを増やすのではなく(これは議論を呼ぶハードフォークを必要としたでしょう)、SegWitはブロックデータのカウント方法を巧妙に再定義し、理論上は約4メガバイトのデータを持つブロックを実現可能にしました。ただし、実際にはトランザクションの構成によって2メガバイト程度に収まることが多いです。
この効率向上により、SegWit対応ウォレットを持つユーザーは取引手数料が低減されました。さらに、SegWitの技術アーキテクチャは、「スクリプトバージョン」と呼ばれるフレームワークを生み出し、将来のビットコイン改善を容易に展開できるようにしました。例えば、ビットコインのプログラマビリティと柔軟性を高めるシュノア署名などの新技術も実装可能となりました。
これらすべては、ハードフォークではなく、マイニングハッシュパワーの過半数の支持だけで済むソフトフォークを通じて達成されました。この技術的選択は、意見の対立によるネットワークの分裂を避けることに寄与しました。
開発者の革新:Bitcoin Coreによるアップグレードの実装
SegWitの実装への道のりには複数のチームが関わりました。Blockstreamは当初、Elementsサイドチェーンプロジェクトのためにこの概念の初期バージョンを開発しました。しかし、突破口となったのは、Bitcoin Coreの貢献者であるLuke-jrが、後方互換性のあるバージョンをビットコインのメインネットに展開できると認識したことでした。
Bitcoin Coreの開発チームが実装作業を担当し、Eric Lombrozo、Johnson Lau、Pieter Wuilleが主なBitcoin Improvement Proposal(BIP)の著者およびリード開発者として関わりました。彼らの作業は技術的な土台を築きましたが、多くの他のコア開発者もレビュー、テスト、改善を通じて貢献しました。実装の起動メカニズム自体は、コミュニティの意見を取り入れて進化しました。Litecoinの開発者ShaolinfryやBitmainのエンジニアJames Hilliardは、後に重要となるシグナルベースの起動方法の代替案を開発しました。
起動の闘い:マイナー、ユーザー、UASF
SegWitの提案から実装までの過程は、技術的アップグレードの背後にある政治的複雑さを明らかにしています。2015年12月に公開提案され、1年以内にコードが準備されたものの、SegWitは2017年まで有効化されませんでした—これは、重要なビットコインマイナーがアップグレードへの支持を示さなかったための2年間の遅れです。
ビットコインの技術コミュニティ内では、SegWitに対する懐疑的な見方は少なかったです。外部の議論は、代替のスケーリングアプローチを優先すべきか、それともSegWitだけで十分かという点に集中していました。しかし、これらの正当な意見の相違は、起動の争いと絡み合いました。観測者の中には、マイナーがSegWitを交渉の武器として使っていると推測する者もいました。より挑発的には、特定のマイニング操作が、SegWitと互換性のないAsicBoostという独自の最適化技術を使っている証拠もあり、彼らにはアップグレードを妨害する経済的インセンティブがあったと考えられています。
この行き詰まりは、草の根の反動運動を促しました。2017年、ビットコインのユーザーはShaolinfryが提案したアイデア、すなわちユーザーアクティベートソフトフォーク(UASF)に賛同しました。これらのユーザーは、その夏に自分たちのノードでSegWitを有効化する計画を発表し、マイナーの支持に関係なく実行するつもりでした。これが成功すれば、SegWitを持つビットコインと持たないビットコインの二つのネットワークが生まれ、エコシステムにとって壊滅的な結果となる可能性がありました。
この「核オプション」に直面し、マイナーはJames Hilliardが設計した新しい起動メカニズムを使ってSegWit支持をシグナルし、数日後にUASFの期限を迎える前に降伏しました。2017年8月までに、SegWitはビットコインネットワーク上で稼働を開始しました。
実用的な利用:SegWitアドレスと取引手数料
SegWitの利用は、単にこの技術を組み込んだウォレットを使うだけで済みます。そのようなウォレットはSegWitアドレスを生成し、自動的にSegWitの仕組みを経由して取引をルーティングし、ユーザーは即座に手数料の削減の恩恵を受けます。
SegWitには2つのアドレス形式があります。P2SHアドレスは「3」で始まりますが、すべての「3」から始まるアドレスがSegWitアドレスであるわけではなく、視覚的な識別は不完全です。Bech32アドレスは「bc1」で始まり、確実にSegWit対応であり、すべてのビットコインアドレスタイプの中で最も低い手数料を提供します。これらのbech32取引は、より効率的に重み単位システムを利用するため、P2SH SegWit取引よりも安価です。
従来のアドレスで「1」から始まるものは、決してSegWitアドレスではありません。SegWitをサポートする人気のウォレットにはBitcoin Core、Electrum、Green、Trezor、Ledgerなどがあり、採用は徐々に進んでいます。
現在の採用状況:なぜSegWitは普及しないのか
SegWitの有効化からほぼ10年が経過しましたが、その採用は完全には進んでいません。ビットコインの取引の半数以上が現在SegWitを利用していますが、ネットワークの大部分は依然としてレガシーな取引フォーマットに頼っています。この遅い採用の背景には、技術的および政治的な要因があります。
技術的な障壁には、実装の負担があります。大規模な金融機関や決済プラットフォームにとっては、SegWitの統合にはシステム全体の移行と大規模な開発リソースが必要です。小規模なウォレット開発者やサービス提供者は、他の機能に比べて相対的に優先順位を下げており、統合は比較的容易であるにもかかわらず、遅れています。
政治的な側面も存在します。一部の団体は、SegWitのスケーリングアプローチに抗議する形で採用を抵抗しているとされます。彼らは異なる解決策を好むか、SegWitがビットコインのスループット制約を十分に解決していないと疑っている可能性もあります。観測者の中には、意図的に高いビットコイン手数料を維持することで、ユーザーを他の暗号通貨に誘導しようとしていると推測する者もいます。
ただし、SegWitの採用が不完全であっても、早期導入者には利益があります。アップグレードしたユーザーは、ネットワーク全体の参加に関係なく、手数料の削減を享受します。採用が広がるにつれて手数料の優位性は増しますが、その恩恵は段階的に得られます。興味深いことに、SegWitの採用が低いほど、平均ブロックサイズも小さくなり、ノードの効率やネットワークの耐障害性といった技術的な利点も生まれます。