ビットコインXTとは何か?BIP101を読み解く【プレミアム記事】

「ライトニングネットワーク入門(13ページ)」を配信しました。レポートの購読はこちらから詳細へ

「初心者でもわかるイーサリアム入門(19ページ)」を配信しました。レポートの購読はこちらから詳細へ

Selection_031

今回と、次回のプレミア記事では、ビットコインXTについて解説します。

日本では、いまだにマウントゴックスが騒がれていますが、現在ビットコインコミュニティはこの話題で大論争となっており、こちらのほうが1000倍ほど重要です。

簡単にいうと、先々週、コア開発者のGavin Andresen らにより、BitcoinXTなる仕様の異なる新バージョンが発表され、これに移行するような呼びかけがなされました。

XTは、仕様が違うのでいままでのビットコインと別のブロックチェーンに分岐するという「ハードフォーク」になります。もしこれを多くの人が採用し、XTがスタンダードになった場合の影響について、様々なひとが持論を戦わせており、ビットコインコミュニティは誕生以来最大の問題に突き当たっていると言えましょう。

今後のビットコインのゆくえや、価格を直撃する影響がありますので、ビットコイナーであれば必ずおさえておくべきとおもいます。

中身は技術的な議論なのですが、ガバナンスに関する問題もあり、一筋縄ではありません。

今回は、まずは、XTとはなにか?何を変えようとしているのか?そのあたりの土台を理解することにします。次回はその問題点や影響についてまとめます。

BIP101

まず、XTの基となったのがBIP101というものです(原文はこちら)。この仕様もとに、ビットコインXTとはなに?というところを追いましょう。

BIP: 101
  Title: Increase maximum block size
  Author: Gavin Andresen <gavinandresen@gmail.com>

BIPは、Bitcoin Inprovement Protocolの略で、インターネットにおけるRFCと同様です。提唱者はGavin Andresen。Gavinは、長年ビットコインのコアを開発しており、最大級のコミット数を誇るひとです。

BIP101は、タイトルにあるように、ビットコインのブロックサイズの上限を緩和する提案です。

ブロックサイズの上限については、長らく議論がされてきました。今年の春先ごろから繰り返しおこなわれているDDoS攻撃や、ストレステストなどを通して、ビットコインのスケーラビリティが試されたわけです。

ビットコインの現在のブロックサイズは、1Mbyteです。10分につき1Mbyteのトランザクションしかさばけないということになります。これは秒にして、7トランザクション/秒であり、他の決済システムに比べると非常に遅い。こうしたことから、ブロックサイズの引き上げの議論が繰り返されてきました。

BIP101では次のように拡張が提案されています。

The maximum size shall be 8,000,000 bytes at a timestamp of 2016-01-11 00:00:00 UTC (timestamp 1452470400), and shall double every 63,072,000 seconds (two years, ignoring leap years), until 2036-01-06 00:00:00 UTC (timestamp 2083190400). The maximum size of blocks in between doublings will increase linearly based on the block’s timestamp. The maximum size of blocks after 2036-01-06 00:00:00 UTC shall be 8,192,000,000 bytes.

まず、2016年1月11日に、ブロックサイズ上限を、8Mバイトにする。これは現在の1Mの8倍。その後、63,072,000秒(約2年)ごとに、これを倍にします。

2018年には、16Mバイトに、2020年に32Mバイトに、2022年に64Mバイトに・・というように倍増していき、2036-01-06をもって打ち止めと成ります。この時には、ブロックサイズが8ギガバイトまで引き上げられます。

8ギガバイトという数字をきいて少々ビビリました。10分で8ギガバイトの容量を食うのですから、一日にすると8Gx6x24=1.1ペタバイトのデータが増えることになります。

The doubling interval was chosen based on long-term growth trends for CPU power, storage, and Internet bandwidth. The 20-year limit was chosen because exponential growth cannot continue forever. If long-term trends do not continue, maximum block sizes can be reduced by miner consensus (a soft-fork).

この2年で倍増というのは、CPUパワーやストレージの成長にあわせていると書いてあります。ご存知のムーアの法則は、約1.5年で半導体の集積が倍になるという法則ですが、BIPはそれより若干保守的に、2年で倍になるという想定を立てているものかと考えられます。

Deployment shall be controlled by hash-power supermajority vote (similar to the technique used in BIP34), but the earliest possible activation time is 2016-01-11 00:00:00 UTC.

展開ですが、これはビットコイン採掘者によるハッシュパワーによる投票にするといっています。つまり、XTを採用するかしないかは、採掘者にそれぞれの意思決定権限があります。当たり前ですが強制できません。

