공공 블록체인이 왜 중단될까요? Cosmos가 25시간 동안 중단된 후, 블록체인 합의를 진정으로 이해하기

Oct 2, 2026 10:34:28

저자: imToken

9월 22일 저녁, 한 사용자가 ATOM 전송을 발송했습니다.

하룻밤이 지나도 거래는 여전히 "확인 대기 중"에 머물러 있었습니다.

개인 키는 분실되지 않았고, 지갑에서도 서명 이상이 발생하지 않았습니다. 다음 날 다시 확인해보니, 여러 공개 RPC가 모두 Cosmos Hub가 블록 높이 33,086,740에서 멈춰 있다고 표시했습니다.

새로운 블록이 생성되지 않았기 때문에, 자연히 이 거래를 패키징할 수 있는 곳이 없었습니다.

약 하루 후에 Cosmos Hub가 블록 생성이 재개되면서, 이전에 계속 대기 상태에 있던 ATOM 전송이 마침내 성공했습니다.

일반 사용자에게는, 이것이 블록체인 합의를 이해하는 가장 직관적인 수업일 수 있습니다.

우리는 "어떤 중앙 기관도 공공 블록체인을 종료할 수 없다"고 말하는 데 익숙하지만, 현실은 훨씬 더 복잡합니다. 충분히 탈중앙화된 블록체인은 실제로 서버룸에 있는 "종료 버튼"이 존재하지 않지만, 여전히 멈출 수 있습니다.

이번 Cosmos Hub의 중단은 평소에 숨겨져 있던 이 메커니즘을 일반 사용자에게 완전히 드러냈습니다.

1. Cosmos는 왜 갑자기 "블록 생성을 중단"했는가?

먼저 혼동하기 쉬운 문제를 명확히 할 필요가 있습니다. 이번에 직접 공격을 받은 것은 Cosmos Hub가 아닙니다.

사건은 Neutron에서 처음 발생했습니다.

9월 22일, "AIATO: AI Agent Takeover"라는 Neutron 거버넌스 제안이 통과되었고, 공격자는 체인 수준의 거버넌스 권한의 허점을 이용해 wasmd 프레임워크에서 제공하는 특권 명령어를 사용하여 Astroport, Drop 등의 애플리케이션 계약 관리자를 공격자가 제어하는 주소로 변경했습니다.

이는 우리가 일반적으로 이해하는 "코드 취약점"이나 "프로토콜 결함"이 아닙니다.

간단히 말해, 애플리케이션 자체에는 "잠금 장치"가 있지만, Neutron의 체인 수준 거버넌스는 더 높은 권한을 가진 "총 열쇠"를 쥐고 있으며, 공격자가 거버넌스 결과를 제어하게 되면 이 열쇠를 손에 넣게 되어 관리자를 재지정하고 계약을 이전하며 자산을 추가로 이동할 수 있습니다.

Cosmos Hub가 휘말리게 된 것은 이후 발생한 크로스 체인 자금 이동 때문입니다.

Cosmos Labs의 복기 결과에 따르면, Neutron이 중단되기 전에 공격자는 일부 자산을 여러 네트워크로 이동시켰고, 그 중 약 170만 개의 ATOM이 Cosmos Hub로 전송되어 크로스 체인 유동성을 통해 교환되기 시작했습니다.

즉, Cosmos Hub 자체는 직접 공격을 받지 않았고, 일반 Hub 사용자 자산도 Neutron 취약점으로 인해 직접 도난당하지 않았습니다.

하지만 공격자가 얻은 ATOM은 이미 Hub에 들어왔고, 남은 ATOM이 계속 유출되는 것을 막기 위해 일부 Cosmos Hub 검증자들이 노드 운영을 중단하기 시작했습니다.

9월 22일 19:18경(SGT)에는 중단된 검증자가 전체 투표 권한의 3분의 1 이상을 대표하게 되었고, 이로 인해 Cosmos Hub는 더 이상 새로운 블록을 생성할 수 없게 되어 결국 33,086,740에서 멈추게 되었습니다.

이 단계는 매우 중요합니다.

이는 Cosmos Hub에 특정 회사가 직접 클릭할 수 있는 "일시 중지" 버튼이 존재하지 않으며, 사전에 체인 상 거버넌스 투표를 거치지 않았음을 의미합니다. 실제로 네트워크를 멈추게 한 것은 충분히 많은 검증자가 더 이상 합의 형성에 참여하지 않기 때문입니다.

