リプレイアタックとは?

用語集

今日の仮想通貨用語:「リプレイアタック」とは?

 

〔名〕 (英:replay attack)
ブロックチェーンに対するハッキング手法のひとつである。仮想通貨のブロックチェーンがハードフォークするときに、旧仕様のブロックチェーンと新仕様のブロックチェーンの双方で同じトランザクションを発生させ、仮想通貨を不正に入手する行為。

仮想通貨のブロックチェーンがハードフォークするときには、トークンの移行のために一定期間、旧仕様と新仕様のブロックチェーンの双方を平行利用することになる場合がある。このとき、旧仕様のデータトランザクション(送金)と新仕様のトランザクションは同じ秘密鍵を用いていることを悪用する手口である。

例:
仮想通貨A1が仮想通貨A2にハードフォークする際に、A1のブロックチェーンとA2のブロックチェーンが併存する期間がある。
このとき、あるユーザーXがA1を送金したと仮定する。 悪意あるハッカーは、Xの送金を監視してA1の送金データをコピーする。ブロックチェーンは原則的に公開されているため、他者のトランザクションを見ることは容易である。ハッカーは、XのA1送金データと秘密鍵をコピーして、A2のブロックチェーンに同じ秘密鍵を用いてトランザクションを書込む。これによって、Xの意図に反した送金を新ブロックチェーン上でも行わせることが出来るのである。

本来、秘密鍵はユーザーXが一度しか利用できないものであるが、類似のブロックチェーンが2つあるために、新ブロックチェーンにコピーして利用することができるのである。なお、ハッカー自身の送金をコピーすることもでき、その場合のリプレイアタックはより簡単になる。

リプレイアタックはイーサリアムとイーサリアムクラシックが分裂した切掛となった、The DAO事件で利用され、有名になった。