ETHEREUM YOUTUBE PROFILE PIC

ヴィタリックの記事、第二弾訳しました!

今回はハードフォークとソフトフォークの本質に迫ります。

日本だとハードフォークは、ボーナスステージみたい思われてますが、 さすがヴィタリック、開発者の視点で議論を進めてくれます。

ポイントはハードフォークのタイプに、旧ルール拡張する場合と旧ルールから完全分離する場合があることです。ヴィタリックは完全分離を支持しています。

こちらが出典元です。英語がわかる人はこちらを読んだ方が早いです。

ハードフォーク、ソフトフォーク、離脱と強制力 ー ヴィタリック・ブテリン

ブロックチェーンにおける重要な議論の1つとして、ハードフォークまたはソフトフォークのどちらがよりプロトコルのアップグレード方法として最適か?というのが挙げられます。この2者の基本的な違いは、ソフトフォークは以前有効トランザクションを無効にすことによって、プロトコルのルールを変更するため、旧ルールに従ていたノードは、新ルールを導入することになます。一方でハードフォークは以前は無効だったトランザクションやブロックが有効になるため、ユーザーは、ハードフォークされたチェーンに留まるためにクライアントをアップグレードする必要があります。ハードフォークには、さらに2つのサブタイプに分かれます。拡張するためのハードフォーク(strictly expanding hard forks):旧ルールをそのままに、新しいルールをとり入れ、有効なトランザクションを拡張します。もう一つは旧ルールから完全に分離するためのハードフォーク( bilateral hard forks):この場合は新旧のルールには、互換性がありません。

以下、フォークの種類を示すためのベン図です。

スクリーンショット 2017 10 29 19 03 32

ハードフォーク、ソフトフォーク、2つのに共通して挙げられる利点は、以下の通りです。

  • ハードフォークは、新しいルールを古いルールに適合させる必要がないため、開発者はプロトコルのアップグレードを、より柔軟に行うことができる。
  • ソフトフォークは、ユーザーがブロックチェーンに留まるためにアップグレードをする必要がないため、ユーザーにとって便利。
  • ソフトフォークは、更なるチェーン分岐を起こしにくい。
  • ソフトフォークは実際にはマイナー/承認者の同意を必要とするだけです(たとえユーザーが古いルールを使用していても、チェーンを作るノードが新しいルールを使用する場合、新しいルール下において有効なものだけがチェーンに取り入れられます)。ハードフォークの場合は、ユーザーからのオプトインという形で同意を必要とする。

これとは別に、ハードフォークに向けられる批判は、ハードフォークは「強制的」であるということです。物理的な強制力というより、むしろ、それはネットワーク効果による強制力です。つまり、ネットワークがAからBにルールを変更した場合、たとえ個人的にAが好きであっても、その他のユーザーはBを支持すると、Bの変更が個人的に気に入らなくても、Bに切り替えるざるを得ないという場合です。

一般的にはハードフォーク支持者は、ネットワークの「敵対的な乗っ取り」を達成しようとし、ユーザーを同調させるよう強制しているとあざ笑れ、それに加え、ハードフォークでのチェーン分岐はリスクがあり「安全でない」と宣伝し回っていると信じられています。

私の個人的見解ですが、実はこれらの批判は間違っており、さらに実際には、完全に逆であるということが多いです。この観点は、Ethereum、Bitcoin、または他のブロックチェーンに固有のものではありません。これらのシステムの一般的な特性から生じ、いずれにも当てはまります。さらに、以下の議論は、少なくとも1つのレイヤー(マイナー/承認者とユーザー)の大部分がそれを批判している場合のみ適用される。変更が非競合的である場合、フォークの形式が何であっても、一般的に安全に行うことができます。

まず第一に、強制力の問題について考えてみましょう。ハードフォークにしろソフトフォークにしろ、必ずユーザーが好まない変更が含まれます。100%sユーザーのサポートがない限りこれは起こります。さらに、どのようなシナリオにおいても、反対者の少なくとも一部は、自分の好みプロトコルルールに従うよりは、多数派の側に付くというネットワーク効果を重視します。したがって、どちらのフォークタイプも、ネットワーク効果という観点からは強制力があります。

ただし、ハードフォークとソフトフォークには本質的な違いがあります。ハードフォークはオプトインですが、ソフトフォークはユーザーに「オプトイン」をまず許可しません。ユーザーがハードフォークチェーンに参加するには、フォークルールを、新たに追加したクライアントを個人的にインストールする必要があります。また、ルール変更に同意しないユーザーは、ネットワーク効果を重視することなく、古いチェーンに留まることもできます。しかも実際には、このような出来事は過去に起こっています。