理論的には全採掘者のうちXTがいわゆる51%を超えてしまえば、XTによってネットワークが支配されることに成ります。が、もう少し条件をつけています。

Activation is achieved when 750 of 1,000 consecutive blocks in the best chain have a version number with bits 1,2,3 and 14 set (0x20000007 in hex). The activation time will be the timestamp of the 750’th block plus a two week (1,209,600 second) grace period to give any remaining miners or services time to upgrade to support larger blocks. If a supermajority is achieved more than two weeks before 2016-01-11 00:00:00 UTC, the activation time will be 2016-01-11 00:00:00 UTC.

要するに、直近生成された、1000ブロックのうち、75%のブロックがXTの採掘者によって採掘される状況を発動条件としています。この状況が満たされたと確認されたあと、約2週間後に、XTはブロックサイズを8Mまで拡張します。

ただし、2016-1-11以前に75%を達成してしまった場合は、2016-1-11日にブロックサイズの変更を行うとあります。

反論について

Centralization of full nodes
Centralization of mining: costs
Centralization of mining: big-block attacks
Unspent Transaction Output Growth

BIP101では、大きなブロックサイズについての反論について、4つのポイントを取り上げています。まず、大きなブロックになることによって、これを扱えるだけのコンピュータ資源とネットワークが必要になり、フルノードを走らせることのできるコンピュータが限られてしまいます。マイニングに関してはコストも上昇します。マイニングの寡占化、中央集権化、というのが懸念されることになります。

また、BigBlockアタックという、巨大ブロックが伝播するまでの時間のタイムラグをつかって、より有利にマイニングを行うという方法があり、利益追求のマイナーはこれを行います。セキュリティリスクを高めるとされ、これにより、ますますマイナーの寡占化がすすみます。

最後は、Unspentのトランザクションが増えるというものですが、ここはよく理解できてないので詳しい方、補足願えると幸いです。

このように、ブロックサイズの拡張は、ビットコインの中央集権化をもたらすという懸念があります。

ブロック上限を増やす以外の対案についても記述があります。

One-time increase
Dynamic limit proposals

一度だけ、ブロックサイズを増やす。たとえば一度きり、倍にするなどです。これに対しては、きりがなく、また同じ論争を繰り返すので、先々まで増える仕様にしたほうがいいと言っています。

また、ダイナミックにブロックサイズの上限を変えるような仕様も対案としてあります。これには、インプリ上の問題や、マイナーのインセンティブなどがありうまく行かないのではとの見解です。

互換性

最後に、互換性です。

This is a hard-forking change to the Bitcoin protocol; anybody running code that fully validates blocks must upgrade before the activation time or they will risk rejecting a chain containing larger-than-one-megabyte blocks.

これがハードフォークといわれている所以です。XTは、ビットコインプロトコルのブロックの仕様の変更ですから、既存のビットコインコア(Bitcoin-QT)とは互換性がなくなります。

XTが作った巨大ブロックは、Bitcoin-QTは承認しません。ですから、XTに切り替わるなら、先ほどのマイニングパワーによる投票として、マジョリティのマイナーがXTを採用する必要があるわけです。そして、一度XTが採用されてしまえば、XTによりつくられたブロックが支配をするということで、まさに、XTとQTで、どちらで行くべきかという、ブロックチェーンを2つに分岐させてしまう(ハードフォーク)論争が行われているというわけです。

Gavinらが、コンセンサスによるものではなく、マイナーに直接よびかけて、パワー投票を提案したことについては、批判も出ています。ビットコインのガバナンスに大きな疑問符がついてしまったからです。

XTにしろ、QTのままになるにしろ、お互いが対話し、最終的にマイナーのハッシュパワー投票ではなく、コンセンサスがなされるべきなんではないでしょうか。

その他の追加機能

また、BIP101には含まれていませんが、XTクライアントでは、次の2つの重要な仕様の変更も盛り込まれました。

・Double spend relay

穏やかならぬタイトルですが、これは0コンファメーションのインプットをマイニングを待たずに使えるようにする変更です。現在でもそういう仕様になっているウォレットもありますが、これを原則使えるように統一しようということ。ただし、0コンファームであることが受取人がわからないと危ないので、その機能を追加。これによりトランザクションの透明性を高めるとしていています。

・ブラックリスト

これは、IPによるフィルタリングです。DDoS対策として考えられていますが、いわゆるブラックリストとしても使えます。現在は、Torの匿名ノードをブロックするという仕様とするようです。

両方ともに、仕様変更には充分な議論がなされたとは言い難く、とくにブラックリストについては、匿名性を減らし健全になるという反面、IPによるコントロールができてしまうのは、個人的には気持ち悪いと思っています。これらが、同時に入ってきて、ハッシュパワーの投票にかけられるというのは、個人的には違和感があります。国会審議でいうと、希望していた法案だったけど、別の法律改正もまとめて国会審議にかけられて一本の議案になってるみたいな。

