Bitcoin ABCは新たなソフトウェア0.18.5バージョンをリリースし、敵対的なReorg（リオーグ）への防衛対策が追加された。先週のハードフォークからビットコイン・キャッシュ・コミュニティは分裂しており、Bitcoin ABCとBitcoin SVに分かれている。

ソフトウェアを走らせているノードがより長いチェーンを発見した際、ブロックチェーンが新たに書き換えられることをReorgと呼ぶ。Reorgが起こるとそれまで保有していたブロックチェーンは破棄され、新たに発見されたブロックチェーンが正当なチェーンとみなされる。

Reorg Protection（リオーグ・プロテクション）は、設定された以上のブロック数のReorgを防ぐことができる機能だ。Reorg Protectionの初期設定値は10ブロックとなっており、10ブロック以上ブロックチェーンが巻き戻るReorgは起こらない。

Bitcoin ABCのReorg Protectionは、Bitcoin SVを意識したものと推測される。Bitcoin SVの開発者はBitcoin ABCを敵視しており、Bitcoin ABCのブロックチェーンに対しReorgを狙った攻撃を仕掛ける可能性が高い。

攻撃者は秘密裏にマイニングした最長のブロックチェーンを突然公開する「シャドー・マイニング」と呼ばれる攻撃を行うことで、ブロックチェーンのネットワークを混乱させることができる。最悪の場合、予期しないハードフォーク（ブロックチェーンの分岐）が起こる可能性もある。

Bitcoin ABCのReorg Protectionで議論を呼んでいるのは、Reorgを拒否するブロック数の設定値が任意である点だ。ノード毎で設定値が異なるとReorgを認めるノードと認めないノードがでてくる。その場合、ブロックチェーンが分岐することになる。

設定値を10ブロックと5ブロックにしているノード群が存在すると仮定し、ここで7ブロックのReorgが発生したとする。その場合、設定値を10ブロックにしていたノード郡のチェーンではReorgが起こるが、設定値が5ブロックのノード群ではReorgが起こらない。

Reorgが起こったチェーンと起こらなかったチェーンは、異なる台帳を保有することになり、ブロックチェーンが分岐する。Bitcoin ABCのReorg Protectionを含んだバージョン0.18.5は非常に危険なアップデートである。設定値によっては、0.18.4のバージョンを稼働させていたとしても、ハードフォークする可能性がある。

また、初めから新しく同期作業を始めたノードのReorgが発生するかどうかは、ブロックを受け取った順番にも影響される。同期している相手との接続状況によって「正しいとされるチェーン」が異なる可能性があり、Proof of Workのみで正しいチェーンを決めていた今までのコンセンサスとは大きく異なる点も懸念される。

ビットコイン・キャッシュは先週、Bitcoin ABCとBitcoin SVに分岐したことでハッシュレートも分散した。ブロックチェーンのネットワーク上でハッシュレートの低下は、セキュリティの低下と同義だ。

セキュリティの低下が今回のアップデートに影響していると推測されるが、時間をかけてソフトウェアのレビューが行われたとは考えづらく、緊急的にリリースされた感が否めない。Bitcoin ABCのブロックチェーンは予期せぬハードフォークが起こる可能性が高く、資産を安全に記録する機能が欠如している。

Bitcoin ABC Update