これはルールを拡張するハードフォーク(expanding hard forks)と、完全に旧ルールか分離するハードフォーク(bilateral hard forks)にも当てはまります。ソフトフォークに限っては、フォークしても分岐しません。したがって、ソフトフォークはコミュニティ的には、完全分離より強制力が支持されます、一方でハードフォークは全く反対のバイアスを持っています。私自身の観点では、他の人たちと違うかもしれないが、強制力(expanding hard forks)より完全分離(bilateral hard forks)を好みます。

これらの議論にもかかわらず、なぜソフトフォークがハードフォークよりも「非強制」として宣伝されるのかを理解苦しんだのですが、それはハードフォークがユーザーにソフトウェアアップデートをインストールさせるように感じさせるためです。一方でソフトフォークを使用すると、ユーザーは何もする必要はありません。しかし、この認識はフォークに対して謝ったイメージを抱かせます。個々のユーザーが「ダウンロード」ボタンをクリックするという単純な官僚的な手順を実行する必要があるかどうかではなく、大事なのはユーザーが受け入れたくないプロトコルルールの変更を、強制されているかどうかです。どちらのフォークも最終的には強制的です。そして、結果的にユーザーにとって、自由に選択される余地があるのは、ハードフォークの場合が多いです。

よく議論が起きるフォークを見てみましょうか、特にマイナー/承認者とユーザーの間に論争が起きるフォークです。ここでは、(i)完全分離ハードフォーク(bilateral hard forks)、(ii)拡張ハードフォーク(expanding hard forks)、および(iii)いわゆる「ユーザー主導型ソフトフォーク」(UASF)の3つのケースがあります。 4番目のカテゴリは、マイナーがユーザーの同意なしに、ソフトフォークを起動するカテゴリです。これはあとで見ていきます。

まず、完全分離ハードフォーク(bilateral hard forks)。ベストケースの場合、状況はわかりやすいです。 2つのコインは市場で取引され、取引者は2つのコインの相対価値を決定します。 ちなにみETC/ETHのケースでは、マイナーの主張はさておき、利益を最大化するためにコインの相場価格に基づいてハッシュレートを割り当てることが圧倒的に多かったです。

スクリーンショット 2017 10 29 15 42 11

たとえ独自のイデオロギーを持ったマイナーが現れても、結局、その他大勢のマイナーたちによって相場価格とハッシュレートの整合性を調整し、足並みを揃えるでしょう。マイナーカルテルが、あるチェーンから離れれば、そのチェーンのインセンティブは壊滅します。

ここでは2つの極端なケースがあります。最初のケースとして、ブロックの難易度が適切でないと、マイニング報酬は下がり、相場も下がりますが、ブロックの難易度が下がらなければ、マイニング収益は悪くなり、マイナー離れを起こします。ブロックの難易度を最適化しないとマイナーは戻ってこないでしょう。イーサリアムではこのようなことは起こりえないですが、ビットコインでは起こりえます。従ってハッシュパワーの少ない、小規模なチェーンは消滅してしまう。 このような質問の答えがいいか?悪いか?はあなたが、強制力を信じるか完全分離を信じるかによって見方が変わります。 上記から想像できるように、私はハッシュパワーのないチェーンに対してのブロックの難易度調整は不利であると思っている。

二つ目の極端なケースでは、ハッシュパワーの差が非常に大きい場合、大きなチェーンは51%攻撃を小さなチェーンに仕掛けることである。 ETH/ETCの比率が10:1の場合でも、今のところ、これは起こっていません。しかしながら、支配的なチェーンのマイナーが、完全離脱を許可し、これらの価値観に基づいて行動することは、常に可能です。

次に拡張ハードフォーク(expanding hard forks)場合を見てみましょう。 SEHF(strictly expanding hard forks)では、非フォークチェーンはフォーク後の新ルール下では有効です。フォーク後のチェーンが非フォークチェーンより相場価格が低ければ、ハッシュパワーも低くなり、結局、非フォークチェーンが最長のチェーンとなり(新旧ルールにて)、よってフォーク後のチェーンはいずれ消滅することになります。