하지만 더 주목할 점은 이후의 복구 과정입니다.

블록 생성 중단 약 4시간 후, 검증자들은 완전한 복구 계획을 받았습니다: 중단된 블록 높이에 대해 일회성 상태 수정을 실행하여 공격자 주소에 남아 있는 ATOM을 커뮤니티 검증자들이 공동 관리하는 다중 서명 주소로 전송합니다.

이후 Cosmos Labs는 검증자들이 이미 합의한 계획에 따라 Gaia v28.3.0 패치를 제작하고 테스트하여 검증자에게 배포했습니다.

이 버전의 Gaia는 지정된 복구 높이에서 일회성 상태 변화를 실행하여 공격자 주소에서 1,227,121 ATOM을 Nansen, Keplr, Enigma, Silknodes, Kiln 및 Polkachu로 구성된 4-of-6 다중 서명 주소로 전송합니다.

9월 23일 새벽, v28.3.0 설치를 확인한 검증자가 전체 투표 권한의 67%를 초과하게 되었고, 따라서 그날 12:00 UTC에 Cosmos Hub가 조정 재시작되었으며, 약 6분 후 이 일회성 상태 수정이 블록 높이 33,086,741에서 실행되어 네트워크가 정상적으로 블록 생성을 재개했습니다.

결국, Cosmos가 블록 생성을 중단한 후 복구되는 전체 과정에서, 검증자들이 먼저 네트워크의 Liveness를 잃게 하고, 그 후 3분의 2 이상의 투표 권한이 새로운 상태 전환 규칙을 수용하게 되어 이 규칙이 복구된 후의 표준 상태가 되었습니다.

여기서 한 가지 간단해 보이는 질문이 생깁니다: 탈중앙화된 공공 블록체인이라면 왜 3분의 1 이상의 검증 권한이 있으면 멈출 수 있고, 네트워크를 복구하려면 충분히 많은 검증자가 동일한 소프트웨어를 수용하고 실행해야 하는가?

답은 사실 "합의"라는 두 글자에 숨겨져 있습니다.

2. 소위 합의는 "결코 멈추지 않는다"는 것이 아니다

블록체인이 가장 쉽게 오해받는 점 중 하나는 "탈중앙화"와 "절대 중단되지 않음"을 동일시하는 것입니다.

실제로 합의 메커니즘이 진정으로 해결하는 문제는 중앙 회계인이 없는 상황에서 많은 노드가 거래 순서와 장부 상태에 대해 어떻게 일치하는가입니다.

다만, 서로 다른 공공 블록체인이 이 문제를 해결하는 방법은 다릅니다.

비트코인에서 가장 전형적인 것은 PoW, 즉 작업 증명입니다. ------ 채굴자는 계산 능력으로 블록 생성을 경쟁하며, 네트워크에서 짧은 시간에 두 개의 합법적인 분기가 발생할 경우, 노드는 누적 작업량에 따라 그 중 하나를 선택하여 계속 구축합니다.

따라서 비트코인에는 "67% 투표 후 이 블록이 영원히 확정된다"는 명확한 순간이 존재하지 않으며, 오히려 확률적 최종성에 가깝습니다. 후속 블록이 많아질수록 이전 거래를 재조직하기 위해서는 점점 더 높은 계산 비용을 지불해야 합니다.

이것이 사람들이 과거에 비트코인 거래는 6개의 블록 확인을 기다리는 것이 가장 좋다고 자주 말했던 이유입니다. 결국 아무리 계산 능력이 높더라도 노드가 실행 중인 합의 규칙을 간단히 우회할 수는 없습니다.

물론, 이것이 비트코인의 상태가 어떤 상황에서도 "절대 수정할 수 없다"는 것을 의미하지는 않습니다. 이론적으로, 전체 생태계가 새로운 클라이언트와 새로운 합의 규칙을 수용하면, 하드 포크를 통해 과거 규칙 하에서 무효였던 상태 변화를 유효하게 만들 수 있습니다.

하지만 문제는 여기서 발생합니다. 누가 충분히 많은 채굴자, 풀 노드, 거래 플랫폼, 지갑 및 사용자가 이러한 새로운 규칙을 수용하도록 할 수 있을까요?

