レビュー

Bitcoin Cashのハードフォークについて

更新日:

Bitcoin Cashのハードフォークを巡って界隈が結構荒れているので眺めてみる。11/12当たりの情報なのであしからず。

どこの取引所に行けばコインがもらえる的なものはもうたくさん出ているのでそちらをご参照あれ。

殴り合っているのは誰?

激しくやりあっているのはBitcoin ABCとBitcoin SV。折衷案を模索しているのがBitcoin Unlimitedという構図。

Bitcoin ABC

Bitcoin ABCはBitcoin Cashにおけるフルノード実装の老舗といったところ。というかjihan派というか...。ABCはAjustable Blocksize Capの略だそうな。gitはここ

Bitcoin ABCが明かしている仕様によれば、行おうとしているのは次の5つ。

  1. Remove topological transaction order constraint, and enforce canonical transaction order ⇒ トランザクションの順序をカノニカルオーダー(昇順)にするよ。
  2. Enable OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY opcodes ⇒ OPコード「OP_CHECKDATASIG」「OP_CHECKDATASIGVERIFY」を入れるよ。
  3. Enforce minimum transaction size ⇒ 最小限のトランザクションサイズ(100バイト以上)を満たさないといけないようにするよ。
  4. Enforce "push only" rule for scriptSig ⇒ ScriptSigに「プッシュオンリー」ルールを強制するよ。
  5. Enforce "clean stack" rule ⇒ 「クリーンスタック」ルールを強制するよ。

Bitcoin SV

Bitcoin SVは、自称Satoshi NakamotoことCraig Wright氏率いるnChain社が立てるフルノード実装。gitはここ

SVはSatoshi Visionのことで、Bitcoinの原論文に書かれていたコンセプトを忠実に再現しようとする一方で、コンセプトに則っていない不要な変更はしないという原理主義的な派閥。Coingeekが強烈にサポートしている。

Bitcoin SVが行うとしていることは次の3つ。

  1. Restoring more original Satoshi op codes:  OP_MUL, OP_LSHIFT, OP_RSHIFT, OP_INVERT ⇒ Bitcoinの最初の実装にあった4つのOPコード、OP_MUL、OP_LSHIFT、OP_RSHIFT、OP_INVERTを復活させるよ(演算の性能を上げるよ)。
  2. Removing the limit of 201 op codes per script ⇒ 1スクリプト当たりに含むことのできるOPコードは今のところ201個までなんだけど、それを超えて書けるようにするよ(もっと複雑な命令を書けるようにするよ)。
  3. Raising the maximum block size to 128 MB ⇒ ブロックサイズを128MBまで拡張するよ。

BIP135(Bitcoin Unlimited)

Bitcoin ABCとBitcoin SVが計画しているハードフォークを起こさないで妥協点を模索しようよ(ケンカしないで仲良くやろうよ)、というBitcoin Unlimitedからの案。githubはここ

具体的にはABCとSVがそれぞれ主張している各種「機能」それぞれに対して投票(というかマイニングクライアントでのversion fieldを変更することによる意思表示)を行うことで、一致を図ろうとしている。閾値はハッシュパワーの75%が賛成すること。BIP135に投票することは、ハードフォーク自体に対してはNOを表明することになる。

11/15予定のハードフォークでは何も行わず、3ヶ月の投票期間、その後3ヶ月の実装期間を設け、要するに最速で6ヶ月後に賛成を得た機能を実装したバージョンをリリースするというもの。ちなみにハードフォークが起きてしまった場合でもBIP135で賛成を得た機能は6ヶ月後にアクティベートする。

投票対象の機能としては次の7つ。

  1. block_max_size_128mb(SVの3)
  2. opcodes_mul_shift_invert(SVの1)
  3. unrestricted_script_instructions(SVの2)
  4. op_checkdatasig(ABCの2)
  5. tx_min_size_100(ABCの3)
  6. enforce_CTOR(ABCの1)
  7. enforce_scriptsig_push_only(ABCの4)

スポンサードサーチ

どうなってるの?

(1)全体的にはBitcoin SV側が積極的に仕掛けているという感じ。

①SV派がここ1週間くらいでハッシュパワーを傾けてきている

ハッシュレート上位3つのCoingeek、SV Pool、BMG PoolはいずれもSVのみ支持派。図2に示したようにここ2週間ほどで合計ハッシュレートは3600PH/sから4800PH/s(訳1.3倍)くらいに上がっているが、これら3つの支持派はシェアを増している。つまり、1週間前の1.3倍のハッシュパワーよりも多くの力を注ぎ込んできている。

SVに反対しているViaBTCや、とりあえずABCの方に賛成は表明していてSVにはスタンスを示していないBTC.comやAntpoolは(いずれもBitmain傘下でBitmainはABCのみ支持派なのでSV反対だと思われるが)シェアを失っている。つまり、1週間前の1.3倍ほどのハッシュパワーは割いていない。

ハッシュレートの推移は次のような感じ。いずれも11/13 1:00くらいに撮ったデータ。

図1 ハッシュレートの推移

図2 過去1週間のハッシュレート(11/06~11/12)

図3 11/12のハッシュレート

で、このままいくとどうなるの、というのが次。ハッシュレートの分布からの予測は下記(11/12の17:30頃のデータ)。これはハッシュレートを提供しているノードがBitcion ABCを使っているのかSVを使っているのかといった情報から、現在のハッシュレートのシェアをこのノードがこれだけ占めてますよ、という情報を示したもの。

