仮想通貨の一種であるビットコインには、大きく2つの問題点があります。
1つ目はデータ容量問題で、2つ目はマウントゴックス社の事件を機に世の中で広まったビットコインの脆弱性です。
こうした2つの問題点を解決するために、Segwit(セグウィット)は考え出されました。
ビットコインの問題点と、それを解決するために考え出されたSegwit(セグウィット)について、説明していきます。
Contents
ビットコインの問題点
セグウィット(Segwit)とは、トランザクションとよばれる取引履歴のデータを圧縮してデータ量を小さくする技術です。
そして、セグウィット(Segwit)が、ビットコインの2つの問題点を解決できる技術として期待されています。
しかしながら、セグウィット(Segwit)は、マイナーにとってマイナスな面が大きいため、賛同が得る事が出来ずに、ビットコイン分裂問題でも長らく争点となっています。
セグウィット(Segwit)が解決できるとされているビットコインの2つの問題点、「スケーラビリティ問題」と「トランザクション展性」の問題について解説していきます。
スケーラビリティ(scalability)問題とは?
スケーラビリティ(scalability)とは、システムの拡張性や柔軟性です。ビットコインのブロックのデータ容量は1MBです。
現在、ビットコインのブロックはこの1MBギリギリまで使用されている場合が多く、ビットコインの取引量が増えていくと、今よりも更にデータの処理速度が遅くなってしまいます。
これがスケーラビリティ(scalability)問題であり、その解決方法の一つとしてセグウィット(Segwit)が期待されています。
ブロック容量の拡大をすればいいと思いますが、そう簡単な事ではありません。
ビットコインの仕様変更には、以下のような2つの種類があります。
- ソフトフォーク:ビットコインそのものの仕様変更(ビットコインが分裂しない)
- ハードフォーク:ブロックチェーン自体の仕様変更(ビットコインが分裂する)
つまり、ブロック容量の拡大はビットコインが分裂する(ハードフォーク)というデメリットがあるのです。
その点、取引データ量の縮小を行うセグウィット(Segwit)はソフトフォークに該当するというのが大きな違いです。
▼関連記事▼
ハードフォーク(UAHF)とソフトフォーク(UASF)の違いについて
トランザクション展性(Transaction Malleability)とは?
ビットコインでの取引のことをトランザクションと呼びます。
このトランザクションに、送金の履歴が記録されることで、不正な操作や2重支払いができない仕組みなっているのです。
ただし、トランザクションには、それぞれIDが設定されています。
そのトランザクションIDが外部から変更可能であるという問題点、つまり脆弱性のことをトランザクション展性(Transaction Malleability)と呼んでいるのです。
トランザクションIDを外部から変更することで、ビットコインの2重送信ができてしまったり、データの整合性が取れなくなり、改ざんされた取引がビットコイン・ネットワークに承認されてないかのように見せかける事が出来てしまいます。
あの有名なマウントゴックス事件も、このトランザクション展性(Transaction Malleability)が関係していると報道されています。
もし、報道が真相であるならば、マウントゴックスは、このトランザクションIDを参照する事で送金履歴を管理していたため、IDを誤検出することでビットコインが何度も送信されたということです。
Segwit(セグウィット)の仕組み
スケーラビリティ(scalability)問題とトランザクション展性(Transaction Malleability)について詳しく見てきました。
Segwit(セグウィット)がこれらをどう解決するのでしょうか?
スケーラビリティ(scalability)問題の解決
ビットコインの取引データは、インプット、アウトプット、電子署名の3つから構成されます。
インプットとは送信元の情報、アウトプットとは送信先の情報、電子署名とはデータに付与される電子的な署名のことです。
Segwit(セグウィット)は、これらのうち、最も多くのデータを使っている電子署名の部分だけを別管理にすることで取引データを縮小する仕組みです。
これによって、約60%の取引データの圧縮することができ、容量の問題であるスケーラビリティ(scalability)問題を解決することができるのです。
トランザクション展性(Transaction Malleability)の解決
Segwit(セグウィット)は、電子署名の部分だけを別管理にすると説明しました。
厳密にいうと、電子署名の部分に加え、トランザクションIDの計算に使われるデータも別管理にされる仕組みになっており、その結果、外部からトランザクションIDを変更することが出来なくなるのです。
仮想通貨 始め方 おすすめ