BCHプロトコルアップグレードを巡る開発陣営の対立

次回(2018年11月)のBCHプロトコルアップグレードを巡って主に二つの開発陣営(Bitcoin ABCとBitcoin SV)の開発方向に相違点が見られ、マイナーやコミュニティの意見が対立しています。この問題は現在、大きな関心を寄せています。

二つの開発陣営がそれぞれ発表した11月のアップデートの内容項目は下記のようになっています。

Bitcoin SV

  • 最大ブロックサイズを128MBに引き上げる
  • ビットコインに本来備わっていたオペコードを復活させる。
  • スクリプト内で使える命令の回数の制限をなくす。

Bitcoin ABC 0.18.0

  • 新しいオペコード、OP_CHECKDATASIGの実装
  • 新しいトランザクションの格納方法、CTORの実装
ABC-Road Map
Bitcoin ABCのロードマップ

新しいトランザクションの格納方法、CTORの実装

この中で現在もっとも大きな議論となっているのが、Canonical Transaction Ordering (“CTOR”) です。
なぜCTORが今必要なのか?他の方法で可能なのでは?といった意見も多く見られます。
今回はこのCTORについて簡単に説明したいと思います。

TTOR – Topological Transaction Ordering Rule

CTORについて解説する前に、TTORについて少し説明する必要があります。
現在ビットコインキャッシュではトランザクションがブロックに書き込まれる順番は多くのルールはありません。
守らなければならないルールは 同じコインが移動する場合、必ず使われたコインのトランザクション(親トランザクション)の後に次に使うコインのトランザクション(子トランザクション)が格納されなければならない、というものです。
これをTTOR(Topological Transaction Ordering Rule )と呼びます。

例えば、AさんがBさんに1BCHを送って、そのあとBさんがCさんに同じ1BCHを送る場合は必ず。AさんからBさん、BさんからCさん、という順番でブロックに書き込まれる必要があります。

A>B(親トランザクション), B>C(子トランザクション) 可
B>C(子トランザクション), A>B(親トランザクション) 不可

CTOR – Canonical Transaction Ordering Rule

ビットコインABCはこれをCanonical Transaction Ordering Rule (CTOR)と呼ばれる新しい順番に変更する予定です。
Canonical=カノニカルとは正規化や標準化といった意味で、具体的にはトランザクションの順番をトランザクションIDをアルファベット順に並べることで標準化する技術です。
ステップとしては、ビットコインをTTORからCTORに変更するために一度、(AOR)という形式に変更します
AORは必ず親トランザクションの後に子トランザクションが来るというルール(TTOR)を取り外したものです。
一度AORに変更し、CTOR(トランザクションIDをアルファベット順に並べ替える)のルール適用という順番です。

CTORは長期的な視点で見るとグラフェンなどのブロック伝播効率化技術の実装の単純化に役立つとされています。
超長期的な視点で見るとCTORはシャーディングと言われる分散型ブロック承認技術を作るのに役立つとされています。
しかし、短期的な視点で見ると当面はTTORであるかCTORであるかはブロックの承認について大きなパフォーマンスの差は無いとされていて、反対意見の多くは、将来のシャーディングの必要性についてもまだ十分な議論がなされておらず、グラフェンに関してもすぐにグラフェンの必要があるかどうかという疑問もあり、十分にテストもされていないこの技術がなぜ今必要なのかというものです。

このCTORを巡るnChainとBitcoin ABCの対立はコミュニティの大きな関心となっていますが、4月頃まではnChainの開発ロードマップにこのCTORは含まれていた事から、突然の方針変更に戸惑う声も見られます。
またこの件に関して話し合う会議とnChain側から反対する理由の技術的背景に関する説明がバンコクで8月末に行われましたが、nChainチーフサイエンティストのクレイグライト博士が途中退席するなど、現場は混乱していた模様です。

11月のプロトコルアップデートまであと二ヶ月ですが、まだまだこの問題に関する議論は加熱していく様相を見せています。ビットコインの特徴である非中央集権というコンセプトは管理する中心となる団体が存在しないためこのような意見の対立はつきものですが、検閲や言論統制が行われるよりは多少議論が加熱しても、プロトコルのアップデートに関して白熱した議論が展開されるのは健全であると言えます。