ハードフォークとソフトフォークについて
はじめに
スマートフォンでデジタル・バンキングのアプリをアップデートするよう促されたとき、おそらくあなたは何も考えないだろう。もしかしたら、気づかないうちに自動アップデートされているかもしれない。最新バージョンのソフトウェアをインストールしなければ、そのサービスへのアクセスが拒否される危険性があるからだ。
オープンソースの暗号通貨では、状況は大きく異なる。ビットコインを利用するために、それを支えるコードを一行一行読む必要はないが、そうする選択肢を持つことは重要だ。ここにはヒエラルキーがなく、アップデートをプッシュして好きなように変更できる銀行もない。その結果、ブロックチェーン・ネットワークに新しい機能を実装するのは難しいことだ。
この記事では、中央当局がないにもかかわらず、暗号通貨ネットワークをどのようにアップグレードできるかを探る。そのためには、ハードフォークと ソフトフォークという2つの異なるメカニズムを利用する。
ブロックチェーン・ネットワークの意思決定は誰が行うのか?
フォークの仕組みを理解するには、まずネットワークの意思決定プロセス(またはガバナンス)に関わる参加者を理解することが重要だ。
ビットコインでは、開発者、マイナー、フルノードユーザーという3つのサブセットの参加者を大まかに区別することができる。これらは実際にネットワークに貢献している関係者である。ライトノード(つまり、携帯電話やラップトップなどのウォレット)は広く使用されていますが、ネットワークに関する限り、実際には「参加者」ではありません。
開発者
開発者はコードの作成と更新を担当します。一般的なコインの場合、誰でもこのプロセスに貢献することができる。コードは公開されているので、他の開発者がレビューできるように変更を提出することができます。
マイナー
マイナーはネットワークを保護する役割を担っている。彼らは暗号通貨のコードを実行し、ブロックチェーンに新しいブロックを追加するためにリソースを捧げる。例えば、ビットコインのネットワークでは、Proof of Work(プルーフ・オブ・ワーク)を介してこれを行う。彼らはブロック報酬という形でその努力に報われます。
フルノードユーザー
フルノードは暗号通貨ネットワークのバックボーンである。ブロックとトランザクションの検証、送受信を行い、ブロックチェーンのコピーを管理する。
これらのカテゴリーは重複していることが多い。例えば、開発者でありながらフルノードユーザーであったり、マイナーでありながらフルノードユーザーであったりする。この3つすべてである可能性もあるし、どれでもない可能性もある。実際、私たちが暗号通貨ユーザーと考える人たちの多くは、これらの役割を担っていない。その代わり、ライトノードや中央集権的なサービスを利用することを選ぶ。
上記の説明を見ると、開発者と採掘者がネットワークの意思決定を行うことを強く主張することができる。開発者はコードを作成する – 彼らがいなければ、実行するソフトウェアもなければ、バグを修正したり新機能を追加したりする人もいない。採掘者はネットワークを保護する。健全なマイニング競争がなければ、チェーンが乗っ取られたり、停止したりする可能性がある。
しかし、もしこの2つのカテゴリーが、残りのネットワークを自分たちの意向に従うよう強圧しようとすれば、あまり良い結果にはならないだろう。多くの人にとって、真のパワーはフルノードに集中している。これは、ネットワークがオプトイン方式であること、つまりユーザーが実行するソフトウェアを選択できることが大きく影響している。
開発者があなたの家に押し入り、銃口を突きつけてビットコインコアのバイナリをダウンロードするよう強要することはない。もしマイナーたちが 「我が道を行くか、王道を行くか」という態度でユーザーに望ましくない変更を強要するなら、ユーザーは王道を行くだろう。
彼らは万能の支配者ではなく、サービスプロバイダーなのだ。もし人々がネットワークを利用しないと決めれば、コインの価値は失われる。価値の喪失はマイナーに直接影響する(ドル建てでは報酬の価値が下がる)。開発者については、ユーザーから無視されるだけだ。
ソフトウェアがプロプライエタリなわけではないのだから。あなたが好きなように編集することができ、他の人があなたの修正したソフトウェアを実行すれば、全員がコミュニケーションをとることができる。その場合、あなたはソフトウェアをフォークし、その過程で新しいネットワークを作ることになる。
フォークとは何か?
ソフトウェアのフォークは、ソフトウェアがコピーされ、変更された時点で発生します。元のプロジェクトは存続しますが、新しいプロジェクトとは別の方向に進みます。あなたのお気に入りの暗号通貨コンテンツサイトのチームが、今後の進め方について大きな意見の相違があったとしよう。チームの一部は、別のドメインでサイトを複製するかもしれない。しかし、今後はオリジナルとは異なるタイプのコンテンツを投稿することになる。
プロジェクトは共通の土台の上に成り立ち、歴史を共有する。1本の道路が後に2つに分かれるように、彼らの行く手には永久的な分岐が存在する。
このようなことはオープンソースプロジェクトではよく起こることであり、ビットコインや イーサリアムが登場する以前からずっと起こってきたことである。しかし、ハードフォークとソフトフォークの区別は、ブロックチェーン分野だけのものだ。もう少し詳しく説明しよう。
➠ 暗号資産(仮想通貨)を始めたいですか?KuCoinでビットコインを買う!
ハードフォークとソフトフォーク
似たような名前で、最終的には同じ目的を果たすにもかかわらず、ハードフォークとソフトフォークには大きな違いがあります。それぞれについて見てみましょう。
ハードフォークとは?
ハードフォークとは、互換性のないソフトウェアのアップデートのことです。一般的には、ノードが古いノードのルールと衝突する形で新しいルールを追加した場合に発生します。新しいノードは、新しいバージョンを運用する他のノードとしか通信できません。その結果、ブロックチェーンは分裂し、古いルールのネットワークと新しいルールのネットワークの2つに分かれる。
つまり、2つのネットワークが並行して稼働していることになる。どちらもブロックとトランザクションを伝播し続けるが、もはや同じブロックチェーン上で動いているわけではない。すべてのノードは、フォークの時点までは同一のブロックチェーンを持っていた(そしてその履歴は残っている)が、その後は異なるブロックとトランザクションを持つことになる。
履歴が共有されているため、フォーク前にコインを保有していた場合、最終的に両方のネットワークにコインを保有することになる。ブロック600,000でフォークが発生したとき、5BTCを持っていたとしよう。あなたはその5BTCを旧チェーンのブロック600,001で使うことができましたが、新ブロックチェーンのブロック600,001では使われていません。暗号が変わっていないと仮定すると、あなたの秘密鍵はフォークしたネットワーク上でも5枚のコインを保持していることになる。
ハードフォークの例としては、ビットコインが元のチェーンであるビットコイン(BTC)と新しいチェーンであるビットコインキャッシュ(BCH)の2つに分断された2017年のフォークがある。このフォークは、スケーリングの最適なアプローチをめぐって多くの議論が交わされた後に起こった。ビットコインキャッシュ支持派はブロックサイズを増やしたいと考え、ビットコイン支持派はこの変更に反対した。
ブロックサイズの増加にはルールの変更が必要だ。これはSegWitソフトフォーク(詳細は後述)の前だったので、ノードは1MBより小さいブロックしか受け付けませんでした。2MBのブロックを作成しても、他のノードはそれを拒否します。
1MBを超えるブロックを許可するようにソフトウェアを変更したノードだけが、そのブロックを受け入れることができる。もちろん、その場合は以前のバージョンと互換性がなくなるため、同じプロトコルを変更したノードだけが通信できる。
ソフトフォークとは?
ソフトフォークとは後方互換性のあるアップグレードのことで、アップグレードしたノードはアップグレードしていないノードと通信できることを意味します。ソフトフォークでは通常、古いルールと衝突しない新しいルールが追加されます。
例えば、ブロックサイズの縮小はソフトフォークによって実装することができる。ブロックの大きさには制限がありますが、ブロックの小ささには制限がありません。あるサイズ以下のブロックだけを受け入れたいなら、より大きなブロックを拒否すればいい。
ただし、そうしたからといって自動的にネットワークから切り離されるわけではない。そのルールを実行していないノードとの通信は残るが、彼らが渡してくる情報の一部はフィルタリングされる。
ソフトフォークの良い実例は、ビットコイン/ビットコインキャッシュの分裂直後に発生した前述のSegregated Witness(SegWit)フォークです。SegWitはブロックとトランザクションのフォーマットを変更するアップデートだったが、巧妙に細工されていた。古いノードはまだブロックとトランザクションを検証することができたが(フォーマットはルールを破らなかった)、彼らはそれらを理解できないだけだった。一部のフィールドは、ノードが新しいソフトウェアに切り替えたときにのみ読み取ることができ、それによって追加のデータを解析できるようになる。
SegWitの有効化から2年経っても、すべてのノードがアップグレードしたわけではない。アップグレードするメリットはあるが、ネットワークを破壊するような変化がないため、緊急性はない。
ハードフォークとソフトフォーク – どっちがいいの?
基本的に、上記の2種類のフォークにはそれぞれ異なる目的があります。争いの多いハードフォークではコミュニティが分裂する可能性がありますが、計画的なフォークでは、全員が同意した上でソフトウェアを変更する自由が与えられます。
ソフトフォークは、より穏やかな選択肢です。一般的に言って、あなたの新しい変更が古いルールと衝突することはないので、あなたができることはより制限されます。とはいえ、互換性が保たれるような形でアップデートを行うことができれば、ネットワークの分断を心配する必要はない。
最後に
ハードフォークとソフトフォークは、ブロックチェーン・ネットワークの長期的な成功にとって極めて重要です。中央機関がないにもかかわらず、分散型システムの変更やアップグレードを可能にする。
フォークのおかげで、ブロックチェーンや暗号通貨が開発されるたびに新しい機能を統合することが可能になる。こうした仕組みがなければ、トップダウンでコントロールする中央集権的なシステムが必要になる。そうでなければ、プロトコルの存続期間中、まったく同じルールに縛られることになる。
Normally I do not read article on blogs, however I would like to say that this write-up very forced me to try and do so! Your writing style has been amazed me. Thanks, quite great post.