문서 익스플로러
← 블로그로 돌아가기 엔지니어링

테스트넷 1단계 회고: 메인넷보다 먼저 우리가 발견한 버그들

August 4, 2026

테스트넷 1단계 회고: 메인넷보다 먼저 우리가 발견한 버그들

이더웨이의 첫 테스트넷 ethwei-testnet-1은 약 5주간 — 2026년 6월 29일부터 8월 4일까지 — 운영되었으며, 블록당 약 5초 간격으로 최종 621,526 블록에 도달했고, 계획되지 않은 중단은 단 한 번도 없었습니다. 최종 발행량은 6,999,827,484 ETE로 마감되었습니다.

이 가동 시간 수치는 사실 이 글의 핵심이 아닙니다. 어떤 체인이든 5주 동안 다운되지 않고 운영하는 것 자체는 누구나 할 수 있습니다. 더 유용한 질문은 실제로 의도된 방식대로 그것을 사용하려고 할 때 무엇이 깨지는가이며, 그리고 그것을 지금 테스트넷에서 알아내느냐, 아니면 나중에 실제 가치가 걸린 메인넷에서 알아내느냐입니다.

우리는 네 가지 실제 문제를 발견했습니다. 네 가지 모두 수정되었습니다. 아래는 그 내용입니다.

검증된 것들

무엇이 깨졌는지 다루기 전에, 이 테스트넷이 실제로 무엇을 테스트하고 있었는지 명확히 짚고 넘어갈 필요가 있습니다:

이것이 기본 전제입니다. 진짜 중요한 것은 다음부터입니다.

1. 거버넌스 우회 취약점 (심각도: 높음)

이더웨이 테스트넷은 원래 두 가지 커스텀 거버넌스 규칙을 강제하고 있었습니다: 검증자만 제안을 제출할 수 있다는 것, 그리고 “적극 반대(NoWithVeto)” 투표 옵션이 비활성화되어 있다는 것.

보안 검토 결과, 이 두 제약 모두 완전히 우회될 수 있다는 사실이 밝혀졌습니다 — Cosmos의 레거시 거버넌스 API와 가중 투표(weighted votes)를 통해서였으며, 둘 다 커스텀 규칙을 존중하지 않았습니다. 이는 이론적인 이야기가 아니었습니다. 실제 운영 중인 테스트넷에서 악용 가능함이 확인되었고, 이후 수정되었습니다.

실전에서 검증된 프레임워크 위에 덧붙인 커스텀 규칙은, 누군가 이음매를 직접 확인하기 전까지는 아무 문제 없어 보이는 바로 그런 종류의 것입니다.

2. 그 뒤에 내려진 결정

수정 방식은 패치가 아니었습니다. 이더웨이는 커스텀 거버넌스 코드를 완전히 제거하고, 수정되지 않은 표준 Cosmos 거버넌스로 되돌아갔습니다 — 스팸 억제는 커스텀 권한 검사 대신, 제안 보증금(proposal deposit)을 통한 경제적 방식이라는 표준적인 방법으로 이루어집니다.

커스텀 거버넌스의 공격 표면은 “우회 가능한 두 가지 규칙"에서 완전히 제로로 줄어들었습니다. 우회할 커스텀 로직 자체가 더 이상 남아있지 않기 때문입니다. 패치를 거듭하며 취약한 커스텀 규칙을 영원히 유지하는 것이 더 ‘영리한’ 선택이었을 수 있습니다. 그것을 제거하는 것이 더 단순한 선택이었습니다. 우리는 더 단순한 쪽을 택했습니다.

3. 발행 상한이 뚫릴 수도 있었던 문제 (심각도: 높음)

발행 모듈은 얼마나 많은 양을 발행했는지를 내부 카운터로 추적하고 있었습니다. 그런데 이 카운터는 제네시스 익스포트/임포트(genesis export/import) 과정에서 보존되지 않았습니다 — 많은 체인 업그레이드가 의존하는 바로 그 메커니즘입니다.

업그레이드 한 번으로 이 카운터가 조용히 초기화되고, 전체 스테이킹 준비금이 처음부터 다시 발행될 수 있었으며, 이는 어떤 개별 거래도 이상하게 보이지 않은 채로 100억 개의 하드캡을 무너뜨릴 수 있었습니다. 수정 방법은 이 카운터를 더 이상 신뢰하지 않는 것이었습니다: 이제 상한은 체인의 실제 온체인 발행량을 기준으로 강제되므로, 내부 카운터가 무엇을 기록하고 있든 상관없이 상한이 유지됩니다.

4. 슬래싱 사고 (가장 흥미로운 이야기)

