암호화폐 해킹
- 그라인딩 공격(Grinding Attack)
랜덤 변수를 생성해 슬롯 리더(slot leader)를 선출하는 지분 증명 암호화폐에 대한 공격 방식이다. 본인에게 유리한 랜덤 변수를 얻을 때까지 전송 내역을 임의로 누락/포함 시키는 방식과 미리 계산한 랜덤 변수로 예측한 스테이킹 코인을 사전 구매하는 등의 공격을 생각할 수 있다.
- 51% 공격(51% Attack)
전체 네트워크의 자원을 독보적으로 많이 가지고 있는 사용자, 혹은 그룹으로 인하여 발생할 수 있다. 채굴 연산량의 50% 이상을 보유한 채굴자는 압도적인 채굴량을 바탕으로 전체 네트워크를 좌지우지 할 수 있게 되며 이론적으로 이른바 51% 공격을 감행할 수 있다고 한다. 이를 통해 거래정보를 조작하여 이득을 얻으려는 공격을 말한다.
- 잃을게 없는 문제(Nothing at Stake)
지분 증명(Proof OF Stake, POS) 방식의 코인을 타겟으로 감행할 수 있는 공격 방식을 말한다. 블록체인 포크(fork)가 발생할 경우, 지분 증명 코인 채굴자의 우월전략은 모든 체인을 동시에 채굴하는 것이며 이 때 이중 지불 공격에 취약해지게 된다.
- 뇌물수수 공격(Bribery Attack)
공격자와 채굴자가 뇌물과 같은 이해관계를 형성하여 시행하는 네트워크 공격을 의미한다. 공격자의 목표는 채굴자를 이해관계로 묶어 51% 공격을 가능하게 하는 것이며, 뇌물이 채굴자의 이해관계를 만족시켜줄만큼의 규모를 가져야만 의미를 가질 수 있다.
- 분산 서비스 거부 공격(DDoS : Distributed Denial of Service Attack)
공격자는 대량의 패킷 또는 요청을 생성하여 궁극적으로 목표 시스템을 마비시킨다. 즉 특정 서버에게 수많은 접속 시도를 만들어 악의적으로 시스템 자원을 부족하게 하고, 의도된 용도로 사용하지 못하게 만드는 공격이다.
- 랜섬웨어(Ransomware)
컴퓨터 시스템을 감염시켜, 시스템에 대한 접근을 제한시키고 이를 위해 일종의 금품을 요구하는 악성 프로그램의 한 종류이다.
- 레이스 공격(Race Attack)
지불한 코인을 다시 한번 본인의 지갑으로 전송하는 것으로, 가장 흔하게 알려져있는 공격이다. 이러한 경우에는 서로 다른 전송 내역 중에서 하나만 승인되고 블록에 기록되는데, 만일 본인 지갑으로 전송되는 것이 승인된다면 공격이 성공하게 된다. 이 공격의 성공 요건 중 하나는 0승인(컨펌) 상태를 믿어야 한다는 것이다.
- 롱레인지 공격(Long-Range Attack)
이 공격은 지분 증명 방식일 경우 적용이 가능하며, 오래된 블록부터 (최장으로는 제네시스 블록) 시작하는 새로운 체인을 메인체인으로 만들어 이중 지불을 하고자 하는 공격이다. 포크한 새로운 체인이 기존의 메인체인보다 길어져 메인체인으로 인정되면 성공한다.
- 리플레이 공격(Replay Attack)
개인 지갑에 있는 암호화폐가 중복으로 출금되는 현상을 말한다. 기존 코인과 하드포크된 새로운 코인이 동일 인증키를 가지고 있어 한쪽 코인의 출금정보를 이용해 다른 쪽 코인을 출금 시도하는 것을 의미한다.
- 마이닝 멀웨어(Mining Malware)
채굴 도구를 이용해서 웹브라우저에 침범한 뒤, 웹사이트를 해킹하여 암호화폐를 채굴할 위험성이 있다.
- 멀웨어(Malware)
악의적인 목적으로, 정상적인 작동을 방해하거나 사용자의 디바이스를 감염시키도록 설계된 악성코드이다. 악성 프로그램(Malicious Program) 으로 불리기도 한다.
- 벡터76 공격(Vector76 Attack)
공격자가 직접 채굴을 해야하는 유형이다. 공격자가 블록을 네트워크에 전파하지 않고 제 3자가 채굴할 때까지 기다리게 된다. 만약 타겟이 공격자가 전파한 블록을 제3자의 블록보다 먼저 받고 믿게 된다면 공격자의 블록 전송 내역이 1승인이 되게 된다. 이것은 하나의 헷지 전략으로 공격이 실패하더라도 채굴 보상을 받는다는 특징이 있다.
- 이클립스 공격(Eclipse Attack)
한 개의 노드를 대상으로 하는 네트워크 공격으로, 허위 전송 내역이 담긴 블록을 타겟 노드에 전파한 다음 이중 지불 공격을 할 수 있게 만드는 구조이다.
- 핀니 공격(Finney Attack)
레이스 공격에서 조금 더 발전된 유형으로, 공격자가 직접 채굴을 해야 하는 특징이 있다. 공격자가 채굴에 성공했을 경우 생성할 블록에 본인 코인을 자신의 지갑으로 보내는 전송 내역을 포함시킨 뒤 네트워크에 전파시키지 않고 기다린다. 타겟 대상이 0컨펌 상태를 믿고 거래를 완료하면 공격자가 본인의 블록을 네트워크에 전파시켜 자신의 거래 내역은 1컨펌이 되게 만들고 타겟과 거래한 내역은 여전히 0컨펌이므로 타겟과의 거래 내역은 취소되게 된다.