暗号資産初心者向けの記事です。本記事ではSegwit(セグウィット)についてわかりやすく解説していきます。
はじめに
皆さんこんにちは!突然ですがSegwit(セグウィット)ってご存知ですか?
この名前を聞いたことがある人は多いのではないかと思います。しかしその概要や仕組み、導入背景について詳しく説明できる方は少ないのではないでしょうか?
今回はこのSegwitについて詳しく解説していきます!
Segwitとは
Segwitとはトランザクションに含まれる電子署名をウィットネスと呼ばれる領域に格納することにより、トランザクションのデータ量を少なくする技術のことです。最終的には電子署名はコインベース・トランザクションと呼ばれる各ブロックの初めにある特別なトランザクションに保存されることになります。
現在このSegwitがどれくらい導入されているのかをご紹介していきましょう!
2017年4月には国産通貨であるモナコイン(MONA)が世界で初めてSegwitを導入しましています。それに続く形で2017年5月にライトコイン(LTC)が導入を発表し、2017年8月にはビットコイン(BTC)が実装している状態です。
Segwitの仕組み
通常の場合、上記でも述べたようにトランザクション内にはそのデータに加えて署名が含まれることになります。またビットコインの場合であれば、1ブロックに含めることができる取引データの容量は1MBと決まっているのです。
しかしこのSegwitが実装されることにより従来取引データ内に含まれていた署名を別の領域である「Witness」に分離させることが可能になるのです。
これをより噛み砕いて言えば1ブロックにより多くの取引データを含めることができるようになります。その容量は、実質的におよそ1.7MBまで増加するとも言われていますよ。
なぜSegwitが導入されることになったのか?
次になぜ暗号資産にSegwitの導入が必要とされるようになったのかについて解説していきます。この背景には以下の2つが関わっています。
- スケーラビリティー問題
- トランザクション属性
それでは解説していきます!
スケーラビリティー問題
スケーラビリティ問題とは、暗号資産の取引量が増加することでデータ処理が遅延する問題です。この取引承認の遅延が発生することにより手数料の高騰も引き起こしてしまう原因となります。
この問題の解決には一定期間に承認できる取引データ量を増やす必要があり、その解決策の1つがSegwitだったというわけです。
先ほどの解説にあった通り、Segwitでは取引データを構成する要素の一部を分離させることで1ブロックに含めることのできるデータ量が通常よりも多くなります。
トランザクション属性
トランザクション属性とはトランザクション内にある「インプット(送信元の情報)」と「アウトプット(送信先の情報)」をハッシュ化することによって生まれる「トランザクションID」を外部から変更することができてしまうという問題です。
例えばもし外部からトランザクションIDが変更されてしまうと、送金が不正にコントロールされるリスクが生じます。暗号資産取引所がトランザクションIDのみを参照し、取引を管理していたとしましょう。そうするとIDの不一致が次々と生まれてしまうだけでなく、さまざまなデータの整合性がとれなくなってしまうのです。
しかしSegwitを導入することで、トランザクションIDの計算に使われるデータが取引データ本体とは別の場所(Witness)で管理されるようになるため、外部からトランザクションIDを変更することが不可能になります。つまりトランザクション属性を解決するができるというわけです。
最後に
本記事ではSegwitについてご紹介してきました!いかがだったでしょうか?
Segwitは「スケーラビリティ問題」や「トランザクション展性」を解決する方法として高く評価されています。ビットコインでも2017年にSegwitを導入を開始しています。
これからも暗号資産初心者の皆さんにわかりやすい解説をお届けしていきますので、次の記事もお楽しみに!