🔁 리플레이 어택 Replay Attack
이미 서명된 진짜 거래를 가로채서 그대로 다시 전송해 네트워크가 두 번 처리하게 만드는 공격이에요. 암호를 풀지 않아도, 키를 훔치지 않아도 됩니다. 메시지 자체가 진짜였으니까요 — 그걸 그냥 한 번 더 쓰는 거예요.
🧾 쉽게 풀면 — 복사된 수표
누군가에게 서명한 수표를 건넸다고 상상해 보세요. 서명이 진짜니까 은행이 돈을 내줘요. 그런데 상대방이 그 수표를 복사해서 한 번 더 현금으로 바꾼다면? 은행 입장에선 서명이 여전히 유효해 보이니 또 내줄 수밖에 없어요. 리플레이 어택이 정확히 이래요. 공격자는 내가 정당하게 서명한 거래를 가져다가 다시 전파하고, 네트워크는 그걸 두 번째로 처리해 버려요. 원본이 진짜였으니 신뢰하는 거죠. 암호 해독도, 개인키 탈취도 없이 — 한 번뿐인 행동을 두 번으로 만드는 것뿐이에요.
🍴 왜 하드포크가 단골 배경인가요?
블록체인이 하드포크로 두 갈래로 나뉘면, 새 체인 둘 다 처음엔 같은 거래 내역과 같은 거래 형식을 공유해요. 그래서 한 체인에서 서명해 전송한 거래가 다른 체인에서도 똑같이 유효하게 보일 수 있어요. 공격자가(또는 우연히) 내 서명된 거래를 두 번째 체인에 그대로 전송하면, 동의한 적 없는 이동이 그쪽에서도 일어날 수 있어요.
📌 위험한 창구는 짧아요. 포크 직후, 두 체인이 구조적으로 달라지기 전까지예요. 각 체인이 자기 거래에 고유한 표시를 달게 되면 복사본은 더 이상 통하지 않아요.
🪙 입문자가 마주치는 상황
리플레이 어택을 마주칠 가능성이 가장 높은 건 체인 분리와 '무료 포크 코인' 주변이에요. 포크 직후에 코인을 옮기거나 받으려는 순간이 위험한 시점이에요. 새 체인을 겨냥한 거래가 구 체인에서 그대로 재현되거나(혹은 반대로), 의도하지 않은 이동이 양쪽 체인에서 동시에 발생할 수 있거든요.
🛡️ 네트워크가 막는 방법
| 방어 수단 | 작동 원리 |
|---|---|
| ⏱️ 타임스탬프 | 메시지에 유효 기간을 두어, 기간이 지난 복사본은 거부 |
| 🔢 논스(Nonce) | 일회용 숫자를 메시지에 묶어, 복사본은 자동 거부 |
| 🎫 세션 토큰 | 로그인 토큰이 한 세션에서만 한 번 유효하도록 제한 |
| 🔗 리플레이 보호(포크) | 포크 시 두 체인의 거래가 서로 호환되지 않도록 설계 |
블록체인에서 리플레이 보호는 강도가 두 가지예요. 강력한(양방향) 보호는 두 체인의 거래를 구조적으로 서로 호환 불가능하게 만들어, 어느 방향으로도 복사가 불가능해요. 선택적(약한) 보호는 사용자가 추가 단계를 직접 밟아야 거래를 리플레이 불가능하게 만들 수 있어요.
🔍 실제 포크 사례 두 가지
- ⟠ 이더리움 vs 이더리움 클래식 (2016) — 분리 직후 두 체인이 같은 거래 형식을 쓰고 고유한 체인 식별자가 없었기 때문에, 서명된 거래가 양쪽에서 리플레이될 수 있었어요. 이를 해결한 EIP-155가 서명에 고유한 체인 ID를 심어, 한 체인의 거래가 다른 체인에서 거부되도록 했어요.
- ₿ 비트코인 vs 비트코인 캐시 (2017) — 비트코인 캐시는 처음부터 강력한 양방향 리플레이 보호를 도입해, 서명이 비트코인과 호환되지 않아요. 비트코인 캐시 거래는 비트코인에서 무효, 그 반대도 마찬가지예요.
📊 요즘 주요 하드포크 대부분은 기본적으로 강력한 리플레이 보호를 내장해 출시하기 때문에, 리플레이 어택은 상대적으로 드물고 대부분 포크 직후 단기 창구에 집중돼 있어요.
❓ 자주 묻는 질문
- 리플레이 어택은 내 거래가 해킹당하거나 암호가 풀린 건가요?
- 아니요. 아무것도 해독되지 않고 개인키도 탈취되지 않아요. 공격자는 내가 이미 서명해 유효한 거래를 그대로 다시 전송할 뿐이에요. 위험은 비밀이 새는 게 아니라 정당한 행동이 두 번 실행되는 데 있어요.
- 입문자가 실제로 리플레이 어택 위험에 노출되는 건 언제인가요?
- 주로 하드포크나 체인 분리 직후예요. 두 체인이 잠시 같은 거래 형식을 공유하는 시점에, 포크 코인을 옮기거나 받으려는 순간이 가장 위험해요. 하나의 서명된 거래가 두 체인 모두에서 유효할 수 있거든요.
- 리플레이 어택은 요즘도 흔한가요?
- 지금은 꽤 드물어요. 주요 하드포크 대부분이 기본적으로 리플레이 보호를 내장하기 때문에, 한 체인용으로 서명한 거래는 다른 체인에서 거부돼요. 실제 위험은 포크 직후의 짧은 창구 기간에 집중돼 있어요.