올해 이뤄질 이더리움의 글램스터담 업그레이드는, ePBS 및 BAL로 확장성을 크게 증가시키는 것이 목표기도 하지만, ‘안전한 확장성 증가’라는

sm-stack · 2026.02.20 · Short

올해 이뤄질 이더리움의 글램스터담 업그레이드는, ePBS 및 BAL로 확장성을 크게 증가시키는 것이 목표기도 하지만, ‘안전한 확장성 증가’라는 목표 하에 전반적인 가스 가격을 재편하려고 하고 있습니다. 기준보다 저렴하게 평가된 연산들의 가격을 원래대로 올리고, 공격 벡터를 차단하는 것입니다. 예를 들어, 이더리움 내 상태 트리에 변수를 저장하는 SST

올해 이뤄질 이더리움의 글램스터담 업그레이드는, ePBS 및 BAL로 확장성을 크게 증가시키는 것이 목표기도 하지만, ‘안전한 확장성 증가’라는 목표 하에 전반적인 가스 가격을 재편하려고 하고 있습니다. 기준보다 저렴하게 평가된 연산들의 가격을 원래대로 올리고, 공격 벡터를 차단하는 것입니다. 예를 들어, 이더리움 내 상태 트리에 변수를 저장하는 SSTORE 연산의 가격이 너무 저렴하게 책정되었다고 가정해봅시다. 이러면 누군가는 블록을 SSTORE 연산으로 가득 채운 다음 이를 전파하여, 머신 스펙이 좋지 않은 밸리데이터들이 시간 내에 투표를 하지 못하게 만들 수도 있겠죠. 이러한 상황을 방지하기 위해, 이더리움 리서처들은 이번 글램스터담 업그레이드에서 명령어들의 전반적인 가스 가격을 조정하려고 합니다. 이를 위한 대표적인 EIP들은 다음과 같습니다. 1. EIP-2780: 트랜잭션 기본 비용 감소 EIP-2780은 트랜잭션의 기본 비용을 21,000에서 4,500으로 줄입니다. 이에 따라, 일반 ETH 전송의 비용은 기존 21,000에서 6,000 (4,500에 수신자 쪽 추가 작업 포함) 으로 줄게 되죠. 또한 ERC20 전송이나 DEX 스왑 등의 비용도 각각 24%, 8% 가량 감소하게 됩니다. 또한 컨트랙트 내부에서 CALL을 사용해 트랜잭션을 보내는 연산의 가격 역시 9,000에서 2,000으로 감소합니다. 다만, EIP-2780에서는 ETH 전송으로 인해 ‘새 계정이 생기는 경우’ 25,000의 추가 가스 비용을 부과합니다. 이는 저렴해진 ETH 전송으로 인해 새 계정을 마구잡이로 생성해 상태 증가를 유발하는 것을 막기 위함입니다. 이게 적용된다면, 사용자들은 대부분의 경우 더 저렴하게 트랜잭션을 보낼 수 있게 될 것으로 예상되네요. 앱 개발자들은, 혹여나 앱 로직 중 트랜잭션 기본 비용을 21,000으로 고정해두는 코드가 있다면 이를 수정해야 합니다. 2. EIP-7778: 블록 가스 환불 규칙 변경 원래 이더리움은 비어 있지 않은 상태를 0으로 만드는, ‘상태 삭제’를 수행하면 가스를 일부 돌려주었습니다. 그러나, 이를 악용해 다음과 같은 공격을 할 수도 있었죠. - 공격자가 가스 환불이 매우 많이 포함된 트랜잭션을 블록에 포함 - 블록 프로포저는 이를 처리하기 위해 많은 연산을 하지만, 해당 연산들에 들어간 가스가 많은 부분 환불되어 저렴하게 연산을 수행해준 꼴이 됨 이는 현재 가스 리밋에선 문제가 되지 않을 수 있으나, 향후 가스 리밋이 크게 증가할수록 실제 DoS 공격으로 이어질 가능성이 커집니다. 따라서 EIP-7778은 블록 빌딩 시 계산되는 가스 리밋에서, 환불되는 가스를 제외합니다. 예를 들어 블록 가스 리밋이 60M이고, 현재 블록이 62M의 가스를 쓰지만 가스 환불량이 4M이라고 가정해보겠습니다. 원래 블록 빌딩 로직은 해당 블록이 쓴 총 가스를 62-4=58M으로 계산하여 정상적으로 블록을 처리했지만, EIP-7778은 가스 환불량을 고려하지 않고 62M를 블록이 쓴 총 가스 양으로 처리하게 되는 것이죠. 즉, 블록 빌딩 로직을 더 보수적으로 바꾼 것입니다. 이는 사용자 및 앱 개발자의 경험을 전혀 바꾸지는 않으며, 블록 빌더나 L2 시퀀서를 운영하는 일부 주체들에서 신경을 써야 하는 부분이지 않을까 생각됩니다. 3. EIP-7904: 연산 가격 재평가 EIP-7904는 총 5개의 이더리움 클라이언트에서 수행한 벤치마크를 기준으로, 전반적인 연산의 가격을 인상합니다. 대표적으로 인상되는 연산들은 다음과 같습니다. - KECCAK: 30 - 45 - DIV: 5 - 15 - MOD: 5 - 12 - ECADD 150 - 314 거의 산술 연산들 아니면 프리컴파일을 활용한 암호 연산들이네요. 앱 개발자들은 컨트랙트에서 이러한 연산들의 인상에 따라 UX가 어떻게 바뀔지 잘 테스팅해봐야 할 것으로 생각됩니다. 4. EIP-7976: 데이터 위주 트랜잭션 가격 인상 EIP-7976은 기존 EIP-7623으로 인해 인상된 ‘데이터 위주 트랜잭션’의 가격을 최대 6.4배 인상하는 제안입니다. 펙트라 업그레이드에 도입된 EIP-7623은 일부 롤업의 트랜잭션 데이터 제출 트랜잭션 등 실행보다 데이터가 훨씬 많은 트랜잭션의 비용을 2.5배 더 많이 받아, 최악의 경우 블록 크기가 너무 커지는 것을 제한하면서도 일반 사용자들의 경험이 깨지지 않도록 합니다. 이렇게 인상된 트랜잭션 데이터 비용은 콜데이터 한 바이트 당 0일 경우 10가스, 0이 아닐 경우 40가스였는데요, EIP-7976은 이를 모두 64가스로 올려버립니다. 이렇게 되면 누군가가 콜데이터만 엄청 크게 만들어 트랜잭션을 보내 블록의 크기를 악의적으로 키우고 P2P 단에 부담을 주는 공격 벡터를 더욱 쉽게 막을 수 있으며, 가스 리밋도 더 공격적으로 올릴 수 있게 됩니다. 대부분의 앱 개발자들은 신경쓰지 않아도 될 것으로 생각됩니다. 심지어 데이터를 많이 쓰는 L2들도 요즘은 모두 콜데이터 대신 블롭을 사용하니, 크게 영향받는 부분은 없죠. 드문 케이스이겠지만, 만약 콜데이터를 이용해 이더리움에 저렴하게 데이터를 저장하고 있었다면, 해당 앱의 비용은 최대 6.4배까지 증가할 수 있습니다. 5. EIP-7981: 액세스 리스트 가격 증가 위 EIP-7976가 콜데이터 가격 증가를 통해 블록 크기 증가를 막았다면, EIP-7981는 액세스 리스트의 가격 증가를 통해 블록 크기 증가를 막습니다. 이더리움 트랜잭션에는 ‘액세스 리스트’라는 기능이 존재합니다. 트랜잭션이 실행 중 접근할 계정 주소와 스토리지 슬롯을 미리 명시해두면, 해당 상태(state)가 처음부터 warm 상태로 간주되어 일부 가스 비용을 절약할 수 있습니다. 액세스 리스트에는 여러 개의 주소(20바이트)와 스토리지 키(32바이트)가 포함되며, 이 정보 역시 트랜잭션 데이터의 일부로 블록에 포함되기 때문에 실제 블록 크기를 증가시키는 요인이 됩니다. 문제는 기존 설계에서 액세스 리스트의 데이터 크기 자체에는 별도의 데이터 비용이 충분히 반영되지 않았다는 점입니다. 이로 인해 EIP-7976이 도입한 콜데이터 기반 블록 크기 제한을, 액세스 리스트를 과도하게 활용하는 방식으로 부분적으로 우회할 수 있는 이론적 가능성이 존재했습니다. 즉, 공격자가 액세스 리스트를 대량으로 포함시키면서 가스 계산 구조를 이용하면, 의도된 한도보다 더 큰 블록 데이터를 만들어낼 여지가 있었던 것입니다. EIP-7981은 이 문제를 해결하기 위해 액세스 리스트에 포함된 데이터에도 콜데이터와 동일한 데이터 가격(floor cost)을 적용합니다. 다시 말해, 이제부터 액세스 리스트를 하나의 데이터 페이로드로 간주하고, 그 데이터 크기에 비례한 비용을 부과하도록 변경하겠다는 것입니다. 이를 통해, 어떤 방식의 데이터든 간에 동일한 블록 크기 제약이 적용되도록 만듭니다. 이 변경으로 인해 액세스 리스트를 사용하는 트랜잭션의 비용은 조금 증가할 수 있습니다. 그러나 실제 사용 사례에서 액세스 리스트는 주로 가스 절약과 실행 안정성을 위해 제한적으로 사용되기 때문에, 정상적인 사용자나 dApp에는 영향이 거의 없을 것으로 예상됩니다. 반면 블록 크기를 인위적으로 키우려는 비정상적 사용 패턴은 경제적으로 불리해지므로, 네트워크 안정성과 블록 크기 예측 가능성은 더욱 개선됩니다.

← Contents