オン ザ・ブロックチェーン

【ハードフォークの仕組み】なぜコインが2つに分裂するのか?

calendar

 ビットコインから分離する形でこれまでにビットコインキャッシュビットコインゴールドが誕生しています。

 ブロックチェーンがハードフォークすることによって、新しいコイン(仮想通貨)が生まれるというのは一体どういうことなのか?ちょっと掘り下げて解説してみたいと思います。

スポンサーリンク

自然発生するフォークとハードフォーク

 ブロックチェーンはたまに自然発生的にフォーク(枝分かれ)することがあります。自然発生的にフォークした場合は、「ブロックチェーンがフォーク(枝分かれ)するってどういうこと?」で説明したように、長い方がメインチェーンとして存続することになります。

 こういった自然発生的なフォークでは、必ずどちらかの枝に収束するので二手に分かれて伸びていくということはまず起こりえません。仮に伸びたところで短い方は無視されて終わりです。もちろんコインが二つに分かれるなんてことにはなりません。

 自然発生的なフォークとは違い、ハードフォークというのは、二手に分かれたチェーンがそのままどんどん伸びていくことで2つのコインに分裂してしまうような分かれ方のことを言います。

 では、ハードフォークとは、一体どういった時に起こるのか?

 それはブロックチェーンの互換性のないバージョンアップ時に起こります。

 この辺は例を出して説明した方が分かりやすいと思うので、ビットコインキャッシュが誕生した際のハードフォークについて振り返ってみたいと思います。

ビットコインキャッシュの誕生

 ビットコインのブロックチェーンには元々、ブロックサイズの上限は1Mbyteとするというルールがありました。

 なので、1Mbyteを超えるブロックは正当なブロックとは認められません。

 最近、ビットコインの利用が増えてきたことによって、この1Mルールが取引処理におけるボトルネックとなり、送金処理が追いつかなくなってきました。結果的に送金手数料も高騰してしまいます。

参考ビットコインのスケーラビリティ問題とその解決策について

 今後さらにビットコインの取引が増えるなら、これは大問題です。


※トランザクションとはビットコインの送金記録のことで、それがブロックチェーンに書き込まれることで承認されます。

 そこで、ブロックサイズの上限を8Mbyteまで認めるバージョンアップを行おうと言う意見が主要なマイナー陣営(ビッグブロッグ派)から出ました。このバージョンアップを行えば単純に8倍の処理速度になることになります。

 しかし、ブロックサイズを大きくするのはセキュリティ上好ましくないという意見が主流だった為、結局、ビッグブロック派の意見は取り入れられず、segwitと呼ばれるブロックサイズはそのままで送金処理を高速化できる仕組みを取り入れることになりました。

 ところがどっこい、ビッグブロック派は引き下がりませんでした。「じゃあ、我々はもっと速く安く送金できるビットコインを作る!」と、強引にブロックチェーンのバージョンアップを決行してしまいました。

 このビッグブロック派の強引なバージョンアップによって、あるブロックを起点に元のチェーンからビッグブロック派のチェーンが枝分かれすることになります。

 元のチェーンではそれまで通り1Mbyte以上のブロックは無視されるのに対し、ビッグブロック派のチェーンでは1Mbyte以上のブロックも普通に正当なブロックとして認められるからです。

 こうして互換性のない二つのチェーンが誕生しました。これがいわゆるハードフォークです。

 マイナーたちも元のチェーンを掘る者とビッグブロックチェーンを掘る者にそれぞれに分かれることとなり、二手に分かれたブロックチェーンはそれぞれがお互いを無視することで、全く別のチェーンとして伸びて行くことになりました。


※あくまで上限が8Mbyteというだけで、実際はBCHのトランザクションはそんなに多くないので、ブロックサイズは1Mも無いです。

 台帳が全く別ものになるということは事実上、全く別のコインが誕生したことになります。その新しく誕生したコインにはビットコインキャッシュ(BCH)という名前が付けられました。

 もしマイナーが居なくなれば事実上そのチェーン(及びコイン)は死ぬわけですが、ビットコインキャッシュはビットコインの10分の1ほどの価値を持ち、それなりにマイナーも居るようです。

コインが存在する証

 ブロックチェーンとはすなわち台帳なわけですが、その台帳に書かれているのは極論すれば、「どこにどれだけのコインが存在しているか」です。

 ビットコインがどこにどれだけ存在しているか全て書かれているのが以下のブロックチェーンになります。こちらは分かりやすいと思います。

 一方のビットコインキャッシュの台帳はどれかと言うと、

 ↑これじゃありません。

 正しくは、以下がビットコインキャッシュの台帳です。

 あくまでフォークする前のブロックチェーンも含めてビットコインキャッシュの台帳です。つまり、フォークする前のブロックチェーンに関しては、両コイン共通の台帳ということです。

 フォーク前のブロックチェーンに書かれている「ここに1BTCのビットコインがありますよ」という情報がそのまま「ここに1BCHのビットコインキャッシュありますよ」という情報として使われるわけです。

 結果的に、ビットコインが存在する証は、フォークした瞬間、ビットコインキャッシュが存在する証としても機能することになります。