CyphCube-2가 폐지되었을 때, 그것은 오프라인 상태가 되었습니다 — 그리고 단 약 4분간의 다운타임 이후 감금되어 1%가 슬래싱되었습니다. 이는 10,020,000 ETE에 해당하며, 해당 검증자에게 위임한 모든 사용자에게 비례적으로 영향을 미쳤습니다.

조사 결과, 이는 버그보다 더 단순한 무언가로 밝혀졌습니다: 이더웨이는 Cosmos SDK의 원시 기본 슬래싱 매개변수를 그대로 사용하고 있었습니다 — 100블록의 서명 윈도우(약 4분의 유예 기간)와 1%의 다운타임 페널티. 메인넷에서 이 설정은 일상적인 서버 재부팅이나 느린 소프트웨어 업그레이드 — 공격이 아니라 그저 통상적인 운영 — 만으로도 해당 검증자를 위임한 모든 사용자가 슬래싱될 수 있음을 의미합니다.

수정은 두 부분으로 이루어졌습니다. 먼저, 서명 윈도우가 100블록에서 10,000블록으로 확대되었고, 다운타임 페널티는 1%에서 0.01%로 낮아졌습니다. 이후 추가 검토를 거쳐, 이 정책은 Cosmos Hub 자체의 설정에 맞춰 한 번 더 완화되었습니다 — 윈도우 내 블록 중 단 5%만 서명되면 되도록 — 유예 기간은 약 4분에서 약 13시간으로 늘어났습니다.

이중 서명(double-sign) 슬래싱은 5%로 그대로 유지됩니다. 다운타임은 사고이고, 이중 서명은 공격입니다. 이 둘은 같은 방식으로 처벌되어서는 안 되며, 이제는 그렇지 않습니다.

부수적으로 확인된 검증 가능한 발행량의 순간

바로 그 슬래싱 사건은 우리에게, 말하기는 쉽지만 증명하기는 더 어려운 것 하나를 확인할 깔끔한 기회를 주었습니다: 소각된 ETE는 정말로 파괴되는 것이지, 누군가에게 재분배되는 것이 아니라는 사실입니다.

총 발행량은 정확히 10,020,000 ETE만큼 감소했습니다 — 슬래싱 수량과 토큰 단위까지 정확히 일치했습니다. 그 덕분에, 테스트넷은 시작할 때보다 실제로 더 적은 ETE로 마감되었습니다: 5주 동안 누적된 소각량이 발행이 만들어낸 모든 양을 넘어섰습니다. 슬래싱으로 이득을 보는 사람은 아무도 없습니다. 가치는 그저 사라질 뿐입니다.

이번에 검증된 설계 선택들

같은 5주간의 운영 속에서 몇 가지 아키텍처 결정도 그 타당성이 입증되었습니다:

이번 테스트넷의 한계에 대해 솔직하게

이것은 통제된 테스트넷 운영이었지 스트레스 테스트가 아니었으며, 그 차이를 솔직하게 밝혀둘 필요가 있습니다. 여기에는 외부 제3자 검증자, 실제 사용자나 실제 자금이 걸린 상황, 실질적인 규모의 적대적 환경, 그리고 독립적인 전문 보안 감사가 포함되지 않았습니다. 이것들은 여전히 메인넷 이전에 반드시 거쳐야 할 전제 조건이며, 이 회고글이 그 어떤 것도 대체하지 않습니다.

다음 단계: 2단계

2단계는 완전히 새로운 테스트넷에서, 대규모 사전 발행이 아닌 공정한 출시(fair-launch) 원칙을 중심으로 개편된 토크노믹스로 운영됩니다.

제네시스 발행량은 최대 발행량의 70%에서 10% — 10억 ETE — 로 줄어들며, 나머지 90%(90억 ETE)는 참여자들이 30년에 걸쳐 연간 고정 3억 ETE의 스테이킹을 통해 얻게 됩니다. 최대 발행량은 100억으로 그대로 유지됩니다.

이유는 명확합니다: 토크노믹스를 어떻게 포장하든, 총 발행량의 70%를 단일 주소에 사전 발행하는 것은 취약한 공정 출시 서사입니다. 다른 누군가가 참여하기도 전에 미리 배분해두는 대신, 90%의 발행량을 참여를 통해 얻도록 하는 것이 이더웨이가 실제로 기반하고 있는 원칙에 더 가깝습니다.

지루하고 단순한 블록체인이 좋은 블록체인입니다 — 하지만 지루하다는 것이 테스트되지 않았다는 뜻은 아닙니다. 그것은 정말 중요한 순간에 아무런 ‘흥미로운’ 일도 일어나지 않을 만큼, 충분히 그리고 충분히 일찍 테스트했다는 뜻입니다.