QRコードをスキャンしてダウンロードしてください。
BTC $68,355.39 -1.61%
ETH $2,082.40 -3.19%
BNB $596.49 -1.31%
XRP $1.31 -2.91%
SOL $78.97 -4.22%
TRX $0.3143 -1.26%
DOGE $0.0903 -2.41%
ADA $0.2416 -5.29%
BCH $432.83 -1.45%
LINK $8.66 -4.23%
HYPE $36.07 -3.03%
AAVE $87.10 -9.91%
SUI $0.8640 -4.50%
XLM $0.1550 -4.07%
ZEC $265.39 +4.29%
BTC $68,355.39 -1.61%
ETH $2,082.40 -3.19%
BNB $596.49 -1.31%
XRP $1.31 -2.91%
SOL $78.97 -4.22%
TRX $0.3143 -1.26%
DOGE $0.0903 -2.41%
ADA $0.2416 -5.29%
BCH $432.83 -1.45%
LINK $8.66 -4.23%
HYPE $36.07 -3.03%
AAVE $87.10 -9.91%
SUI $0.8640 -4.50%
XLM $0.1550 -4.07%
ZEC $265.39 +4.29%

ソフトフォーク、ハードフォーク、デフォルト性と強制性

Summary:
コレクション

著者:Vitalik Buterin

原題:『ハードフォーク、ソフトフォーク、デフォルトと強制

発表日:2017年3月14日

ブロックチェーンに関する議論の中で、非常に重要な議論の一つは、プロトコルのアップグレードメカニズムにおいて、ソフトフォークが好ましいのかハードフォークが好ましいのかということです。ソフトフォークとハードフォークの基本的な違いは、ソフトフォークが有効な取引の数を厳密に減少させることでプロトコルのルールを変更するため、旧プロトコルのルールに従うノードは新しいチェーン上に残ることができる(大多数のマイナー/バリデーターがフォークを実現することを前提としています)一方、ハードフォークは以前無効だった取引やブロックを有効にすることを許可するため、ユーザーはクライアントをアップグレードしなければならず、そうしなければハードフォーク後の新しいチェーンに残ることができません。ハードフォークには2つのサブタイプがあります:1. 完全拡張ハードフォーク(strictly expanding hard forks)は有効な取引セットを完全に拡張し、したがって旧ルールが新ルールと有効に互換性を持つことができる、2. 双方向ハードフォーク(bilateral hard forks)であり、ここでは2つのルールセットが互換性がありません。

ここで、フォークのタイプを示すベン図を用います:

image

一般的に引用される2つの利点は以下の通りです:

  1. ハードフォークは、プロトコルのアップグレードを行う際に開発者により柔軟性をもたらします。なぜなら、彼らは新しいルールが旧ルールに適合するかどうかを追加で考慮する必要がないからです。
  2. ソフトフォークはユーザーにとってより便利です。なぜなら、ユーザーは追加のアップグレードを行わずに新しいチェーンに留まることができるからです。
  3. ソフトフォークはチェーンの分裂を引き起こす可能性が低いです。
  4. ソフトフォークは実際にはマイナー/バリデーターの同意を得るだけで済みます(たとえユーザーが旧ルールを使用していても、ノードがこのチェーンを新しいルールで使用する場合、常に新しいルールの下で有効な取引のみがチェーンに入ることができます)。一方、ハードフォークはユーザーに同意を選択させる必要があります。

さらに、ハードフォークの主な批判点は、ハードフォークが「強制的」であるということです。ここで言う強制性は物理的な力を指すのではなく、ネットワーク効果の一種の強制性を指します。つまり、ネットワークがルールをAからBに変更した場合、たとえあなたが個人的にAを好んでいても、大多数のユーザーがBを好み、Bに切り替えた場合、あなたがBを好まなくても、Bに切り替えなければ他の人と同じネットワークに留まることができません。

ハードフォークの支持者は、ネットワークに「悪意のある乗っ取り」の影響を与え、「強制的」にユーザーを彼らと並行させようとする試みとして嘲笑されることがよくあります。また、チェーンの分裂のリスクは通常、ハードフォークが安全でないことにあります。

私の個人的な見解は、これらの批判が誤りであるということです。そして、多くの状況において、これらの状況はしばしば逆行しています。この見解は、イーサリアムやビットコイン、または他のブロックチェーンに特有のものではなく、これらのシステムの一般的な特性に由来し、それらのいずれにも適用されます。さらに、以下の議論は、少なくとも一つの選挙区(マイナー/バリデーターとユーザー)の大部分が反対している場合にのみ適用されます;もし変更が非常に議論の余地がないものであれば、それは非常に安全に行うことができ、フォークの形式がどうであれ関係ありません。