分裂したコインを別々に送金する?

 話をフォークする直前に戻しましょう。つまり、ブロックチェーンはこんな状態。↓

 過去の台帳を全て共有することで、
ビットコインの存在 = ビットコインキャッシュの存在
と言える状態です。

 言うなれば、それぞれのコインは裏表でくっついているような、2枚重なっているような状態です。


※あくまでイメージです笑

 このくっついた2つのコインを別々に動かすには、ビットコインキャッシュに対応したウォレットを使う必要があります。

 ビットコインキャッシュ未対応のウォレットでは、そもそもビットコインキャッシュを認識することができません。2枚重なっているコインに気づいていないような状態です。なので未対応ウォレットからビットコインを普通に送金すると、2枚くっついたまま送ることになります。

 ビットコインキャッシュに対応したウォレットなら、ビットコインを送るのか?それともビットコインキャシュを送るのか?選択できるようになっています。

 元々1BTCあったとしたら、ハードフォーク後には、1BTCのビットコインと、1BTCのビットコインキャッシュを別々に送ることが出来るわけです。

 ビットコインを送った場合、その送金記録(トランザクション)はビットコインのブロックチェーンに書き込まれ、ビットコインキャッシュを送った場合は、そのトランザクションはビットコインキャッシュ側のブロックチェーン(枝分かれした方)に書き込まれることになります。

 こうして、それぞれのブロックチェーンは、それぞれのコインの存在の証として伸びていきます。

リプレイプロテクション

 コインを完全に別物として扱うには、リプレイプロテクションという重要な対策が必要になります。

 というのも、リプレイプロテクションが実装されていないと、くっついたコインをばらして片方だけ送った際に、第三者が、送っていない方のコインを勝手にどこかに送ることが可能な状態になってしまいます。

 この脆弱性を利用して、送っていないはずのコインを、悪いヤツが勝手に自分のアドレスに送ってしまうという危険性があります。
※リプレイアタックと呼ばれています。

 

 リプレイプロテクションという機能は普通、新しくフォークした方のブロックチェーンに実装されます。

 リプレイプロテクションが実装されていないコインが誕生しても、各ウォレットはそれに対応しないことが普通です。そんな脆弱性を抱えたコインを扱えるようにしたところで問題が起こるのが目に見えていますから。

 ウォレットが対応しなければそのコインは取り出しようがありません。くっついて離れないなら別のコインとは言えません。

 くっついたまま。↓

 ハードフォークすることで新しいコインを生み出すには、その新しいブロックチェーンがリプレイプロテクションを実装していることが前提です。

ビットコインゴールド誕生

 2017年10月24日、今度はビットコインからビットコインゴールド(BTG)がハードフォークしました。

 これがリプレイプロテクション機能が未実装という話です。何やってんだって話です。

 もちろん対応ウォレットもまだ無いし、トランザクション(送金記録)もたぶんまだありません。トランザクションが無ければブロックもありません。

 ハードフォークしたとは言え、まだブロックは1つも無い状態です。ただ単にビットコインの裏にビットコインゴールドという別のコインがくっついただけの話です。

 取り外し不能です。

 ところが今回、ハードフォークに先立って多くの取引所は「うちで預かっているビットコインに対して、同量のビットコインゴールドを付与します」とアナウンスしています。

 まだ取り外せないのにです。

 取引所が付与すると言ってるのはあくまで取引所内でしか存在しえないコインです。他の取引所に送ったり、自分のウォレットに送ったりと言った機能はリプレイプロテクションが実装されない限り提供されないでしょう。

 取引所としては、一応預かっているビットコインはお客さんのものなので、そこにくっついたビットコインゴールドを取引所の権限で無き物にするわけにもいきません。そんな横暴な取引所は誰も利用したくないでしょう。なので、各取引所はこぞって「うちはちゃんとビットコインゴールドをお客さんに渡しますよ!」と喧伝しているんだと思います。

 というわけで、ビットコインゴールドは、誕生したはいいけどマイニングもまだ始まっていないようですし、まだこれからリプレイプロテクションを実装して、ウォレット各社が対応して、取引所が対応して・・、とまだまだ一般的に利用できる状態ではありません。ややこしいことをしてくれます。

 とは言え、タダで貰えるなら貰おうと言う人も多いようで、ハードフォーク直前には大きくBTCは値上がりしました。

 こういう無茶なハードフォークはビットコインの価値を大きく毀損する恐れがあり、非常にやっかいです。正直、やめてもらいたいです。

 けど実はビットコインゴールドなんてまだかわいいもんなんです。2017年11月にはsegwit2Xのハードフォークが控えています。これはビットコイン史に残る大事件となる可能性があります。

 その話はまたの機会に。
SegWit2xハードフォークとは?ビットコインはどうなる?

この記事をシェアする

コメント

コメントはありません。

down コメントを残す




管理人

Nobuo

Nobuo

仮想通貨に興味があるただの人です。モナコインが好きなのでMonazon.jpを作りました。よろしくです。