앱 스토어
지갑

카르다노 네트워크, 2017년 출시 이후 첫 중대 사고… 14시간 동안 두 개 체인으로 분열

카르다노 네트워크, 2017년 출시 이후 첫 중대 사고… 14시간 동안 두 개 체인으로 분열

Cardano는 2017년 메인넷 출시 이후 가장 심각한 기술적 장애를 겪었다. 11월 21일 형식이 잘못된 트랜잭션 하나가 14시간 동안 체인을 둘로 쪼개면서, 140억 달러 규모 블록체인이 서로 경쟁하는 포크로 나뉘었고, 이번 사건이 의도적인 공격인지 잘못된 테스트의 사고인지에 대한 치열한 논쟁을 촉발했다.

개발자들이 “Poison Piggy(독돼지)”라 이름 붙인 이번 사건은 카르다노 노드 소프트웨어에 3년 동안 잠복해 있던 버그를 드러내며, 서로 호환되지 않는 두 개의 블록체인 관점을 만들어냈다.

창립자 찰스 호스킨슨은 이번 분열을 FBI 개입이 필요할 정도의 “사전 계획된 공격”이라고 주장한 반면, “Homer J”로 알려진 한 개발자는 공개적으로 책임을 인정하며, 테스트넷 이상 현상을 재현하려다 벌어진 “부주의한 행동”이라고 설명했다.

포크는 어떻게 발생했나

Intersect의 사고 보고서에 따르면, 체인 분열은 11월 20일 카르다노의 프리뷰 테스트넷에서 처음 드러난 직렬화(serialization) 버그에서 비롯됐다. 누군가 해시 길이가 과도하게 긴 잘못된 위임 인증서(delegation certificate)를 제출했는데, 사실상 호스킨슨의 개인 스테이크 풀인 “RATS” 대신 “RATSRATS”로 위임한 셈이 됐다.

오래된 노드들은 이 잘못된 해시를 올바르게 거부한 반면, 2024년 11월에 업데이트된 코드를 실행하던 노드들은 이를 잘라(truncate) 유효한 값으로 취급했다.

이 버전 차이로 인해 블록체인 개발자 파이 래닝햄(Pi Lanningham)이 설명했듯이 두 개의 상호 호환 불가능한 체인이 생겨났다. 더 엄격한 검증 코드를 실행하는 “치킨 체인(chicken chain)”과, 잘못된 트랜잭션을 받아들이는 “피그 체인(pig chain)”이다. 11월 21일 오전 3시 2분(미 동부 기준)경 메인넷에도 거의 동일한 형태의 잘못된 위임 트랜잭션이 제출되면서 네트워크가 실제로 둘로 갈라졌다.

함께 읽기: Cardano's Hoskinson Calls Fiat System 'Ponzi Scheme', Tells 'Paper Hands' to Hold as Markets Lost $1 Trillion Since October

서비스 저하와 영향

래닝햄의 분석에 따르면 피해 규모는 상당했지만 통제 가능한 수준이었다. 14시간 동안 피그 체인은 846개의 블록을 생성한 반면, 치킨 체인은 약 13,900개의 블록을 만들어냈다. 견고한 인프라를 통한 트랜잭션 포함 속도는 크게 느려졌고, 지연 시간은 약 400초까지 늘어났으며, 최악의 경우 블록 생성 간격이 약 16분까지 늘어났다.

관측된 14,383개 트랜잭션 중 479개, 약 3.3%는 폐기된 피그 체인에만 포함되었고 최종 정식 이력(canonical history)에는 반영되지 않았다. 이들 대부분은 재전송 시 유효 시간대(expiry)가 지나거나 입력이 충돌해 무효로 판명됐다. 블록 탐색기들은 분열된 네트워크를 해석하지 못해 멈추거나, 상충되는 데이터를 표시하는 등 고전했다.

래닝햄은 “사용자 입장에서는 심각한 서비스 품질 저하다. 그러나 고가용성(‘high-nines’) 서비스에서 예상 가능한 범위 안에 있다”고 평가했다. 그는 서비스 품질은 저하되었지만, 자금은 안전했고 위기 내내 네트워크는 계속 전진(progress)을 이어갔다고 강조했다.

공격인가, 실수인가?

이번 사건은 의도성(intent)을 둘러싼 격렬한 논쟁을 불러일으켰다. 호스킨슨은 수개월간 네트워크를 해칠 방법을 모색해온 “불만을 품은 스테이크 풀 운영자”에 의한 표적 공격으로 규정했다. “이건 표적 공격이었다. 사전에 계획되었다. 이를 어떻게 할지 알아내는 데 몇 시간이 걸렸을 것이다… 악의적인 행위였다”고 말하며 FBI에 이미 연락했다고 덧붙였다.

