見出し画像

ブロックチェーン入門_#11:仕様のアップデート - ハードフォークやソフトフォークとは何か

ブロックチェーン技術を改善するために行われる変更には、ソフトフォークとハードフォークという2種類のアップデート方法があります。それぞれの概要と事例を解説します。


ブロックチェーンの仕様変更とは?

ブロックチェーンの仕様を変更すると、新旧のクライアントソフトウェアがどのようなブロックを認めるかに差が出て、新しいチェーン(新チェーン)と古いチェーン(旧チェーン)が分かれます。この分かれ方には、ソフトフォークとハードフォークの2種類があります。

ソフトフォーク

■ソフトフォークの意味

ソフトフォークは、古いクライアントソフトウェアでも新しいチェーンに参加できる(前方互換性のある)アップデート方法です。古いクライアントが認めるブロックの一部は新しいチェーンで認められない場合があります(後方互換性は必ずしもありません)。

そのため、チェーンの分岐がはっきりと示されません。ただし、多数の人々がアップデートを支持しないと、結局新しい仕様が使われなくなり、旧チェーンが優勢のまま進行することになります。

■事例 : セグウィット(Bitcoin)

セグウィット(2017年実装)は、Bitcoin(ビットコイン)の仕様に潜んでいたバグを修正し、かつ取引を効率的に処理するためのアップデートです。

■事例 : タップルート(Bitcoin)

タップルート(2021年実装)は、Bitcoinのプライバシーと拡張性を向上させるためのアップデートです。

ハードフォーク

■ハードフォークの意味

ハードフォークは、古いクライアントソフトウェアでは新しいチェーンに参加できないアップデート方法であり、新旧のソフトウェアとチェーンに互換性がありません。

■リプレイ攻撃と対策

リプレイ攻撃は、同じ取引がハードフォークした両方のチェーンで実行される問題です。支払い側が、片方のチェーンでのみ行ったつもりの支払いが、例えば支払われた側がトランザクションをもう片方のチェーンにも投入することで、そちらのチェーンでも本人が意図しないのに起きてしまうといった問題が生じます。

対策として、分岐後のチェーンを区別するようにして、トランザクションに互換性をなくします。

■Ethereumのハードフォークの取り組み

Ethereum (イーサリアム)では、技術の進歩やコミュニティのニーズに対応するため、やや頻繁にハードフォークが行われてきました。これらのハードフォークは、通常事前に計画され、新機能の追加やセキュリティの向上などが目的とされています。

これらのハードフォークはクライアントソフトウェアの改修を要するアップデートで、原理的にはソフトウェアを改修せずに旧チェーンを使い続ける選択もできるはずですが、旧チェーンが自動的に消滅するような工夫が採り入れられています。

ブロックチェーンの分岐事例

ブロックチェーンでは、時に意見の相違や開発方針の違いからハードフォークが発生し、以降は別々のプロジェクトとして進行することがあります。そのような事例をいくつか紹介します。

■BitcoinとBitcoin Cash

Bitcoin Cash(ビットコインキャッシュ)は、2017年にBitcoinからハードフォークによって誕生しました。主な違いは、ブロックサイズの増加により、トランザクションの スループット を向上させることを目指している点です。

■EthereumとEthereum Classic

Ethereum Classic(イーサリアム・クラシック)は、2016年にEthereumからハードフォークによって誕生しました。この時は、The DAO(ザ・分散型自律組織)と呼ばれるプロジェクトで発生した大量のトークンの盗難事件を受け、Ethereumコミュニティが資産を取り戻す(事件は実質的に起きなかったことにする)ために行った措置が分岐の原因となりました。

Ethereum Classicは、オリジナルのEthereumのチェーン(問題の盗難事件は起きたものとされ資産は取り戻されない)を継続することで運用されています。

次回はブロックチェーンが抱える5つの課題を開設します。


Web3ポケットキャンパスはスマホアプリでも学習ができます。
アプリではnote版にはない「クイズ」と「学習履歴」の機能もあり、
よりWeb3学習を楽しく続けられます。

ぜひご利用ください
▼スマホアプリインストールはこちら

この記事が気に入ったらサポートをしてみませんか?