AIサマリー
もっと見る
わずか30秒で記事の内容を把握し、市場の反応を測ることができます。
仮想通貨に興味があるなら、“フォークス”を聞いた事があるでしょう。簡単に言うと、フォークは参加者によって同意されたブロックチェーンのプロトコルの分岐を言います。
これは、様々な理由で起こり、ソフトフォークとハードフォークに分類されます。
この記事では、ブロックチェーンのソフトフォークの概念に関して、どんな役割を担うか、どう作動するのか、いくつかの例、そしてソフトフォークとハードフォークの違いについてお話ししていきます。
ビットコインや他の仮想通貨に関して言うと、ソフトフォークは仮想通貨のチェーンが“一時的な分岐”を経験した際に起こります。ソフトフォークは、前の有効なブロックまたは無効な取引が原因となる、通信プロトコル内の分岐であります。
ソフトフォークで作られる分岐は後方互換性を持ちます。つまり、旧ノードは、新しいルールに従う限りブロックチェーンへ新規ブロックを追加できるという事になります。ブロックチェーンのルールは、ブロックチェーンプロトコルと呼ばれます。
ブロックチェーンのプロトコルに関する、ソフトフォークの概念について見ていきましょう。
ブロックチェーンは、パブリックの分散型台帳として定義でき、それはノードとして知られる、世界を繋ぐコンピューターのネットワークでの取引を記録します。全てのノードは平等でインターネットを通して1人1人が繋がります。ネットワーク上で、参加ノードはブロックチェーンに追加する前に取引を確認しなければなりません。
ブロックチェーンは、一般的に定義されたルールの下で作動し、ブロックチェーンプロトコルとして知られてます。これは、ネットワークの全参加者(ノード)がそれに対し同意をします。これらのルールは下記で成り立ってます。
1. ネットワーク上での取引の認証と管理に関する説明
2. ネットワーク上の全参加ノードによってメカニズムを定義するアルゴリズムは1人1人と情報交換します。
3. アプリケーション・プログラミング・インターフェース(場合による)
このプロトコルに関して、ソフトフォークは通信プロトコルに向けた変更です。そのため、前の有効な取引のブロックが無効状態になります。旧ノードが新しいブロックを有効としてブロックチェーン上で認識すると、ソフトフォークは後方互換とみなされます。
ソフトフォークは、ネットワークを中断するリスク低減を示すため、ビットコインのブロックチェーンをアップグレードするための最も一般的なオプションとして使われてます。さらに、ハードフォークと違ってソフトフォークは、大多数のマイナーのみ新たなルールを課すためのアップグレードを求めます。
時にソフトフォークは、ブロックチェーンの瞬間的な違いによって起こります。この場合、 アップグレードされてないノードを利用するマイナーは、マイナーのノードが知らない新しいコンセンサスルールを侵害します。アップグレードされてないノードがマイニングブロックを持ち続ける場合、後者はアップグレードされたノードにより拒否されます。
他の発生し得るフォークのタイプとして、ハードフォークが知られてます。これはネットワークに参加し続けるために全ネットワークのノードを最新のバージョンへ通信をアップグレードさせるプロトコルの修正です。ソフトフォークと違いハードフォークの場合、 アップグレードされたブロックチェーンのバージョンのノードがブロックチェーンの旧ルールを受け入れません。新しいルールのみ従います。
ハードフォークとソフトフォークは、両者共に仮想通貨のプラットフォークに存在するノードを変えるという点で似ています。どちらのフォークも機能の継続や、ブロックチェーンのネットワークの効果的な管理体制に欠かせない一方で、根本的な違いがあります。
まず最初に、ソフトフォークは、徐々にユーザーがアップデートを利用していく有効な状態の単一ブロックチェーンのみ起こります。これは、基本的にブロックチェーンへの段階的なアップデートです。しかし、ハードフォークの場合、旧ブロックチェーンと新しいブロックチェーンが同時に存在するため、新ルールの中で稼働するためにソフトウェアをアップデートしなければなりません。基本的にブロックチェーンは突然分裂します。そのため両方のフォークが分裂に至ったとしても、ソフトフォークは1つのブロックチェーンを維持し、一方でハードフォークはブロックチェーンが2つに別れます。
したがって、ソフトフォークとハードフォークの主な違いは、ネットワークへの継続的な参加のためにノードのソフトウェアをアップデートする上での重要度です。
ブロックチェーン上で主要なセキュリティーのアップデートに関して言うと、ほとんどの開発者はハードフォークを好みます。計算機能力の労力を伴うとしても、この点においてハードフォークはリスクが非常に低く捉えられてます。
ハードフォークはブロックチェーンのコミュニティーで分裂を伴う可能性があります。2018年に起きた Bitcoin Cashのハードフォークがその例です。これは、ビットコインコミュニティーの中でブロックサイズやスケーラビリティーを巡って相違が起こりました。対してソフトフォークは常に合意の元解決し、ブロックチェーンのコミュニティー内に結束力のあるセンチメントを加えられます。
前述で説明があったように、ソフトドークは通信プロトコルに向けた後方互換性の変更により生じます。結果として、新たにフォークされたチェーンは、新規ルールに従いつつ、旧ルールを守ります。基本的に、オリジナルのチェーンは旧ルールに従い続けます。
新たな取引は一般的にソフトフォークを補い、マイナーと参加者(受領者、送信者)は新たな取引タイプの把握をしなければなりません。この場合、新たな取引タイプを前のクライアント(誰にでも支払い取引)に表示し、マイナーにこれらの取引を含む旧ブロックの拒否を促します。ただし、新規ルールを取り入れた取引を除く。
ソフトフォークを実装するには、ほとんどのマイナーがクライアントにフォークの認識させる必要があります。つまり、新規ルールに忠実なマイナーがいるほど、フォーク後のネットワークが守られると言う事です。例えば、マイナーの4分の3がフォークを認識してる場合、残りの4分の1のブロックは新規ルールに従う保証がありません。しかし、新規ルールに気づかない状態で新規ノードに無視される旧ノードを、有効状態にします。
アップグレードが懸念される限り、ソフトフォークはコンセンサスを維持するためにノードをアップグレードする必要がありません。なぜなら、新しくソフトフォークされたルールを持つ全てのブロックが、前のルールに従ってるからです。したがって前のクライアントはそれらを受け入れます。
しかし、ハードフォークはソフトフォークの逆を求められます。なぜならソフトフォークは、有効なブロックのセットが、フォークの前に有効だったものの適切なサブセットである事を証明するからです。ユーザーがソフトフォーク後のクライアントにアップグレードし、大多数がソフトフォーク前のクライアントに戻ると決断した場合、クライアントの新規ルールに忠実でないブロックが導入された瞬間、ソフトフォーク後のクライアントユーザーがブロックチェーンの流れを乱します。
恐らくソフトフォークが表面的な変化である事は把握したはずです。ブロックチェーンの構造に干渉されることなく機能の変更または追加され、コンセンサスアルゴリズムの変更、または何かソフトウェアの変更/アップグレードなど様々な理由によって起こります。
ネットワークのアップグレードでマイナーの大多数がハッシュパワーを利用して新規ルールを実施する事を、マイナー主導のソフトフォーク(MASF)と呼びます。
さらに、ユーザー主導のソフトフォーク(UASF)も存在します。ここでは、全てのノードが、マイナーのサポートなしで新規ルールを実施するための調整を行います。
ソフトフォークは、ブロックチェーンで一時的な分岐によって起こる場合もあります。ここでは、アップグレードされてないノードを利用するマイナーが、彼らのノードが好まない新規ルールを侵害します。
ソフトフォークは、ネットワークの分裂する可能性が低いと示されてから、ビットコインのブロックチェーンにアップグレードする上で、最も一般的なオプションとして使われます。前述にあったソフトフォークの成功例は、BIP 66(著名検証対応)やP2SH(ビットコインの送金方法)のようなソフトウェアのアップグレードが含まれてます。
BIPs(34、65、66)が、ブロックバージョンの数字を利用するマイナーのシグナリングを通してビットコインのブロックチェーンにインストールされました。基本的に新しいコンセンサスルールは、ネットワークですでに使用されている一般のブロックバージョンより高いバージョン数のブロックで利用するために提案されました。
フォークはブロックチェーンのネットワークにアップグレードのチャンスを与えると同時に、普及する上で重要となるスケーリング機能など、既存の仮想通貨に機能を追加してます。ソフトフォークはビットコインのブロックチェーンで革新のため使われ、ルールや後方互換性のアルゴリズムをアップグレードしてきました。
しかし、フォークの原理というよりフォークの実行が課題となってます。したがって、効果的なガバナンスのプロセスが実装する上で鍵となります。