目次

    全ての目次を見る
  1. ビットコインのソフトフォークって何
  2. ビットコイン(bitcoin)のソフトフォークとは
  3. ビットコイン(bitcoin)のソフトフォークとハードフォークの違いとは
  4. ビットコインで実行されたソフトフォーク
  5. ビットコイン(bitcoin)のソフトフォークまとめ
Large close up young woman hands typing on laptop 506138536 1258x839

2008年のサトシ ナカモトの論文Bitcoin: A Peer-to-Peer Electronic Cash System に基づき開発されたビットコインは、現在決済手段や投資商品として注目を集めています。

そんなビットコインについて、調べているとソフトフォークという耳慣れない言葉を目にした方も多いのではないでしょうか。

この記事では、ビットコインのソフトフォークの概要やハードフォークとの違い、ビットコインで実際に起きたソフトフォークの事例をわかりやすく解説しています。

ビットコインのソフトフォークとは、互換性のある仕様変更、あるいは、互換性のある仕様変更によりビットコインのブロックチェーンが一時的に分岐することです。

互換性のある仕様変更とは、ブロックに格納するトランザクション(取引データ)を検証するルールを追加したり、厳しくしたりすることで、後述するハードフォークとは違い、ブロックチェーンの分裂は起きません。

例えば、『Aというデータを含むトランザクションは有効』というルールを、『Aというデータを含むトランザクションは無効』という仕様変更ははソフトフォークに該当します。

ソフトフォークが実施された際、新旧それぞれのルールでトランザクションの検証をおこなうことがあるのですが、新ルールにとっては無効のトランザクションをブロックに追加する参加者がいる場合、ブロックチェーンが分岐してしまうことがあるのです。

ビットコインのブロックチェーンが分岐した場合、長い方のブロックチェーンが正規のブロックチェーンとみなされ、短い方のブロックチェーンは無効となります。

互換性とは

あるDVDプレイヤーがあるとします。

このDVDプレイヤーを改良しブルーレイディスクも見れるようにした場合、互換性のある仕様変更といえます。

一方、DVDプレイヤーを改良し、ブルーレイディスクのみ見れるようにした場合、互換性がない仕様変更といえます。

ビットコインではブロックチェーンにブロックを追加したネットワーク参加者に、報酬が与えられるのですが、無効とみなされたブロックチェーンにブロックを追加した参加者は報酬を得ることができません

分岐が生じると報酬などの問題が生じるため、ソフトフォークを実行する際、分岐が生じないよう、一定以上のユーザーが仕様変更後のルールに対応したことを確認してから、ソフトフォークを実行する方法が提案されています。

ビットコインのソフトフォークとハードフォークには、仕様変更と分岐に違いがあります。

仕様変更の違い

  • ソフトフォーク
    →互換性のある仕様変更
  • ハードフォーク
    →互換性のない仕様変更

分岐の違い

  • ソフトフォーク
    →一時的な分岐
  • ハードフォーク
    →永続的な分岐(ブロックチェーンが分裂)

ハードフォークとは、互換性のない仕様変更、あるいは、互換性のない仕様変更でブロックチェーンが分裂(永続的に分岐)することです。

ハードフォークでは、新ルールと旧ルールを採用するブロックチェーンのそれぞれ2つに分かれます。

この際、新ルールのブロックチェーンのみ機能することもあれば、新・旧両方のブロックチェーンが機能することがあり、新旧それぞれのブロックチェーンが機能するときに仮想通貨の分裂が起こります。

ここで、ハードフォークについて詳しくは解説しませんが、詳しく知りたい方は「ビットコインのブロックチェーンの分岐(フォーク)とは?」の記事をご覧ください

ビットコインのソフトフォークの概要や、ハードフォークとの違いがわかったところで、ビットコインで実際に起きたソフトフォークの事例を解説していきます。

ビットコインは以下の2回のソフトフォークを実施しています。

  1. Pay to script hash (P2SH)
  2. Segwit(セグウィット)

それぞれ具体的に見てきましょう。

P2SHとはPay To Script Hashの頭文字をとったもので、マルチシグネチャを容易に実現するための仕様変更です。

マルチシグネチャとは、ビットコインを決済や送金に使用する際に、複数人の署名が必要となる署名方法で、自分の署名に必要な秘密鍵が盗まれても、第三者はビットコインの使用ができないのでセキュリティ面が優れているといえます。

ビットコインは実体のない電子データで、預金通帳のようなアドレスで管理され、使用する際には、口座の暗証番号のような秘密鍵が必要なのです。

P2SHが実装される前、マルチシグネチャアドレスに送金する際は、複雑な操作をしなければならず、また、送金者がトランザクションに必要な手数料を多く支払う必要がありました。

しかし、このP2SHが実装されたことで、P2SHアドレスという特殊なアドレスに送金すれば、簡単な操作だけでマルチシグネチャが実行できるようになりました。

Segwitとは『Segregated Witness』の略語で、『署名の分離』という意味です。

ビットコインの取引データ(トランザクション)には、ビットコインを決済や送金に使用した人の署名(サイン)がされているのですが、その署名を取引データから分離することがSegwitです。

すなわちSegwitとは、署名データを分離したトランザクションがブロックに追加されるようになるという仕様変更のことです。

Segwitが実装された背景には、スケーラビリティ問題というビットコインが抱える問題があります。

スケーラビリティ問題とは、ビットコインの利用者が増加したことで、ブロックにトランザクションが追加できなくなった問題のことです。

詳細について知りたい方は、『ビットコインのスケーラビリティ問題とは』の記事をご覧ください。

この記事のこれまでの内容をまとめると以下の通りです。

  • ソフトフォークとは、互換性のない仕様変更のことで、ブロックチェーンが一時的に分岐することがある
  • ソフトフォークとハードフォークには、仕様変更と分岐に違いがある
  • ビットコインでは、P2SH(Pay to script hash)とSegwitというソフトフォークが実行された

ビットコインので仕様変更をする際は、多くの参加者の賛同を得なければならないため、非常に困難です。

ソフトフォークは互換性のない仕様変更で、時には一時的な分岐と解説されますが、新仕様に賛同できないコミュニティ存在する場合、そのコミュニティがハードフォークを起こす 可能性があります。

実際、Segwitが実行されたとき、Segwitに反対した一部のコミュニティはハードフォークを起こしビットコインが分裂し、ビットコインキャッシュが誕生しました。