- Segwitはトランザクションデータを圧縮できる
- Segwit導入で仮想通貨分裂騒動が起きたことも
- ハードフォークによって通貨価値が大きく変動した
仮想通貨を学ぶ上で、もしくは投資を行う上で「Segwit(セグウィット) 」という言葉は欠かせません。ビットコインなど仮想通貨を語る上では最低限知っておきたい技術的な知識です。
過去にはSegwitを巡って通貨の分裂騒動が起き、各コインの価格にも大きく反映しました。今後もSegwit導入による価格への影響が広がる可能性もあり、仮想通貨投資を行う人でも最低限押さえておきたい知識と言えるでしょう。
Segwit (セグウィット) とは
Segwit(セグウィット)とは、トランザクションデータの大きさを小さくすることです。トランザクションデータは、仮想通貨を送金する際の取引記録を表します。データを小さく圧縮することで、より多くの処理を行えるため、Segwitはスケーラビリティ問題を解決する手段として開発されました。
スケーラビリティ問題とは
スケーラビリティ問題とは、取引データを保管しておく「ブロック(格納庫)」の容量が小さいために起こる送金遅延問題やトラブルのことです。
たとえば、ビットコインは10分ごとに1つのブロックが生成されますが、その容量は1MBに設定されており、10分間で約4,000件ほどのデータしか入れることができません。仮にビットコインの送金やコイン売買の需要が高まったとすると、4,000件程度の処理能力ではすべてのデータを処理できなくなります。
ビットコインの取引量がピークだったのは2017年12月半ば。ちょうどBTCの価格が過去最高額である200万円に到達した時です。この時の24時間辺り取引量は約1.5兆円。仮に1人10万円の取引を行っていたとしたら、1日で約1,500万件のデータを処理しなければなりません。
ビットコインの24時間データ処理件数は概算で57万6,000件です(4,000件[10分辺り]×6[1時間辺り]×24[1日辺り])。これでは到底処理が間に合わないということで、当時20万件を超える送金遅延が発生してしまいました。
遅延トラブルが発生すると送金や通貨売買を行いたくてもできない、つまり仮想通貨市場には大きなマイナスポイントになります。
スケーラビリティ問題の解決手段
スケーラビリティ問題を解決するには以下の2つの方法が代表的です。
- ブロックに入れるトランザクションデータを圧縮する
- ブロックサイズそのものを大きくする
つまり、データを格納する「器」自体を大きくするか、その器に入れる「データ」自体を小さくする方法の2種類に分かれます。
ブロックに入れるトランザクションデータの大きさを小さくする
ブロックの容量が小さければ、中に入れる要素(トランザクションデータ)を小さくすれば解決します。
ビットコインの場合であれば、1つのブロックの容量は1MBと決められています。現状で入るデータ量は約4,000件。つまり、1件1件のデータ容量(バイト数)を小さく圧縮できれば、より多くの要素を詰め込むことが可能です。
このデータを圧縮する仕組みを「Segwit」といいます。
トランザクションとは
トランザクションを直訳すると「取引」になります。
取引とは主に送金のことで、人から人に仮想通貨を送ったり、取引所を通じてコインの売買をすることもトランザクションです。
ブロックサイズそのものを大きくする
器が大きければそれだけたくさんのデータを格納できます。つまり、1つのブロックサイズの上限を広げることで、より多くの件数を処理できることになるのです。
ビットコインの事例では、現状の1MBというブロックサイズを2MBや3MBに拡張することを指します。このブロックサイズを大きくする仕組みを「Segwit2x」と呼びます。
Segwit (セグウィット) はトランザクションデータの大きさを小さくする
Segwitは取引データそのものを小さく圧縮する仕組みです。具体的には、1つのブロックに入っている「電子署名」という情報だけを、ブロックとは別の区画で管理することで内部にスペースを空けます。
ブロックの中には「インプット」、「アウトプット」、「電子署名」の情報が入っており、送信元や送信先の情報を表すインプットやアウトプットは圧縮できません。唯一、データの移動が可能な電子署名だけを圧縮することで、最大60%の取引データを小さくできます。
ハードフォークとソフトフォークの違い
SegwitやSegwit2xを導入すると、データの圧縮やブロックサイズの拡張が可能です。そのまま仮想通貨に取り入れることができれば、従来のスケーラビリティ問題の解決に役立ったでしょう。
しかし、過去にビットコインにSegwitを導入しようとした結果、「仮想通貨の分裂」という思わぬ事態を招きました。仮想通貨の分裂はハードフォークともいい、ブロックサイズを大きくするなどシステム全体に影響を及ぼす変更を加えると、新しい通貨を生み出して運用が開始されます。
一方、取引データを圧縮する程度の小さな変更は仮想通貨を分裂するには及びません。こうした細かな変更の場合はソフトフォークといいます。
ハードフォークとは
ハードフォークは、ある仮想通貨のシステム全体を大幅にアップグレードすることです。Segwit2xではブロックサイズ自体を大きくしますが、器を大きくするにはシステムを丸ごと変えなければなりません。
そのため、新たに生まれたシステムはもともとの通貨とは別に分裂します。2017年8月に行われたビットコインのハードフォークでは、もともとのビットコインから新たにビットコインキャッシュが生まれました。
このビットコインキャッシュはビットコインの基本的な性能を受け継いではいますが、通貨としては全くの別物です。
ソフトフォークとは
ソフトフォークとはシステムに簡単な変更を加えてアップデートする方法です。ブロックに収まるデータを圧縮するSegwitはソフトフォークであり、要素を少し変更した程度では分裂は起こり得ません。
仮想通貨のスケーラビリティ問題を解決するにはSegwitを実施すれば事足ります。わざわざ通貨を分裂させてまでSegwit2xを行う必要はありません。しかし、過去にハードフォークを行ってスケーラビリティ問題を解決しようとしたビットコインには内部的な事情がありました(詳しくは後述します)。
Segwit (セグウィット) の実装がもたらすメリット
Segwitは、仮想通貨が長年悩まされていたさまざまな問題を解決する可能性があります。
Segwitを実装するメリットは以下の4点です。
- 価格上昇
- マリアビリティ問題とスケーラビリティ問題の解決
- 取引手数料の低下
- 承認時間の短縮
順番にくわしく解説します。
価格上昇
ビットコインは長年スケーラビリティ問題に悩まされてきました。Segwitが実装されれば、スケーラビリティ問題の解決につながります。そのため、仮想通貨への期待が高まり、価格も上昇するでしょう。
実際に、2017年の4月にモナコインがSegwitの採用を決めたことで、価格が1ヶ月もしないうちに4倍になりました。他のコインでもSegwitが導入されることがわかれば、そのコインの価格は高騰するでしょう。
マリアビリティ問題とスケーラビリティ問題の解決
スケーラビリティ問題は仮想通貨の取引量が増えることで、ネットワークの負荷が増大し、取引承認の遅延が起きることです。取引承認の遅延が起きれば手数料が高騰してしまいます。
マリアビリティ問題は悪意のあるユーザーが取引データの署名の部分を改ざんできる脆弱性のことです。改ざんが行われれば、送金が失敗したかのようにみせることができ、二重送金をさせることができてしまいます。
データを改ざんされることはブロックチェーンにとって致命的なリスクです。Segwitを導入すればこの2つの問題を同時に解決可能です。
取引手数料の低下
ビットコインはマイナーの報酬である取引手数料を多く支払ったトランザクションを優先的に処理します。したがって、スケーラビリティ問題が起きると取引手数料の上昇は避けられません。
しかし、Segwitでは取引データのサイズを圧縮します。そのためデータの処理がスムーズにできるようになり、手数料を下げることも可能になるのです。
承認時間の短縮
トランザクションの数が増えれば、取引の承認までにかかる時間は長くなります。実際に仮想通貨の取引が急激に増えた2017年から2018年にはビットコインの送金に数日もかかるような事態まで発生しました。
その結果ビットコインネットワークの利便性を損なわれました。しかし、Segwitを導入すれば、承認時間が短縮されるので仮想通貨の取引が増えても、送金をスムーズに行うことができます。
Segwit (セグウィット) の実装がもたらすデメリット
Segwitの導入ははビットコインが長年抱えていたスケーラビリティ問題とマリアビリティ問題を解決できます。しかし、Segwitを導入している仮想通貨は多くありません。
なぜなら仮想通貨を採掘するマイナーの反発があるからです。ここからはSegwitの実装がもたらすデメリットについて解説します。
- 将来のユーザー数増加に対応できない
- 複雑な仕様から後戻りができない
- マイナーの報酬が減る
- リソースの使用量が増える
- ウォレットなどのSegwit対応
将来のユーザー数増加に対応できない
Segwitは最大でおよそ1.7 MBまでしか容量の拡大ができないそうです。したがって仮想通貨のユーザーが増加すれば再度スケーラビリティ問題に直面する可能性があります。
したがって将来のユーザー数増加に対応するすべがまだないのです。
複雑な仕様から後戻りができない
Segwitの使用はかなり複雑です。そして一度ブロックチェーンに手を加えると書き換えることができない仕様であるため後戻りができません。
つまり一度Segwitの複雑な仕様を取り込むと、仮想通貨のブロックチェーンコードにその情報が残り続けるのです。
マイナーの報酬が減る
Segwitが普及するとマイナーへの報酬が下がります。マイナー報酬が下がりすぎるとマイナーをする人は減り、ブロックチェーンの維持も難しいです。
これまでのように送金遅延問題が発生していれば、早く送金をしてほしいユーザーはマイナーに高い手数料を支払ってでも処理をしてほしいと考えます。
しかし、遅延問題が解決されれば、わざわざ高い手数料を支払う必要がなくなってしまうのです。そのため、マイナーからの反発がとても強いのです。
リソースの使用量が増える
Segwitは1ブロックに入るデータを小さく圧縮します。すると1ブロックに入るデータの件数は増えます。そして、承認作業の負担が増え、複雑な計算作業をしなくてはなりません。
結果、マイナーのパソコンへの負担は高くなり、電気代も高くなってしまいます。
ウォレットなどのSegwit対応
Segwitに対応しているウォレットの普及率は高くありません。2018年5月時点での普及率は30%程度のみです。
Segwitを導入している主な仮想通貨にビットコインやモナコインがあります。普及が進んでいない理由は以下のとおりです。
Segwit対応のウォレットが普及していない理由
・対応するウォレットをSegwitへ対応させる作業が必要
・間違って送金した際に後から取り出す作業ができない
・ユーザーがSegwitのウォレットを購入して仮想通貨を移動する作業が面倒と感じている
これらの問題を解決しなければ、Segwitの普及は難しいかもしれません。
Segwit (セグウィット) 後に起きること
Segwitを実施することでスケーラビリティ問題を解決できるため、ソフトフォークを行って対処すれば良いように思えます。しかし、既に仮想通貨を巡って様々な思惑が働き、自らの既得権益を守ろうとする人もいることは事実。
実際にSegwitを活用することはメリットばかりではなく、デメリットも潜んでいます。
- 送金詰まりがなくなる
- 手数料が減少する
- マイナーへの負担が大きくなる
送金詰まりがなくなる
Segwitを活用する本来の目的は、ビットコインなどの送金詰まりや送金遅延問題を解消するためです。事実、ハードフォークを行わずにスケーラビリティ問題を解決できるSegwitは理想的な手段と言えるでしょう。
手数料が減少する
SegwitやSegwit2xを使わずに送金遅延問題を解決するには、手数料を多く支払うしかありません。仮想通貨を送金する際の手数料は自由に設定できますが、この手数料の金額が高いほど、より早く送金処理を行えます。つまり、送金の権利を得るオークション制度です。
ビットコインの送金遅延問題が大きく発展しだした2017年12月。とにかく早く送金処理をしてほしい投資家は手数料を釣り上げようとしました。当然、オークションですので、さらに高額の手数料を提示する人が最終的な権利を勝ち取ります。
その結果、ビットコインの送金手数料は急激に上昇しました。スケーラビリティ問題が更なるトラブルを引き起こしたと言えます。
しかし、Segwitが導入されて今までよりも多くの取引を処理できるようになると、送金遅延問題が解消し、手数料も低く抑えられるのです。
マイナーへの負担が大きくなる
マイナーとは取引の承認を行う人のことです。ブロックに格納された各データはマイナーによって整合性をチェックされ、正確な情報だと確認された上で最終的な処理が行われます。この一連の流れをマイニングといい、より早く承認作業を行ったマイナーに報酬が支払われます。
承認作業は複雑な計算式をコンピュータが自動的に処理。つまり、演算能力の高いコンピュータをたくさん保有しているマイナーほど、報酬を受け取る確率が高くなるのです。
しかし、Segwitを導入することでマイナーにかかる負担は大きくなります。
1ブロックを作るためのコンピュータ負担が大きくなる
Segwitは1ブロックに入るそれぞれのデータを小さく圧縮します。すると、1ブロックに入るデータの件数は増えるということです。
データ件数が増えると整合性をチェックする承認作業も負担が増します。計算作業はより複雑に、より膨大になるのでマイナーのコンピュータの負担は高くなります。これがSegwit導入によるデメリットの1つです。
マイナーへの手数料報酬が少なくなる
マイナーの報酬は新しく発行される仮想通貨と、ユーザーが支払う送金手数料の合計です。たとえば、ビットコインのマイニング報酬は10分ごとに12.5BTCと、10分間に送金した人の手数料を合わせた金額になります(12.5BTCは2018年8月31日時点)。
送金手数料を多く支払うほどマイニングの優先順位が高まり、より早く送金を処理してもらえます。送金遅延問題が発生していた当初は手数料が高額になり、それだけマイナーに対する報酬額も増えました。
しかし、Segwitによって遅延問題が解決してしまうと、送金者は高い手数料を支払ってまでお金を送ろうとはしません。一方、マイナーにとっては送金手数料分の報酬額が減少してしまうという事情が発生してしまいます。
Segwit (セグウィット) を巡る論争
Segwitを巡る論争は、2017年にビットコインがハードフォークを行ってビットコインキャッシュが生まれた3年前から行われていました。つまり、この頃から既にビットコインのスケーラビリティ問題が起き始めていたのです。
賛成派の意見
Segwitの構想が生まれたのは2014年8月。これまでにもビットコインのトランザクションの脆弱性はコア開発者によって指摘されており、当時はハードフォークを行わない限り解決できないとされていました。
そこでAdam Back氏やGregory Maxwell氏を筆頭にBlockstream社を設立。ビットコインのブロックチェーンとは別にサイドチェーンと呼ばれる技術を導入し、その上でシステムを実装する仕組み「Segregated Witness」を開発します。これが「Segwit」の源流です。
ビットコインコア開発者であったPeter Todd氏はこのSegwit案に賛成。また、Eric Lombrozo氏やPieter Wuille氏もSegwitを活用したソフトフォーク案に賛同し、2015年10月に開発チームで議論が展開されました。
コア開発者の多くがハードフォークではなく、Segwitを使ったソフトフォークにこだわる理由は、ハードフォークに伴うネットワークの分裂をさけるためです。Segwitでソフトフォークを行うと、1つのブロックの署名データのみを別の場所に保管し、1MBというブロックサイズの制限が緩和されることにより、理論上は4MB分のデータ容量を書き込むことができます。
この時点ではSegwitの導入によりスケーラビリティ問題の解決に糸口が見え始めたので、ソフトフォーク賛成派が開発チームの主流を占めていました。しかし、事態はそう簡単には収まりません。
反対派の意見
Segwitを巡る論争では、徐々に離反者が現れます。元コア開発者であるJeff Garzik氏はスケーラビリティ問題の解決には効率的ではない、と反対の意見を提出。ビットコインの開発そのものをハードフォークにて実施すべきだと主張しました。
実際に2016年には一部の関連会社やマイナーもJeff氏に同調し、ブロックサイズを2MBまで引き上げるためのハードフォークを計画。つまり、Segwit2xを導入しようとしたのです。
その事態に危機感を抱いた賛成派の開発チームは2016年10月にBitcoin Core0.13.1をリリースします。新たに投票方式を取り入れ、95%以上の賛同が取れたら直ちにSegwit(ソフトフォーク)を実施すると公表しました。
しかし事態は進展しません。ソフトフォーク反対派のJihan Wu氏は、ハードフォークを実施した場合のみソフトフォークの投票を指示すると表明(Jihan Wu氏は大手マイニング企業のCEO)。また、同じくマイニング業者であるF2Pool、HaoBTC、Bitcoin.comなども投票に関して懐疑的でした。
上記の各マイニング業者はそれぞれ単独でもソフトフォークの実施を阻止できる規模を誇ります。こうした強力な反対姿勢に押され、Segwit紛争は暗礁に乗り上げてしまったのです。
ビットコインコア開発陣ならいざしらず、マイニング業者までソフトフォークに反対したのには理由があります。大手のマイニング業者は、より効率的に計算処理のできる高度なコンピュータ「ASIC BOOST」を利用していました。しかし、Segwitが導入されたビットコインのシステムはASIC BOOSTとの互換性がなく、ソフトフォークが行われてしまうとコンピュータが利用できなくなってしまうのです。
つまり、ソフトフォークによって今までの事業モデルが大きく変わってしまうので、彼らからするとハードフォークを行ってASIC BOOSTとの互換性を維持するしかありません。その意味では、この論争は始めからソフトフォーク派とハードフォーク派が対立する構図で、結局は折り合いがつかずにハードフォークでビットコインキャッシュが生まれました。
しかし、賛成派も負けておらず、2017年7月にソフトフォーク実施に必要な支持を95%から80%に引下げ。さらに反対派の投票権も無効にするという強引な方法でSegwit実装を果たしました。
最終的に生まれたのは、Segwitを実装し、従来よりもデータ容量を圧縮できる「ビットコイン」。そして、ビットコインとは別のブロックチェーンで稼働する新たな「ビットコインキャッシュ」。ビットコインキャッシュはSegwit2xを導入し、取引量が多くなった場合には最大8MBまでブロックサイズを拡張できるようになりました。
Segwit (セグウィット) が実装されたコイン
Segwitが実装された仮想通貨は計3種類。ビットコイン (Bitcoin/BTC)、ライトコイン (Litecoin/LTC)、モナコイン (Monacoin/MONA)です。
仮想通貨名 | 実施日 | ブロックサイズ | その他 |
ビットコイン | 2017年7月21日 | 1MB | 理論上は4MBへ拡張 |
ライトコイン | 2017年4月27日 | 1MB | ライトニングネットワークに対応 |
モナコイン | 2017年4月23日 | 0.5MB | マイニングが簡単になるメリット |
Segwitが実装される理由はスケーラビリティ問題の解決だけではありません。ビットコインには送金遅延問題がありましたが、他のコインに関しては他の目的でSegwitが導入されました。
ビットコイン (Bitcoin/BTC)
ビットコインにSegwitが導入されたのは2017年7月21日です。ブロックサイズは1MBで、Segwitを導入することで理論上は4MB分まで拡張したことと同じと見なされました。
ビットコインがSegwitを導入した目的はスケーラビリティ問題の解消、つまり送金遅延問題をなくすためです。Segwit導入によって取引処理が滞ることなく、スムーズに送金を行えるようになる予定ですが、ハードフォークによってビットコインキャッシュが生まれるという事態も発生しています。
ライトコイン (Litecoin/LTC)
ライトコインはビットコインと同じく「決済通貨」を目指す仮想通貨です。将来はライトコインを利用して商品やサービスの支払いができるかもしれません。
ライトコインにSegwitが導入したのは2014年4月27日です。しかし、それまでのライトコインはブロックサイズ1MBに対して平均取引量は20KB程度に収まっていました。そのため、Segwit導入の理由はスケーラビリティ問題の解決よりも、ライトニングネットワーク実装前の手続きという側面が強いです。
ライトニングネットワーク
料金の支払いや送金など、ネットワーク経路を通じて世界中どこでも決済が行えるシステム。
モナコイン (Monacoin/MONA)
モナコインは日本で生まれた仮想通貨で、ビットコインの4分の1程度で処理できる高速決済が特徴です。
モナコインにSegwitが導入されたのは2014年4月23日。モナコインの場合もスケーラビリティ問題はほとんど関係なく、別の目的でSegwitが実装されました。
Segwitによってデータが圧縮されると1つ1つの承認作業は速くなります。つまり、マイニングに必要な計算量が減るので、ASICなどの高度なコンピュータを使わずに計算処理が可能です。Segwitを導入したモナコインは、CPUが内蔵されている家庭用パソコンや、GPUを使ってマイニングが行えます。
スケーラビリティ問題を解決するその他の方法
ここからはスケーラビリティ問題を解決するその他の方法を解説します。この問題を解決する方法はSegwitだけではありません。以下の方法を採用することで問題を解決できます。
- Segwit2x
- ライトニングネットワーク
- マイクロペイメントチャネル
Segwit2x
Segwit2xとはビットコインにSegwitが実装された後にブロックの容量を1MBから2MBに増やすことです。保管できるデータが増えれば、スムーズな取引ができるようになるので期待されています。
2017年5月に、Segwit2xの実装後、6ヶ月以内にブロックサイズを2MBに拡大することが発表されました。しかしその後コミュニティー内でSegwit2xに対する意見の対立が起き、Segwit2xの実装は延期されることが発表されました。
ライトニングネットワーク
ライトニングネットワークはブロックチェーンの外で取引をする方法です。この方法を採用することで少額決済を高速で実行するできます。
ペイメントチャネルもオフチェーンの取引は可能ですが、2つの欠点があります。
ペイメントチャンネルの欠点
・二者間の取引しかできない
・新しい人と取引をするたびにチャネルの開設が必要
ライトニングネットワークなら複数のチャネルを開設することができます。そのため三者以上の取引もかんたんです。また直接チャネルを開設していない人同士の取引も可能になるのでより便利ですね。
例えば、A・B・Cの三者が取引をする場合AとB、BとCのチャネルを開設するだけで十分です。AとCのチャネルは必要ありません
また、AからCへの移動中に仲介役のBが持ち逃げをするリスクもありません。つまり、取引相手が初めてでお互いに信頼関係が気づけていない場合でも、安心して取引ができます。
マイクロペイメントチャネル
マイクロペイメントチャネルはビットコインでの少額決済を可能にした技術です。取引処理のうちブロックチェーン上で行うのは最後の取引だけです。それ以外の取引処理はすべてブロックチェーンの外 (オフチェーン)で行います。
この方法を使えば手数料の高騰や承認速度の遅延などの問題点を解決可能です。
通常ブロックチェーン上での取引には、取引をした回数分の手数料がかかります。しかし、ペイメントチャネルはブロックに記録されないため手数料はかかりません。したがって、ブロックに記録される最後の取引の手数料しかかからないのです。
そして、ビットコインの承認時間は10分なので、6回の承認に1時間もかかります。しかし、この方法ならほとんどの取引をオフチェーンで行えます。そのためブロックの承認作業を待つ必要がなく、すぐに送金が可能です。
Segwit (セグウィット) まとめ
Segwitの利点はブロックに格納されている取引データを小さく圧縮できることです。データを小さくすることで1ブロックに入る容量が増え、ビットコインのスケーラビリティ問題の解決に役立ちます。
実際にビットコインには2017年7月21日にSegwitが導入され、徐々に稼働を始めました。しかし、ビットコインにSegwitが導入されるまでには長い時間と、度重なる議論が行われ、一方ではハードフォークによってビットコインキャッシュという新しい通貨も生まれたのです。
このソフトフォーク、ハードフォーク騒動によりビットコインだけでなく、他の多くのコインの価格も乱高下した事情もあり、決して投資家の人にとっても他人事ではありません。まだ完全にスケーラビリティ問題が解決したわけではなく、新たな火種が発生する可能性もあるので、今後の分裂騒動にも注意しなければならないでしょう。