ETH 가스 추정 수정안, 재현 67건 중 64건 보정…아직 초안
Geth 수정안 작성자가 거래 전체의 성공 여부만 보던 가스 추정에 내부 호출 실패까지 반영하자고 제안했다. 메인넷 거래 432건 재현 시험에서 문제 추정치 67건 중 64건이 바로잡혔다고 밝혔다.
토포AI로 이 기사 더 깊이 읽기
이더리움(ETH) 실행 클라이언트 Geth의 가스 추정이 거래는 성공으로 기록돼도 스마트컨트랙트 안의 내부 작업은 실패하는 경우를 놓칠 수 있다는 문제가 제기됐고, 이를 줄이는 수정안이 제안됐다. 지갑이 제시한 가스 한도가 거래 전체를 끝내기에는 충분해도 이용자가 요청한 내부 작업에는 모자랄 수 있다는 것이다.
8일 Geth 저장소에 초안으로 올라온 PR #36084는 현재 가스 추정이 거래 전체의 성공 여부를 기준으로 한도를 찾는다고 설명한다. 이더리움 실행 API 문서도 eth_estimateGas를 거래 완료에 필요한 가스량을 추정하는 메서드로 정의한다. 수정안은 이 기준에 내부 호출의 실행 결과를 더한다.
스마트컨트랙트가 다른 컨트랙트를 호출할 때 가스가 부족하면 내부 호출이 실패할 수 있다. 바깥 컨트랙트가 그 실패를 포착해 나머지 처리를 이어가고 실행을 마치면 거래 전체는 오류 없이 성공으로 남는다. 거래 성공 표시는 바깥 실행이 끝났다는 뜻일 뿐, 이용자가 기대한 모든 단계가 완료됐다는 보증은 아니다.
수정안은 가스 추정의 성공 조건을 강화한다. 기준이 되는 높은 한도의 실행보다 실패한 내부 호출이나 컨트랙트 생성이 많은 한도는 추정치로 받아들이지 않는다. 반대로 가스를 충분히 줘도 항상 실패하는 호출은 기준 실행과 비교해 추정치를 무한정 높이지 않도록 했다. 같은 방향의 규칙을 담은 실행 API 사양 PR #971도 초안으로 제출됐다.
제안자는 암스테르담(Amsterdam) 규칙을 적용해 메인넷 거래 432건을 EELS에서 다시 실행했다. 내부 호출에 필요한 가스가 부족해질 수 있던 67건 가운데 64건을 수정안이 바로잡았고, 해당 가스 한도의 중앙값은 4% 높아졌다. 문제가 없던 추정치 254건은 변하지 않았으며 3건은 수정안으로도 놓쳤다. 이는 제안자의 재현 시험 결과로, 전체 거래나 실제 지갑에서 같은 비율의 개선이 나타난다는 뜻은 아니다.
이번 문제는 글램스테르담(Glamsterdam) 업그레이드의 EIP-8037과도 맞닿아 있다. EIP-8037은 새 상태를 만드는 비용을 별도 가스 차원으로 계산하자는 제안이다. 수정안 작성자는 상태 가스 반환 규칙이 적용되면 내부 호출이 실패한 뒤 상위 호출이 대체 처리를 이어가는 패턴이 더 자주 나타날 수 있다고 설명했다. 이더리움 재단은 앞서 6일 글램스테르담에서 바뀌는 가스 과금 전제 8가지를 점검해 달라고 스마트계약 개발자와 감사인에게 요청한 바 있다.
가스 한도가 올라간다고 수수료가 같은 비율로 오르는 것은 아니다. 한도는 거래가 사용할 수 있는 최대 가스량이고, 이더리움 공식 가스 문서는 실제 수수료를 사용한 가스량과 단위당 가격의 곱으로 설명한다. 재현 시험의 중앙값 4% 상승을 수수료 4% 상승으로 읽을 수 없는 이유다.
9일 현재 Geth 수정안과 실행 API 사양안은 모두 초안 상태다. Geth PR 페이지에는 해당 브랜치의 배포 기록이 없고, 병합·배포 일정은 공개되지 않았다.
시장 해석
이번 제안은 ETH 시세가 아니라 거래에 필요한 가스량을 추정하는 방식에 관한 것이다.
전략 포인트
재현 시험의 가스 한도 중앙값 4% 상승은 실제 수수료 4% 상승을 뜻하지 않는다.
용어정리
내부 호출: 한 스마트컨트랙트가 다른 스마트컨트랙트를 실행하는 과정.
가스 한도: 거래가 사용할 수 있도록 설정한 최대 가스량.
최윤서 기자 




Comment 0
불러오는 중…