まず、強制性の問題について議論しましょう。ソフトフォークでもハードフォークでも、いくらかはプロトコルの方法を変更し、一部のユーザーが好まないようにします。特に、このプロトコルが100%の支持を得ていない場合、プロトコルを変更することは一部のユーザーにとって好ましくありません。さらに、ほぼ避けられないのは、異議を唱える者たちは、ネットワーク効果を大多数の人々と同期させることをより重視し、彼ら自身のプロトコルに対する好みを超えるということです。したがって、ネットワーク効果の意味において、両方のフォークは強制的です。

しかし、ソフトフォークとハードフォークの間には本質的な違いがあります:ハードフォークは選択的に参加するものであり、ソフトフォークはユーザーに選択肢を与えません。ユーザーがハードフォークのチェーンに参加するためには、彼らは自らソフトウェアパッケージをインストールしてフォークルールを実現しなければならず、ルール変更に同意しないユーザーグループの反応は、彼らが重視するネットワーク効果よりも強い場合があり、理論的には彼らは旧チェーンに留まることができます—実際に、そのようなことが起こっています

これは完全拡張ハードフォークと双方向ハードフォークの両方に当てはまります。しかし、ソフトフォークの場合、フォークが成功すれば、フォークしないチェーンは存在しなくなります。したがって、ソフトフォークは明らかに制度的に強制的であり、分離ではなく、ハードフォークはその逆の傾向を持っています。私の個人的な倫理観は、強制よりも分離を支持するものであり、他の人がそう考えないかもしれません(最も一般的な議論は、ネットワーク効果が非常に重要であり、「一つの通貨のルール」にとって不可欠であるということですが、より穏やかなバージョンも存在します)。

もし私がその理由を推測しなければならないとしたら、私が先ほど述べたこれらの根拠にもかかわらず、ソフトフォークはハードフォークと比較して「強制性が少ない」選択肢として挙げられることが多いと思います。ハードフォークがユーザーに「強制的」にソフトウェアの更新をインストールさせるという感覚を与える一方で、ソフトフォークの場合、ユーザーは何もする必要がないように思えるからです。しかし、私はこの直感が誤りであると言わざるを得ません。重要なのは、個々のユーザーが単純な官僚的手続きを実行して「ダウンロード」ボタンをクリックする必要があるかどうかではなく、ユーザーが自分が望まないプロトコルの変更を受け入れることを強制されているかどうかです。そして、この指標によれば、上記のように、両方のタイプのフォークは最終的に強制的であり、ハードフォークはユーザーに自由を与える点でソフトフォークよりも若干優れています。

さて、マイナー/バリデーターの好みとユーザーの好みが対立する非常に議論の余地があるフォークを見てみましょう。ここには3つの状況があります:(i)双方向ハードフォーク (ii)完全拡張ハードフォーク、(iii)いわゆる「ユーザーアクティベーションソフトフォーク」(UASF)、4つ目はマイナーがユーザーの同意なしにソフトフォークをアクティブにする場合です。後でこれについて触れます。

まず、双方向ハードフォークについて説明します。理想的な状況では、このシナリオは非常にシンプルです。2つの通貨が市場で取引され、トレーダーは2つの通貨の相対的な価値を決定します。ETH/ETCのケースから、マイナーの大多数が価格比率に基づいて彼らのハッシュパワーを通貨に配分し、利益を最大化することを好むという証拠が多数あります。彼らは歴史的な形態の見解を考慮してハッシュパワーの配分を決定することはありません。

image

たとえ一部のマイナーがイデオロギー的な好みを一方または他方に傾けたとしても、価格比率とハッシュパワーの不一致からアービトラージを行うことを望む十分なマイナーがいる可能性が高く、価格比率とハッシュパワーが一致するようになります。もし一連のマイナーがこのチェーンでマイニングを行わないように団結したい場合、このインセンティブは過剰な欠陥の問題を引き起こします。

ここには2つの限界的な状況があります。最初の可能性は、非効率的な難易度調整アルゴリズムのために、通貨の価値が下がるとマイニングの価値も下がるが、マイニングの難易度は下がらないということです。これにより、マイニングは非常に利益が出ず、割に合わなくなります。どのマイナーも、損失を出しながらチェーンを前に進め続けることはありません。これはイーサリアムの状況ではありませんが、ビットコインの状況である可能性があります。したがって、少数のハッシュパワーのチェーンは永遠に地面を離れない可能性が高く、したがって死にます。これは良いことではないことに注意してください。答えは、強制と分裂に対するあなたの見解によります。私が上で書いた個人的な見解からすると、私はこのような少数のハッシュパワーのチェーンが敵対的な難易度調整アルゴリズムを持つことは良いことではないと考えています。