フォークされたチェーンは価格に影響を及ぼし、いずれ消滅する可能性があります。価格に影響を及ぼすとチェーンが承認されなくなります。この論拠は強力で、議論が分かれそうな場合は、拡張ハードフォーク(expanding hard forks)ではなく、完全分離ハードフォーク(bilateral hard forks)にした方が良いです。 一般的にこのようなフォークが成功すること、フォーク後のチェーンの相場価格が低下し、消滅してしまうのではないかという思惑が働くという主張がありますが、私この主張は有力だと思っており、よってコミュニティ内で、コンセンサスがとれていないハードフォークでは拡張フォーク(expanding hard forks)より完全分離フォーク(bilateral hard forks)のほうを選ぶほうが、より良い選択となります。

Bitcoin Unlimitedの開発者は、完全分離ハードフォーク(bilateral hard forks)を手動で作成することでこの問題に対処することを提案しますが、より良い選択は、完全分離ハードフォーク(bilateral hard forks)をプログラムに組み込むことです。例えば、ビットコインの場合、 使われていないopcodeにをBANできる新しいルールを追加できるとします。 そしてそのopcodeを含んだトランザクションを非フォークチェーンに追加できる。そうするとフォーク後のルール下では非フォークチェーンは永久に無効ということになります。 Ethereumのケースでは、状態を計算できる仕組のため、ほぼすべてのハードフォークは完全分離ハードフォーク(bilateral hard forks)です。

最後に上述、ユーザ主導型ソフトフォーク(UASF)については、マイナーの投票なしに、ユーザーが新ルールを適用させ、マイナーの経済的利益は考慮しないです。仮に多くのユーザーがUASFを支持しなければ、拡張フォークと同じようなコイン分裂が起きます。つまり、チェーン消滅のリスクであるのです。UASFを支持する代わりに、拡張ハードフォーク(expanding hard forks)を支持しなよう強く圧力をかける。たとえ、UASF はオプトインであっても、生き残りに向けて経済的非対称性を利用します。

しかしながら、UASFs は危険な賭けなのです。例えば、マイナーの支持を得てないもかかわらず、開発者主導の新ルールを優先し旧ルールのトランザクションを無視する新機能を追加したUASFパッチを行うとします。実はマイナーこれたいして巧妙に反撃できます。それは一方的に投票でマイナー主導のソフトフォークを行い、新ルールを無効化することです。

ルールセットは以下の3つになります。:

  1. opcode Xが常に有効なオリジナルルール。
  2. opcode Xは、旧トランザクションが、新しいルールに従う場合にのみ有効です。
  3. opcode Xが常に無効なルール。

(2)は(1)に準拠したソフトフォークであり、(3)は(2)準拠したソフトフォークであることに留意されたい。今、(3)を支持する強い経済的圧力がある場合は、ソフトフォークはその目的を達成できない。

結論は、ソフトフォークは危険なゲームであり、論争を巻き起こし、しかもマイナーが反論を始めると、さらに危険になります。拡張ハードフォーク(expanding hard forks)も危険なゲームです。マイナー主導のソフトフォークは強制力があります。ユーザー主導のソフトフォークは、強制力はありませんが、経済的圧力のために依然として非常に強制的ですが、これもまた危険があります。あなたが本当に決定的な変化が欲しく、それを行うための社会的コストを支払う覚悟があるのであれば、シンプルに完全分離ハードフォーク(bilateral hard forks)を行うといいでしょう。適切なリプレイプロテクションをほどこし、あとはマーケットが全てを最適化してくれるを待つしかないのです。

引用元 Hard Forks, Soft Forks, Defaults and Coercion - Vitalik Buterin


まとめ

  • フォークには新しいルールに従わさせる強制力がある、それがイヤであればハードフォークして、留まりたいチェーンを選べばよい。
  • ソフトフォークや拡張ハードフォークは、新旧ルールが混在するため、その後のコミュニティ内で揉める可能性がある。
  • ハードフォークに強制力はない、むしろユーザーが自由のチェーンを選べる。
  • ヴィタリックは完全分離ハードフォーク(bilateral hard forks)を支持している。

訳すの超キツかったですね・・

途中からか意味がわからなくなりました..

でも、一流の開発者の思考に触れると勉強になります。どんなジャンルでも一流に触れるのが一番です。


関連記事:【イーサリアム】プルーフ・オブ・ステーク(Pos)の設計思想。ヴィタリック・ブテリン記事訳
関連記事:仮想通貨を始めるべきシンプルな理由。
関連記事:ブロックチェーン本を淡々と評価するよ。