現在のXT採用状況

現在の採用状況は、xtnode.comで確認できます。

これによると7000近いフルノードのうち、12%程度がすでにXTに切り替えたとされています。ビットコインのフルノードって7000しかなかったんですね・・・。

一方、XTが発動するかどうかは、ノードの数ではなく、生成されたブロックによります。直近1000のうち、75%がXTのマイナーによる採掘でないといけないわけです。

ブロック生成をみますと、1000のうち、わずかにXTにより採掘されたものは4ブロックとなっています。つまりまだマイナーは態度を保留していると読み取ることができるかと思います。

問題点、影響

価格への影響

XTの議論は、ビットコイン価格に大きな影響を もたらしています。先日Bitfinexで12億超の成り売りが入り、ビットコインは一時期165ドルをつけるなど、フラッシュクラッシュという状況がありましたが、この直前に、初めてXT採掘者によるブロックが生成されました。これを嫌っての売りが、Bitfinexのシステムの不具合と合わせて、フラッシュクラッシュを引き起こしたのではないかと推測されています。

いずれにしても、XTの議論のいかんにおいては、ビットコインは大混乱することになり、最悪の事態になった場合、価格への影響も尋常ならざるものになるでしょう。この議論が落ち着くまで、価格の上昇も限られると見ています。

ハードフォークの問題

XTは、コンセンサスによらずに、マイナーのハッシュ投票によって強引にブロックチェーンを分岐させるものであり、その手法には、批判もでています。これをめぐって、ビットコインのコアの中での対立もふかまってしまっています[1]。

このような強引な手法は、いままで積み重ねてきたコンセンサスを不意にして、今後も、マイナーハッシュ投票や政治劇が繰り返されるのではという懸念も示されています[2]

技術的な話だけではなく、ビットコインのガバナンスにまで話が及び、サトシとおもわれるひとからのメールが出てきたり、大論争となっているわけです。

今後のみとおし

ビットコインのブロック上限については、いずれ引き上げざる得ないだろうというところまでは双方、コンセンサスがとれています。

ただし、本来的には、センシティブな仕様変更ですから、時期や手法を巡ってはかなり保守的だったといえます。本来でしたら、テストネットワークなどでのシミュレーションを経て、論理的な帰結がなされるべきです。

もっとも良いのは、そういった理論的根拠によってコンセンサスがなされ、XTでも、元のままでもなく、合理的なブロックサイズ上限が設定されることだと思います。それを私も望みます。

ただ、いったんマイナーのハッシュ投票というやり方が提案されてしまった以上、コントローラブルでない部分もあり、最悪の事態も含めて、何が起こるかわかりません。いろいろな事態を想定しておいたほうがいいと思います。

次回記事予告

次回のプレミアム記事では、大論争の論点について、もう少し詳しく突っ込みたいと思います。

・XTを巡って対立が解消されない場合の、想定される最悪の事態

・ハードフォークでなにが起こるか?

・ビットコインのガバナンスはこれからどうなるのか?

・サトシの怪文書

・ビジネスへの影響

といったところを取り上げます。とくに最悪の事態については理解しておく必要があると思います。

なお、英語ソースで先に読みたい方は、以下の議論が最適です。参考URLにあげておきます。

<参考URL>

慎重派の意見

http://spectrum.ieee.org/tech-talk/computing/networks/the-bitcoin-for-is-a-coup

http://wallstreettechnologist.com/2015/08/19/bitcoin-xt-vs-core-blocksize-limit-the-schism-that-divides-us-all/

Techcrunch

http://techcrunch.com/2015/08/22/money-and-politics-bitcoins-governance-crisis/

Lets Talk Bitcoin

#Blocktalk 371071 Bitfinex & QuadrigaCX

<注>

[1]https://www.reddit.com/r/Bitcoin/comments/3hn5wy/peter_todd_recommends_revoking_gavins_commit/

[2]http://wallstreettechnologist.com/2015/08/19/bitcoin-xt-vs-core-blocksize-limit-the-schism-that-divides-us-all/

Donate with IndieSquare

このブログでは読者の皆さんとのつながりを作る実験としてトークンを配布しています。
※記事が役に立った場合は、寄付ボタンをクリックして、ぜひ寄付をお願いします。寄付額相当のDOUBLEHASHコイン(詳細説明)を送付いたします。
コインを受け取るには、IndieSquare Walletからお送りください。

「知られざるマイニングファームの経営と実態 Genesis Mining Report」を配信しました。レポートの購読はこちらから詳細へ