2つ目の限界的な状況は、差異が非常に大きい場合、大ハッシュパワーのチェーンが小ハッシュパワーのチェーンに対して51%攻撃を行うことができるということです。しかし、たとえETH/ETCの分流比率が10:1であっても、この攻撃は発生しませんでした。したがって、これは確定的な答えではありません。しかし、もしマイナーが主導的なチェーンで強制を好み、分裂を許可する場合、これらのマイナーは常に方法を見つけるでしょう。

次に、完全拡張ハードフォーク(SEHF)を見てみましょう。SEHFでは、フォークルールの下で非フォークチェーンが有効な属性を持つため、フォークチェーンが非フォークチェーンよりも低い価格を持つ場合、フォークチェーンのハッシュパワーは非フォークチェーンのハッシュパワーよりも低くなります。したがって、非フォークチェーンは最終的に元のクライアントとフォーククライアントによって最長チェーンとして受け入れられます。そうすると、徐々にフォークチェーンは「埋没」されます。

ある議論は、こうしたフォークが成功することは強い先入観によるものであり、フォークチェーンが価格の中で埋没され、通貨の価格が低くなるため、フォークチェーンが埋没される可能性が高くなると考えています。この議論は私にとって非常に理にかなっているため、双方向ハードフォークを行う良い理由となります。

ビットコインの多くの開発者は、ハードフォークが発生した後に手動で双方向ハードフォークを行い、この問題を解決することを提案しています。しかし、より良い選択肢は、内蔵の双方向ハードフォークを使用することです。たとえば、ビットコインの場合、未使用のオペコードを禁止するいくつかのルールを追加し、フォークしないチェーン上でこのオペコードを含む取引を行うことができます。したがって、フォークのルールの下では、フォークしないチェーンはこの時点で永遠に無効になります。イーサリアムのケースでは、状態計算がどのように機能するかに関するさまざまな詳細に基づいて、ほぼすべての双方向ハードフォークは自動的です。異なるインフラストラクチャに基づいて、他のチェーンも異なる属性を持つことがあります。

上記で言及した最後のタイプのフォークは、ユーザーアクティベーションソフトフォークです。UASFでは、ユーザーはマイナーの合意を考慮することなくソフトフォークルールを直接アクティブにすることができます。マイナーは経済的利益から排除される可能性があります。非常に多くのユーザーがこのUASFに従わない場合、この通貨は分割され、完全拡張ハードフォークのシナリオと同じ状況を引き起こします。UASFが選択的であっても、経済的不対称性を利用して成功に向かう傾向があります(ただし、この傾向は絶対的ではなく、このUASFが好ましくないと見なされれば成功しないため、そうすることはブロックチェーンの分裂を引き起こすだけです)。

しかし、ユーザーアクティベーションソフトフォークは危険なゲームです。たとえば、あるプロジェクトの開発者がUASFパッチを作成したいと仮定しましょう。このパッチは、以前はすべての取引を受け入れていた未使用のオペコードを、いくつかの新しい機能に適合する取引オペコードのみを受け入れるように変更します。これは政治的にも技術的にも議論の余地があり、マイナーはこの機能を好まないでしょう。マイナーはこの状況に対抗するための賢く狡猾な方法を持っています:彼らは一方的にマイナーアクティベーションソフトフォーク(miner-activated soft fork)を実施し、ソフトフォークで作成された機能が常に失敗するようにすることができます。

現在、私たちは3つのルールを持っています:

  1. オペコードXは常に有効であるという元のルール。
  2. オペコードXは他の取引が新しいルールに適合する場合にのみ有効である。
  3. オペコードXは常に無効であるというルール。

注意してください。第2点は第1点のソフトフォークであり、第3点は第2点のソフトフォークです。現在、第3点には強い経済的圧力がかかっているため、ソフトフォークはその目標を達成できません。

したがって、私の結論は次のとおりです:ソフトフォークは危険なゲームであり、特にそれらが議論の余地がある場合、マイナーが反撃を開始すると、このゲームはますます危険になります。完全拡張ハードフォークも危険なゲームです。マイナーアクティベーションソフトフォークは強制的であり、ユーザーアクティベーションソフトフォークはそれほど強制的ではありませんが、経済的圧力の形成により、ユーザーが自らソフトフォークをアクティブにすることには多少の強制性が含まれており、これは一定の危険性を持っています。もしあなたが本当に議論の余地がある変更を行いたいと考え、あなたがそうすることによって社会的コストが価値があると信じるのであれば、クリーンで純粋な双方向ハードフォークを行い、リプレイ攻撃からの保護を追加するために時間をかけ、そして市場という目に見えない手があなたを整理するのを助けてください。

warnning リスク警告
app_icon
ChainCatcher Building the Web3 world with innovations.