「Segregated Witness(SegWit)」の入門ガイド
HomeArticles

「Segregated Witness(SegWit)」の入門ガイド

上級者
1w ago
5m

コンテンツ


SegWitとは?

「Segregated Witness(SegWit)」とは、2015年に開発されたプロトコルのアップグレードです。ブロックチェーンが以前から抱えているスケーラビリティの問題の解決策として、SegWitの概念が導入されました。

ビットコインのネットワークでは一般的に、複数の取引がまとめられ、10分ごとに新しいブロックが承認されます。そして、ブロックのサイズによって、各ブロックに含めることができる取引の数が決まります。現在ビットコインのブロックチェーンが1秒間に処理できる件数(Transactions Per Second:TPS)は約7取引です。

SegWitのアイデアの中核は、署名を取引データから分離させ、ブロック内のデータを再編することです。言い換えると、SegWitへアップグレードすることは、「Witness(署名)」と取引のデータを分けることです。署名を分離することによって、1つのブロックに含める取引の数を増やすことができ、ネットワークの取引処理量を増加させることが可能になります。

ビットコインのネットワークは1秒間に約7取引しか処理できないため、取引が承認されるまでに時間がかかることがあります。1秒に何千もの取引を処理できる従来の決済システムや金融ネットワークに比べると、この処理スピードは非常に遅いです。

SegWitは、ビットコイン開発者のPieter Wuille氏が、ビットコインコアの関係者と共に2015年に開発しました。2017年8月に、ビットコインのネットワークをソフトフォークさせ、SegWitのアップグレードが実施されました。

現在では、ビットコインやライトコインを初めとする複数の仮想通貨プロジェクトがSegWitを実装しています。SegWitへのアップグレードには、取引速度の向上やブロックキャパシティの増加といった多くのメリットがあります。さらにSegWitは、トランザクション展性(下記参照)の問題も解決しました。


SegWitの主なメリット

キャパシティの増加

SegWitの最も大きなメリットの1つは、ブロックのキャパシティの増加です。取引の入力情報から署名のデータを分離することで、1つのブロックに含めることができる取引の数が増加します。

取引は主に、インプット(入力)とアウトプット(出力)という2つの要素で構成されます。基本的にインプットには送金者の公開アドレスが、アウトプットには送金先の公開アドレスが含まれます。それに加え、送金者は移転可能な資産を所有していることを証明しなくてはなりません。その証明としてデジタル署名を行います。

SegWitを実装しない場合、署名のデータはブロックの中の最大65%を占めます。SegWitを実装すれば、この分を取引のインプット領域から取り除くことができます。これによってブロックのサイズを、実質的に1MBから約4MBに増やすことが可能になります。

SegWitは実際にブロックのサイズを大きくしているわけではないことに注意してください。実質的なブロックサイズを増やすための技術です。実際にブロックサイズの上限を上げるにはハードフォークが必要になります。具体的には、実際のブロックサイズは1MBのままですが、実質4MBが上限になっています。

さらに、SegWitはブロックの重さという概念を生みました。ブロックの重さは、ブロックサイズと考えることもできます。本質的に、ブロックの重さはブロック内の全データの重さであり、取引データ(1MB)と署名データ(最大3MB)を含んだものです。この署名データをインプット領域から分離するのがSegWitです。


取引速度の向上

1つのブロックに、より多くの取引データを保存できるようになるため、SegWitは取引の処理速度を向上させることもできます。それは、ブロックチェーン上で処理される取引の量が増加するからです。たとえ1つのブロックのマイニングに同じ時間がかかるとしても、ブロックに含まれる取引の数が増加しているため、TPSが増えます。

取引速度の向上は、ビットコインネットワークの取引コストを減少させることにもつながります。SegWitが導入される前は、取引ごとに30ドル以上かかることもありましたが、SegWitを実装した後は、1取引につき1ドル未満まで大幅に減少させることができました。


トランザクション展性の克服

ビットコインの大きな問題は、取引の署名を改ざんできてしまうことでした。署名を改ざんされてしまうと、結果として不正取引が可能になります。ブロックチェーンに保存されたデータは事実上変更ができないため、不正な取引が永久にブロックチェーンに記録されてしまうことになるのです。

SegWitを実装すると、署名は取引データに含まれなくなり、データが改ざんされるリスクを心配する必要がなくなります。このおかげで、セカンドレイヤーのプロトコルやスマートコントラクトといった次の技術革新を進めることができるようになりました。


SegWitとライトニングネットワーク

前述したように、トランザクション展性の問題を解決できたことも、セカンドレイヤープロトコルの開発を可能にする一因になりました。簡単に言うとセカンドレイヤープロトコルとは、ビットコインのようなブロックチェーンに重ねて構築される新しいプラットフォームや製品のことです。最も知られている例は、オフチェーンネットワークで少額決済を可能にするライトニングネットワークです。

ライトニングネットワークは、ビットコインのネットワークの上で稼働するセカンドレイヤープロトコルです。主な目的は、より多くの取引がより短い時間で承認されるようにすることで、結果としてユーザーがより速く取引を行えるようになります。取引がチェーンの外に集められ、ビットコインネットワークが効率的に処理を行えるようになるのです。

ライトニングネットワークは元々ビットコインのために開発されました。しかしながら他の仮想通貨やブロックチェーンのプロジェクトも、ライトニングネットワークの活用に取り組んでいます。これによって、取引の承認にかかる時間を短かくするだけでなく、スケーラビリティ問題の新たな解決策の開発につながっていくでしょう。


SegWitとSegWit2x

SegWitはソフトフォークによるアップグレードで実装されたため、アップグレード前と互換性がありました。言い換えると、SegWitを実装するためのアップデートをしていないビットコインのノードも、現在でも取引を処理することが可能です。しかしその後、「SegWit2x(S2X)」の実装が提案されました。SegWit2xはハードフォークによるアップグレードが必要です。

SegWitとSegWit2xの違いで重要な点は、SegWit2xは1ブロックに含まれる取引の数が変わるだけでなく、ブロックのサイズが1MBから2MBになります。ブロックのサイズが大きくなれば、より多くのデータを処理しなくてはならないため、ノードやマイナーにかかる負担が大きくなります。

両者の違いでもう1つ注目したい点が、SegWitの提案はビットコインのコミュニティに支持されて実行されたことです。この出来事が「UASF(User-Activated Soft Fork:ユーザーによって実行されるソフトフォーク)」という概念を生みました。

一方でSegWit2xは、ビットコインのガバナンスに関する根本的なルールに、重大な変更を要求しました。しかし、開発者が採用と実施について合意に至らなかったため、SegWit2xの実装に向けた動きは止まったままです。


まとめ

SegWitの実装は、ビットコインの歴史上最も大きなプロトコルアップグレードです。そして、非中央集権的なコミュニティに支持されて実行されたという事実が興味深い点です。

SegWitの導入は、ビットコインを初めとするブロックチェーンネットワークが抱える問題の解決に向け、大きな一歩となりました。特にスケーラビリティの問題です。SegWitとセカンドレイヤープロトコルを組み合わせることによって、ブロックチェーンネットワークはより多くの取引を処理することが可能になり、それに合わせて効率性向上やコスト削減を実現できています。

効果的で革新的なソリューションにも関わらず、SegWitの採用はまだ完全には進んでいません。現在SegWitを活用しているビットコインアドレスの割合は約53%にとどまっています。