거의 없습니다.

개발 팀은 전체 비트코인 네트워크의 합의 규칙을 결정할 수 없으며, 채굴자와 거래 플랫폼도 마찬가지입니다. 이는 넘어야 할 합의 장벽이 매우 높기 때문입니다. 처음에 바이낸스가 7000개의 BTC를 도난당했을 때, 누군가는 CZ에게 대형 채굴자에게 연락하라고 제안했지만 결국 아무것도 이루어지지 않았습니다.

이더리움은 또 다른 전형적인 사례를 제공합니다.

PoS로 전환한 이후, 현재 이더리움은 Casper FFG와 LMD-GHOST로 구성된 Gasper 합의를 사용합니다. 간단히 말해, 일부 메커니즘은 "현재 어떤 체인과 함께해야 하는지"를 판단하고, 다른 부분은 블록이 진정한 의미에서 최종성을 얻도록 합니다.

적어도 3분의 2의 스테이킹 ETH를 대표하는 검증자가 해당 체크포인트에 대해 합의해야 블록이 최종 확정으로 나아갈 수 있습니다. 반대로, 3분의 1 이상의 스테이크가 오랜 시간 동안 올바른 투표에 참여하지 않으면 네트워크는 일시적으로 최종성을 형성할 수 없게 됩니다. 그러나 이더리움은 비활성 누수(inactivity leak)를 설계하여 오랜 시간 동안 최종화할 수 없을 때 오프라인 검증자의 유효 권한을 점진적으로 낮추어 네트워크가 최종성을 다시 회복할 기회를 제공합니다.

이러한 결과를 진정으로 변경하려면 역시 프로토콜 규칙과 클라이언트를 변경해야 합니다.

2016년 The DAO 사건처럼, 이더리움 커뮤니티는 결국 하드 포크를 통해 블록 1,920,000에서 당시 이더리움 재단이 직접 "비정상 상태 변경"이라고 부른 특별한 상태 수정을 실행하여 관련 ETH를 복구 계약으로 전송했습니다.

다만, 업그레이드를 거부하고 기존 상태를 유지하려는 일부 채굴자와 커뮤니티는 결국 이더리움 클래식(ETC)을 형성하게 되었고, 이는 잘 알려진 ETH와 ETC의 분기를 초래하여 모든 사람이 이 규칙을 수용하는 것은 아님을 나타냅니다.

Cosmos Hub는 다릅니다. CometBFT를 사용하여 전형적인 BFT 합의에 더 가깝습니다.

이를 더 전형적인 BFT 합의로 이해할 수 있으며, 즉 블록이 실제로 제출되려면 3분의 2 이상의 투표 권한을 가진 Commit을 얻어야 합니다.

이점은 최종성이 매우 명확하다는 것입니다. 블록이 충분한 검증 권한 투표를 통해 제출되면, PoW처럼 더 많은 블록을 기다릴 필요 없이 안전성을 확보할 수 있습니다.

하지만 다른 한편으로는 매우 직접적입니다. 즉, 3분의 1 이상의 투표 권한이 Commit을 형성하는 데 필요한 투표를 더 이상 제공하지 않으면, 나머지 검증자가 아무리 노력해도 3분의 2를 초과할 수 없습니다.

이때 네트워크의 가장 안전한 선택은 이번 "블록 생성 중단"과 같은 것이며, 분산 시스템의 관점에서 볼 때 이번 Cosmos Hub의 짧은 중단은 사실 신비롭지 않습니다.

간단히 말해, 충분한 투표 권한을 가진 검증자들이 참여를 중단한 후, 합의 프로토콜은 자신의 규칙에 따라 가용성을 잃더라도 충분한 합의가 없는 상황에서 새로운 블록을 확인하지 않기를 선택합니다.

이것은 사실 분산 시스템에서 일반 사용자가 자주 혼동하는 두 가지 개념에 대응합니다:

  • 안전성(Safety): 서로 충돌하는 두 가지 최종 상태를 동시에 확인할 수 없어야 합니다.
  • 생명력(Liveness): 네트워크가 계속해서 운영되고 새로운 거래를 처리할 수 있는지 여부;

