最近も話題になっていた「ビットコインの分岐」と分岐の際に必ずといっていいほど、登場してくる「リプレイアタック」について、説明していきます。
目次
ビットコインの分裂とは
ビットコインの分裂について説明する前に、ビットコインの仕組みについておさらいします。
ブロックチェーンシステム
ビットコインのような仮想通貨は、インターネット上に取引が全て記録されています。
その記録する仕組みをブロックチェーンと言い、円で言う日本銀行のような金融機関による管理ではなく、世界中の端末によってデータが管理されており、世界中の人たちで監視しあうことで正当性が保たれています。
そして、今説明したブロックチェーンが1本から2本に増えることにより、独立した2つの仮想通貨が存在することになることを「ハードフォーク」と言います。
よって、ブロックチェーンが分岐(ハードフォーク)することにより、仮想通貨も分裂することとなり、2つの仮想通貨が存在することになるのです。
ブロックチェーンの分岐とは、同時に複数のブロックが採掘されたり悪意のあるノードがネットワークを混乱させようとしたりして、複数のブロックが同じブロックのあとに加えられるときに発生します。このとき、ブロックチェインは分岐し、次のブロックを作成する採掘者は分岐したチェインの中から一番長い枝(ブロックが多い枝)を選び、そこに自分のブロックを加えるよう計算を始めます。枝の長さに一定以上の差がついたら、短い方の枝は捨てられ、捨てられた方の枝を構成するブロックの採掘者は報酬を受け取ることができなくなります。よって、採掘者は、自分の枝のあとに他の採掘者が続くよう一番長い枝にブロックを加えるインセンティブをもつのです。このインセンティブにより、一番長い枝に採掘者が集中し、そして採掘者が一つの枝に集中することにより、チェインが分岐しても一つの枝に収束するようになります。
参考:bitFlyer公式サイトより
過去に起きた事例
ービットコインキャッシュ(BCH)ー
2017年8月1日に特に大きな混乱もなく、ビットコインと同量の「ビットコインキャッシュ」が誕生しました。
主導で舵をとったのが、中国大手マイニングプール「ViaBTC」で、通貨の特徴として「1ブロックの容量を1MBから最大8MBまで拡大」したことです。
ービットコインゴールド(BCG)ー
201710月24日に予定より数時間早くハードフォークが実施され、香港にあるLigthtningASICのJack Liao氏の提案により「ビットコインゴールド」が誕生しました。通貨の特徴としては、ビットコインとは違うアルゴリズムを採用しており、Zcashにも採用されている「Equihash」が採用されており、専用機械を使わずとも、マイニングが可能となっている点が最大の特徴です。
ビットコイン保持者には分裂後のコインが必ず付与されるのか
コールドウォレットに持っている人へも、付与は対象となってはいるが、引き出すのが多少面倒くさいらしく、付与することを決定している取引所に預けておくことが一番安心して付与してもらうことが出来、利用も容易いと思われます。
しかし、取引所によっては、付与しないとしている取引所もありますので、必ず事前に確認が必要となります。
以下は国内仮想通貨取扱数No1の仮想通貨取引所コインチェックの対応方針告知になります。
このたびのBitcoin Goldに係る分岐に際し、CoincheckではBitcoin Goldの付与を行う予定です。しかしながら、以下のような事象が発生し、弊社にてお客様の資産の保護が困難と判断される場合やサービスの安定した提供が困難と判断される場合においては、Bitcoin Goldの付与を行わない可能性がございます。
・Replay attackに対する対策が不十分であると確認された場合
・マイナーが十分に集まらず、ブロックが安定的に生成されない場合
・何らかの脆弱性が発覚しそれに対する対策が行われない場合
・その他、弊社において付与等の取り扱いが不適切と判断される場合
等
参考:コインチェックHPより
リプレイアタックとは
ビットコイン分岐の話題には、よく「リプレイアタック」という言葉が出てきているかと思いますが、そもそもリプレイアタックについて、あまり理解できていない方もいるかと思います。
直近のビットコインの分岐を例で使うと、ビットコインゴールドを与えられたビットコイン保有者が、ビットコインを送金した場合に、誰かがビットコイン送金時のトランザクションをコピーして、ビットコインゴールドの台帳上で当該トランザクションを実行することにより、ビットコインゴールドも同じように送金されてしまう、ということです。
ここで、重要なのは、同様のトランザクションをビットコインゴールドの台帳上で実行したとしても、ビットコインと振込先は同じになってしまうので、コピーして実行した人にビットコインゴールドが送金されることはないということです。
ハードフォークによってブロックチェーンが複数の枝に分岐し、異なる 2 つ以上の独立した台帳に分かれてしまった場合において、ひとつの枝で有効なトランザクションが他の枝でも有効となることを利用して、ある台帳上で有効な取引を他の台帳上でも実行することにより、送金者の意図しない台帳上で資産移動させてしまうことを、リプレイ攻撃といいます。
たとえば、仮にブロックチェーンが Y および Z という 2 つの枝に分岐し、それぞれが独立した台帳とみなされることとなった場合で、送金者が Y の台帳上でのみの送金を意図してトランザクション T を作成したと仮定します。悪意のある受領者がこのトランザクション T の Z 上での実行を試み、トランザクション T がブロックチェーン Z に記録されてしまった場合、送金者は意図せず Z の台帳上でも同様の送金を行ったことになります。
参考:bitFlyer公式サイトより
ー対策ー
リプレイアタックへの対策は、既に実装が可能となっております。
対策自体とても単純な話で、ビットコインとは違うトランザクションルールをビットコインゴールドに導入すればいいだけなのです。
ビットコイン送金時のトランザクションをコピーして、ビットコインゴールドの台帳上で実行したとしてもエラーとなるだけで特にビットコインゴールドが送金されてしまうことはありません。
なお、ビットコインキャッシュのハードフォークの際には、Sighash Typeというパラメータ(署名を検証する際に、検証の挙動を変更するためのパラメータ)に新たなフラグを足すことで対策が行われたようです。
分裂に伴う懸念事項
すべては多数決
ビットコインは中央に管理する団体がいない為、全ての決定は多数決にて行われることになっています。もちろん国に縛られることなく世界共通で使える通貨としてのメリット等はあるが、何かしらの決定を行う際に、誰かの主導で決めることが出来ず、必ず多数決で決める必要があるのです。
なので、単純に考えると、悪い人が半数を超えると、その意見が通ってしまうのです。。。恐ろしい。
対立したらUAHFの可能性
ビットコインを分裂して新しい仮想通貨を作ることができるUAHFを行えるということは、ビットコインのコアチームや公式ルールに必ずしも則らないでもよい。ということに繋がってしまうため、マイナー間等で意見が割れた場合は、強行手段にでることも可能と言うことになる。
UASFとはユーザーによるソフトフォークの略です。2017年7月現在ではこの実装方式をBIP148の俗称として呼ばれています。本稿ではBIP148についての記述となります。
BIP148はビットコインコアによるスケーリング問題の解決策として提案されたBIP141のSegWit実装が進まないため、2017年3月12日に提案されました。
参考:EthereumJapan公式サイトより
まとめ
11月半ばにビットコインがSegWit2x採用に伴う分岐を行うに当たり、様々な憶測が飛び交ってはいますが、マイナーの動向により大きく仮想通貨の市場の動きが変わる可能性もあります。
現時点でビットコイン保有者にとっては、分岐後のコインも同数付与されることになりますので、しっかりと取引所等の対応は確認することを忘れないようにしておいてくださいね。
今までも確実に分岐に対応してくれている、国内仮想通貨取扱い数ナンバー1の取引所コインチェックについてはこちら
コメントを残す