Sybil Attack
시빌 공격은 단일 개체가 네트워크에 대한 불균형적인 영향력 또는 제어를 얻기 위해 여러 개의 사기성 신원 또는 노드를 생성하는 보안 위협입니다. 이러한 유형의 공격은 블록체인 네트워크를 포함한 분산형 P2P 시스템과 관련이 있습니다.[1] [2] [3].
개요
"시빌 공격"이라는 용어는 해리성 정체 장애 진단을 받은 여성의 사례를 기록한 1973년 책 Sybil에서 유래되었으며, 공격자가 사용하는 여러 신원을 상징합니다.[2] [3].
이 개념은 2000년대 초 Microsoft 연구원 Brian Zill과 John R. Douceur에 의해 공식적으로 정의되었습니다. 시빌 공격에서 악의적인 행위자는 다수의 가짜 신원 또는 노드로 네트워크를 압도하여 네트워크가 이러한 사기성 개체를 합법적이고 고유한 참가자로 인식하도록 하는 것을 목표로 합니다. 이를 통해 공격자는 잠재적으로 네트워크 프로세스를 조작하고, 운영을 중단하거나, 의사 결정 메커니즘에 대한 제어를 얻을 수 있습니다.[1]
시빌 공격은 각 노드 또는 참가자가 고유한 개체를 나타낸다는 근본적인 가정을 훼손하기 때문에 분산형 네트워크에 심각한 위험을 초래합니다. 여러 신원을 제어함으로써 공격자는 영향력을 증폭시켜 시스템의 무결성과 보안을 손상시킬 수 있습니다.[1] [2].
노드 간의 분산된 합의에 의존하는 블록체인 네트워크는 강력한 시빌 저항 메커니즘으로 설계되지 않은 경우 특히 취약합니다.[1] [3].
메커니즘
시빌 공격은 단일 개체가 네트워크 내에서 수많은 익명의 노드 또는 계정을 생성하고 운영함으로써 실행됩니다.[1] [3]. 공격자의 목표는 이러한 사기성 노드가 독립적인 참가자라고 네트워크가 믿게 만드는 것입니다. 충분한 수의 악성 노드로 네트워크에 침투하는 데 성공하면 공격자는 이 영향력을 사용하여 정직한 노드에 대항할 수 있습니다.[1] [2].
시빌 공격에는 두 가지 주요 유형이 있습니다.
- 직접 시빌 공격: 악성 노드가 정직한 노드와 직접 상호 작용하고 투표 또는 합의와 같은 프로세스를 제어하기 위해 영향을 미칩니다.[3].
- 간접 시빌 공격: 악성 노드가 정직한 노드와 직접 상호 작용하지 않지만 특정 노드의 평판을 조용히 높이거나, 네트워크 토폴로지를 변경하거나, 네트워크의 일부를 격리하는 것을 목표로 합니다.[3].
블록체인 컨텍스트에서 시빌 공격자의 궁극적인 목표는 종종 51% 공격을 달성하는 것입니다. 이는 단일 개체가 네트워크의 컴퓨팅 파워(작업 증명(Proof-of-Work)에서) 또는 스테이킹된 자산(지분 증명(Proof-of-Stake)에서)의 절반 이상을 제어할 때 발생합니다.[1]. 네트워크 리소스의 대부분을 사용하여 공격자는 트랜잭션 재정렬 또는 차단, 이중 지출 공격 실행을 포함하여 잠재적으로 블록체인을 조작할 수 있습니다.[1] [2].
영향
성공적인 시빌 공격은 분산형 네트워크에 심각한 결과를 초래할 수 있습니다. 네트워크 노드의 상당 부분을 제어함으로써 공격자는 네트워크의 무결성과 신뢰성을 손상시킬 수 있습니다.[1].
잠재적인 영향은 다음과 같습니다.
- 완결성 손상: 공격자는 잠재적으로 블록체인의 기록을 변경하여 트랜잭션이 기록되면 변경할 수 없다는 트랜잭션 완결성 원칙을 훼손할 수 있습니다.[1] [2].
- 이중 지출: 51% 공격 시나리오에서 공격자는 확인된 후 자신의 트랜잭션을 되돌려 동일한 암호화폐를 여러 번 지출할 수 있습니다.[1] [2].
- 트랜잭션 검열: 공격자는 특정 트랜잭션이 확인되거나 새 블록에 포함되는 것을 방지할 수 있습니다.[1].
- 개인 정보 침해: 공격자는 IP 주소와 같은 중요한 사용자 데이터를 가로채서 분석하여 특정 트랜잭션에 연결할 수 있습니다.[1] [2].
- 합의 중단: 노드의 대부분을 제어함으로써 공격자는 합의 메커니즘의 결과를 지시하여 잠재적으로 네트워크 불안정 또는 포크를 초래할 수 있습니다.[1] [2].
완화
블록체인 네트워크는 단일 개체가 네트워크의 유효성 검사 능력의 대부분을 제어하는 것을 경제적으로 또는 기술적으로 금지함으로써 시빌 공격의 위험을 완화하기 위한 다양한 메커니즘을 사용합니다.[1] [2] [3].
주요 완화 전략은 다음과 같습니다.
- 합의 메커니즘:
- 작업 증명(Proof-of-Work)(PoW): 참가자(채굴자)가 트랜잭션을 검증하고 새 블록을 생성하기 위해 상당한 컴퓨팅 리소스를 소비해야 합니다. 51% 제어를 얻으려면 막대하고 비용이 많이 드는 컴퓨팅 파워가 필요합니다.[1] [2].
- 지분 증명(Proof-of-Stake)(PoS): 참가자(유효성 검사기)가 블록 유효성 검사에 참여하려면 특정 양의 암호화폐를 스테이킹해야 합니다. 51%를 제어하려면 스테이킹된 자산의 대부분을 소유해야 하며, 이는 일반적으로 매우 비쌉니다.[1] [2]. PoS 메커니즘에는 종종 악의적인 행동에 대한 처벌(슬래싱)이 포함되어 공격을 더욱 억제합니다.[2].
- 위임된 지분 증명(Delegated Proof-of-Stake)(DPoS): 사용자는 트랜잭션 유효성 검사를 담당하는 더 작은 대리인 세트에 투표합니다. 이는 선출된 대리인의 평판과 신뢰성에 의존하며, 이들은 자신의 위치와 보상을 유지하기 위해 정직하게 행동하도록 장려됩니다.[2].
- 평판 시스템: 네트워크는 기록 및 기여를 기반으로 노드에 평판 점수를 추적하고 할당하는 시스템을 통합하여 새 노드 또는 악성 노드가 빠르게 영향력을 얻는 것을 더 어렵게 만들 수 있습니다.[3].
- 신원 확인: 허가 없는 네트워크에서는 어렵지만 일부 시스템은 참가자의 고유성을 확인하는 방법을 사용할 수 있습니다. 예로는 생체 인식 또는 기타 고유 식별자를 사용할 수 있는 개인 증명(PoP)과 사용자가 공식 문서로 신원을 확인해야 하는 고객 알기(KYC) 절차가 있습니다.[2] [3].
예
여러 블록체인 네트워크에서 시빌 공격 또는 시도된 공격이 발생하여 이 위협의 지속적인 특성을 강조합니다.
- Monero(2020): 개인 정보 보호에 중점을 둔 Monero 네트워크는 2020년 11월에 시빌 공격 시도에 직면했습니다. 공격자는 트랜잭션을 익명화하고, 트랜잭션을 삭제하고, IP 주소를 추적하는 것을 목표로 여러 악성 노드를 사용했습니다. Dandelion++ 프로토콜과 같은 Monero의 개인 정보 보호 기능은 공격자가 IP 주소를 트랜잭션에 연결하는 데 성공하는 것을 제한하는 데 도움이 되었습니다.[2].
- Ethereum Classic(2020): 원래 Ethereum 체인의 포크인 Ethereum Classic은 2020년 여름에 여러 번의 51% 시빌 공격을 받았습니다. 공격자는 네트워크 해시 파워의 대부분을 제어하여 블록 재구성과 이중 지출을 통해 수백만 달러 상당의 ETC를 훔쳤습니다.[2] [3].
- Verge(2021): 작업 증명 메커니즘을 사용하는 Verge 블록체인은 2021년에 51% 시빌 공격을 받았습니다. 이 공격으로 인해 약 200일 분량의 트랜잭션 데이터를 다시 작성한 상당한 블록 재구성이 발생했습니다. 네트워크는 며칠 내에 복구할 수 있었습니다.[2] [3].