Replay-атака — это атака, при которой злоумышленник повторно использует ранее перехваченное и действительное сообщение, подпись или транзакцию, чтобы добиться повторного выполнения операции.

Цифровая подпись доказывает, что определенный набор данных был подписан соответствующим ключом, но сама по себе подпись не всегда гарантирует, что сообщение может быть использовано только один раз. Для защиты протокол должен учитывать контекст, уникальность операции и состояние сети.

В блокчейнах защита от replay-атак может использовать входы транзакции, nonce, идентификатор сети, уникальный идентификатор цепочки или другие параметры. Такие данные позволяют отличать новую операцию от уже использованной.

Особенно известны replay-риски при разделении одной сети на две цепочки после hard форк. Если правила подписи и идентификации транзакций в двух цепочках недостаточно различаются, транзакция, действительная в одной сети, потенциально может быть воспроизведена в другой.

Защита от replay-атак является частью проектирования транзакционного формата, цифровых подписей и правил конкретного блокчейна.