ビットコインキャッシュのハッシュウォーの結論(分裂が不可避な理由)

レポート「アルトコイン図鑑」では30種類以上のコインの概要と見通しを解説(詳しく)

ビットコインキャッシュは、BCH-ABCと、BCH-SVの現在2つの相異なる仕様が提案され、このままいくとコインが分裂するのではないかと予想されています。

ビットコインキャッシュでは、ひとつの開発チームが仕様を決めるのは中央集権的だと考えています。そのため、複数の開発チームが独自に(自由)に仕様を提案し、相反する仕様が提出されたら、マイナーがハッシュパワー投票により、1つの仕様を選ぶというガバナンスを憲法としています。

決定権があるのはマイナーで、唯一マイナーのハッシュパワーのみに決定権があります。それがBCH Wayです。

今回がまさにそれにあたり、マイナーはハッシュ投票により支持のチェーンを選び、多くのハッシュパワーを得たチェーンのみが生き残り、他方は消滅する、としています。

リプレイプロテクションをつけないので、ひとつのチェーンだけが残るとしていますが、果たして本当でしょうか?

またDAAがあるので、チェーンの長さに決着がつかず、どちらも同じような長さになるはずだ、という予測もあります。

いったい何が正しいのでしょうか?

私が専門家とともに検証したところ、どうやら、両方のチェーンが生き残り、コインが分裂することが不可避のように思われます。

以下に理由を書きます。

ABCとSVは、互換性のある部分もありますが、お互いに互換性のない部分もあります。

Screenshot from 2018-11-08 16-03-26

SVは、復活した過去のOPコード

ABCでは、新規導入のOPコード(DSV)が、互換性のない部分に当たります。

まず、フォーク予定のブロックがおとずれるとどうなるでしょう。

そのブロックの直後に誰かがDSVが入ったトランザクションを作成し流します。これはABCノードだけが有効とみなし、ABCのマイナーがブロックに含めます。

同時に、SVでしか有効でない復活OPコードをふくめたトランザクションをも誰かがつくって流すでしょう。となると、それをマイニングしたブロックができるはずです。

もちろんこのようなTXが発行されない可能性もありますが、おそらく事を十分にわかっている人が須く流すのではないかと予測しします。(なんなら私が発行しても良いです)。

となれば、必ず次のブロックでDSVを含んだTXと、復活OPコードを含んだTXがマイニングされます。このブロックでは、お互いのクライアントが、相手のブロックを無効なブロックとして認識するはずです。

この時点で決定的にフォークしてしまい、元にもどりません。これを防ぐには、あえてそういうTXをマイニングしないということになりますが、それは検閲でしょうし、なんのために新コードを追加したのかわかりません。

ですからフォークは不可避です。フォーク予定のブロックの次ブロックで決定的にフォークします。その後はどちらが長いとか関係ありません。おたがいのルールに照らし合わせて不正TXがふくまれたブロックがあるかぎりチェーンはHFしたままだからです。

もちろん、トランザクションの中身まで検証しないSPVノードの場合、単にチェーンが長いほうのチェーンを参照しにいくので、SPVクライアントの場合、正しい表示ができなくなるでしょう。つまり、フルノード以外のクライアントは、まったく機能しなくなります。多くのBCHウォレットは機能停止になります。

長い方のチェーンうんぬんはユーザーのウォレットから見た話なだけで、取引所などのフルノードを使っているところでは決定的にチェーンの分岐を認識します。

さて、現在、BCHを取り扱っている取引所は、まず間違いなくBCH-ABCのノードを利用しているはずです(それ以外にいままで存在しなかったため)。

ですから取引所としては、ABCとSVは区別して取り扱うことには決定事項です。BCHのティッカーはABCが引き継ぐはずですので、SVがフォークコインという扱いになります。

おそらくフォークコインを貰いたい人のほとんどがBinanceを利用するでしょう。BinanceはABCノードでしょうし、ABCをBCHとして扱います。SVがフォークコインとなるのは決定で、別々のものとして分離されます。

しかしながら、コインの入出金に関しては混乱が続くでしょう。一般のウォレットではコインを区別できないからです。つまりBCHは機能停止したまましばらく取引所のなかで区別されたコインが取引され、ほとぼりが冷めたところで(2つのコインの認識がかたまったところで)、ウォレットが独自のリプレイプロテクションをつければ、ようやく送金が利用できるようになるかもしれません。

一般ユーザーは相当期間はBCHの送受信は危険になりますので、フォーク後に送受信したいひとはフルノードを用意する必要があります[1]。

一般のユーザーの対処としては次になります。

  • BCHのHodler

ウォレットに寝かして、安全に送金できるまで寝かしたままにしましょう。どうせHODLなんでしょうから。

  • フォークコインを取りに行く人

取引所で付与以外の方法では入出金がむずかしく売買ができないでしょう。フォーク前に即時付与を表明している取引所(BinanceやOKEX?)などに送っておくべきです。

  • トレーダー?

フォーク前にExitするのが簡単です。

SVは現在最低でも3割以上のハッシュパワーを持っており、実際はもっとあるかもしれません。すると、ほぼ真っ二つにわかれることになり。フォークコインの価値は予想以上に大きくなります。現在SVは過小評価されていますので、これを取りに行く妙味はありそうです。

  • BCHで決済したいひと、マーチャント

決済機能は機能停止です。しばらく使えません。

理論的には以上なんですが何か決定的に見逃していることがあるのかもしれません。指摘は大歓迎です。

注記追加

[1] フルノードであっても、リプレイプロテクションが無いため単純に送ってしまうと、他方のコインも同時に送金してしまうことになります。フルノードユーザーは、他方で無効なOPコードを含めることにより自前でリプレイプロテクションを付与することができますので、送金の際にはそれを行うこととなるでしょう。一方、普通のウォレットのユーザーはウォレットベンダーの対応待ちとなります。

・おしらせ
ビットコイン研究所の有料版サロンでは、平易な言葉で最近の技術や業界事情などについて解説するレポートを毎週配信しています。

暗号通貨について、もっと知りたい、勉強をしたいというかたに情報を提供しています。サロン内では疑問点も質問できます。

一度登録いただけると100本以上の過去レポートが読み放題で、大変お得です。レポート一覧がこちらのページありますので、よろしければいちど目をとおしてみてください。
(詳細情報)

Ledger Nano S - The secure hardware wallet