Istanbul 하드포크

메인넷 2019-12-08

가스 비용을 조정하고 체인 ID 옵코드와 프리컴파일 가격 인하를 넣었습니다.

무엇이 달라졌나

사용자
거래에 데이터를 많이 담는 앱의 수수료가 내려갔습니다. 콜데이터(calldata) 가스가 바이트당 68에서 16으로 낮아져 데이터가 큰 거래가 눈에 띄게 싸졌습니다. 반대로 저장 값을 읽는 옵코드 가격이 올라, 상태를 많이 읽는 컨트랙트를 호출할 때는 가스가 전보다 늘었습니다. 영지식 증명을 검증하는 앱은 프리컴파일 가격 인하로 수수료가 줄었습니다. 어떤 앱을 쓰느냐에 따라 체감이 달랐습니다.
지갑·앱 개발자
EIP-1884로 SLOAD, BALANCE, EXTCODEHASH 같은 상태 읽기 옵코드 가격이 올랐습니다. 이더를 받을 때 주어지는 2300 가스 안에서 저장 값을 읽던 컨트랙트는 포크 뒤 실행이 실패해, 가스 양을 고정해 둔 코드를 점검해야 했습니다. 대신 자기 잔액을 싸게 읽는 SELFBALANCE가 추가됐습니다. EIP-1344의 CHAINID 옵코드로 컨트랙트가 자기 체인 번호를 직접 읽게 되어, 서명 검증(EIP-712)에 체인 ID를 넣어 다른 체인에서 같은 서명이 재사용되는 일을 막을 수 있게 됐습니다. EIP-1108로 alt_bn128 프리컴파일이 싸져 영지식 증명(zk-SNARK) 검증 비용이 크게 줄었습니다.
L2
롤업은 L2 거래 데이터를 L1에 콜데이터로 올리는데, EIP-2028로 바이트당 가스가 68에서 16으로 내려가 이 비용이 크게 줄었습니다. 이 변화 덕분에 롤업이 메인넷에서 현실적인 비용으로 돌 수 있게 됐습니다. zk 롤업은 EIP-1108의 프리컴파일 인하로 증명 검증 비용까지 함께 줄었습니다. CHAINID 옵코드는 L2 컨트랙트가 자기 체인을 구분하는 데도 쓰입니다.
노드 운영자
클라이언트를 업데이트하는 것 외에 운영 방식이 달라진 것은 없습니다. 상태가 커지면서 노드가 저장 값을 읽는 데 드는 실제 부담은 가스 가격보다 무거워졌습니다. EIP-1884의 상태 읽기 가격 인상은 이를 맞추려는 조정이었습니다. 그 결과 값싼 읽기를 반복해 블록 처리를 느리게 만드는 거래가 줄어, 노드 부담이 가스 비용에 더 가깝게 반영됐습니다.

주요 EIP

← 하드포크 · 로드맵