이더리움의 다음 업그레이드인 글램스터담(Glamsterdam)이 후디(Hoodi) 테스트넷에서 멈춰 섰다. 제안된 가스 계산 방식이 일부 기존 스마트 계약의 작동 방식을 바꿀 수 있다는 보안 우려 때문이다. 단순히 거래 수수료가 오르는 문제가 아니다. 특정 작업에 필요한 가스 양을 미리 가정해 만든 계약은 작업 실패 여부를 판단하거나 재시도하는 방식까지 달라질 수 있다. 이더리움 재단은 문제가 해결될 때까지 후디에서 포크를 진행하지 않겠다고 밝혔다.
8
EIP-8037·8038은 무엇을 바꾸나
EIP-8037은 새로운 상태 데이터를 만드는 데 드는 비용을 높이고, 이 비용을 별도의 방식으로 계산하도록 제안한다. EIP-8038은 이미 존재하는 상태 데이터에 접근할 때의 가스 비용을 조정한다. 두 제안은 특정 작업에 가스가 부과되는 규칙을 바꾸며, 일부 배포된 계약이 전제로 삼았던 비용 예측에 영향을 줄 수 있다.
20
23
8
스마트 계약은 가스 한도나 사용량을 확인해 작업이 성공했는지, 실패했는지, 다시 시도해야 하는지를 결정하기도 한다. 따라서 가스 비용이나 계산 방식이 바뀌면 특히 외부 호출이 실패하는 상황에서 계약의 기존 가정이 맞지 않을 수 있다.
6
19
가스 가정이 계약 작동에 미칠 수 있는 영향
- 고정된 가스 예산: 계약이 과거의 비용을 기준으로 다른 작업에 일정량의 가스만 전달한다면, 해당 작업의 비용이 올라갔을 때 실행에 필요한 가스가 부족해질 수 있다. 재단은 일부 프로젝트가 이번 제안으로 달라질 가스 비용 가정에 의존한다고 설명했다.
8
9
gasleft() 확인: ChainSecurity에 따르면 gasleft()는 실행 프레임에 남은 실행 가스를 보여준다. 별도의 상태 가스 저장량이 바닥나면 상태 생성 비용도 이 실행 가스에서 차감될 수 있다. ChainSecurity는 남은 가스만 보고 호출 실패의 원인을 추론하는 방식에 의존하지 말라고 경고했다. 중간 단계의 되돌리기(revert)나 가스 보충이 그런 추론을 무너뜨릴 수 있기 때문이다.
19
- 실패 처리: ChainSecurity의 분석을 다룬 보도에 따르면, 바뀐 가스 계산 때문에 일부 계약은 실패한 작업을 되돌리거나 재시도 가능 상태로 남기는 대신 실패를 영구적으로 기록할 수 있다.
41 변경할 수 없는 계약에서 이런 처리 방식이 출금을 막는다면 자금에 접근하기 어려워질 가능성이 있다. 다만 이는 제안된 변경이 적용될 경우의 잠재적 결과이지, 메인넷 업그레이드로 이미 자금이 묶였다는 뜻은 아니다.
11
41
재단이 언급한 ‘8가지 불변 조건(invariant)’은 일부 계약이 의존할 수 있는 가스 관련 전제다. 이 숫자가 이더리움의 모든 계약에 공통으로 적용되는 8가지 고장 유형을 뜻하지는 않는다. 재단은 개발팀이 자체 코드를 확인할 수 있도록 설명과 사례, 자가 점검 항목을 공개했다.
2
8
‘13개 계약’은 무엇을 뜻하나
이더리움 공식 사이트는 메인넷 계약 사례 13개가 확인됐다고 전했고, 다른 보도도 잠재적으로 영향을 받을 수 있는 배포 계약 13개를 언급했다.
13
38 이는 호환성 우려가 가정에만 그치지 않는다는 점을 보여준다. 그러나 13개 계약에서 이미 오류가 발생했다는 뜻은 아니다. 문제는 제안된 변경이 활성화될 경우 이 계약들이 어떻게 작동할 수 있느냐는 것이다.
8
38
공개된 자료만으로는 13개 계약의 전체 목록과 각각의 실패 과정을 독립적으로 모두 확인하기 어렵다. 또한 8가지 불변 조건이 있다는 사실만으로 모든 계약이 이미 점검됐다고 볼 수도 없다.
재단의 대응과 프로젝트별 점검
이더리움 재단은 11월 6일 업데이트에서 ChainSecurity와 Dedaub의 보안 점검을 진행하고 있으며 내부 감사도 병행한다고 밝혔다. 재단은 개발자와 감사 담당자에게 해당 프로젝트가 영향을 받는 가정에 의존하는지 확인해 달라고 요청했다.
8 공개 자료에는 점검 사례와 자가 확인 항목이 포함돼 있으며, 영향을 받는 팀은 glamsterdam@ethereum.org로 연락할 수 있다는 안내도 보도됐다.
2
재단 차원의 감사만으로 모든 애플리케이션과 실패 처리 로직의 안전성을 확인할 수는 없다. 그래서 각 프로젝트가 바뀐 가스 규칙을 기준으로 자체 계약을 시험해야 한다는 점도 강조되고 있다.
8
33
테스트넷 적용은 어디까지 왔나
보도에 따르면 글램스터담은 10월 6일 세폴리아(Sepolia) 테스트넷에 적용됐다.
6 ChainSecurity는 10월 13일 가스 계산 방식에 관한 분석을 공개했다.
19 재단은 10월 22일, 10월 26일로 예정됐던 후디 적용을 연기하면서 새 날짜는 정하지 않았다고 밝혔다.
49 함께 예정됐던 후디 가스 한도 2억으로의 인상도 보류됐다.
34
재단은 11월 6일에도 위험이 해결될 때까지 후디 포크를 진행하지 않겠다고 확인했다.
8 따라서 현재 상황은 새 적용 일정이 잡힌 것이 아니라 보안 검토를 위한 보류 상태다. 공개된 업데이트만으로는 긴급 롤백 포크가 복구 계획으로 확정됐다고 볼 근거도 없다.