
暗号資産の用語にリプレイアタックという用語があることを皆さんはご存知でしょうか。
今回の記事では、暗号資産初心者に向けたリプレイアタックの解説をしますので、リプレイアタックという用語を聞いたことがない方や、聞いたことがあるけれどよくわからない、といった方はぜひご覧ください。
リプレイアタックについて
では早速リプレイアタックについての解説をしていきたいと思いますが、リプレイアタックは非常に難しい仕組みになっていますので、とりあえずはざっくりとした概要を理解しておけばいいかと思います。
リプレイアタックとは
リプレイアタックとは、ハードフォークによって分岐することによって誕生したブロックチェーンで、悪意のある第三者によって行われる攻撃のことを指します。
呼び方としてはリプレイアタックや、リプレイ攻撃、反射攻撃などと呼ばれます。
ブロックチェーンでは中央集権的な仕組みによって暗号資産が管理されているわけではなく、日中央集中的な分散型台帳という形で情報が世界中に開示されていて透明性が高いので、本来であればこれらの情報の改ざんに対する耐性は高いと言われています。
しかし、ハードフォークによって分岐が発生することによって、分岐元で起きたトランザクション(取引)の情報を分岐先に反映させることで、取引情報が重複しユーザーが意図しない二重取引を起こすことができます。
とりあえず簡単に理解しておくのであれば、
「リプレイアタックはハードフォークによって分岐が発生したことによって、一方の取引情報を利用されることで、もう一方で意図しない取引が行われて資産を失う可能性がある」
と覚えておけばいいでしょう。

ハードフォークとは
ハードフォークとは暗号資産の仕様変更の方法の一つで、何かしらの問題を解決するために行われるもので、多くはスケーラビリティ問題の解決のために行われます。
ハードフォークによって仕様変更を行う際は、元となる通貨から分岐して別の通貨を作ることになりますので、ハードフォークによって作られた通貨は元となった通貨と同じ仕様を持って生まれます。
その後、元の通貨とは別の仕様を適用させることで、問題解決を図ります。
ハードフォークに関する詳しい説明はこちらの記事をご覧ください。
リプレイアタックの事例
リプレイアタックによって起きた事例をご紹介します。
The DAO事件
リプレイアタックによって起きた事件にThe DAO事件と言われるものがあります。
この事件ではSprit機能と送金のバグをついたハッキングが行われました。
この記事では詳しく解説をしませんが、本来であれば一度しか送金されないものが複数回送金されることによって、当時の金額にして約50億相当の通貨が被害に遭いました。
実際には、奪われた通貨は被害に遭う状態までハードフォークによって仕様変更をすることによって、被害自体に遭わなかったことにすることができましたが、実際にリプレイアタックによって被害を受ける可能性は十分にあったと言えます。
DAOとは
DAOという言葉をご存知ない方も多いかと思いますので、簡単に解説しておきます。
DAO(Distributed(Decentralized) Autonomous Organization)とは自立分散型組織のことで、中央集権的な組織とは違って、ブロックチェーンによって管理されたものなので、管理者不在で機能する組織のことです。
今回の事件では、DAOを利用した分散分散型投資ファンドというサービスのことです。
従来のファンドでは管理者が集めた資金の投資先を決定していましたが、このファンドでは出資した参加者の投票によって投資先を決定します。
参加者の投票によって決定した投資先に不満がある場合は、自分が出資した資金をDAOから切り離し、自分の管理するアドレスに戻すことができます。
これが先ほどご紹介したSplitという機能なのですが、本来は1度しか送金することができなかったはずが、複数回送金することができるというバグが存在しました。
The DAO事件では、自分のアドレスに複数回送金を行うことによって、約50億円相当の通貨を騙しとりました。
リプレイアタックへの対応策=リプレイプロテクション
リプレイアタックによって資産を失う可能性があるわけなので、何かしらの対策をしなければいけません。
これらリプレイアタックを防ぐことをリプレイプロテクションと言います。
リプレイアタックから大事な資産を守るリプレイプロテクションについてご紹介します。
取引を控える
リプレイアタックに限った話ではありませんが、ハードフォーク直後には様々なトラブルが発生する可能性があります。
これらのリスクから大事な暗号資産を守るための、最もベストな自衛手段はハードフォーク直後には取引を行わないことです。
取引を行わなければ、取引情報が発生しませんので、取引情報を悪用されることもありません。
これが自分でできる最も確実な自衛策になるでしょう。
ちなみに、これは技術ではありませんので、厳密にはリプレイプロテクションではありません。
SIGHASH_FORKID
暗号資産の中で最も認知度が高いビットコインからハードフォークして誕生した通貨に用いられているのがSIGHASH_FORKIDです。
SIGHASH_FORKIDを簡単に説明すると、ビットコインの取引が行われる際に使用される署名とは違う種類の署名を利用することで、ビットコインとビットコインキャッシュなどのそれらの通貨と区別する方法です。
オプトインリプレイプロテクション
こちらはビットコインとビットコインから分岐して誕生したビットコインゴールドを区別するための技術です。
ビットコインで取引を行う際に、ブラックリストアドレスと言われるアドレスに少額のビットコインを送金することでそれぞれの通貨を区別します。
このオプトインリプレイプロテクションには問題点があると言われており、今後さらにビットコインからハードフォークによって通貨が誕生した際に、それぞれの通貨に対してその都度ブラックリストアドレスを設定して少額のビットコインを送金することが現実的なのか、ということです。
今回のまとめ
今回の記事では暗号資産でよく聞く、リプレイアタックに関する用語の解説を行ってきました。
暗号資産は価格変動の激しいだけではなく、いつその資産が失われるかがわからないものです。
今後、暗号資産の投資を検討している方は、資産を失うリスクがあるということを常に意識しておかなければいけません。
そのために、リプレイアタックという用語や対策方法などについては知っておかなければいけない知識になります。
- リプレイアタックは悪意のある第三者によって資産を奪われる可能性のある攻撃である
- The DAO事件のように、実際にこれまでにすでに被害を受けている
- リプレイプロテクションには、SIGHASH_FORKIDやオプトインリプレイプロテクションなどの技術がある
- ハードフォーク後は極力取引を控えることで、リプレイアタックから身を守ることのできる唯一の自衛策
以上、暗号資産初心者は知っておきたい!リプレイアタックの簡単な用語解説についてでした。