반면 문제의 트랜잭션을 보낸 당사자는 소셜 미디어에서 “Homer J”라는 이름으로 전혀 다른 이야기를 내놓았다. “카르다노 여러분, 미안합니다(제 행동의 영향에 비하면 이 말만으로는 충분치 않다는 걸 압니다). 어제 저녁 제 부주의한 행동으로 네트워크를 위험에 빠뜨린 사람이 바로 저였습니다. ‘테스트넷에서 나쁜 트랜잭션을 재현해볼 수 있을까’ 하는 개인적 도전에서 시작했는데, 그걸 메인넷에까지 배포하는 어리석은 짓을 하고 말았습니다”라고 적었다.

이와 동시에, 같은 종류의 이상 현상이 불과 24시간 전 테스트넷에서 발생했다는 점은, 메인넷 실행 전에 이미 익스플로잇이 시험됐다는 의혹을 키웠다.

합의를 통한 네트워크 복구

심각한 사건이었음에도, 카르다노의 대응은 탈중앙화된 거버넌스 구조가 실제로 어떻게 작동하는지 보여줬다. 테스트넷 사고 덕분에 이미 패치된 노드 버전이 준비되어 있었다. 밤사이 IOG(Input Output Global), 카르다노 재단, 에무르고(Emurgo), Intersect, 거래소, 스테이크 풀 운영자들은 긴급 회의를 통해 수정 버전으로 업그레이드하고 더 엄격한 치킨 체인을 따르기로 조율했다.

프로토콜 수준의 롤백이나 중앙화된 “재시작”은 없었다. 스테이크가 패치된 노드로 점차 이동하면서 피그 체인의 블록 생성 속도는 느려졌고, 치킨 체인은 가속화되었다. 건강한 포크가 오염된 포크를 충분히 추월하자, 우로보로스(Ouroboros)의 확률적 최종성 특성에 따라 노드들은 자동으로 더 길고 밀도 높은 체인으로 전환했다.

래닝햄은 “이것이 바로 나카모토 합의가 의도한 대로 작동해 네트워크를 단일 정식 역사로 수렴시켰다는 구체적인 증거”라고 주장했다. 호스킨슨은 더 나아가, 이번 사건이 “다른 체인이었다면 치명타가 됐겠지만” 카르다노의 설계 덕분에 조정된 복구를 위한 충분한 시간이 확보됐다고 평가했다.

교훈과 향후 보안 강화

호스킨슨과 래닝햄 모두 이번 사고가 심각한 약점을 드러냈음을 인정했다. 래닝햄은 “버그가 애초에 등장했다는 사실 자체가 테스트 엄격성 부족의 실패”라고 말했다. cardano-db-sync에 대한 과도한 의존으로, 해당 컴포넌트가 잘못된 트랜잭션에서 크래시하자 생태계 전체가 사실상 “눈이 먼 상태(flying blind)”가 되었다. 많은 스테이크 풀 운영자들은 포크 선택을 독자적으로 검토하지 않고, 창립 단체들의 권고를 그대로 신뢰한 채 업그레이드를 진행했다.

사후 대책 로드맵은 보다 강력한 퍼징(fuzzing)과 명세 기반 테스트, 지갑과 거래소가 실제 합의 상태에 기반해 회로 차단기(circuit breaker)를 구현할 수 있도록 하는 더 풍부한 노드–클라이언트 프로토콜, 모니터링 인프라의 다양성 확대, 그리고 우로보로스가 스트레스 상황에서 어떻게 동작하는지에 대한 운영자 교육 강화를 제시한다.

ADA 가격은 사건 기간 동안 약 6% 하락해, 전반적인 암호화폐 시장 반등세보다 부진한 모습을 보이며 현재 약 0.41달러 선에서 거래되고 있다. 사건의 심각성에 비해 비교적 제한된 하락 폭은, 시장이 이를 네트워크 회복력에 대한 시험으로 보았지 근본적 실패로 보지는 않았다는 신호로 읽힌다. 네트워크는 결과적으로 시험을 통과했지만, 긴급히 개선이 필요한 취약 지점들을 적나라하게 드러냈다.

다음 읽기: Cardano Whales Accumulate $204 Million in Four Days Despite 30% Price Decline

면책 조항: 본 기사에서 제공되는 정보는 교육 목적으로만 제공되며 금융 또는 법률 조언으로 간주되어서는 안 됩니다. 암호화폐 자산을 다룰 때는 항상 자체 조사를 수행하거나 전문가와 상담하십시오.
관련 뉴스
관련 학습 기사
카르다노 네트워크, 2017년 출시 이후 첫 중대 사고… 14시간 동안 두 개 체인으로 분열 | Yellow.com