산업 기술은 삶의 모든 영역에서 혁명적인 변화를 가져왔습니다. 하지만 이러한 발전의 이면에는 부작용이 따릅니다. 블록체인에서도 마찬가지입니다. 블록체인은 더 안전하고 투명한 거래를 위해 등장했습니다. 하지만 해커의 공격 위험은 여전히 남아 있습니다. 이러한 공격 중 하나가 시빌 공격(Sybil Attack)입니다.
시빌 공격은 예방 가능합니다. 이번 글에서는 시빌 공격은 무엇인지, 어떻게 예방할 수 있는지에 대해 자세히 살펴보겠습니다.
시빌 공격이란 무엇인가요?
시빌 공격은 노드라고 하는 한 대의 컴퓨터가 P2P(개인 대 개인) 네트워크에서 여러 개의 가짜 신원을 운영하는 것을 말합니다. 한 사람이 여러 개의 소셜 미디어 계정을 만드는 것과 마찬가지로, 사용자 한 명이 네트워크에 노드(IP 주소 또는 사용자 계정) 여러 개를 동시에 실행할 수 있습니다. 시빌 공격은 우리말로 ‘다계정 공격’이라고도 표현합니다.
시빌 공격에서 시빌(Sybil)은 플로라 레타 슈라이버의 1973년 책 <시빌>에 등장하는 시빌 도싯이라는 등장 인물의 이름에서 유래했다.
플로라 레타 슈라이버의 책 <시빌>에 등장하는 시빌은 해리성 정체성 장애 또는 다중인격 장애를 앓고 있습니다. 이는 한 사람이 여러 개의 인격을 가지고 있으면서 문제를 일으킵니다. 이후, 컴퓨터 과학자 브라이언 질(Brian Zill)이 시빌이라는 용어를 만들었고, 과학자 존 두서(John R. Douceur)가 그의 논문에서 이 문제에 대해 논의했습니다.
시빌 공격은 어떻게 발생하나요?
시빌 공격은 한 개체(노드)가 여러 개의 계정을 생성하여 침투하려는 네트워크의 실제 사용자를 사칭할 때 발생합니다. 각각의 새로운 신원은 서로 독립적으로 행동하며 자체 트랜잭션을 수행합니다. 마치 각 노드가 개별 개체에 의해 운영되는 것처럼 보이지만 실제로는 한 사람이 모든 노드를 제어하는 것입니다.
시빌 공격은 블록체인에만 국한되지 않습니다. 그러나 블록체인 네트워크는 다수의 영향력에 의해 운영되기 때문에, 대규모 시빌 공격은 탈중앙화된 플랫폼에서 공격자에게 중앙화된 권한을 부여하기 때문에 위험성이 높습니다.
이는 비트코인과 같은 네트워크에서 발생할 수 있는데, 많은 결정이 다수결에 의존하기 때문입니다. 공격자는 시스템을 많이 제어할 수 있게 되면 분산화된 공개 원장을 다시 작성할 수 있습니다. 마찬가지로 소셜 미디어에 대한 시빌 공격은 한 사람이 많은 사용자를 조작하기 때문에 다수의 의견에 영향을 미칩니다.
시빌 공격의 유형
시빌 공격의 작동 방식을 더 잘 이해하려면, 존재하는 다양한 유형의 시빌 공격에 대해 알아두면 도움이 됩니다. 악성 노드와 정상 노드는 모두 동일한 네트워크에서 실행되지만, 통신 방식은 직접 및 간접의 두 가지 범주로 분류됩니다.
직접 공격
직접 공격에서 시빌 노드는 네트워크에서 신뢰할 수 있는 노드(honest node)에 직접적인 영향을 미칩니다. 악성 노드는 신뢰할 수 있는 노드를 모방하면서 동시에 진짜 노드와 통신합니다. 진짜 노드는 자신이 잘못된 길로 인도되고 있다는 사실을 깨닫지 못합니다. 그 결과, 가짜 노드의 영향을 쉽게 받아들이고 직접적인 통신을 허용하게 됩니다.
간접 공격
직접 공격과 달리 간접 공격은 중개자 역할을 하는 또 다른 노드 세트를 포함합니다. 이러한 의심하지 않는 노드는 실제로 시빌 노드의 영향력 아래에 있기 때문에 감염된 상태를 유지합니다. 따라서 시빌 노드와 신뢰할 수 있는 노드 간의 통신은 간접적이며 서로 상호 작용하지 않습니다. 이러한 유형의 공격을 통해 시빌 노드는 직접 공격보다 탐지되지 않은 상태에서 네트워크를 운영할 수 있습니다.
시빌 공격으로 발생하는 문제
시빌 공격의 목표는 전체 네트워크에 영향력을 행사하여 의사 결정을 통제하는 것입니다. 공격이 성공하면 다음과 같은 문제가 발생할 수 있습니다:
- 51% 공격 설정: 블록체인 네트워크에 대한 51% 공격은 해시율이라고 하는 네트워크 컴퓨터 성능의 절반 이상을 제어하는 것이 특징입니다. 이는 다수의 힘으로 트랜잭션을 수정할 수 있기 때문에 잠재적으로 네트워크 중단을 일으킬 수 있습니다. 51% 공격에서 공격자는 다른 트랜잭션을 무효화하면서 사기성 트랜잭션 블록을 생성할 수 있습니다. 또한, 이 정도의 통제력을 확보하면 트랜잭션을 뒤집어 이중 지출을 가능하게 할 수도 있습니다.
- 네트워크에서 사용자 차단하기: 네트워크에 허위 노드가 충분히 설정되면 공격자는 기본적으로 정직한 노드를 투표로 제거할 수 있습니다. 또한 시빌 노드는 블록 전송이나 수신을 거부할 수 있습니다. 결과적으로 정직한 노드는 시스템에 액세스할 수 없게 됩니다.
시빌 공격을 방지하는 방법
수년 동안 컴퓨터 과학자들은 시빌 공격을 막을 수 있는 방법을 찾기 위해 많은 노력을 기울여 왔습니다. 현재로서는 그 누구도 공격에 대한 방어를 완벽하게 보장할 수 없습니다. 하지만 보안과 예방을 극대화할 수 있는 방법은 있습니다.
채굴
합의 알고리즘은 블록체인을 보호합니다. 합의 알고리즘은 블록체인의 트랜잭션에 대한 합의를 결정하는 과정입니다. 작업 증명의 경우 네트워크의 채굴자(노드)가 복잡한 수학 문제를 풀기 위해 컴퓨팅 파워를 사용하여 거래를 검증하는데, 이를 마이닝이라고 합니다.
따라서 블록체인에서 협력적 합의에 도달하려면 충분한 수의 채굴자가 데이터의 진위 여부에 동의해야 합니다. 이 과정에서 검증해야 할 채굴자가 너무 많으면한 주체가 네트워크의 절반 이상을 통제하는 것은 거의 불가능에 가깝습니다. 또한 컴퓨터 한 대가 각 노드를 대표하기 때문에 한 사람이 장비의 대부분을 소유하는 것은 매우 비용이 많이 듭니다.
신원 확인
네트워크에 따라 직접 또는 간접적으로 신원 확인을 수행할 수 있는 방법은 여러 가지가 있습니다. 직접 검증을 통해 중앙 기관에서 새 신원(ID)을 검증합니다. 간접 인증의 경우, 이미 인증을 받은 기존 회원이 새로운 신원을 인증할 수 있습니다. 이러한 절차에서는 신규 회원이 신용카드, IP 주소 또는 2단계 인증을 통해 신원을 확인해야 하는 경우가 많습니다.
신원 확인을 보장하는 또 다른 방법은 생성되는 모든 신원에 대해 수수료를 부과하는 것으로, 한 기업이 많은 노드를 확보하는 데 많은 비용이 들게 됩니다.
평판 시스템
평판 시스템은 네트워크 구성원에게 다양한 수준의 권한을 부여합니다. 이러한 평판은 멤버의 평가에 따라 결정됩니다. 일반적으로 오랜 기간 활동한 회원에게 더 많은 작업이나 상호작용을 수행할 수 있는 권한이 부여됩니다.
이러한 멤버는 시간이 지남에 따라 신뢰를 쌓고 정직한 노드로 입증되었기 때문에 시빌 노드에 대해 더 많은 권한을 행사합니다. 이러한 권한은 공격자가 더 높은 평판 수준에 도달하기 위해 오랜 시간을 기다려야 하기 때문에 공격을 예방하는 효과를 발생시킵니다.
모든 블록체인은 시빌 공격에 취약한가요?
이론적으로 모든 블록체인은 시빌 공격에 취약합니다. 그러나 네트워크의 규모가 차이를 만드는 경우가 많습니다. 거래를 검증하는 데 필요한 채굴자가 많을수록 더 좋은데, 한 주체가 채굴자의 51%를 통제하기는 매우 어렵기 때문입니다. 예를 들어 비트코인은 네트워크 규모가 크기 때문에 시빌 공격과 51% 공격 모두에 대해 더 강한 저항력을 가지고 있는 것으로 입증되었습니다. 지금까지 비트코인에 대한 51% 공격을 성공적으로 수행한 사람은 아무도 없었습니다.
시빌 공격은 늘 조심해야 하지만, 몇 가지 예방 조치만 취하면 대부분 방지할 수 있습니다. 개발 과정에서 보안을 최우선으로 생각한다면, 설계 과정에서 이를 예방할 수 있는 시스템을 구축할 수 있습니다.
자주 찾는 질문/답
시빌 공격이란 무엇인가요?
비트코인에서도 시빌 공격이 가능한가요?
시빌 공격을 어떻게 방지하나요?
블록체인은 어떻게 시빌 공격을 완화하나요?
사물인터넷(IoT)에서 시빌 공격이란 무엇인가요?
51% 공격이란 무엇인가요?
비인크립토 웹사이트에 포함된 정보는 선의와 정보 제공의 목적을 위해 게시됩니다. 웹사이트 내 정보를 이용함에 따라 발생하는 책임은 전적으로 이용자에게 있습니다.
비인크립토는 투자가이드를 통해 독자에게 유익한 양질의 교육 콘텐츠를 제공하기 위해, 콘텐츠를 검증하고 연구하는 데 많은 시간을 할애하고 있습니다.
비인크립토의 파트너사는 글이 게시되는 대가로 수수료를 제공할 수 있으나, 이는 공정하고 정직하고 유용한 콘텐츠 제작 프로세스에 어떠한 영향도 미치지 않습니다.