図4 ハッシュレートの分布からの推測

  1. 一番左が古いネットワーク。Coin Dance曰く、0~4%のマイナーが支持するんじゃない?とのこと。
  2. 左から2番目がBitcoin Unlimitedのネットワーク。Coin Dance曰く、18~31%のマイナーが支持するんじゃない?とのこと。
  3. 左から3番目がBitcoin ABCのネットワーク。Coin Dance曰く、18~31%のマイナーが支持するんじゃない?とのこと
  4. 一番右がBitcoin SVのネットワーク。Coin Dance曰く、62~72%のマイナーが支持するんじゃない?とのこと。

②SV派が大きなブロックサイズのブロックを採掘

BCHのブロックサイズ上限は32MBだが、その限界近くまで詰め込んだブロックを採掘している。具体的には、ブロック高556034、556045、556046、556048、556049でいずれもSV派のBMG Poolが32MBぎりぎりのブロックを採掘。

その前後で556036、556039、556052、556056、556057で10~20MBのブロックをSV Poolが採掘。556050で15MBのブロックをCoingeekが採掘。

556030~556060あたりが異常に増えている様子なので、ブロックタイム10分で単純計算すると5時間くらい(日本時間で11/10 22:00~11/11 3:00くらい、UTC的にはお昼ご飯を食べてから終業時刻になるくらいの間)続けて自作自演トランザクションが大量放出された可能性が...?通常1000txも含まれないのに1万txとか10万txとか含まれていて、128MB拡張案の既成事実づくりのためなのか結構露骨な感じがある。

図5 露骨なブロックのスクショ

※ブロックはこちらで確認できます。

(2)なんやかんやでABCは結局サポートされそう。BIP135は見向きされてなさそう。SVは謎。

各提案のサポート表明の状況(11/12の21:00頃のデータ)

図5 各ロードマップのサポート表明状況(プレゼンスによるウェイト無)

図6 各ロードマップのサポート表明状況(プレゼンスによるウェイト有)

  1. Bitcoin ABC:ウェイト無で見るとSupportとReady合わせて72.5%が支持(緑+青)、13.7%が反対(赤)、残り13.8%が中立or未表明。ウェイト有で見るとほぼ投票が完了しているような状況で、98.2%が支持しており、中立or未表明なチームがどちらに動いてもほぼ問題なくサポートされることは間違いなさそう。
  2. Bitcoin SV:ウェイト無で見るとSupportとReady合わせて35.2%が支持(緑+青)、9.8%が反対(赤)、残り55%が中立or未表明。ウェイト有で見るとSupportとReady合わせて22%が支持(緑+青)、反対は4.3%、73.7%は中立or未表明。プレゼンスの大きいところがまだどっちつかずな状況でサポートされるかは未定。
  3. BIP135:全体的にスタンスを明確にしていないところが多数。

BIP135はそもそもマイナー向けのオプションなので取引所やウォレットなどのステークホルダーはお呼びでない感じなのだが(そもそも投票形式がマイニングクライアントのbitcoin.confをいじってね、というものなのでそりゃあマイニングしないステークホルダーにはあまり関係ないよね)、それでもこの数字の低さを見る限り、全体的にHFは不可避だし別に止める気もない...という雰囲気っぽい。Bitcoin Unlimited先生かわいそう。

SVのサポートはよく分からん...。水面下で交渉中なんでしょうかね。まあ今のところSV支持派で半分強のハッシュレートを占めているので楽観視しているのかもしれませんが。謎。

(3)CoingeekのCalvin氏がいろいろ焚きつけているが...。

Hash war over?とか、Bitmain is deadとか...。Jihan側もCoingeek is controlled by Fake Satoshiとか、working together to kick Fake Satoshi outとか一応やり返してはいる。

ABC側があまり大きな抵抗を見せていないのが謎だが、HFした後にハッシュレートを増やして「SVざまぁ」的な感じにするのでしょうかね。

所感

リプレイプロテクションとか実装されていないように見えるけれどHFして大丈夫なのだろうか、というのが一点(送金できなくなりそうだし、ウォレット開発者は仕事が増えるし)。

まあユーザが使うコインというよりは、マイナーが王様なコインなので仕方がないのかなとは思いつつ。

Satoshi Nakamotoが論文の冒頭で述べていたことは「信頼できる第三者機関が介する送金システムっていくつかの問題(可逆性によるもの)があるよね。だからP2Pネットワークと暗号理論を組合わせて(ほぼ)不可逆的かつ二重支払いもできない二者間送金を実現してみたよ」ってことで、決して「マイナーがブロックチェーンの維持報酬をもらえてハッピーだね!」ではなく「ユーザはしっかりと送金できてハッピーだね!」ってことに重きが置かれていると思うのだが、送金機能がマヒしてユーザが困ってしまう状況を招く自称「本来のBitcoin」に果たしてSatoshiは何を思うのだろうか。

あとは、割と大型の分裂HF(旧チェーンが破棄されないHF)は珍しい気がするので、今後のブロックチェーン界隈の貴重なケースとして役立つといいなあというのが一点。

最後に、そういえば去年の11月もBitcoinはSegWit2xでバチバチにやりあっていたな(開発者 vs マイナー&取引所みたいな感じ)とふと思い出した。確か予定では11/15か16に予定されていて、11/8に中止が決まった。11月は魔物が住んでいるのかな。この時はjihanは妥協したけれど、今回はマイナーが王様なコインだし、退かないかもしれないね。

Bitcoin Cashユーザにとってはいい迷惑な気がしますが、個人的にはケースとして非常に楽しみです。

-レビュー
-, , , , , , ,

Copyright© 暗号通貨界隈のメモ書きなど。 , 2019 All Rights Reserved Powered by STINGER.

%d人のブロガーが「いいね」をつけました。