ブロックチェーンにおけるリプレイ攻撃は、攻撃者が有効なトランザクションのコピーをあるブロックチェーンから別のブロックチェーンに送信し、2 番目のブロックチェーンにそのトランザクションが正当であり処理されるはずだと思わせようとするサイバー攻撃の一種です。これがどのように機能するかを説明する簡単な例を以下に示します。
![](https://public.bnbstatic.com/image/pgc/202302/7b517537b2591246722a63a2d43fce7d.jpg)
アリスとボブが、ブロックチェーンを使用してお互いに仮想「コイン」を送信できるゲームをプレイしていると想像してください。アリスは 10 枚のコインを持っており、そのうち 5 枚をボブに送信したいと考えています。アリスはブロックチェーン上で、自分のアカウントからボブのアカウントに 5 枚のコインを送信するトランザクションを作成し、そのトランザクションはブロックチェーン上で処理され、記録されます。
![](https://public.bnbstatic.com/image/pgc/202302/97c81a1cb470f7476f82ed9f2714e74e.jpg)
ここで、イブという名の攻撃者がブロックチェーンを騙して、アリスがボブに 5 枚ではなく 10 枚のコインを送ったと思わせたいとします。イブはアリスが作成したトランザクションをコピーしてブロックチェーンに再度送信することでこれを実現できますが、今回はコインの量を 5 枚ではなく 10 枚に変更します。ブロックチェーンがこのコピーされたトランザクションを正当なものとして受け入れると、アリスはボブに 5 枚しか送るつもりがなかったにもかかわらず、10 枚のコインを送ったとみなされます。
![](https://public.bnbstatic.com/image/pgc/202302/3c015c29895802a59b0c814277aa50ad.jpg)
これはリプレイ攻撃と呼ばれ、攻撃者がブロックチェーンを操作して他のユーザーからコインを盗む可能性があるため、有害となる可能性があります。リプレイ攻撃を防ぐために、多くのブロックチェーンでは「リプレイ保護」などの特別な技術を使用して、攻撃者がトランザクションを複数回コピーして送信することを困難にしています。