BFT 시스템의 경우, 합의에 참여하는 노드가 부족할 때 중단하는 것은 때때로 안전성을 유지하기 위한 대가가 됩니다. 직설적으로 말하자면, 이 본래의 탈중앙화 장부는 차라리 그 자리에 멈춰 있기를 원하며, 나머지 사람들이 각자 기록하는 것을 허용하지 않으려 합니다.

이 관점에서 다시 돌아보면, 공공 블록체인 역사상 많은 겉보기에는 완전히 다른 사건들이 사실상 동일한 문제를 중심으로 전개되었음을 알 수 있습니다:

분산 노드가 "정확한 상태"에 대해 일치된 의견을 형성할 수 없을 때, 네트워크는 어떻게 해야 할까요?

삼, 비트코인에서 솔라나까지, 공공 블록체인의 진정한 위험 경계는 어디에 있나요?

이것은 코스모스가 이 문제를 처음으로 제기한 것이 아닙니다.

2013년, 비트코인에서 매우 전형적인 체인 분기 사건이 발생했습니다.

당시 비트코인 0.8은 기본 데이터베이스를 버클리 DB에서 레벨DB로 전환했으며, 이후 많은 거래 입력을 포함하는 블록이 나타났습니다. 새로운 버전의 노드는 정상적으로 처리할 수 있었지만, 일부 구버전 노드는 버클리 DB의 잠금 수량 제한으로 인해 이 블록을 무효로 판단했습니다.

그래서 매우 어색한 상황이 발생했습니다. 모두가 비트코인을 실행하고 있었지만, 새로운 클라이언트와 구 클라이언트는 "이 블록이 과연 유효한가"에 대해 서로 다른 답변을 내놓기 시작했습니다.

네트워크는 두 개의 체인으로 분열되었고, 새로운 0.8 쪽은 한때 약 60%의 해시 파워를 보유하고 있었지만, 정상적인 해시 경쟁에 의존하여 빠르게 수렴할 수 없었습니다.

결국 대형 채굴 풀은 조정을 통해 구버전으로 되돌아가고, 구 규칙 쪽에서 더 많은 해시 파워를 다시 확보하여 네트워크가 다시 수렴하게 되었습니다. 비트코인은 이후 BIP 50을 통해 이 사건을 재조명했습니다.

2016년, 이더리움의 더 다오 사건은 문제를 한 단계 더 나아가게 했습니다.

위에서 언급한 더 다오 사건처럼, 이더리움 커뮤니티는 결국 하드 포크를 통해 블록 1,920,000에서 이더리움 재단이 명확히 "비정상 상태 변경"이라고 부르는 특별한 상태 수정을 실행하여 관련 ETH를 복구 계약으로 전송했습니다.

하지만 모든 사람이 이러한 처리를 인정한 것은 아니며, 상태 수정을 거부한 일부 채굴자와 커뮤니티는 원래의 규칙을 계속 유지하게 되었고, 이로 인해 나중에 오랫동안 존재한 이더리움 클래식(ETC)이 생겨났습니다.

이번 다오 포크 역시 전형적인 사건으로, 모든 사람에게 극단적인 사건이 발생할 때 코드 합의 외에도 사회적 합의가 존재하며, 충분히 일치된 의견을 형성할 수 없다면 한 체인이 정말로 두 개로 나뉠 수 있다는 것을 알리는 사건이었습니다.

2021년의 솔라나는 완전히 다른 고장 경로를 보여주었습니다.

그 해 9월, 대량의 로봇 거래가 네트워크에 유입되어 검증 노드의 메모리가 소진되고, 많은 노드가 다운되었으며, 결국 전체 네트워크가 현재 상태에 대해 일치된 의견을 형성할 수 없어 약 17시간 동안 새로운 블록 확인을 중단했습니다. 이후 검증자들이 공동으로 조정하여 네트워크를 복구했습니다.

이 사건들을 함께 놓고 보면, 이들은 동일한 문제가 아님을 알 수 있습니다:

  • 비트코인 2013년의 문제는 서로 다른 클라이언트가 서로 다른 유효성 규칙을 실행하기 시작한 것입니다;
  • 솔라나 2021년의 문제는 대량의 검증 노드가 정상적으로 합의에 참여할 수 없어 네트워크가 Liveness를 잃은 것입니다;
  • 이더리움 다오가 직면한 문제는 커뮤니티가 새로운 프로토콜 규칙을 통해 상태를 적극적으로 수정해야 하는가에 더 가깝습니다;
  • 그리고 이번 코스모스 허브는 또 다른 특별한 특성을 가지고 있으며, 네트워크는 먼저 검증자 조정을 통해 Liveness를 적극적으로 잃고 공격 자산의 이동을 방지했습니다; 이후 충분히 높은 비율의 검증 권한이 새로운 소프트웨어와 상태 복구를 공동으로 수용하여 네트워크가 다시 일치를 이루게 했습니다;

