【技術ブログ】2017/8/1にビットコインに何が起こるのか?BIP-148の意図していることについて

はじめに

エンジニアの光田(@34ro)です。今回はビットコインに関する技術ブログです。
先日monacoinやlitecoinがsegwitを有効化したことが話題になりました。
一方でビットコインでは十分な投票が集まらず、segwit有効化への道のりが遠い状況が続いています。
なかなか賛成票が集まらない状況に対し、8/1に半ば強引に有効化させる案がBIP-148として提案されています。
5/19にbitcoin coreの開発メンバーの一人であるluke-jrがこのような記事を投稿しました。
BIP-148とそれに伴う影響
BIP148 and the risks it entails for you (whether you run a BIP148 node or not)

BIP-148に対応した場合、しなかった場合の影響がまとめられています。
ビットコインのネットワークに大きな影響があるとも考えられます。
BIP-148は何で、8/1に何が起こり得るのか、どのような意図があるのかについて考察してみます。
今回の記事はあくまでも一般論としての技術的考察です。

背景

そもそもの発端であるsegwitの現状を簡単に振り返ります。
segwitはビットコインのセキュリティの問題やスケーラビリティの課題を克服することを目的として昨年登場した技術です。
ソースコードは既に完成し、bitcoindの利用者には配られていますが、この機能を有効化するためにはマイナーの同意が不可欠です。
2016年12月にBIP-9の仕組みを使って投票を開始しましたが、2017年5月現在においても30~40%しか賛成が集まっておらず、有効化までの道のりが遠い状況が続いています。
monacoinやlitecoinでは有効化に成功する一方で、ビットコインは遅れをとっています。
マイナーの賛同が集まらないなか、segwitの有効化を働きかけるカードとして考えだされたのがBIP-148です。
ビットコインの仕組み上、マイナーのハッシュパワーが「票」になるのですが、手数料を払う利用者や価格を左右するトレーダーに決定権が移るともとれます。
BIP-9やsegwitについては以前こちらのブログにまとめています。
ビットコインはsegwitで何が変わるのか?技術な要点まとめ

BIP-148とは

原文はこちらですが、要約すると

2017/8/1-2017/11/15の期間に
* segwitがロックインの状態(もうすぐ有効化される状態)になっていない
* segwitが有効化されていない
場合に、segwitに賛成のシグナルを出していないブロックは不正と判定する。

という提案が書かれています。不正と判定するというのは、そのブロックのトランザクションは確定したとみなさず、そのブロックの後続のブロックを作らないという意味です。
これによって引き起こされることを考えてみます。

2017/8/1に何が起こるのか

8/1以前にsegwitがロックイン以上の状態になっていれば、丸く収まったということで何も起きません。
BIP-148の賛同するマイナーが全く集まらず、ブロックを作れなければ、やはり何も起きません。
また、全マイナーがBIP-148に賛同した場合はBIP-9の仕組みに基づきで2~4週間後にsegwitが有効化されます。しかし、全員が賛同というのは考えにくいシナリオです。
そうでない場合、segwitに反対しているブロックが作成されるのをきっかけに、segwitに反対するブロックを許容するチェーン(レガシーチェーン)とsegwitに反対するブロックを許容しないチェーン(BIP-148チェーン)でフォークが発生することが予想されます。
BIP-148チェーンとレガシーチェーンでどちらのハッシュパワーが大きいかで状況が変わってきます。
マイナーは最長チェーンを選ぶという原則を踏襲した場合、どういう形のチェーンができていくか考えてみます。
A. ハッシュパワーがBIP-148チェーン>>レガシーチェーン
レガシーチェーンから見るとBIP-148のブロックも正しいブロックなので連続したフォークは起こりません。
レガシーチェーンが時々作られますが、後続のブロックが作られるのに時間がかかるのでBIP-148チェーンの方がより早く伸びます。
レガシーチェーンが覆った場合、そのトランザクションはunconfirmedになってしまいますが、将来的にはBIP-148チェーンに取り込まれます。
BIP-148のブロックに取り込まれれば、覆ることはありません。そしてBIP-148の考案者の意図どおりにsegwitが有効化されます。
bip148_1
B.ハッシュパワーがBIP-148チェーン≒レガシーチェーン
最もネットワークに混乱を招くパターンです。
BIP-148チェーンからレガシーチェーンがいくつか伸びていくようなフォークが時々発生することが考えられます。
ブロックに取り込まれたトランザクションが覆らなくなるのは、BIP-148チェーンが最長になった時です。
bip148_1
C.ハッシュパワーがレガシーチェーン>>BIP-148チェーン
BIP-148チェーンから見るとレガシーチェーンは不正なブロックを含んでいるので、BIP-148は独自のチェーンを作り始める事になります。
そのためフォークが起きますが、ハードフォークと異なり、Ether Classicのような新しい通貨が生まれるのとは意味合いが異なります。
将来に渡ってこのハッシュパワーの差が維持されれば安全ですが、拮抗してくるとレガシーチェーンは覆る可能性があるのです。
bip148_2

BIP-148の意図していること

BIP-148で発生するフォークはソフトフォークです。
segwitもまたソフトフォークなので、2度ソフトフォークを行うよりも最初からsegwitのソフトフォークをだけ行えばいいと考えられますが、BIP-148には深い意図が存在することが伺えます。
ネットワークが混乱するという意味ではマイナーも利用者も不利益を被ってしまいますが、その他にはどのような影響があるでしょうか。
AまたはBの状況
利用者の視点では、レガシーチェーンのノードを使い続けるとブロックが取り消され、取引が覆るリスクがあります。そのためBIP-148チェーンを使うほうが合理的です。
利用者はレガシーチェーンを使うデメリットはあってもBIP-148を使うデメリットは無いという非対称性がポイントです。
マイナーの視点では、segwitに賛成しないとブロックが取り消され、コインベース報酬が無くなってしまいます。
すなわち、AまたはBの状況になれば利用者はBIP-148を採用し、マイナーはsegwitを有効化する方に動機付けられます。
Cの状況
ではCではどうでしょうか。
将来的に覆るリスクを抱えた状態で2つのビットコインにフォークすることになります。
利用者の視点では、どちらかのネットワークにトランザクションを流せばreplay attack的にもう片方のネットワークでもトランザクションが作られるので、一概にどちらを選ぶべきとは言えません。
両方のチェーンのブロックに取り込まれるのを待って送金が覆らなくなったとみなすほうが安全です。
マイナーの視点では、マイニングの計算コストと通貨の価格が決定要素になってくると考えられます。
トレーダーも取引所もBIP-148のチェーンをどう扱うかという難しい課題を突きつけられることになります。
もし、ビットコインでsegwitが有効化されることをマーケットが好意的に受け取るとすると、マイナーにとってはBIP-148チェーンをマイニングする方に動機付けられます。
マイナー以外のステークホルダーに決定権が移っていくわけです。強引なやり方ですが、非常に巧みなアイディアです。

まとめ

BIP-148とそれがもたらす影響についての考察をまとめました。
具体的なプランは出ておらず、実際にどうなるのかはその時になってみないと分かりません。
シンプルで非常に練られた戦略で、「ビットコインは世界で初めてのDAO」という言葉がまさにしっくりくる状況です。
DAOとしてのビットコインの動向に要注目です。
 
 
 

わたしたちと一緒に働きませんか?

 
コインチェックでは様々な職種の人材を積極的に募集しております!コインチェックのビジョンに共感し、その実現を本気で一緒に目指せる方、自身の力を思う存分に発揮されたい方のご応募をお待ちしております!
 
スクリーンショット 2017-07-12 10.48.52