이중지불 공격 (Double-Spending Attack)
쉽게 풀면
실물 화폐는 한 번 건네주면 다시 내 손에 없기 때문에 같은 돈을 두 번 쓸 수 없습니다. 그런데 디지털 자산은 데이터이기 때문에 복제나 조작을 막는 별도의 장치가 없다면 같은 돈을 여러 번 쓴 것처럼 꾸밀 위험이 있습니다. 이중지불 공격은 바로 이런 상황을 노려, 이미 상대방에게 지불했다고 확인된 거래를 몰래 취소하거나 되돌려서 같은 자산을 다시 사용하려는 시도입니다. 블록체인은 여러 참여자의 합의로 거래를 확정하는 방식으로 이런 시도를 막도록 설계되어 있습니다.
왜 중요한가
블록체인 보안 연구에서 이중지불 방지는 애초에 블록체인이라는 기술이 존재하는 핵심 이유 중 하나로 다뤄집니다. 이중지불을 막을 수 없다면 디지털 자산이 화폐로서의 신뢰를 가질 수 없기 때문에, 거래 확정에 필요한 확인 횟수나 합의 알고리즘의 안전성 조건을 규명하는 연구가 꾸준히 이뤄집니다.
논문에서는 이렇게 쓰입니다
거래가 얼마나 오래 확인 과정을 거쳐야 안전한지를 수치로 분석한 연구입니다.
이중지불을 시도하는 구체적인 공격 기법 중 하나를 설명하는 문장입니다.
조금 더 깊게 보면
이중지불 공격은 51% 공격을 통해 이미 확정된 블록을 되돌리는 방식 외에도, 아직 충분히 확인되지 않은 거래를 노리는 경합 공격이나 핀니 공격(Finney attack) 같은 여러 변형된 형태로 논의됩니다. 이를 막기 위해 대부분의 블록체인은 거래가 일정 수의 후속 블록에 의해 확인될 때까지 최종 확정으로 간주하지 않으며, 확인 횟수를 늘릴수록 되돌리기가 기하급수적으로 어려워지는 구조를 갖고 있습니다.
주의할 점
거래 확인 횟수가 많을수록 안전하지만 그만큼 처리 시간도 길어지므로, 실제 서비스에서는 거래 금액과 위험 수준에 따라 요구하는 확인 횟수를 다르게 적용하는 경우가 많다는 점을 함께 고려해야 합니다.