따라서 이러한 사건들을 단순히 "블록체인도 꺼질 수 있다" 또는 "탈중앙화는 모두 거짓이다"라고 요약하기보다는, 더 진실한 사실을 인정하는 것이 좋습니다:

합의 메커니즘은 결코 고장 나지 않는 기계가 아니며, 실제로 제공하는 것은 탈중앙화된 규칙의 집합입니다. 예를 들어, 분쟁이 발생했을 때 누가 올바른 체인을 결정하는지; 얼마나 많은 참여자가 하나의 상태에 최종성을 부여할 수 있는지; 고장이 발생했을 때 네트워크가 계속 운영할지 중단할지를 선택하는지; 그리고 극단적인 상황에서 어떤 집단 행동이 이후의 운영 규칙을 변경할 수 있는지를 포함합니다.

이로 인해 이번 코스모스 사건은 "체인을 중단해야 하는가"보다 일반 사용자에게 더 깊이 생각할 만한 질문을 남겼습니다.

마지막에

우리는 종종 "너의 키가 아니면 너의 코인이 아니다"라고 말합니다.

이 말은 여전히 유효하지만, 자산 통제권을 강조합니다. 즉, 개인 키가 손에 있다면 지갑, 거래 플랫폼 또는 다른 제3자가 정상적으로 거래를 서명할 수 없습니다.

전제는, 당신이 있는 블록체인이 언제든지 이 서명을 처리할 수 있는 능력이 있어야 한다는 것입니다.

코스모스 허브가 블록 생성이 중단된 날, 사용자는 여전히 자신의 개인 키를 보유하고 있으며, 자산도 공중에서 사라지지 않았습니다. 단지 당신이 올바르게 거래를 서명하더라도 새로운 블록이 그것을 수용할 수 없습니다.

복구 과정은 또한 충분히 많은 합의 참여자가 새로운 상태 규칙을 수용할 경우, 특정 계정의 체인 상 상태가 원 주소 개인 키 서명 없이도 변경될 수 있음을 보여줍니다.

이것은 "너의 키가 아니면 너의 코인이 아니다"의 유효성을 무효화하지 않지만, 개인 키 자율성과 기본 합의 권한은 결코 동일한 것이 아님을 상기시킵니다.

지갑에 대해서도 마찬가지입니다.

지갑은 개인 키와 서명 권한이 사용자 손에 있도록 보장할 수 있으며, 체인 수준의 이상을 신속하게 인식하고, 거래 상태를 정확하게 표시하며, RPC와 노드 중복성을 구축하고, 네트워크가 복구된 후 거래 최종 결과를 다시 확인할 수 있습니다.

하지만 지갑은 공공 블록체인이 합의를 복구하도록 할 수 없으며, 기본 네트워크가 영원히 중단되지 않도록 보장할 수 없고, 체인 상의 규칙과 상태가 영원히 합의 수준에서 변경되지 않도록 보장할 수 없습니다.

따라서 성숙한 탈중앙화 시스템이 진정으로 추구해야 할 것은 결코 "어떤 것도 절대적으로 변경할 수 없다"는 것이 아닐 수 있습니다. 반대로, 이러한 완벽하지 않은 경계를 가능한 한 명확히 설명해야 합니다: 누가 합의를 중단할 수 있는가? 얼마나 큰 비중이 필요한가? 어떤 상황에서 긴급 개입이 허용되는가?

진정한 탈중앙화는 시스템이 영원히 사고를 겪지 않도록 할 수 없으며, 핵심은 사고가 실제로 발생하더라도 누가, 어떤 규칙에 따라, 얼마나 큰 합의로 이 장부를 어떻게 기록할지를 여전히 알 수 있어야 한다는 것입니다.

펀딩 정보

더보기
$4.6MOct 1
$15MOct 1
$5MOct 1

최근 출시 토큰

더보기
Oct 8
Sep 30

𝕏 최신 관심

더보기