
Segregated Witness(SegWit)は、2017年8月に正式導入されたBitcoinブロックチェーンの重要な技術アップグレードです。トランザクションの署名(ウィットネスデータ)をトランザクションデータから分離し、専用のデータ構造に格納することで、ブロック構造を再設計しています。この仕組みにより、BitcoinネットワークのトランザクションIDの可変性問題を根本的に解決し、ブロック容量の拡大、ネットワーク効率の向上、さらにLightning Networkをはじめとするセカンドレイヤーのスケーリング技術の基盤を築きました。
Segregated Witnessは、2015年12月、香港で開催されたScaling BitcoinワークショップにてBitcoin Core開発者Pieter Wuilleによって初めて提案されました。当時、Bitcoinネットワークは1MBブロックサイズ制限によるトランザクション混雑と手数料高騰という深刻なスケーラビリティ問題に直面していました。加えて、トランザクションIDの可変性の脆弱性によって、トランザクションIDが確認前に改変可能となり、より高度なペイメントチャネル開発の障害となっていました。
Bitcoinコミュニティ内ではスケーリング問題を巡る議論が激化する中、SegWitはコンセンサス破壊を伴わずに有効ブロック容量を拡大し、トランザクションIDの可変性も修正可能なソフトフォーク型アップグレードとして提案されました。約1年半に及ぶ開発・テスト期間を経て、SegWitはBIP(Bitcoin Improvement Proposal)141によって実装され、必要な閾値達成後、2017年8月に正式導入されました。
SegWitの中核はトランザクションの構造再編にあります。主なポイントは以下の通りです。
データ分離:ウィットネス(署名・スクリプト)データをメイントランザクションデータから分離し、専用の「ウィットネス」構造に格納。
Weight計算の変更:ブロックサイズ計算時、ウィットネスデータは1バイトあたり0.25「Weight単位」として評価され、非ウィットネスデータは従来通り1単位。これにより、1ブロックあたりの取扱可能トランザクション数が増加し、理論上のブロック容量上限は約4MBとなります。
新しいアドレス形式であるBech32("bc1"で始まる)が導入され、エラー検出精度が向上し、QRコードの長さも短縮されました。
トランザクションID計算方式の変更:署名データがtxid(トランザクションID)計算に含まれず、トランザクションIDの可変性が解消され、トランザクションIDはブロードキャスト後も不変となります。
技術面では、SegWitはBitcoinスクリプトシステムに新バージョン規則を導入し、バージョン0のトランザクションとバージョン1のトランザクションとして区別します。これにより、非対応ノードでもブロックチェーン検証が可能となり、後方互換性が担保されます。
SegWitには多くのメリットがある一方、導入時には以下のようなリスクや課題が発生しました。
導入率の課題:SegWitは必須ではなく、ウォレットや取引所が自主的に対応する必要があったため、初期の導入は緩やかでした。
技術的難易度:SegWit実装にはウォレットソフトの大幅改修が必要で、開発者負荷やエラーリスクが増加。
コミュニティ分断:SegWit有効化はBitcoinコミュニティ内で大きな対立を生み、最終的にBitcoin Cash誕生を招くブロックチェーンフォークが発生。
セキュリティ対応:新スクリプト検証規則やアドレス形式の導入には、新たな脆弱性やセキュリティ問題防止のため厳密な検証が求められました。
ネットワーク移行期:ネットワーク全体が完全移行するまで双方のトランザクション形式への対応が必要となり、ネットワーク構造が複雑化しました。
それでも、SegWitの成功的な導入はBitcoin技術進化の重要な節目と広く認識されており、ソフトフォークによるブロックチェーン大規模アップグレードの実現可能性を証明しました。
SegWitはBitcoin技術開発の重要なマイルストーンであり、重要な課題解決と将来の技術革新の礎を築きました。トランザクションIDの可変性の解消によってLightning Networkなどセカンドレイヤーのスケーリングが可能となり、Bitcoinの長期的スケーラビリティへの道筋を示しました。また、ソフトフォークによる導入はブロックチェーンガバナンスや技術アップグレードの複雑性、分散型システムにおける合意形成の課題を浮き彫りにしています。現在SegWitはBitcoinネットワーク内で広く普及・標準化されており、その技術的価値や設計の合理性が広く認められています。
共有


