시빌 공격(Sybil Attack)이란 무엇인가?
시빌 공격의 정의
시빌공격(Sybil Attack)은 블록체인 네트워크를 장악하려는 여러 위협 중 하나로, 공격자가 다수의 노드를 장악하여 블록체인 네트워크를 공격함으로써 네트워크 전체를 장악하는 공격입니다. 여기서 시빌이라는 단어는 다중 인격 장애라고 불리는 해리성 정체 장애(Dissociative Disorder)를 겪은 시빌 도르셋(Sybil Dorestt)의 이름에서 유래되었습니다.
시빌 공격과 블록체인
시빌 공격은 누구나 네트워크에 참여할 수 있으며 과반수의 노드가 합의하는 블록을 블록체인에 올리는 특성을 가진 네트워크에 특히 효과적인 공격 방식입니다. 만약 공격자가 블록체인 네트워크의 모든 노드 개수보다 더 많은 가짜 노드를 생성한다면 공격자는 네트워크 내 과반수의 노드를 장악하게 되고, 원하는 블록을 블록체인에 올리도록 합의하여 공격자의 마음대로 블록체인을 통제할 수 있게 됩니다.
시빌 공격에 대처하는 방법
블록체인에서는 작업증명(PoW), 지분증명(PoS)와 같은 합의 알고리즘 방식을 통해 시빌 공격에 대응할 수 있습니다.
비트코인을 만든 사토시 나카모토는 51% 공격의 위험성을 인지하고 있었습니다. 51% 공격이란 블록체인 네트워크 상의 의사결정에 필요한 컴퓨팅 파워의 50%를 초과하여 확보한 후 거래장부를 조작해 이익을 얻으려는 해킹 공격입니다. 사토시 나카모토는 그 공격을 방지하기 위해 작업증명 방식을 통한 경제적 보상 시스템을 도입하였습니다.
물론 이런 합의 알고리즘이 시빌 공격을 원천적으로 막을 수는 없습니다. 하지만 공격자가 50%를 넘는 막대한 컴퓨팅 파워를 가지거나 지분을 갖추어야 공격을 할 수 있도록 하여 시빌 공격 시 소모되는 비용이 공격을 성공했을 때 얻는 이익보다 훨씬 커지도록 할 수 있습니다.
시빌 공격과 이클립스 공격의 차이
공격자가 다수의 노드를 이용하여 블록체인 네트워크를 공격한다는 점에서 이클립스 공격과 유사합니다. 하지만 이클립스 공격은 전체 네트워크를 공격하는 것이 아니라 특정 노드를 공격하여 다른 정상적인 노드로부터 블록 정보를 수신하는 것을 막지만, 시빌 공격은 네트워크 전체를 공격 대상으로 삼는다는 차이가 있습니다.